This commit is contained in:
Horis
2025-01-06 22:40:37 +08:00
parent a7719ab2e8
commit e6b0d59609
3 changed files with 17 additions and 0 deletions
@@ -37,6 +37,7 @@ import io.legado.app.ui.file.HandleFileContract
import io.legado.app.utils.ACache import io.legado.app.utils.ACache
import io.legado.app.utils.gone import io.legado.app.utils.gone
import io.legado.app.utils.invisible import io.legado.app.utils.invisible
import io.legado.app.utils.keepScreenOn
import io.legado.app.utils.longSnackbar import io.legado.app.utils.longSnackbar
import io.legado.app.utils.openUrl import io.legado.app.utils.openUrl
import io.legado.app.utils.sendToClip import io.legado.app.utils.sendToClip
@@ -237,12 +238,14 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
binding.llView.invisible() binding.llView.invisible()
binding.customWebView.addView(view) binding.customWebView.addView(view)
customWebViewCallback = callback customWebViewCallback = callback
keepScreenOn(true)
} }
override fun onHideCustomView() { override fun onHideCustomView() {
binding.customWebView.removeAllViews() binding.customWebView.removeAllViews()
binding.llView.visible() binding.llView.visible()
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
keepScreenOn(false)
} }
} }
@@ -49,6 +49,7 @@ import io.legado.app.utils.get
import io.legado.app.utils.gone import io.legado.app.utils.gone
import io.legado.app.utils.invisible import io.legado.app.utils.invisible
import io.legado.app.utils.isTrue import io.legado.app.utils.isTrue
import io.legado.app.utils.keepScreenOn
import io.legado.app.utils.longSnackbar import io.legado.app.utils.longSnackbar
import io.legado.app.utils.openUrl import io.legado.app.utils.openUrl
import io.legado.app.utils.setDarkeningAllowed import io.legado.app.utils.setDarkeningAllowed
@@ -378,12 +379,14 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
binding.llView.invisible() binding.llView.invisible()
binding.customWebView.addView(view) binding.customWebView.addView(view)
customWebViewCallback = callback customWebViewCallback = callback
keepScreenOn(true)
} }
override fun onHideCustomView() { override fun onHideCustomView() {
binding.customWebView.removeAllViews() binding.customWebView.removeAllViews()
binding.llView.visible() binding.llView.visible()
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
keepScreenOn(false)
} }
} }
@@ -162,6 +162,17 @@ fun Activity.setNavigationBarColorAuto(@ColorInt color: Int) {
} }
} }
fun Activity.keepScreenOn(on: Boolean) {
val isScreenOn =
(window.attributes.flags and WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) != 0
if (on == isScreenOn) return
if (on) {
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
} else {
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
}
/////以下方法需要在View完全被绘制出来之后调用,否则判断不了,在比如 onWindowFocusChanged()方法中可以得到正确的结果///// /////以下方法需要在View完全被绘制出来之后调用,否则判断不了,在比如 onWindowFocusChanged()方法中可以得到正确的结果/////
/** /**