From 591878bf4e03ef5d27cb5c44e3ca09cfb8faac3b Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 13 May 2022 13:58:37 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E7=BC=96=E8=BE=91=E4=B9=A6=E6=BA=90?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=B8=85=E9=99=A4cookie?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 ++- app/src/main/java/io/legado/app/constant/BookType.kt | 2 +- .../app/ui/book/source/edit/BookSourceEditActivity.kt | 1 + .../app/ui/book/source/edit/BookSourceEditViewModel.kt | 7 +++++++ app/src/main/res/menu/source_edit.xml | 5 +++++ app/src/main/res/values-es-rES/strings.xml | 1 + app/src/main/res/values-ja-rJP/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + 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 + 12 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6328e86ea..da98accad 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,7 @@ + xmlns:tools="http://schemas.android.com/tools" + package="io.legado.app"> diff --git a/app/src/main/java/io/legado/app/constant/BookType.kt b/app/src/main/java/io/legado/app/constant/BookType.kt index 13c21f4ae..55b1c442f 100644 --- a/app/src/main/java/io/legado/app/constant/BookType.kt +++ b/app/src/main/java/io/legado/app/constant/BookType.kt @@ -11,6 +11,6 @@ object BookType { @Target(AnnotationTarget.VALUE_PARAMETER) @Retention(AnnotationRetention.SOURCE) - @IntDef(default, audio, image) + @IntDef(default, audio, image, file) annotation class Type } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 9fe743bad..0a405400d 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -109,6 +109,7 @@ class BookSourceEditActivity : } } } + R.id.menu_clear_cookie -> getSource().let { viewModel.clearCookie(it.bookSourceUrl) } R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete R.id.menu_copy_source -> sendToClip(GSON.toJson(getSource())) R.id.menu_paste_source -> viewModel.pasteSource { upRecyclerView(it) } diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt index 3bf1e3562..d9fe5ca83 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditViewModel.kt @@ -7,6 +7,7 @@ import io.legado.app.data.appDb import io.legado.app.data.entities.BookSource import io.legado.app.exception.NoStackTraceException import io.legado.app.help.RuleComplete +import io.legado.app.help.http.CookieStore import io.legado.app.help.http.newCallStrResponse import io.legado.app.help.http.okHttpClient import io.legado.app.utils.* @@ -95,6 +96,12 @@ class BookSourceEditViewModel(application: Application) : BaseViewModel(applicat } } + fun clearCookie(url: String) { + execute { + CookieStore.removeCookie(url) + } + } + fun ruleComplete(rule: String?, preRule: String? = null, type: Int = 1): String? { if (autoComplete) { return RuleComplete.autoComplete(rule, preRule, type) diff --git a/app/src/main/res/menu/source_edit.xml b/app/src/main/res/menu/source_edit.xml index dc20d0f20..140c935b2 100644 --- a/app/src/main/res/menu/source_edit.xml +++ b/app/src/main/res/menu/source_edit.xml @@ -21,6 +21,11 @@ android:title="@string/login" app:showAsAction="never" /> + + 导入主题 导入txt目录规则 CookieJar + 清除cookie diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index e98d5fa0b..b4952ec25 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -982,5 +982,6 @@ 导入主题 导入txt目录规则 CookieJar + 清除cookie diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 7646b005e..8043d7c98 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -982,5 +982,6 @@ 导入主题 导入txt目录规则 CookieJar + 清除cookie diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 90eb8bc6d..661fcffca 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -979,5 +979,6 @@ 导入主题 导入txt目录规则 CookieJar + 清除cookie diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0de83ac2f..4388933a5 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -981,5 +981,6 @@ 导入主题 导入txt目录规则 CookieJar + 清除cookie diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 19069a3f2..7202ba4b1 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -981,5 +981,6 @@ 导入主题 导入txt目录规则 CookieJar + 清除cookie diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 582890f12..17adc7139 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -982,5 +982,6 @@ 导入主题 导入txt目录规则 CookieJar + 清除cookie From 17fd77a53ec6f4662010014f7a6f3b9db3f2a4dd Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 13 May 2022 14:24:37 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=BA=90=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=B8=85=E9=99=A4cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/help/http/CookieStore.kt | 2 +- .../app/ui/book/source/edit/BookSourceEditActivity.kt | 2 +- .../legado/app/ui/rss/source/edit/RssSourceEditActivity.kt | 1 + .../app/ui/rss/source/edit/RssSourceEditViewModel.kt | 7 +++++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/http/CookieStore.kt b/app/src/main/java/io/legado/app/help/http/CookieStore.kt index b19c1feca..be94137fa 100644 --- a/app/src/main/java/io/legado/app/help/http/CookieStore.kt +++ b/app/src/main/java/io/legado/app/help/http/CookieStore.kt @@ -56,8 +56,8 @@ object CookieStore : CookieManager { override fun removeCookie(url: String) { val domain = NetworkUtils.getSubDomain(url) - CacheManager.deleteMemory("${domain}_cookie") appDb.cookieDao.delete(domain) + CacheManager.deleteMemory("${domain}_cookie") } override fun cookieToMap(cookie: String): MutableMap { diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 0a405400d..9a4ce4b86 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -109,7 +109,7 @@ class BookSourceEditActivity : } } } - R.id.menu_clear_cookie -> getSource().let { viewModel.clearCookie(it.bookSourceUrl) } + R.id.menu_clear_cookie -> viewModel.clearCookie(getSource().bookSourceUrl) R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete R.id.menu_copy_source -> sendToClip(GSON.toJson(getSource())) R.id.menu_paste_source -> viewModel.pasteSource { upRecyclerView(it) } diff --git a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt index 9d9fe765b..aac1bda3b 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt @@ -130,6 +130,7 @@ class RssSourceEditActivity : } } } + R.id.menu_clear_cookie -> viewModel.clearCookie(getRssSource().sourceUrl) R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete R.id.menu_copy_source -> sendToClip(GSON.toJson(getRssSource())) R.id.menu_qr_code_camera -> qrCodeResult.launch() diff --git a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditViewModel.kt b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditViewModel.kt index 25002eb3a..da911a5f4 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditViewModel.kt @@ -6,6 +6,7 @@ import io.legado.app.base.BaseViewModel import io.legado.app.data.appDb import io.legado.app.data.entities.RssSource import io.legado.app.help.RuleComplete +import io.legado.app.help.http.CookieStore import io.legado.app.utils.getClipText import io.legado.app.utils.msg import io.legado.app.utils.printOnDebug @@ -77,6 +78,12 @@ class RssSourceEditViewModel(application: Application) : BaseViewModel(applicati } } + fun clearCookie(url: String) { + execute { + CookieStore.removeCookie(url) + } + } + fun ruleComplete(rule: String?, preRule: String? = null, type: Int = 1): String? { if (autoComplete) { return RuleComplete.autoComplete(rule, preRule, type) From 62fe4e8597815810b1d5f8e82929c19611351910 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 13 May 2022 14:45:37 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=BA=90=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E6=B7=BB=E5=8A=A0=E6=B8=85=E9=99=A4cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/source/edit/BookSourceEditActivity.kt | 8 ++++---- .../app/ui/rss/source/edit/RssSourceEditActivity.kt | 10 ++++++---- app/src/main/res/layout/activity_rss_source_edit.xml | 7 +++++++ 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index 9a4ce4b86..cb1aa2475 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -47,7 +47,7 @@ class BookSourceEditActivity : private val qrCodeResult = registerForActivityResult(QrCodeResult()) { it ?: return@registerForActivityResult viewModel.importSource(it) { source -> - upRecyclerView(source) + upSourceView(source) } } private val selectDoc = registerForActivityResult(HandleFileContract()) { @@ -68,7 +68,7 @@ class BookSourceEditActivity : softKeyboardTool.attachToWindow(window) initView() viewModel.initData(intent) { - upRecyclerView() + upSourceView() } } @@ -112,7 +112,7 @@ class BookSourceEditActivity : R.id.menu_clear_cookie -> viewModel.clearCookie(getSource().bookSourceUrl) R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete R.id.menu_copy_source -> sendToClip(GSON.toJson(getSource())) - R.id.menu_paste_source -> viewModel.pasteSource { upRecyclerView(it) } + R.id.menu_paste_source -> viewModel.pasteSource { upSourceView(it) } R.id.menu_qr_code_camera -> qrCodeResult.launch() R.id.menu_share_str -> share(GSON.toJson(getSource())) R.id.menu_share_qr -> shareWithQr( @@ -187,7 +187,7 @@ class BookSourceEditActivity : binding.recyclerView.scrollToPosition(0) } - private fun upRecyclerView(source: BookSource? = viewModel.bookSource) { + private fun upSourceView(source: BookSource? = viewModel.bookSource) { source?.let { binding.cbIsEnable.isChecked = it.enabled binding.cbIsEnableFind.isChecked = it.enabledExplore diff --git a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt index aac1bda3b..01bd4bbe6 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/edit/RssSourceEditActivity.kt @@ -48,7 +48,7 @@ class RssSourceEditActivity : private val qrCodeResult = registerForActivityResult(QrCodeResult()) { it?.let { viewModel.importSource(it) { source: RssSource -> - upRecyclerView(source) + upSourceView(source) } } } @@ -57,7 +57,7 @@ class RssSourceEditActivity : softKeyboardTool.attachToWindow(window) initView() viewModel.initData(intent) { - upRecyclerView() + upSourceView() } } @@ -134,7 +134,7 @@ class RssSourceEditActivity : R.id.menu_auto_complete -> viewModel.autoComplete = !viewModel.autoComplete R.id.menu_copy_source -> sendToClip(GSON.toJson(getRssSource())) R.id.menu_qr_code_camera -> qrCodeResult.launch() - R.id.menu_paste_source -> viewModel.pasteSource { upRecyclerView(it) } + R.id.menu_paste_source -> viewModel.pasteSource { upSourceView(it) } R.id.menu_share_str -> share(GSON.toJson(getRssSource())) R.id.menu_share_qr -> shareWithQr( GSON.toJson(getRssSource()), @@ -151,10 +151,11 @@ class RssSourceEditActivity : binding.recyclerView.adapter = adapter } - private fun upRecyclerView(source: RssSource? = viewModel.rssSource) { + private fun upSourceView(source: RssSource? = viewModel.rssSource) { source?.let { binding.cbIsEnable.isChecked = source.enabled binding.cbSingleUrl.isChecked = source.singleUrl + binding.cbIsEnableCookie.isChecked = source.enabledCookieJar == true binding.cbEnableJs.isChecked = source.enableJs binding.cbEnableBaseUrl.isChecked = source.loadWithBaseUrl } @@ -192,6 +193,7 @@ class RssSourceEditActivity : val source = viewModel.rssSource source.enabled = binding.cbIsEnable.isChecked source.singleUrl = binding.cbSingleUrl.isChecked + source.enabledCookieJar = binding.cbIsEnableCookie.isChecked source.enableJs = binding.cbEnableJs.isChecked source.loadWithBaseUrl = binding.cbEnableBaseUrl.isChecked sourceEntities.forEach { diff --git a/app/src/main/res/layout/activity_rss_source_edit.xml b/app/src/main/res/layout/activity_rss_source_edit.xml index d839b5170..6baf96b5f 100644 --- a/app/src/main/res/layout/activity_rss_source_edit.xml +++ b/app/src/main/res/layout/activity_rss_source_edit.xml @@ -45,6 +45,13 @@ android:text="@string/single_url" tools:ignore="TouchTargetSizeCheck" /> + + Date: Fri, 13 May 2022 14:54:37 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt index cb1aa2475..ab93ccc0e 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/edit/BookSourceEditActivity.kt @@ -18,6 +18,7 @@ import io.legado.app.databinding.ActivityBookSourceEditBinding import io.legado.app.help.config.LocalConfig import io.legado.app.lib.dialogs.SelectItem import io.legado.app.lib.dialogs.alert +import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.backgroundColor import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.source.debug.BookSourceDebugActivity @@ -140,6 +141,7 @@ class BookSourceEditActivity : binding.recyclerView.layoutManager = LinearLayoutManager(this) binding.recyclerView.adapter = adapter binding.tabLayout.setBackgroundColor(backgroundColor) + binding.tabLayout.setSelectedTabIndicatorColor(accentColor) binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener { override fun onTabReselected(tab: TabLayout.Tab?) { From 80c8aedc083f5680a20d4a99a68a46c7a2d560c2 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 13 May 2022 15:03:33 +0800 Subject: [PATCH 5/7] =?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/src/main/assets/updateLog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 48cdffac7..144480d63 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -14,7 +14,8 @@ **2022/05/13** -* 书源编辑添加cookieJar选项 +* 源编辑添加cookieJar选项 +* 源编辑菜单里添加清除cookie **2022/05/11** From c3d9573497b7e78d3326a2a148168cc8d6c2ce4e Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 13 May 2022 20:24:11 +0800 Subject: [PATCH 6/7] =?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/src/main/assets/updateLog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 144480d63..18a4c3080 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -15,7 +15,8 @@ **2022/05/13** * 源编辑添加cookieJar选项 -* 源编辑菜单里添加清除cookie +* 源编辑菜单里添加清除cookie,如果之前能用的书源不能用了,可以关闭cookieJar后点下菜单里的清除cookie后再试 +* 书源支持文件类型 by Xwite **2022/05/11** From 65684e3a1e1967391e874fd81f2d7d5dd8190044 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 13 May 2022 21:22:56 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/widget/text/BadgeView.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt b/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt index c83147618..c198a8f4b 100644 --- a/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt +++ b/app/src/main/java/io/legado/app/ui/widget/text/BadgeView.kt @@ -15,6 +15,7 @@ import android.widget.FrameLayout.LayoutParams import androidx.appcompat.widget.AppCompatTextView import io.legado.app.R import io.legado.app.lib.theme.accentColor +import io.legado.app.utils.ColorUtils import io.legado.app.utils.getCompatColor import io.legado.app.utils.invisible import io.legado.app.utils.visible @@ -87,8 +88,6 @@ class BadgeView @JvmOverloads constructor( setLayoutParams(layoutParams) } - // set default font - setTextColor(Color.WHITE) //setTypeface(Typeface.DEFAULT_BOLD); setTextSize(TypedValue.COMPLEX_UNIT_SP, 11f) setPadding(dip2Px(5f), dip2Px(1f), dip2Px(5f), dip2Px(1f)) @@ -106,6 +105,10 @@ class BadgeView @JvmOverloads constructor( minHeight = dip2Px(16f) } + override fun setBackgroundColor(color: Int) { + setBackground(radius, color) + } + fun setBackground(dipRadius: Float, badgeColor: Int) { val radius = dip2Px(dipRadius).toFloat() val radiusArray = @@ -118,10 +121,13 @@ class BadgeView @JvmOverloads constructor( val bgDrawable = ShapeDrawable(roundRect) bgDrawable.paint.color = badgeColor background = bgDrawable - } - - fun setBackground(badgeColor: Int) { - setBackground(radius, badgeColor) + setTextColor( + if (ColorUtils.isColorLight(badgeColor)) { + Color.BLACK + } else { + Color.WHITE + } + ) } /** @@ -142,9 +148,9 @@ class BadgeView @JvmOverloads constructor( fun setHighlight(highlight: Boolean) { if (highlight) { - setBackground(context.accentColor) + setBackgroundColor(context.accentColor) } else { - setBackground(context.getCompatColor(R.color.darker_gray)) + setBackgroundColor(context.getCompatColor(R.color.darker_gray)) } }