Fix settings screen insets on Android 16

pull/1245/head
Daksh256 3 months ago
parent 72696a66d6
commit 119cec5859

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
<bytecodeTargetLevel target="21" />
</component>
</project>

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="corretto-17" project-jdk-type="JavaSDK" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK" />
</project>

@ -3,7 +3,10 @@ package com.deniscerri.ytdl.ui.more.settings
import android.annotation.SuppressLint
import android.content.SharedPreferences
import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.preference.Preference
@ -72,6 +75,22 @@ abstract class BaseSettingsFragment : PreferenceFragmentCompat(), SettingHost {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(listView) { v, insets ->
val systemBars = insets.getInsets(
WindowInsetsCompat.Type.systemBars()
)
v.setPadding(
v.paddingLeft,
v.paddingTop,
v.paddingRight,
v.paddingBottom + systemBars.bottom
)
insets
}
val keyToHighlight = arguments?.getString("highlight_key")
if (keyToHighlight != null) {
val adapter = listView.adapter as? PreferenceGroupAdapter

@ -8,6 +8,7 @@ import android.content.SharedPreferences
import android.os.Build
import android.os.Bundle
import android.util.LayoutDirection
import android.util.Log
import android.view.Gravity
import android.view.View
import android.widget.TextView
@ -16,6 +17,8 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.LocaleListCompat
import androidx.core.text.layoutDirection
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
@ -65,6 +68,24 @@ class MainSettingsFragment : PreferenceFragmentCompat() {
private lateinit var editor: SharedPreferences.Editor
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
ViewCompat.setOnApplyWindowInsetsListener(listView) { v, insets ->
val systemBars = insets.getInsets(
WindowInsetsCompat.Type.systemBars()
)
v.setPadding(
v.paddingLeft,
v.paddingTop,
v.paddingRight,
v.paddingBottom + systemBars.bottom
)
insets
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.root_preferences, rootKey)
val navController = findNavController()

@ -6,6 +6,8 @@ import android.os.Bundle
import android.util.Log
import android.view.View
import androidx.activity.addCallback
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible
import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.Lifecycle
@ -81,6 +83,21 @@ class SettingsActivity : BaseActivity(), SettingHost {
settingViewModel = ViewModelProvider(this)[SettingsViewModel::class.java]
setContentView(binding.root)
ViewCompat.setOnApplyWindowInsetsListener(binding.appBar) { v, insets ->
val topInset = insets.getInsets(
WindowInsetsCompat.Type.statusBars()
).top
v.setPadding(
v.paddingLeft,
topInset,
v.paddingRight,
v.paddingBottom
)
insets
}
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.frame_layout) as NavHostFragment
navController = navHostFragment.findNavController()

@ -5,7 +5,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:fitsSystemWindows="false"
tools:context=".ui.more.settings.SettingsActivity">
<com.google.android.material.search.SearchView

Loading…
Cancel
Save