From 6c2e7aef657e22f0f8f974134eb11110b359d69b Mon Sep 17 00:00:00 2001 From: Light_summer <93428659+lightsummer233@users.noreply.github.com> Date: Fri, 4 Oct 2024 12:37:42 +0800 Subject: [PATCH] Fix edge to edge --- .../github/a13e300/ksuwebui/MainActivity.kt | 27 +++++++++++++++++-- app/src/main/res/layout/activity_main.xml | 7 +++-- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/io/github/a13e300/ksuwebui/MainActivity.kt b/app/src/main/java/io/github/a13e300/ksuwebui/MainActivity.kt index 3e81faa..e643e23 100644 --- a/app/src/main/java/io/github/a13e300/ksuwebui/MainActivity.kt +++ b/app/src/main/java/io/github/a13e300/ksuwebui/MainActivity.kt @@ -13,7 +13,10 @@ import android.view.Menu import android.view.ViewGroup import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.view.isVisible +import androidx.core.view.updatePadding import androidx.recyclerview.widget.RecyclerView import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.ipc.RootService @@ -32,16 +35,36 @@ class MainActivity : AppCompatActivity() { private val prefs by lazy { getSharedPreferences("settings", MODE_PRIVATE) } override fun onCreate(savedInstanceState: Bundle?) { + // Enable edge to edge enableEdgeToEdge() if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { window.isNavigationBarContrastEnforced = false } + super.onCreate(savedInstanceState) + binding = ActivityMainBinding.inflate(layoutInflater) - adapter = Adapter() - binding.list.adapter = adapter setContentView(binding.root) setSupportActionBar(binding.toolbar) + + // Add insets + ViewCompat.setOnApplyWindowInsetsListener(binding.appbar) { v, insets -> + val cutoutAndBars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout() + ) + v.updatePadding(left = cutoutAndBars.left, top = cutoutAndBars.top, right = cutoutAndBars.right) + return@setOnApplyWindowInsetsListener insets + } + ViewCompat.setOnApplyWindowInsetsListener(binding.list) { v, insets -> + val cutoutAndBars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout() + ) + v.updatePadding(left = cutoutAndBars.left, bottom = cutoutAndBars.bottom, right = cutoutAndBars.right) + return@setOnApplyWindowInsetsListener insets + } + + adapter = Adapter() + binding.list.adapter = adapter binding.swipeRefresh.setOnRefreshListener { refresh() } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 985b95b..63eac3a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -2,11 +2,13 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true"> + android:layout_height="match_parent">