Replaced deprecated functions

This commit is contained in:
LooKeR 2021-10-08 01:13:55 +05:30
parent 8231fc8bfb
commit 26d4fbbd29
2 changed files with 21 additions and 25 deletions

View File

@ -4,7 +4,6 @@ import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.os.Parcel import android.os.Parcel
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.inputmethod.InputMethodManager import android.view.inputmethod.InputMethodManager
import android.widget.FrameLayout import android.widget.FrameLayout
@ -73,9 +72,6 @@ abstract class ScreenActivity : FragmentActivity() {
setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration)) setTheme(Preferences[Preferences.Key.Theme].getResId(resources.configuration))
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
window.decorView.systemUiVisibility =
window.decorView.systemUiVisibility or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
addContentView( addContentView(
FrameLayout(this).apply { id = R.id.main_content }, FrameLayout(this).apply { id = R.id.main_content },
ViewGroup.LayoutParams( ViewGroup.LayoutParams(

View File

@ -5,11 +5,13 @@ import android.content.Context
import android.graphics.PixelFormat import android.graphics.PixelFormat
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.os.Bundle import android.os.Bundle
import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
import android.widget.ImageView import android.widget.ImageView
import androidx.core.graphics.ColorUtils import androidx.core.graphics.ColorUtils
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -62,6 +64,9 @@ class ScreenshotsFragment() : DialogFragment() {
val window = dialog.window!! val window = dialog.window!!
val decorView = window.decorView val decorView = window.decorView
WindowCompat.setDecorFitsSystemWindows(window, false)
val background = val background =
dialog.context.getColorFromAttr(android.R.attr.colorBackground).defaultColor dialog.context.getColorFromAttr(android.R.attr.colorBackground).defaultColor
decorView.setBackgroundColor(background.let { decorView.setBackgroundColor(background.let {
@ -96,26 +101,18 @@ class ScreenshotsFragment() : DialogFragment() {
} }
} }
val hideFlags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE val toggleSystemUi = {
decorView.systemUiVisibility = WindowInsetsControllerCompat(window, decorView).let { controller ->
decorView.systemUiVisibility or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or controller.hide(WindowInsetsCompat.Type.statusBars())
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN controller.hide(WindowInsetsCompat.Type.navigationBars())
val applyHide = controller.systemBarsBehavior =
Runnable { decorView.systemUiVisibility = decorView.systemUiVisibility or hideFlags } WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
val handleClick = {
decorView.removeCallbacks(applyHide)
if ((decorView.systemUiVisibility and hideFlags) == hideFlags) {
decorView.systemUiVisibility = decorView.systemUiVisibility and hideFlags.inv()
} else {
decorView.systemUiVisibility = decorView.systemUiVisibility or hideFlags
} }
} }
decorView.postDelayed(applyHide, 2000L)
decorView.setOnClickListener { handleClick() }
val viewPager = ViewPager2(dialog.context) val viewPager = ViewPager2(dialog.context)
viewPager.adapter = Adapter(packageName) { handleClick() } viewPager.adapter = Adapter(packageName) { toggleSystemUi() }
viewPager.setPageTransformer(MarginPageTransformer(resources.sizeScaled(16))) viewPager.setPageTransformer(MarginPageTransformer(resources.sizeScaled(16)))
viewPager.viewTreeObserver.addOnGlobalLayoutListener { viewPager.viewTreeObserver.addOnGlobalLayoutListener {
(viewPager.adapter as Adapter).size = Pair(viewPager.width, viewPager.height) (viewPager.adapter as Adapter).size = Pair(viewPager.width, viewPager.height)
@ -143,7 +140,7 @@ class ScreenshotsFragment() : DialogFragment() {
.subscribe { it -> .subscribe { it ->
val (product, repository) = it val (product, repository) = it
val screenshots = product?.screenshots.orEmpty() val screenshots = product?.screenshots.orEmpty()
(viewPager.adapter as Adapter).update(repository, screenshots) (viewPager.adapter as Adapter).update(viewPager, repository, screenshots)
if (!restored) { if (!restored) {
restored = true restored = true
val identifier = savedInstanceState?.getString(STATE_IDENTIFIER) val identifier = savedInstanceState?.getString(STATE_IDENTIFIER)
@ -206,17 +203,20 @@ class ScreenshotsFragment() : DialogFragment() {
private var repository: Repository? = null private var repository: Repository? = null
private var screenshots = emptyList<Product.Screenshot>() private var screenshots = emptyList<Product.Screenshot>()
fun update(repository: Repository?, screenshots: List<Product.Screenshot>) { fun update(
viewPager: ViewPager2,
repository: Repository?,
screenshots: List<Product.Screenshot>
) {
this.repository = repository this.repository = repository
this.screenshots = screenshots this.screenshots = screenshots
notifyDataSetChanged() notifyItemChanged(viewPager.currentItem)
} }
var size = Pair(0, 0) var size = Pair(0, 0)
set(value) { set(value) {
if (field != value) { if (field != value) {
field = value field = value
notifyDataSetChanged()
} }
} }