diff --git a/app/src/main/java/com/amaze/filemanager/utils/smb/SmbDeviceScannerObservable.kt b/app/src/main/java/com/amaze/filemanager/utils/smb/SmbDeviceScannerObservable.kt index b4c8d8c619..7e36143a4f 100644 --- a/app/src/main/java/com/amaze/filemanager/utils/smb/SmbDeviceScannerObservable.kt +++ b/app/src/main/java/com/amaze/filemanager/utils/smb/SmbDeviceScannerObservable.kt @@ -26,6 +26,7 @@ import com.amaze.filemanager.utils.smb.SmbDeviceScannerObservable.DiscoverDevice import io.reactivex.Observable import io.reactivex.Observer import io.reactivex.disposables.Disposable +import io.reactivex.disposables.Disposables import io.reactivex.schedulers.Schedulers import java.net.InetAddress @@ -50,7 +51,7 @@ class SmbDeviceScannerObservable : Observable() { fun onCancel() } - var discoverDeviceStrategies: Array = + private var discoverDeviceStrategies: Array = arrayOf( WsddDiscoverDeviceStrategy(), SameSubnetDiscoverDeviceStrategy(), @@ -61,7 +62,7 @@ class SmbDeviceScannerObservable : Observable() { private lateinit var observer: Observer - private lateinit var disposable: Disposable + private var disposable: Disposable = Disposables.empty() /** * Stop discovering hosts. Notify containing strategies to stop, then stop the created @@ -71,6 +72,9 @@ class SmbDeviceScannerObservable : Observable() { if (!disposable.isDisposed) { disposable.dispose() } + discoverDeviceStrategies.forEach { strategy -> + strategy.onCancel() + } observer.onComplete() }