mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-03-13 03:17:48 -04:00
fix(UI): Apply window insets on welcome screens (#2734)
This commit is contained in:
@@ -22,10 +22,13 @@ import android.app.TaskStackBuilder
|
||||
import android.content.Intent
|
||||
import android.content.pm.PackageInfo
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Color
|
||||
import android.hardware.usb.UsbManager
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.activity.SystemBarStyle
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
@@ -41,7 +44,6 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.view.WindowCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.geeksville.mesh.android.BindFailedException
|
||||
import com.geeksville.mesh.android.GeeksvilleApplication
|
||||
@@ -78,7 +80,15 @@ class MainActivity :
|
||||
private var showAppIntro by mutableStateOf(false)
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
enableEdgeToEdge()
|
||||
enableEdgeToEdge(
|
||||
// Disable three-button navbar scrim on pre-Q devices
|
||||
navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT),
|
||||
)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
// Disable three-button navbar scrim
|
||||
window.setNavigationBarContrastEnforced(false)
|
||||
}
|
||||
|
||||
super.onCreate(savedInstanceState)
|
||||
val prefs = UIViewModel.getPreferences(this)
|
||||
if (savedInstanceState == null) {
|
||||
@@ -93,7 +103,6 @@ class MainActivity :
|
||||
}
|
||||
}
|
||||
|
||||
WindowCompat.setDecorFitsSystemWindows(window, false)
|
||||
setContent {
|
||||
val theme by model.theme.collectAsState()
|
||||
val dynamic = theme == MODE_DYNAMIC
|
||||
|
||||
@@ -17,15 +17,13 @@
|
||||
|
||||
package com.geeksville.mesh.ui.intro
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material3.BottomAppBar
|
||||
import androidx.compose.material3.Button
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
@@ -47,17 +45,13 @@ internal fun IntroBottomBar(
|
||||
configureButtonText: String,
|
||||
showSkipButton: Boolean = true,
|
||||
) {
|
||||
Surface(shadowElevation = 8.dp) {
|
||||
// Use Surface for elevation as per Material 3 guidelines
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth().padding(horizontal = 16.dp, vertical = 20.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = if (showSkipButton) Arrangement.SpaceBetween else Arrangement.End,
|
||||
) {
|
||||
if (showSkipButton) {
|
||||
Button(onClick = onSkip) { Text(skipButtonText) }
|
||||
}
|
||||
Button(onClick = onConfigure) { Text(configureButtonText) }
|
||||
BottomAppBar(contentPadding = PaddingValues(horizontal = 16.dp, vertical = 20.dp)) {
|
||||
if (showSkipButton) {
|
||||
Button(onClick = onSkip) { Text(skipButtonText) }
|
||||
}
|
||||
|
||||
Spacer(modifier = Modifier.fillMaxWidth().weight(1f))
|
||||
|
||||
Button(onClick = onConfigure) { Text(configureButtonText) }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user