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")
}
}
else if(discoveryService != null)
else if((!active || paused) && discoveryService != null)
{
val service = discoveryService ?: return
service.dispose()
discoveryService = null
discoveredHostsSubject.onNext(listOf())
discoveryActiveSubject.onNext(false)
}
}
}

View file

@ -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
}