From 06164384025067dd5ca314b52d566f2a22b7b61c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8F=A3=E5=8F=A3=E5=90=95?= <156081428@qq.com>
Date: Wed, 16 Sep 2020 14:43:10 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=90=8E=E5=8F=B0=E4=B8=8B?=
=?UTF-8?q?=E8=BD=BD=E5=8A=9F=E8=83=BD=E9=80=89=E9=A1=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/io/legado/app/constant/EventBus.kt | 3 +++
.../main/java/io/legado/app/help/AppConfig.kt | 3 +++
.../legado/app/service/CheckSourceService.kt | 26 ++++++++++++++-----
.../book/source/manage/BookSourceActivity.kt | 25 ++++++++++++++++++
app/src/main/res/values-zh-rHK/strings.xml | 2 ++
app/src/main/res/values-zh-rTW/strings.xml | 2 ++
app/src/main/res/values-zh/strings.xml | 2 ++
app/src/main/res/values/pref_key_value.xml | 1 +
app/src/main/res/values/strings.xml | 2 ++
app/src/main/res/xml/pref_config_other.xml | 7 +++++
10 files changed, 67 insertions(+), 6 deletions(-)
diff --git a/app/src/main/java/io/legado/app/constant/EventBus.kt b/app/src/main/java/io/legado/app/constant/EventBus.kt
index 6fe8b5cea..53ec7d778 100644
--- a/app/src/main/java/io/legado/app/constant/EventBus.kt
+++ b/app/src/main/java/io/legado/app/constant/EventBus.kt
@@ -20,4 +20,7 @@ object EventBus {
const val WEB_SERVICE_STOP = "webServiceStop"
const val UP_DOWNLOAD = "upDownload"
const val SAVE_CONTENT = "saveContent"
+ const val CHECK_INIT = "checkInit"
+ const val CHECK_UP_PROGRESS = "checkProgress"
+ const val CHECK_DONE = "checkDone"
}
\ No newline at end of file
diff --git a/app/src/main/java/io/legado/app/help/AppConfig.kt b/app/src/main/java/io/legado/app/help/AppConfig.kt
index e2538e902..eddc4f428 100644
--- a/app/src/main/java/io/legado/app/help/AppConfig.kt
+++ b/app/src/main/java/io/legado/app/help/AppConfig.kt
@@ -58,6 +58,9 @@ object AppConfig {
App.INSTANCE.putPrefBoolean(PreferKey.showRss, value)
}
+ val backgroundVerification: Boolean
+ get() = App.INSTANCE.getPrefBoolean(R.string.pk_background_verification)
+
val autoRefreshBook: Boolean
get() = App.INSTANCE.getPrefBoolean(R.string.pk_auto_refresh)
diff --git a/app/src/main/java/io/legado/app/service/CheckSourceService.kt b/app/src/main/java/io/legado/app/service/CheckSourceService.kt
index 09900d0d0..4ce08ff07 100644
--- a/app/src/main/java/io/legado/app/service/CheckSourceService.kt
+++ b/app/src/main/java/io/legado/app/service/CheckSourceService.kt
@@ -6,12 +6,15 @@ import io.legado.app.App
import io.legado.app.R
import io.legado.app.base.BaseService
import io.legado.app.constant.AppConst
+import io.legado.app.constant.EventBus
import io.legado.app.constant.IntentAction
import io.legado.app.help.AppConfig
+import io.legado.app.help.AppConfig.backgroundVerification
import io.legado.app.help.IntentHelp
import io.legado.app.help.coroutine.CompositeCoroutine
import io.legado.app.service.help.CheckSource
import io.legado.app.ui.book.source.manage.BookSourceActivity
+import io.legado.app.utils.postEvent
import kotlinx.coroutines.asCoroutineDispatcher
import org.jetbrains.anko.toast
import java.util.concurrent.Executors
@@ -42,7 +45,9 @@ class CheckSourceService : BaseService() {
override fun onCreate() {
super.onCreate()
- updateNotification(0, getString(R.string.start))
+ if (backgroundVerification) {
+ updateNotification(0, getString(R.string.start))
+ }
}
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
@@ -59,6 +64,7 @@ class CheckSourceService : BaseService() {
super.onDestroy()
tasks.clear()
searchPool.close()
+ postEvent(EventBus.CHECK_DONE, 0)
}
private fun check(ids: List) {
@@ -72,7 +78,11 @@ class CheckSourceService : BaseService() {
allIds.addAll(ids)
processIndex = 0
threadCount = min(allIds.size, threadCount)
- updateNotification(0, getString(R.string.progress_show, 0, allIds.size))
+ if (backgroundVerification) {
+ updateNotification(0, getString(R.string.progress_show, 0, allIds.size))
+ } else {
+ postEvent(EventBus.CHECK_INIT, allIds.size)
+ }
for (i in 0 until threadCount) {
check()
}
@@ -106,10 +116,14 @@ class CheckSourceService : BaseService() {
synchronized(this) {
check()
checkedIds.add(sourceUrl)
- updateNotification(
- checkedIds.size,
- getString(R.string.progress_show, checkedIds.size, allIds.size)
- )
+ if (backgroundVerification) {
+ updateNotification(
+ checkedIds.size,
+ getString(R.string.progress_show, checkedIds.size, allIds.size)
+ )
+ } else {
+ postEvent(EventBus.CHECK_UP_PROGRESS, checkedIds.size)
+ }
if (processIndex >= allIds.size + threadCount - 1) {
stopSelf()
}
diff --git a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt
index 07f959719..33edb5624 100644
--- a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt
@@ -21,6 +21,7 @@ import io.legado.app.BuildConfig
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
import io.legado.app.constant.AppPattern
+import io.legado.app.constant.EventBus
import io.legado.app.data.entities.BookSource
import io.legado.app.help.IntentDataHelp
import io.legado.app.lib.dialogs.*
@@ -65,6 +66,12 @@ class BookSourceActivity : VMBaseActivity(R.layout.activity
private var sort = 0
private var sortAscending = 0
+ private val progressDialogBuilder by lazy {
+ progressDialog("校验书源") {
+ setCancelable(false)
+ }
+ }
+
override fun onActivityCreated(savedInstanceState: Bundle?) {
initRecyclerView()
initSearchView()
@@ -263,6 +270,24 @@ class BookSourceActivity : VMBaseActivity(R.layout.activity
}
+ override fun observeLiveBus() {
+ observeEvent(EventBus.CHECK_INIT) { max->
+ progressDialogBuilder.max = max
+ progressDialogBuilder.show()
+ }
+ observeEvent(EventBus.CHECK_UP_PROGRESS) { progress->
+ progressDialogBuilder.progress = progress
+ }
+ observeEvent(EventBus.CHECK_DONE) {
+ if (progressDialogBuilder.isShowing) {
+ progressDialogBuilder.progress = it
+ progressDialogBuilder.max = it
+ progressDialogBuilder.dismiss()
+ }
+ toast("校验完成")
+ }
+ }
+
override fun onMenuItemClick(item: MenuItem?): Boolean {
when (item?.itemId) {
R.id.menu_enable_selection -> viewModel.enableSelection(adapter.getSelection())
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 7eb76aee8..649f57d1a 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -94,6 +94,8 @@
閲讀3.0下載地址:\nhttps://play.google.com/store/apps/details?id=io.legado.play.release
Version %s
+ 後臺校驗書源
+ 打開后可以在校驗書源時自由操作
自動刷新
打開程式時自動更新書輯
自動下載最新章節
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 11101e7eb..17cc16af4 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -94,6 +94,8 @@
閱讀3.0下載網址:\nhttps://play.google.com/store/apps/details?id=io.legado.play.release
Version %s
+ 後臺校驗書源
+ 打開后可以在校驗書源時自由操作
自動重新整理
打開軟體時自動更新書籍
自動下載最新章節
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 6052fe4f5..2a5645ab8 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -96,6 +96,8 @@
阅读3.0下载地址:\nhttps://www.coolapk.com/apk/256030
Version %s
+ 后台校验书源
+ 打开后可以在校验书源时自由操作
自动刷新
打开软件时自动更新书籍
自动下载最新章节
diff --git a/app/src/main/res/values/pref_key_value.xml b/app/src/main/res/values/pref_key_value.xml
index 42058ce0c..7ce2f7f13 100644
--- a/app/src/main/res/values/pref_key_value.xml
+++ b/app/src/main/res/values/pref_key_value.xml
@@ -1,5 +1,6 @@
+ background_verification
auto_refresh
list_screen_direction
full_screen
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 89c65602e..8ae687184 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -96,6 +96,8 @@
Legado (YueDu 3.0) download link:\n https://play.google.com/store/apps/details?id=io.legado.play.release
Version %s
+ Background-verification
+ you can operate freely when verifying the book source
Auto-refresh
Update books automatically when opening the software
Auto-download
diff --git a/app/src/main/res/xml/pref_config_other.xml b/app/src/main/res/xml/pref_config_other.xml
index 0e3930546..f4f28ca94 100644
--- a/app/src/main/res/xml/pref_config_other.xml
+++ b/app/src/main/res/xml/pref_config_other.xml
@@ -51,6 +51,13 @@
app:iconSpaceReserved="false"
app:layout="@layout/view_preference_category">
+
+