diff --git a/android/app/src/main/java/com/metallic/chiaki/discovery/DiscoveryManager.kt b/android/app/src/main/java/com/metallic/chiaki/discovery/DiscoveryManager.kt index d4fe86b..c11aeba 100644 --- a/android/app/src/main/java/com/metallic/chiaki/discovery/DiscoveryManager.kt +++ b/android/app/src/main/java/com/metallic/chiaki/discovery/DiscoveryManager.kt @@ -87,13 +87,12 @@ class DiscoveryManager Log.e("DiscoveryManager", "Failed to start Discovery Service: $e") } } - else if(discoveryService != null) + else if((!active || paused) && discoveryService != null) { val service = discoveryService ?: return service.dispose() discoveryService = null discoveredHostsSubject.onNext(listOf()) - discoveryActiveSubject.onNext(false) } } } \ No newline at end of file diff --git a/android/app/src/main/java/com/metallic/chiaki/main/MainActivity.kt b/android/app/src/main/java/com/metallic/chiaki/main/MainActivity.kt index 3080a7a..0362c39 100644 --- a/android/app/src/main/java/com/metallic/chiaki/main/MainActivity.kt +++ b/android/app/src/main/java/com/metallic/chiaki/main/MainActivity.kt @@ -21,6 +21,7 @@ import android.app.ActivityOptions import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.util.Log import android.view.Menu import android.view.MenuItem import androidx.lifecycle.Observer @@ -78,12 +79,25 @@ class MainActivity : AppCompatActivity() disposable.dispose() } + override fun onResume() + { + super.onResume() + viewModel.discoveryManager.resume() + } + + override fun onPause() + { + super.onPause() + viewModel.discoveryManager.pause() + } + override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.main, menu) val discoveryItem = menu.findItem(R.id.action_discover) discoveryMenuItem = discoveryItem - updateDiscoveryMenuItem(discoveryItem, viewModel.discoveryActive.value ?: false) + val discoveryActive = viewModel.discoveryActive.value ?: false + updateDiscoveryMenuItem(discoveryItem, discoveryActive) return true }