优化
This commit is contained in:
@@ -43,6 +43,7 @@ import io.legado.app.utils.openUrl
|
|||||||
import io.legado.app.utils.sendToClip
|
import io.legado.app.utils.sendToClip
|
||||||
import io.legado.app.utils.setDarkeningAllowed
|
import io.legado.app.utils.setDarkeningAllowed
|
||||||
import io.legado.app.utils.startActivity
|
import io.legado.app.utils.startActivity
|
||||||
|
import io.legado.app.utils.toggleNavigationBar
|
||||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||||
import io.legado.app.utils.visible
|
import io.legado.app.utils.visible
|
||||||
import java.net.URLDecoder
|
import java.net.URLDecoder
|
||||||
@@ -239,6 +240,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
binding.customWebView.addView(view)
|
binding.customWebView.addView(view)
|
||||||
customWebViewCallback = callback
|
customWebViewCallback = callback
|
||||||
keepScreenOn(true)
|
keepScreenOn(true)
|
||||||
|
toggleNavigationBar(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onHideCustomView() {
|
override fun onHideCustomView() {
|
||||||
@@ -246,6 +248,7 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
|||||||
binding.llView.visible()
|
binding.llView.visible()
|
||||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
||||||
keepScreenOn(false)
|
keepScreenOn(false)
|
||||||
|
toggleNavigationBar(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ import io.legado.app.utils.splitNotBlank
|
|||||||
import io.legado.app.utils.startActivity
|
import io.legado.app.utils.startActivity
|
||||||
import io.legado.app.utils.textArray
|
import io.legado.app.utils.textArray
|
||||||
import io.legado.app.utils.toastOnUi
|
import io.legado.app.utils.toastOnUi
|
||||||
|
import io.legado.app.utils.toggleNavigationBar
|
||||||
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
||||||
import io.legado.app.utils.visible
|
import io.legado.app.utils.visible
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -380,6 +381,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
|||||||
binding.customWebView.addView(view)
|
binding.customWebView.addView(view)
|
||||||
customWebViewCallback = callback
|
customWebViewCallback = callback
|
||||||
keepScreenOn(true)
|
keepScreenOn(true)
|
||||||
|
toggleNavigationBar(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onHideCustomView() {
|
override fun onHideCustomView() {
|
||||||
@@ -387,6 +389,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
|||||||
binding.llView.visible()
|
binding.llView.visible()
|
||||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
|
||||||
keepScreenOn(false)
|
keepScreenOn(false)
|
||||||
|
toggleNavigationBar(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ import android.view.WindowMetrics
|
|||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
import androidx.annotation.ColorInt
|
import androidx.annotation.ColorInt
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.core.view.WindowCompat
|
||||||
|
import androidx.core.view.WindowInsetsCompat
|
||||||
|
import androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_DEFAULT
|
||||||
|
import androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import io.legado.app.R
|
import io.legado.app.R
|
||||||
import io.legado.app.ui.widget.dialog.TextDialog
|
import io.legado.app.ui.widget.dialog.TextDialog
|
||||||
@@ -173,6 +177,18 @@ fun Activity.keepScreenOn(on: Boolean) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Activity.toggleNavigationBar(show: Boolean) {
|
||||||
|
WindowCompat.getInsetsController(window, window.decorView).run {
|
||||||
|
if (show) {
|
||||||
|
show(WindowInsetsCompat.Type.navigationBars())
|
||||||
|
systemBarsBehavior = BEHAVIOR_DEFAULT
|
||||||
|
} else {
|
||||||
|
hide(WindowInsetsCompat.Type.navigationBars())
|
||||||
|
systemBarsBehavior = BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/////以下方法需要在View完全被绘制出来之后调用,否则判断不了,在比如 onWindowFocusChanged()方法中可以得到正确的结果/////
|
/////以下方法需要在View完全被绘制出来之后调用,否则判断不了,在比如 onWindowFocusChanged()方法中可以得到正确的结果/////
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user