Horis 1 год назад
Родитель
Сommit
633c9373f3

+ 27 - 8
app/src/main/java/io/legado/app/ui/browser/WebViewActivity.kt

@@ -11,7 +11,14 @@ import android.view.MenuItem
 import android.view.View
 import android.view.WindowInsets
 import android.view.WindowInsetsController
-import android.webkit.*
+import android.webkit.CookieManager
+import android.webkit.SslErrorHandler
+import android.webkit.URLUtil
+import android.webkit.WebChromeClient
+import android.webkit.WebResourceRequest
+import android.webkit.WebSettings
+import android.webkit.WebView
+import android.webkit.WebViewClient
 import androidx.activity.addCallback
 import androidx.activity.viewModels
 import androidx.core.view.size
@@ -27,8 +34,16 @@ import io.legado.app.lib.theme.accentColor
 import io.legado.app.model.Download
 import io.legado.app.ui.association.OnLineImportActivity
 import io.legado.app.ui.file.HandleFileContract
-import io.legado.app.utils.*
+import io.legado.app.utils.ACache
+import io.legado.app.utils.gone
+import io.legado.app.utils.invisible
+import io.legado.app.utils.longSnackbar
+import io.legado.app.utils.openUrl
+import io.legado.app.utils.sendToClip
+import io.legado.app.utils.setDarkeningAllowed
+import io.legado.app.utils.startActivity
 import io.legado.app.utils.viewbindingdelegate.viewBinding
+import io.legado.app.utils.visible
 import java.net.URLDecoder
 
 class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
@@ -39,6 +54,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
     private var customWebViewCallback: WebChromeClient.CustomViewCallback? = null
     private var webPic: String? = null
     private var isCloudflareChallenge = false
+    private var isFullScreen = false
     private val saveImage = registerForActivityResult(HandleFileContract()) {
         it.uri?.let { uri ->
             ACache.get().put(imagePathKey, uri.toString())
@@ -70,6 +86,10 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
                 binding.webView.goBack()
                 return@addCallback
             }
+            if (isFullScreen) {
+                toggleFullScreen()
+                return@addCallback
+            }
             finish()
         }
     }
@@ -92,24 +112,23 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
                     finish()
                 }
             }
-            R.id.menu_full_screen -> toggleFullScreen(item)
+
+            R.id.menu_full_screen -> toggleFullScreen()
         }
         return super.onCompatOptionsItemSelected(item)
     }
 
-    private var isFullScreen = false
-
     //实现starBrowser调起页面全屏
-    private fun toggleFullScreen(item: MenuItem) {
+    private fun toggleFullScreen() {
         isFullScreen = !isFullScreen
-        item.title = if (isFullScreen) "Exit full screen" else "Full screen"
 
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
             // For API 30 and above
             val windowInsetsController = window.insetsController
             windowInsetsController?.let {
                 if (isFullScreen) {
-                    it.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
+                    it.systemBarsBehavior =
+                        WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
                     it.hide(WindowInsets.Type.systemBars())
                     supportActionBar?.hide()
                 } else {

+ 0 - 1
app/src/main/res/values/strings.xml

@@ -1175,5 +1175,4 @@
     <string name="read_aloud_read_phone_state_permission_rationale">阅读需要读取手机状态实现来电期间暂停朗读功能</string>
     <string name="read_aloud_by_media_button_title">耳机按键启动朗读</string>
     <string name="read_aloud_by_media_button_summary">通过耳机按键来启动朗读</string>
-    <string name="fullscreen" translatable="false">全屏</string>
 </resources>