Fixed the timeout issue with the JobScheduler
This commit is contained in:
parent
f4b6bcb8d9
commit
34e2e0673b
@ -17,12 +17,17 @@
|
||||
package ch.dissem.apps.abit.service
|
||||
|
||||
import android.app.Service
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.net.ConnectivityManager
|
||||
import android.os.Handler
|
||||
import ch.dissem.apps.abit.notification.NetworkNotification
|
||||
import ch.dissem.apps.abit.notification.NetworkNotification.Companion.NETWORK_NOTIFICATION_ID
|
||||
import ch.dissem.bitmessage.BitmessageContext
|
||||
import ch.dissem.bitmessage.utils.Property
|
||||
import org.jetbrains.anko.connectivityManager
|
||||
|
||||
/**
|
||||
* Define a Service that returns an IBinder for the
|
||||
@ -34,6 +39,14 @@ class BitmessageService : Service() {
|
||||
private val bmc: BitmessageContext by lazy { Singleton.getBitmessageContext(this) }
|
||||
private lateinit var notification: NetworkNotification
|
||||
|
||||
private val connectivityReceiver: BroadcastReceiver = object: BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
if (bmc.isRunning() && connectivityManager.isActiveNetworkMetered){
|
||||
bmc.shutdown()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private val cleanupHandler = Handler()
|
||||
private val cleanupTask: Runnable = object : Runnable {
|
||||
override fun run() {
|
||||
@ -45,6 +58,7 @@ class BitmessageService : Service() {
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
registerReceiver(connectivityReceiver, IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION))
|
||||
notification = NetworkNotification(this)
|
||||
running = false
|
||||
}
|
||||
|
@ -26,7 +26,8 @@ class StartupNodeOnWifiService : JobService() {
|
||||
|
||||
override fun onStopJob(params: JobParameters?): Boolean {
|
||||
if (Preferences.isWifiOnly(this)) {
|
||||
Singleton.getBitmessageContext(this).shutdown()
|
||||
// Don't actually stop the service, otherwise it will be stopped after 1 or 10 minutes
|
||||
// depending on Android version.
|
||||
return Preferences.isFullNodeActive(this)
|
||||
} else {
|
||||
return false
|
||||
|
Loading…
Reference in New Issue
Block a user