From 254a216e8a6233765a9c86ba6f3d33a94e674bca Mon Sep 17 00:00:00 2001 From: kunfei Date: Thu, 5 May 2022 23:34:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/receiver/NetworkChangedReceiver.kt | 23 +++++++++++++++++++ .../app/receiver/TimeBatteryReceiver.kt | 14 +++-------- .../java/io/legado/app/service/WebService.kt | 4 ++++ .../app/ui/book/read/ReadBookActivity.kt | 9 +++----- 4 files changed, 33 insertions(+), 17 deletions(-) create mode 100644 app/src/main/java/io/legado/app/receiver/NetworkChangedReceiver.kt diff --git a/app/src/main/java/io/legado/app/receiver/NetworkChangedReceiver.kt b/app/src/main/java/io/legado/app/receiver/NetworkChangedReceiver.kt new file mode 100644 index 000000000..9b00db17d --- /dev/null +++ b/app/src/main/java/io/legado/app/receiver/NetworkChangedReceiver.kt @@ -0,0 +1,23 @@ +package io.legado.app.receiver + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter + +/** + * 监测网络变化 + */ +class NetworkChangedReceiver : BroadcastReceiver() { + + val filter = IntentFilter().apply { + addAction("android.net.conn.CONNECTIVITY_CHANGE") + addAction("android.net.wifi.WIFI_STATE_CHANGED") + addAction("android.net.wifi.STATE_CHANGE") + } + + override fun onReceive(context: Context?, intent: Intent?) { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/receiver/TimeBatteryReceiver.kt b/app/src/main/java/io/legado/app/receiver/TimeBatteryReceiver.kt index 73737aa79..bd150d258 100644 --- a/app/src/main/java/io/legado/app/receiver/TimeBatteryReceiver.kt +++ b/app/src/main/java/io/legado/app/receiver/TimeBatteryReceiver.kt @@ -11,17 +11,9 @@ import io.legado.app.utils.postEvent class TimeBatteryReceiver : BroadcastReceiver() { - companion object { - - fun register(context: Context): TimeBatteryReceiver { - val receiver = TimeBatteryReceiver() - val filter = IntentFilter() - filter.addAction(Intent.ACTION_TIME_TICK) - filter.addAction(Intent.ACTION_BATTERY_CHANGED) - context.registerReceiver(receiver, filter) - return receiver - } - + val filter = IntentFilter().apply { + addAction(Intent.ACTION_TIME_TICK) + addAction(Intent.ACTION_BATTERY_CHANGED) } override fun onReceive(context: Context?, intent: Intent?) { diff --git a/app/src/main/java/io/legado/app/service/WebService.kt b/app/src/main/java/io/legado/app/service/WebService.kt index 11c391b6c..3fa39a908 100644 --- a/app/src/main/java/io/legado/app/service/WebService.kt +++ b/app/src/main/java/io/legado/app/service/WebService.kt @@ -10,6 +10,7 @@ import io.legado.app.constant.AppConst import io.legado.app.constant.EventBus import io.legado.app.constant.IntentAction import io.legado.app.constant.PreferKey +import io.legado.app.receiver.NetworkChangedReceiver import io.legado.app.utils.* import io.legado.app.web.HttpServer import io.legado.app.web.WebSocketServer @@ -35,6 +36,7 @@ class WebService : BaseService() { private var httpServer: HttpServer? = null private var webSocketServer: WebSocketServer? = null private var notificationContent = "" + private val networkChangedReceiver = NetworkChangedReceiver() override fun onCreate() { super.onCreate() @@ -42,6 +44,7 @@ class WebService : BaseService() { notificationContent = getString(R.string.service_starting) upNotification() upTile(true) + registerReceiver(networkChangedReceiver, networkChangedReceiver.filter) } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { @@ -55,6 +58,7 @@ class WebService : BaseService() { override fun onDestroy() { super.onDestroy() + unregisterReceiver(networkChangedReceiver) isRun = false if (httpServer?.isAlive == true) { httpServer?.stop() diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 58ef70c39..8308029da 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -148,8 +148,8 @@ class ReadBookActivity : BaseReadBookActivity(), set(value) { field = value && isShowingSearchResult } + private val timeBatteryReceiver = TimeBatteryReceiver() private var screenTimeOut: Long = 0 - private var timeBatteryReceiver: TimeBatteryReceiver? = null private var loadStates: Boolean = false override val pageFactory: TextPageFactory get() = binding.readView.pageFactory override val headerHeight: Int get() = binding.readView.curPage.headerHeight @@ -185,7 +185,7 @@ class ReadBookActivity : BaseReadBookActivity(), super.onResume() ReadBook.readStartTime = System.currentTimeMillis() upSystemUiVisibility() - timeBatteryReceiver = TimeBatteryReceiver.register(this) + registerReceiver(timeBatteryReceiver, timeBatteryReceiver.filter) binding.readView.upTime() } @@ -194,10 +194,7 @@ class ReadBookActivity : BaseReadBookActivity(), autoPageStop() backupJob?.cancel() ReadBook.saveRead() - timeBatteryReceiver?.let { - unregisterReceiver(it) - timeBatteryReceiver = null - } + unregisterReceiver(timeBatteryReceiver) upSystemUiVisibility() if (!BuildConfig.DEBUG) { ReadBook.uploadProgress()