From aa89961145e959cc6496cb0825b60680e340ef26 Mon Sep 17 00:00:00 2001 From: Daniel Kao Date: Mon, 7 Jun 2021 23:30:16 +0800 Subject: [PATCH] disable multi-window mode by long pressing translation action; fix incognito mode sync issue --- .../de/baumann/browser/activity/BrowserActivity.kt | 14 +++++++++++--- .../de/baumann/browser/preference/ConfigManager.kt | 8 ++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/de/baumann/browser/activity/BrowserActivity.kt b/app/src/main/java/de/baumann/browser/activity/BrowserActivity.kt index 52429bb39..20a346f52 100755 --- a/app/src/main/java/de/baumann/browser/activity/BrowserActivity.kt +++ b/app/src/main/java/de/baumann/browser/activity/BrowserActivity.kt @@ -727,7 +727,7 @@ class BrowserActivity : AppCompatActivity(), BrowserController, OnClickListener if (text == "null") { NinjaToast.showShort(this@BrowserActivity, "null string") } else { - enableMultiWindow() + toggleMultiWindow(true) try { val intent = Intent().apply { action = "com.onyx.intent.ACTION_DICT_TRANSLATION" @@ -741,8 +741,10 @@ class BrowserActivity : AppCompatActivity(), BrowserController, OnClickListener } } - private fun enableMultiWindow() { - val intent = Intent().apply { action = "com.onyx.action.START_MULTI_WINDOW" } + private fun toggleMultiWindow(isEnabled: Boolean) { + val intent = Intent().apply { + action = if (isEnabled) "com.onyx.action.START_MULTI_WINDOW" else "com.onyx.action.QUIT_MULTI_WINDOW" + } sendBroadcast(intent) } @@ -919,9 +921,11 @@ class BrowserActivity : AppCompatActivity(), BrowserController, OnClickListener binding.omniboxBookmark.setOnClickListener { openBookmarkPage() } binding.omniboxBookmark.setOnLongClickListener { saveBookmark(); true } + binding.toolbarTranslate.setOnLongClickListener { toggleMultiWindow(false); true } sp.registerOnSharedPreferenceChangeListener(preferenceChangeListener) + reorderToolbarIcons() } @@ -944,6 +948,10 @@ class BrowserActivity : AppCompatActivity(), BrowserController, OnClickListener } key.equals(ConfigManager.K_IS_INCOGNITO_MODE) -> { updateWebViewCountUI() + NinjaToast.showShort( + this, + "Incognito mode is " + if (config.isIncognitoMode) "enabled." else "disabled." + ) } } } diff --git a/app/src/main/java/de/baumann/browser/preference/ConfigManager.kt b/app/src/main/java/de/baumann/browser/preference/ConfigManager.kt index 0377a45a4..31b0e1c03 100644 --- a/app/src/main/java/de/baumann/browser/preference/ConfigManager.kt +++ b/app/src/main/java/de/baumann/browser/preference/ConfigManager.kt @@ -29,11 +29,15 @@ class ConfigManager(private val context: Context) { var shouldSaveTabs: Boolean get() = sp.getBoolean(K_SHOULD_SAVE_TABS, false) - set(value) {sp.edit { putBoolean(K_SHOULD_SAVE_TABS, value) } } + set(value) { sp.edit { putBoolean(K_SHOULD_SAVE_TABS, value) } } var isIncognitoMode: Boolean get() = sp.getBoolean(K_IS_INCOGNITO_MODE, false) - set(value) {sp.edit { putBoolean(K_IS_INCOGNITO_MODE, value) } } + set(value) { + cookies = !value + saveHistory = !value + sp.edit { putBoolean(K_IS_INCOGNITO_MODE, value) } + } var shouldInvert: Boolean get() = sp.getBoolean(K_SHOULD_INVERT, false)