Pause Discovery on Activity Pause

This commit is contained in:
Florian Märkl 2019-10-05 17:06:56 +02:00
commit 106735419f
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
2 changed files with 16 additions and 3 deletions

View file

@ -87,13 +87,12 @@ class DiscoveryManager
Log.e("DiscoveryManager", "Failed to start Discovery Service: $e") Log.e("DiscoveryManager", "Failed to start Discovery Service: $e")
} }
} }
else if(discoveryService != null) else if((!active || paused) && discoveryService != null)
{ {
val service = discoveryService ?: return val service = discoveryService ?: return
service.dispose() service.dispose()
discoveryService = null discoveryService = null
discoveredHostsSubject.onNext(listOf()) discoveredHostsSubject.onNext(listOf())
discoveryActiveSubject.onNext(false)
} }
} }
} }

View file

@ -21,6 +21,7 @@ import android.app.ActivityOptions
import android.content.Intent import android.content.Intent
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
@ -78,12 +79,25 @@ class MainActivity : AppCompatActivity()
disposable.dispose() disposable.dispose()
} }
override fun onResume()
{
super.onResume()
viewModel.discoveryManager.resume()
}
override fun onPause()
{
super.onPause()
viewModel.discoveryManager.pause()
}
override fun onCreateOptionsMenu(menu: Menu): Boolean override fun onCreateOptionsMenu(menu: Menu): Boolean
{ {
menuInflater.inflate(R.menu.main, menu) menuInflater.inflate(R.menu.main, menu)
val discoveryItem = menu.findItem(R.id.action_discover) val discoveryItem = menu.findItem(R.id.action_discover)
discoveryMenuItem = discoveryItem discoveryMenuItem = discoveryItem
updateDiscoveryMenuItem(discoveryItem, viewModel.discoveryActive.value ?: false) val discoveryActive = viewModel.discoveryActive.value ?: false
updateDiscoveryMenuItem(discoveryItem, discoveryActive)
return true return true
} }