aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2025-05-06 22:12:14 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2025-05-08 04:59:37 +0200
commitbd0967e36eec4c85e332121f0b97e82a65c64dba (patch)
tree9a530a5160dee0d840eaa1533e69c9dda86b3b10 /ui/src
parentSettingsActivity: remove unused imports (diff)
downloadwireguard-android-bd0967e36eec4c85e332121f0b97e82a65c64dba.tar.xz
wireguard-android-bd0967e36eec4c85e332121f0b97e82a65c64dba.zip
SettingsActivity: manually apply insets for api 35
The forced EdgeToEdge changes don't work well with PreferenceFragmentCompat, because it's basically abandoned by androidx, so apply the insets manually ourselves. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'ui/src')
-rw-r--r--ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt24
1 files changed, 24 insertions, 0 deletions
diff --git a/ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt b/ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt
index 574dfc72..9f492ed0 100644
--- a/ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt
+++ b/ui/src/main/java/com/wireguard/android/activity/SettingsActivity.kt
@@ -7,8 +7,14 @@ package com.wireguard.android.activity
import android.content.Intent
import android.os.Build
import android.os.Bundle
+import android.view.LayoutInflater
import android.view.MenuItem
+import android.view.View
+import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
+import androidx.core.view.updateLayoutParams
import androidx.fragment.app.commit
import androidx.lifecycle.lifecycleScope
import androidx.preference.Preference
@@ -45,6 +51,24 @@ class SettingsActivity : AppCompatActivity() {
}
class SettingsFragment : PreferenceFragmentCompat() {
+
+ // Since this is pretty much abandoned by androidx, it never got updated for proper EdgeToEdge support,
+ // which is enabled everywhere for API 35. So handle the insets manually here.
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
+ val view = super.onCreateView(inflater, container, savedInstanceState)
+ ViewCompat.setOnApplyWindowInsetsListener(view) { v, windowInsets ->
+ val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
+ v.updateLayoutParams<ViewGroup.MarginLayoutParams> {
+ leftMargin = insets.left
+ bottomMargin = insets.bottom
+ rightMargin = insets.right
+ topMargin = insets.top
+ }
+ WindowInsetsCompat.CONSUMED
+ }
+ return view
+ }
+
override fun onCreatePreferences(savedInstanceState: Bundle?, key: String?) {
preferenceManager.preferenceDataStore = PreferencesPreferenceDataStore(lifecycleScope, Application.getPreferencesDataStore())
addPreferencesFromResource(R.xml.preferences)