diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt index 1e188a83f..bddcda701 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreReaderFragment.kt @@ -49,7 +49,6 @@ import android.view.MenuItem import android.view.MotionEvent import android.view.View import android.view.ViewGroup -import android.view.WindowManager import android.view.animation.AnimationUtils import android.webkit.WebBackForwardList import android.webkit.WebView @@ -70,6 +69,9 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat 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.drawerlayout.widget.DrawerLayout import androidx.recyclerview.widget.ItemTouchHelper @@ -1288,10 +1290,13 @@ abstract class CoreReaderFragment : bottomToolbar?.visibility = View.GONE exitFullscreenButton?.visibility = View.VISIBLE exitFullscreenButton?.background?.alpha = 153 - val fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN - val classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN - requireActivity().window.addFlags(fullScreenFlag) - requireActivity().window.clearFlags(classicScreenFlag) + val window = requireActivity().window + WindowCompat.setDecorFitsSystemWindows(window, true) + WindowInsetsControllerCompat(window, window.decorView.rootView).apply { + hide(WindowInsetsCompat.Type.systemBars()) + systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE + window.decorView.rootView.requestLayout() + } getCurrentWebView()?.apply { requestLayout() translationY = 0f @@ -1306,10 +1311,12 @@ abstract class CoreReaderFragment : updateBottomToolbarVisibility() exitFullscreenButton?.visibility = View.GONE exitFullscreenButton?.background?.alpha = 255 - val fullScreenFlag = WindowManager.LayoutParams.FLAG_FULLSCREEN - val classicScreenFlag = WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN - requireActivity().window.clearFlags(fullScreenFlag) - requireActivity().window.addFlags(classicScreenFlag) + val window = requireActivity().window + WindowCompat.setDecorFitsSystemWindows(window, false) + WindowInsetsControllerCompat(window, window.decorView.rootView).apply { + show(WindowInsetsCompat.Type.systemBars()) + window.decorView.rootView.requestLayout() + } getCurrentWebView()?.requestLayout() sharedPreferenceUtil?.putPrefFullScreen(false) } diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt index d7fc52457..ee8c1a6a8 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixWebView.kt @@ -27,8 +27,6 @@ import android.util.AttributeSet import android.util.Log import android.view.ContextMenu 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 androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat @@ -73,13 +71,9 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor( if (isFullScreen) { hide(WindowInsetsCompat.Type.systemBars()) systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE - window.clearFlags(FLAG_FULLSCREEN) - window.addFlags(FLAG_FULLSCREEN) window.decorView.rootView.requestLayout() } else { show(WindowInsetsCompat.Type.systemBars()) - window.clearFlags(FLAG_FULLSCREEN) - window.addFlags(FLAG_FORCE_NOT_FULLSCREEN) window.decorView.rootView.requestLayout() } } @@ -99,6 +93,7 @@ open class KiwixWebView @SuppressLint("SetJavaScriptEnabled") constructor( useWideViewPort = true builtInZoomControls = true displayZoomControls = false + @Suppress("DEPRECATION") allowUniversalAccessFromFileURLs = true } setInitialScale(INITIAL_SCALE)