6.7.0 - Alpha18 - 修复文档独立页面退出时导致应用崩溃的问题
This commit is contained in:
@@ -3,10 +3,12 @@ package org.autojs.autojs.ui.doc
|
||||
import android.os.Bundle
|
||||
import android.webkit.WebView
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import org.autojs.autojs.event.BackPressedHandler
|
||||
import org.autojs.autojs.ui.BaseActivity
|
||||
import org.autojs.autojs.util.DocsUtils.getUrl
|
||||
import org.autojs.autojs.util.ViewUtils
|
||||
import org.autojs.autojs.util.WebViewUtils
|
||||
import org.autojs.autojs6.R
|
||||
import org.autojs.autojs6.databinding.ActivityDocumentationBinding
|
||||
import org.intellij.lang.annotations.Language
|
||||
|
||||
@@ -17,6 +19,10 @@ import org.intellij.lang.annotations.Language
|
||||
*/
|
||||
class DocumentationActivity : BaseActivity() {
|
||||
|
||||
override val handleStatusBarThemeColorAutomatically = false
|
||||
|
||||
private val mBackPressedHandler = BackPressedHandler.Observer()
|
||||
|
||||
private val mOnBackPressedCallback = object : OnBackPressedCallback(true) {
|
||||
|
||||
// override fun onBackPressed() {
|
||||
@@ -30,12 +36,18 @@ class DocumentationActivity : BaseActivity() {
|
||||
override fun handleOnBackPressed() {
|
||||
if (mWebView.canGoBack()) {
|
||||
mWebView.goBack()
|
||||
} else {
|
||||
onBackPressedDispatcher.onBackPressed()
|
||||
return
|
||||
}
|
||||
|
||||
if (mBackPressedHandler.onBackPressed(this@DocumentationActivity)) {
|
||||
return
|
||||
}
|
||||
|
||||
isEnabled = false
|
||||
onBackPressedDispatcher.onBackPressed()
|
||||
isEnabled = true
|
||||
}
|
||||
}
|
||||
override val handleStatusBarThemeColorAutomatically = false
|
||||
|
||||
private lateinit var mWebView: WebView
|
||||
|
||||
@@ -60,6 +72,11 @@ class DocumentationActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
handleBackPressedHandlerAndCallback()
|
||||
}
|
||||
|
||||
private fun handleBackPressedHandlerAndCallback() {
|
||||
mBackPressedHandler.registerHandler(BackPressedHandler.DoublePressExit(this, R.string.text_press_again_to_exit))
|
||||
onBackPressedDispatcher.addCallback(this, mOnBackPressedCallback)
|
||||
}
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
|
||||
// 2. Then, let the global Observer handle it (DrawerAutoClose / DoublePressExit).
|
||||
// zh-CN: 再给全局 Observer 处理 (DrawerAutoClose / DoublePressExit).
|
||||
if (mBackPressObserver.onBackPressed(this@MainActivity)) {
|
||||
if (mBackPressedObserver.onBackPressed(this@MainActivity)) {
|
||||
return
|
||||
}
|
||||
|
||||
@@ -125,7 +125,7 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
|
||||
private val mActivityResultMediator = OnActivityResultDelegate.Mediator()
|
||||
private val mRequestPermissionCallbacks = RequestPermissionCallbacks()
|
||||
private val mBackPressObserver = BackPressedHandler.Observer()
|
||||
private val mBackPressedObserver = BackPressedHandler.Observer()
|
||||
private val mForeGroundService = ForegroundService(this)
|
||||
private var mSearchViewItem: SearchViewItem? = null
|
||||
private val mA11yTool = AccessibilityTool(this)
|
||||
@@ -222,8 +222,8 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
}
|
||||
|
||||
private fun registerBackPressHandlers(drawerLayout: DrawerLayout) {
|
||||
mBackPressObserver.registerHandler(DrawerAutoClose(drawerLayout, Gravity.START))
|
||||
mBackPressObserver.registerHandler(DoublePressExit(this, R.string.text_press_again_to_exit))
|
||||
mBackPressedObserver.registerHandler(DrawerAutoClose(drawerLayout, Gravity.START))
|
||||
mBackPressedObserver.registerHandler(DoublePressExit(this, R.string.text_press_again_to_exit))
|
||||
}
|
||||
|
||||
private fun setUpToolbar(drawerLayout: DrawerLayout) {
|
||||
@@ -384,7 +384,7 @@ class MainActivity : BaseActivity(), DelegateHost, HostActivity {
|
||||
|
||||
override fun getOnActivityResultDelegateMediator() = mActivityResultMediator
|
||||
|
||||
override fun getBackPressedObserver() = mBackPressObserver
|
||||
override fun getBackPressedObserver() = mBackPressedObserver
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||
menuInflater.inflate(R.menu.menu_main, menu)
|
||||
|
||||
@@ -966,7 +966,7 @@
|
||||
<string name="text_preset_dialog_content">預設對話框內容</string>
|
||||
<string name="text_preset_dialog_title">預設對話框標題</string>
|
||||
<string name="text_press_again_to_dismiss_dialog">再按一次關閉對話框</string>
|
||||
<string name="text_press_again_to_exit">再按一次退出應用</string>
|
||||
<string name="text_press_again_to_exit">再按一次退出</string>
|
||||
<string name="text_press_back_or_vol_down_to_close_window">如需關閉窗口, 可按 \"返回鍵\" 或 \"音量減鍵\"</string>
|
||||
<string name="text_preview">預覽</string>
|
||||
<string name="text_process_log">流程日誌</string>
|
||||
|
||||
@@ -966,7 +966,7 @@
|
||||
<string name="text_preset_dialog_content">預設對話方塊內容</string>
|
||||
<string name="text_preset_dialog_title">預設對話方塊標題</string>
|
||||
<string name="text_press_again_to_dismiss_dialog">再按一次關閉對話方塊</string>
|
||||
<string name="text_press_again_to_exit">再按一次退出應用</string>
|
||||
<string name="text_press_again_to_exit">再按一次退出</string>
|
||||
<string name="text_press_back_or_vol_down_to_close_window">如需關閉視窗, 可按 \"返回鍵\" 或 \"音量減鍵\"</string>
|
||||
<string name="text_preview">預覽</string>
|
||||
<string name="text_process_log">流程日誌</string>
|
||||
|
||||
@@ -966,7 +966,7 @@
|
||||
<string name="text_preset_dialog_content">预设对话框内容</string>
|
||||
<string name="text_preset_dialog_title">预设对话框标题</string>
|
||||
<string name="text_press_again_to_dismiss_dialog">再按一次关闭对话框</string>
|
||||
<string name="text_press_again_to_exit">再按一次退出应用</string>
|
||||
<string name="text_press_again_to_exit">再按一次退出</string>
|
||||
<string name="text_press_back_or_vol_down_to_close_window">如需关闭窗口, 可按 \"返回键\" 或 \"音量减键\"</string>
|
||||
<string name="text_preview">预览</string>
|
||||
<string name="text_process_log">流程日志</string>
|
||||
|
||||
Reference in New Issue
Block a user