From 87a3ef59e1aa506e534f0e39f37d5d7eb08a88bf Mon Sep 17 00:00:00 2001 From: gedoor Date: Sun, 8 Nov 2020 18:53:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AF=BC=E5=85=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/constant/PreferKey.kt | 1 + .../main/java/io/legado/app/help/AppConfig.kt | 2 ++ .../app/ui/association/ImportBookSourceDialog.kt | 11 +++++++++-- .../ui/association/ImportBookSourceViewModel.kt | 16 ++++++++++++---- .../app/ui/association/ImportRssSourceDialog.kt | 11 +++++++++-- .../ui/association/ImportRssSourceViewModel.kt | 16 ++++++++++++---- app/src/main/res/menu/import_source.xml | 3 ++- app/src/main/res/values-zh-rHK/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values-zh/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 11 files changed, 51 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index 2e385f9ca..02e2d18d8 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -53,6 +53,7 @@ object PreferKey { const val showBrightnessView = "showBrightnessView" const val autoClearExpired = "autoClearExpired" const val autoChangeSource = "autoChangeSource" + const val importKeepName = "importKeepName" const val cPrimary = "colorPrimary" const val cAccent = "colorAccent" 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 e2831a80f..6efcdffea 100644 --- a/app/src/main/java/io/legado/app/help/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/AppConfig.kt @@ -134,5 +134,7 @@ object AppConfig { val changeSourceLoadInfo get() = App.INSTANCE.getPrefBoolean(PreferKey.changeSourceLoadToc) val changeSourceLoadToc get() = App.INSTANCE.getPrefBoolean(PreferKey.changeSourceLoadToc) + + val importKeepName get() = App.INSTANCE.getPrefBoolean(PreferKey.importKeepName) } diff --git a/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt index 17fd056ee..74a40a954 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportBookSourceDialog.kt @@ -14,7 +14,9 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.SimpleRecyclerAdapter +import io.legado.app.constant.PreferKey import io.legado.app.data.entities.BookSource +import io.legado.app.help.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.customView import io.legado.app.lib.dialogs.noButton @@ -22,6 +24,7 @@ import io.legado.app.lib.dialogs.okButton import io.legado.app.ui.widget.text.AutoCompleteTextView import io.legado.app.utils.applyTint import io.legado.app.utils.getViewModelOfActivity +import io.legado.app.utils.putPrefBoolean import io.legado.app.utils.visible import kotlinx.android.synthetic.main.dialog_edit_text.view.* import kotlinx.android.synthetic.main.dialog_recycler_view.* @@ -75,6 +78,7 @@ class ImportBookSourceDialog : BaseDialogFragment(), Toolbar.OnMenuItemClickList private fun initMenu() { tool_bar.setOnMenuItemClickListener(this) tool_bar.inflateMenu(R.menu.import_source) + tool_bar.menu.findItem(R.id.menu_Keep_original_name)?.isChecked = AppConfig.importKeepName } @SuppressLint("InflateParams") @@ -113,6 +117,10 @@ class ImportBookSourceDialog : BaseDialogFragment(), Toolbar.OnMenuItemClickList } adapter.notifyDataSetChanged() } + R.id.menu_Keep_original_name -> { + item.isChecked = !item.isChecked + putPrefBoolean(PreferKey.importKeepName, item.isChecked) + } } return false } @@ -130,12 +138,11 @@ class ImportBookSourceDialog : BaseDialogFragment(), Toolbar.OnMenuItemClickList holder.itemView.apply { cb_source_name.isChecked = viewModel.selectStatus[holder.layoutPosition] cb_source_name.text = item.bookSourceName - tv_source_state.text = if (viewModel.sourceCheckState[holder.layoutPosition]) { + tv_source_state.text = if (viewModel.checkSources[holder.layoutPosition] != null) { "已存在" } else { "新书源" } - } } diff --git a/app/src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt index add4c05f1..431f1f8ea 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportBookSourceViewModel.kt @@ -9,6 +9,7 @@ import io.legado.app.App import io.legado.app.R import io.legado.app.base.BaseViewModel import io.legado.app.data.entities.BookSource +import io.legado.app.help.AppConfig import io.legado.app.help.SourceHelp import io.legado.app.help.http.HttpHelper import io.legado.app.help.storage.OldRule @@ -22,12 +23,13 @@ class ImportBookSourceViewModel(app: Application) : BaseViewModel(app) { val successLiveData = MutableLiveData() val allSources = arrayListOf() - val sourceCheckState = arrayListOf() + val checkSources = arrayListOf() val selectStatus = arrayListOf() fun importSelect(finally: () -> Unit) { execute { + val keepName = AppConfig.importKeepName val selectSource = arrayListOf() selectStatus.forEachIndexed { index, b -> if (b) { @@ -35,6 +37,12 @@ class ImportBookSourceViewModel(app: Application) : BaseViewModel(app) { if (groupName != null) { source.bookSourceGroup = groupName } + if (keepName) { + checkSources[index]?.let { + source.bookSourceName = it.bookSourceName + source.bookSourceGroup = it.bookSourceGroup + } + } selectSource.add(source) } } @@ -127,9 +135,9 @@ class ImportBookSourceViewModel(app: Application) : BaseViewModel(app) { private fun comparisonSource() { execute { allSources.forEach { - val has = App.db.bookSourceDao().getBookSource(it.bookSourceUrl) != null - sourceCheckState.add(has) - selectStatus.add(!has) + val has = App.db.bookSourceDao().getBookSource(it.bookSourceUrl) + checkSources.add(has) + selectStatus.add(has == null) } successLiveData.postValue(allSources.size) } diff --git a/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt b/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt index b65bddc55..f5b1a40b3 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportRssSourceDialog.kt @@ -14,7 +14,9 @@ import io.legado.app.R import io.legado.app.base.BaseDialogFragment import io.legado.app.base.adapter.ItemViewHolder import io.legado.app.base.adapter.SimpleRecyclerAdapter +import io.legado.app.constant.PreferKey import io.legado.app.data.entities.RssSource +import io.legado.app.help.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.dialogs.customView import io.legado.app.lib.dialogs.noButton @@ -22,6 +24,7 @@ import io.legado.app.lib.dialogs.okButton import io.legado.app.ui.widget.text.AutoCompleteTextView import io.legado.app.utils.applyTint import io.legado.app.utils.getViewModelOfActivity +import io.legado.app.utils.putPrefBoolean import io.legado.app.utils.visible import kotlinx.android.synthetic.main.dialog_edit_text.view.* import kotlinx.android.synthetic.main.dialog_recycler_view.* @@ -76,6 +79,7 @@ class ImportRssSourcesDialog : BaseDialogFragment(), Toolbar.OnMenuItemClickList private fun initMenu() { tool_bar.setOnMenuItemClickListener(this) tool_bar.inflateMenu(R.menu.import_source) + tool_bar.menu.findItem(R.id.menu_Keep_original_name)?.isChecked = AppConfig.importKeepName } @SuppressLint("InflateParams") @@ -114,6 +118,10 @@ class ImportRssSourcesDialog : BaseDialogFragment(), Toolbar.OnMenuItemClickList } adapter.notifyDataSetChanged() } + R.id.menu_Keep_original_name -> { + item.isChecked = !item.isChecked + putPrefBoolean(PreferKey.importKeepName, item.isChecked) + } } return false } @@ -130,12 +138,11 @@ class ImportRssSourcesDialog : BaseDialogFragment(), Toolbar.OnMenuItemClickList holder.itemView.apply { cb_source_name.isChecked = viewModel.selectStatus[holder.layoutPosition] cb_source_name.text = item.sourceName - tv_source_state.text = if (viewModel.sourceCheckState[holder.layoutPosition]) { + tv_source_state.text = if (viewModel.checkSources[holder.layoutPosition] != null) { "已存在" } else { "新订阅源" } - } } diff --git a/app/src/main/java/io/legado/app/ui/association/ImportRssSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/association/ImportRssSourceViewModel.kt index 80df4c655..d9574e735 100644 --- a/app/src/main/java/io/legado/app/ui/association/ImportRssSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/association/ImportRssSourceViewModel.kt @@ -9,6 +9,7 @@ import io.legado.app.App import io.legado.app.R import io.legado.app.base.BaseViewModel import io.legado.app.data.entities.RssSource +import io.legado.app.help.AppConfig import io.legado.app.help.SourceHelp import io.legado.app.help.http.HttpHelper import io.legado.app.help.storage.Restore @@ -21,12 +22,13 @@ class ImportRssSourceViewModel(app: Application) : BaseViewModel(app) { val successLiveData = MutableLiveData() val allSources = arrayListOf() - val sourceCheckState = arrayListOf() + val checkSources = arrayListOf() val selectStatus = arrayListOf() fun importSelect(finally: () -> Unit) { execute { + val keepName = AppConfig.importKeepName val selectSource = arrayListOf() selectStatus.forEachIndexed { index, b -> if (b) { @@ -34,6 +36,12 @@ class ImportRssSourceViewModel(app: Application) : BaseViewModel(app) { if (groupName != null) { source.sourceGroup = groupName } + if (keepName) { + checkSources[index]?.let { + source.sourceName = it.sourceName + source.sourceGroup = it.sourceGroup + } + } selectSource.add(source) } } @@ -120,9 +128,9 @@ class ImportRssSourceViewModel(app: Application) : BaseViewModel(app) { private fun comparisonSource() { execute { allSources.forEach { - val has = App.db.rssSourceDao().getByKey(it.sourceUrl) != null - sourceCheckState.add(has) - selectStatus.add(!has) + val has = App.db.rssSourceDao().getByKey(it.sourceUrl) + checkSources.add(has) + selectStatus.add(has == null) } successLiveData.postValue(allSources.size) } diff --git a/app/src/main/res/menu/import_source.xml b/app/src/main/res/menu/import_source.xml index b4abd1d0e..84dae94ca 100644 --- a/app/src/main/res/menu/import_source.xml +++ b/app/src/main/res/menu/import_source.xml @@ -22,7 +22,8 @@ \ No newline at end of file diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index bec4e31cb..c85d20733 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -780,5 +780,6 @@ 智能扫描 拷贝URL 没有书籍 + 保留原名 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ed94c9143..8dc1d3b0f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -780,5 +780,6 @@ 智能扫描 拷贝URL 没有书籍 + 保留原名 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 476ec42d9..1e56e877e 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -783,5 +783,6 @@ 智能扫描 拷贝URL 没有书籍 + 保留原名 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4270818c8..f4007a799 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -786,5 +786,6 @@ 智能扫描 拷贝URL 没有书籍 + 保留原名