Removed the deprecated FLAG_FULLSCREEN, FLAG_FORCE_NOT_FULLSCREEN.

We have removed the usage of deprecated flags FLAG_FULLSCREEN and FLAG_FORCE_NOT_FULLSCREEN. Instead, we are now using the updated API `WindowCompat.setDecorFitsSystemWindows` to handle fullscreen mode. This API automatically takes care of handling fullscreen behavior for both older and newer API levels.
This commit is contained in:
MohitMaliFtechiz 2023-06-20 17:09:41 +05:30 committed by gouri-panda
parent 35ff151e9b
commit d2662c1aa4
2 changed files with 17 additions and 15 deletions

View File

@ -49,7 +49,6 @@ import android.view.MenuItem
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import android.webkit.WebBackForwardList import android.webkit.WebBackForwardList
import android.webkit.WebView import android.webkit.WebView
@ -70,6 +69,9 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.GravityCompat import androidx.core.view.GravityCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.core.widget.ContentLoadingProgressBar import androidx.core.widget.ContentLoadingProgressBar
import androidx.drawerlayout.widget.DrawerLayout import androidx.drawerlayout.widget.DrawerLayout
import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.ItemTouchHelper
@ -1288,10 +1290,13 @@ abstract class CoreReaderFragment :
bottomToolbar?.visibility = View.GONE bottomToolbar?.visibility = View.GONE
exitFullscreenButton?.visibility = View.VISIBLE exitFullscreenButton?.visibility = View.VISIBLE
exitFullscreenButton?.background?.alpha = 153 exitFullscreenButton?.background?.alpha = 153
val fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN val window = requireActivity().window
val classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN WindowCompat.setDecorFitsSystemWindows(window, true)
requireActivity().window.addFlags(fullScreenFlag) WindowInsetsControllerCompat(window, window.decorView.rootView).apply {
requireActivity().window.clearFlags(classicScreenFlag) hide(WindowInsetsCompat.Type.systemBars())
systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
window.decorView.rootView.requestLayout()
}
getCurrentWebView()?.apply { getCurrentWebView()?.apply {
requestLayout() requestLayout()
translationY = 0f translationY = 0f
@ -1306,10 +1311,12 @@ abstract class CoreReaderFragment :
updateBottomToolbarVisibility() updateBottomToolbarVisibility()
exitFullscreenButton?.visibility = View.GONE exitFullscreenButton?.visibility = View.GONE
exitFullscreenButton?.background?.alpha = 255 exitFullscreenButton?.background?.alpha = 255
val fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN val window = requireActivity().window
val classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN WindowCompat.setDecorFitsSystemWindows(window, false)
requireActivity().window.clearFlags(fullScreenFlag) WindowInsetsControllerCompat(window, window.decorView.rootView).apply {
requireActivity().window.addFlags(classicScreenFlag) show(WindowInsetsCompat.Type.systemBars())
window.decorView.rootView.requestLayout()
}
getCurrentWebView()?.requestLayout() getCurrentWebView()?.requestLayout()
sharedPreferenceUtil?.putPrefFullScreen(false) sharedPreferenceUtil?.putPrefFullScreen(false)
} }

View File

@ -27,8 +27,6 @@ import android.util.AttributeSet
import android.util.Log import android.util.Log
import android.view.ContextMenu import android.view.ContextMenu
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
import android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN
import android.webkit.WebView import android.webkit.WebView
import androidx.core.view.WindowCompat import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
@ -73,13 +71,9 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor(
if (isFullScreen) { if (isFullScreen) {
hide(WindowInsetsCompat.Type.systemBars()) hide(WindowInsetsCompat.Type.systemBars())
systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
window.clearFlags(FLAG_FULLSCREEN)
window.addFlags(FLAG_FULLSCREEN)
window.decorView.rootView.requestLayout() window.decorView.rootView.requestLayout()
} else { } else {
show(WindowInsetsCompat.Type.systemBars()) show(WindowInsetsCompat.Type.systemBars())
window.clearFlags(FLAG_FULLSCREEN)
window.addFlags(FLAG_FORCE_NOT_FULLSCREEN)
window.decorView.rootView.requestLayout() window.decorView.rootView.requestLayout()
} }
} }
@ -99,6 +93,7 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor(
useWideViewPort = true useWideViewPort = true
builtInZoomControls = true builtInZoomControls = true
displayZoomControls = false displayZoomControls = false
@Suppress("DEPRECATION")
allowUniversalAccessFromFileURLs = true allowUniversalAccessFromFileURLs = true
} }
setInitialScale(INITIAL_SCALE) setInitialScale(INITIAL_SCALE)