mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-25 12:17:22 +00:00
Fix nav bar spacing and coloring.
This commit is contained in:
@@ -10,7 +10,6 @@ import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
@@ -177,15 +176,13 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
||||
override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) {
|
||||
AppStartup.getInstance().onCriticalRenderEventStart()
|
||||
|
||||
if (Build.VERSION.SDK_INT > 21) {
|
||||
enableEdgeToEdge(
|
||||
navigationBarStyle = if (DynamicTheme.isDarkTheme(this)) {
|
||||
SystemBarStyle.dark(0)
|
||||
} else {
|
||||
SystemBarStyle.light(0, 0)
|
||||
}
|
||||
)
|
||||
}
|
||||
enableEdgeToEdge(
|
||||
navigationBarStyle = if (DynamicTheme.isDarkTheme(this)) {
|
||||
SystemBarStyle.dark(0)
|
||||
} else {
|
||||
SystemBarStyle.light(0, 0)
|
||||
}
|
||||
)
|
||||
|
||||
conversationListTabsViewModel
|
||||
|
||||
|
||||
@@ -12,9 +12,10 @@ import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.BoxScope
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.defaultMinSize
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.navigationBarsPadding
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
@@ -101,13 +102,12 @@ fun MainNavigationBar(
|
||||
state: MainNavigationState,
|
||||
onDestinationSelected: (MainNavigationDestination) -> Unit
|
||||
) {
|
||||
Box(modifier = Modifier.background(color = SignalTheme.colors.colorSurface2)) {
|
||||
Column(modifier = Modifier.background(color = SignalTheme.colors.colorSurface2)) {
|
||||
NavigationBar(
|
||||
containerColor = SignalTheme.colors.colorSurface2,
|
||||
contentColor = MaterialTheme.colorScheme.onSurface,
|
||||
modifier = Modifier
|
||||
.navigationBarsPadding()
|
||||
.height(if (state.compact) 48.dp else 80.dp)
|
||||
modifier = Modifier.height(if (state.compact) 48.dp else 80.dp),
|
||||
windowInsets = WindowInsets(0, 0, 0, 0)
|
||||
) {
|
||||
val entries = remember(state.isStoriesFeatureEnabled) {
|
||||
if (state.isStoriesFeatureEnabled) {
|
||||
@@ -144,6 +144,8 @@ fun MainNavigationBar(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
NavigationBarSpacerCompat()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.main
|
||||
|
||||
import android.os.Build
|
||||
import androidx.compose.foundation.layout.Spacer
|
||||
import androidx.compose.foundation.layout.WindowInsets
|
||||
import androidx.compose.foundation.layout.height
|
||||
import androidx.compose.foundation.layout.navigationBars
|
||||
import androidx.compose.foundation.layout.windowInsetsBottomHeight
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.util.DimensionUnit
|
||||
import org.thoughtcrime.securesms.util.ViewUtil
|
||||
|
||||
@Composable
|
||||
fun NavigationBarSpacerCompat() {
|
||||
if (Build.VERSION.SDK_INT > 23) {
|
||||
Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.navigationBars))
|
||||
} else {
|
||||
val resources = LocalContext.current.resources
|
||||
val navigationBarHeight = remember(resources) {
|
||||
DimensionUnit.PIXELS.toDp(ViewUtil.getNavigationBarHeight(resources).toFloat()).dp
|
||||
}
|
||||
|
||||
Spacer(Modifier.height(navigationBarHeight))
|
||||
}
|
||||
}
|
||||
@@ -385,15 +385,19 @@ public final class ViewUtil {
|
||||
if (Build.VERSION.SDK_INT > 29 && rootWindowInsets != null) {
|
||||
return rootWindowInsets.getInsets(WindowInsetsCompat.Type.navigationBars()).bottom;
|
||||
} else {
|
||||
int result = 0;
|
||||
int resourceId = view.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
if (resourceId > 0) {
|
||||
result = view.getResources().getDimensionPixelSize(resourceId);
|
||||
}
|
||||
return result;
|
||||
return getNavigationBarHeight(view.getResources());
|
||||
}
|
||||
}
|
||||
|
||||
public static int getNavigationBarHeight(@NonNull Resources resources) {
|
||||
int result = 0;
|
||||
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
if (resourceId > 0) {
|
||||
result = resources.getDimensionPixelSize(resourceId);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void hideKeyboard(@NonNull Context context, @NonNull View view) {
|
||||
InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
|
||||
inputManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||
|
||||
Reference in New Issue
Block a user