android: hide status bars on landscape
parent
b1edd24dd9
commit
2c9cdacdfa
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -2,6 +2,7 @@ package gallery.memories
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.res.Configuration
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.net.http.SslError
|
import android.net.http.SslError
|
||||||
|
@ -10,7 +11,9 @@ import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import android.view.WindowInsets
|
||||||
import android.view.WindowInsetsController
|
import android.view.WindowInsetsController
|
||||||
|
import android.view.WindowManager
|
||||||
import android.webkit.CookieManager
|
import android.webkit.CookieManager
|
||||||
import android.webkit.SslErrorHandler
|
import android.webkit.SslErrorHandler
|
||||||
import android.webkit.WebResourceRequest
|
import android.webkit.WebResourceRequest
|
||||||
|
@ -89,6 +92,13 @@ class MainActivity : AppCompatActivity() {
|
||||||
nativex.destroy()
|
nativex.destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onConfigurationChanged(config: Configuration) {
|
||||||
|
super.onConfigurationChanged(config)
|
||||||
|
|
||||||
|
// Hide the status bar in landscape
|
||||||
|
setFullscreen(config.orientation == Configuration.ORIENTATION_LANDSCAPE)
|
||||||
|
}
|
||||||
|
|
||||||
public override fun onResume() {
|
public override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
if (playerUris != null && player == null) {
|
if (playerUris != null && player == null) {
|
||||||
|
@ -305,6 +315,50 @@ class MainActivity : AppCompatActivity() {
|
||||||
binding.videoView.visibility = View.GONE
|
binding.videoView.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make the app fullscreen.
|
||||||
|
*/
|
||||||
|
private fun setFullscreen(value: Boolean) {
|
||||||
|
if (value) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
|
window.attributes.layoutInDisplayCutoutMode =
|
||||||
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||||
|
window.insetsController?.apply {
|
||||||
|
hide(WindowInsets.Type.statusBars())
|
||||||
|
systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
@Suppress("Deprecation")
|
||||||
|
window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN
|
||||||
|
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
||||||
|
or View.SYSTEM_UI_FLAG_IMMERSIVE
|
||||||
|
or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||||
|
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
|
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
||||||
|
window.attributes.layoutInDisplayCutoutMode =
|
||||||
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||||
|
window.insetsController?.apply {
|
||||||
|
show(WindowInsets.Type.statusBars())
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
@Suppress("Deprecation")
|
||||||
|
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a given theme for restoreTheme.
|
||||||
|
*/
|
||||||
fun storeTheme(color: String?, isDark: Boolean) {
|
fun storeTheme(color: String?, isDark: Boolean) {
|
||||||
if (color == null) return
|
if (color == null) return
|
||||||
getSharedPreferences(getString(R.string.preferences_key), 0).edit()
|
getSharedPreferences(getString(R.string.preferences_key), 0).edit()
|
||||||
|
@ -313,6 +367,9 @@ class MainActivity : AppCompatActivity() {
|
||||||
.apply()
|
.apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restore the last known theme color.
|
||||||
|
*/
|
||||||
fun restoreTheme() {
|
fun restoreTheme() {
|
||||||
val preferences = getSharedPreferences(getString(R.string.preferences_key), 0)
|
val preferences = getSharedPreferences(getString(R.string.preferences_key), 0)
|
||||||
val color = preferences.getString(getString(R.string.preferences_theme_color), null)
|
val color = preferences.getString(getString(R.string.preferences_theme_color), null)
|
||||||
|
@ -320,6 +377,9 @@ class MainActivity : AppCompatActivity() {
|
||||||
applyTheme(color, isDark)
|
applyTheme(color, isDark)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply a color theme.
|
||||||
|
*/
|
||||||
fun applyTheme(color: String?, isDark: Boolean) {
|
fun applyTheme(color: String?, isDark: Boolean) {
|
||||||
if (color == null) return
|
if (color == null) return
|
||||||
|
|
||||||
|
@ -347,6 +407,9 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do a soft refresh on the open timeline
|
||||||
|
*/
|
||||||
fun refreshTimeline(force: Boolean = false) {
|
fun refreshTimeline(force: Boolean = false) {
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
// Check webview is loaded
|
// Check webview is loaded
|
||||||
|
|
Loading…
Reference in New Issue