app v1.1.1: fix top bar drawing under the status bar (edge-to-edge insets)

Android 15 / targetSdk 35 forces edge-to-edge, so the app bar and its
buttons drew behind the status bar (under the clock/battery).
fitsSystemWindows on the root CoordinatorLayout insets the app bar below
the status bar, and a window-insets listener pads the queue list above
the gesture nav bar.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 00:13:01 +01:00
parent 4c6c897b10
commit 81d5f33acc
3 changed files with 17 additions and 3 deletions

View File

@@ -22,8 +22,8 @@ android {
applicationId = "eu.itaz.internaluploader"
minSdk = 26
targetSdk = 35
versionCode = 2
versionName = "1.1.0"
versionCode = 3
versionName = "1.1.1"
// The one place the server address exists. Never rendered in the UI;
// a pairing QR can carry a different origin and overrides this.

View File

@@ -13,6 +13,9 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.net.toUri
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import com.journeyapps.barcodescanner.ScanContract
@@ -70,6 +73,16 @@ class MainActivity : AppCompatActivity() {
binding.queue.layoutManager = LinearLayoutManager(this)
binding.queue.adapter = adapter
// Edge-to-edge (forced on Android 15 / targetSdk 35): the app bar is
// inset by fitsSystemWindows on the root, but the scrolling list still
// needs bottom padding so its last rows clear the gesture nav bar.
val basePadding = binding.queue.paddingBottom
ViewCompat.setOnApplyWindowInsetsListener(binding.queue) { view, insets ->
val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
view.updatePadding(bottom = basePadding + bars.bottom)
insets
}
binding.scanButton.setOnClickListener { startScan() }
binding.ssoButton.setOnClickListener { startAppSso() }
binding.addButton.setOnClickListener {

View File

@@ -3,7 +3,8 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"