Skip to content

Commit e84d379

Browse files
committed
Used retain for navigations, updated insets for debug and pro screens
1 parent fb659b5 commit e84d379

File tree

6 files changed

+44
-17
lines changed

6 files changed

+44
-17
lines changed

app/src/main/java/org/thoughtcrime/securesms/debugmenu/DebugMenu.kt

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@ import androidx.compose.foundation.layout.PaddingValues
1111
import androidx.compose.foundation.layout.Row
1212
import androidx.compose.foundation.layout.RowScope
1313
import androidx.compose.foundation.layout.Spacer
14+
import androidx.compose.foundation.layout.WindowInsets
15+
import androidx.compose.foundation.layout.calculateEndPadding
16+
import androidx.compose.foundation.layout.calculateStartPadding
1417
import androidx.compose.foundation.layout.fillMaxSize
1518
import androidx.compose.foundation.layout.fillMaxWidth
1619
import androidx.compose.foundation.layout.height
1720
import androidx.compose.foundation.layout.heightIn
1821
import androidx.compose.foundation.layout.padding
22+
import androidx.compose.foundation.layout.safeDrawing
1923
import androidx.compose.foundation.layout.size
2024
import androidx.compose.foundation.layout.width
2125
import androidx.compose.foundation.rememberScrollState
@@ -46,6 +50,7 @@ import androidx.compose.ui.Alignment
4650
import androidx.compose.ui.Modifier
4751
import androidx.compose.ui.graphics.ColorFilter
4852
import androidx.compose.ui.platform.LocalClipboardManager
53+
import androidx.compose.ui.platform.LocalLayoutDirection
4954
import androidx.compose.ui.res.painterResource
5055
import androidx.compose.ui.text.AnnotatedString
5156
import androidx.compose.ui.text.input.KeyboardType
@@ -121,7 +126,8 @@ fun DebugMenu(
121126
},
122127
snackbarHost = {
123128
SnackbarHost(hostState = snackbarHostState)
124-
}
129+
},
130+
contentWindowInsets = WindowInsets.safeDrawing,
125131
) { contentPadding ->
126132
// display a snackbar when required
127133
LaunchedEffect(uiState.snackMessage) {
@@ -173,13 +179,21 @@ fun DebugMenu(
173179
LoadingDialog(title = "Applying changes...")
174180
}
175181

182+
val layoutDirection = LocalLayoutDirection.current
183+
val safeInsetsPadding = PaddingValues(
184+
start = contentPadding.calculateStartPadding(layoutDirection) + LocalDimensions.current.spacing,
185+
end = contentPadding.calculateEndPadding(layoutDirection) + LocalDimensions.current.spacing,
186+
top = contentPadding.calculateTopPadding(),
187+
bottom = contentPadding.calculateBottomPadding(),
188+
)
189+
176190
Column(
177191
modifier = Modifier
178192
.background(LocalColors.current.background)
179-
.padding(horizontal = LocalDimensions.current.spacing)
193+
.padding(safeInsetsPadding)
180194
.verticalScroll(rememberScrollState())
181195
) {
182-
Spacer(modifier = Modifier.height(contentPadding.calculateTopPadding()))
196+
Spacer(modifier = Modifier.height(LocalDimensions.current.spacing))
183197

184198
// Info pane
185199
val clipboardManager = LocalClipboardManager.current
@@ -284,7 +298,8 @@ fun DebugMenu(
284298
style = LocalType.current.base
285299
)
286300
DropDown(
287-
modifier = Modifier.fillMaxWidth()
301+
modifier = Modifier
302+
.fillMaxWidth()
288303
.padding(top = LocalDimensions.current.xxsSpacing),
289304
selectedText = uiState.selectedDebugSubscriptionStatus.label,
290305
values = uiState.debugSubscriptionStatuses.map { it.label },
@@ -315,7 +330,8 @@ fun DebugMenu(
315330
style = LocalType.current.base
316331
)
317332
DropDown(
318-
modifier = Modifier.fillMaxWidth()
333+
modifier = Modifier
334+
.fillMaxWidth()
319335
.padding(top = LocalDimensions.current.xxsSpacing),
320336
selectedText = uiState.selectedDebugProPlanStatus.label,
321337
values = uiState.debugProPlanStatus.map { it.label },

app/src/main/java/org/thoughtcrime/securesms/debugmenu/DebugMenuNavHost.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.os.Parcelable
55
import androidx.compose.animation.ExperimentalSharedTransitionApi
66
import androidx.compose.runtime.Composable
77
import androidx.compose.runtime.remember
8+
import androidx.compose.runtime.retain.retain
89
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
910
import androidx.navigation.NavController
1011
import androidx.navigation.compose.NavHost
@@ -40,7 +41,7 @@ fun DebugMenuNavHost(
4041
onBack: () -> Unit
4142
){
4243
val navController = rememberNavController()
43-
val navigator: UINavigator<DebugMenuDestination> = remember {
44+
val navigator: UINavigator<DebugMenuDestination> = retain {
4445
UINavigator<DebugMenuDestination>()
4546
}
4647

app/src/main/java/org/thoughtcrime/securesms/home/startconversation/StartConversationSheet.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import androidx.compose.runtime.getValue
2323
import androidx.compose.runtime.mutableStateOf
2424
import androidx.compose.runtime.remember
2525
import androidx.compose.runtime.rememberCoroutineScope
26+
import androidx.compose.runtime.retain.retain
2627
import androidx.compose.runtime.setValue
2728
import androidx.compose.ui.Alignment
2829
import androidx.compose.ui.Modifier
@@ -135,7 +136,7 @@ fun StartConversationNavHost(
135136
){
136137
val navController = rememberNavController()
137138
val navigator: UINavigator<StartConversationDestination> =
138-
remember { UINavigator() }
139+
retain { UINavigator() }
139140

140141
ObserveAsEvents(flow = navigator.navigationActions) { action ->
141142
when (action) {

app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsScreen.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -542,7 +542,7 @@ fun Buttons(
542542

543543
Cell {
544544
Column {
545-
if(postPro){
545+
if(!postPro){
546546
ItemButton(
547547
text = annotatedStringResource(
548548
when (proDataState.type) {

app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/BaseProSettingsScreens.kt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,13 @@ import androidx.compose.foundation.layout.PaddingValues
1212
import androidx.compose.foundation.layout.Row
1313
import androidx.compose.foundation.layout.Spacer
1414
import androidx.compose.foundation.layout.WindowInsets
15+
import androidx.compose.foundation.layout.calculateEndPadding
16+
import androidx.compose.foundation.layout.calculateStartPadding
1517
import androidx.compose.foundation.layout.consumeWindowInsets
1618
import androidx.compose.foundation.layout.fillMaxWidth
1719
import androidx.compose.foundation.layout.height
1820
import androidx.compose.foundation.layout.padding
21+
import androidx.compose.foundation.layout.safeDrawing
1922
import androidx.compose.foundation.layout.size
2023
import androidx.compose.foundation.layout.systemBars
2124
import androidx.compose.foundation.layout.widthIn
@@ -36,6 +39,7 @@ import androidx.compose.ui.Alignment.Companion.Center
3639
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
3740
import androidx.compose.ui.Modifier
3841
import androidx.compose.ui.platform.LocalDensity
42+
import androidx.compose.ui.platform.LocalLayoutDirection
3943
import androidx.compose.ui.res.painterResource
4044
import androidx.compose.ui.text.style.TextAlign
4145
import androidx.compose.ui.tooling.preview.Preview
@@ -103,20 +107,24 @@ fun BaseProSettingsScreen(
103107
onBack = onBack,
104108
)
105109
}} else {{}},
106-
contentWindowInsets = WindowInsets.systemBars,
110+
contentWindowInsets = WindowInsets.safeDrawing,
107111
) { paddings ->
112+
113+
val layoutDirection = LocalLayoutDirection.current
114+
val safeInsetsPadding = PaddingValues(
115+
start = paddings.calculateStartPadding(layoutDirection) + LocalDimensions.current.spacing,
116+
end = paddings.calculateEndPadding(layoutDirection)+ LocalDimensions.current.spacing,
117+
top = (paddings.calculateTopPadding() - LocalDimensions.current.appBarHeight)
118+
.coerceAtLeast(0.dp) + 46.dp,
119+
bottom = paddings.calculateBottomPadding() + LocalDimensions.current.spacing
120+
)
121+
108122
LazyColumn(
109123
modifier = Modifier
110124
.fillMaxWidth()
111125
.consumeWindowInsets(paddings),
112126
state = listState,
113-
contentPadding = PaddingValues(
114-
start = LocalDimensions.current.spacing,
115-
end = LocalDimensions.current.spacing,
116-
top = (paddings.calculateTopPadding() - LocalDimensions.current.appBarHeight)
117-
.coerceAtLeast(0.dp) + 46.dp,
118-
bottom = paddings.calculateBottomPadding() + LocalDimensions.current.spacing
119-
),
127+
contentPadding = safeInsetsPadding,
120128
horizontalAlignment = CenterHorizontally
121129
) {
122130
item {

app/src/main/java/org/thoughtcrime/securesms/preferences/prosettings/ProSettingsNavHost.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import androidx.compose.runtime.Composable
77
import androidx.compose.runtime.collectAsState
88
import androidx.compose.runtime.getValue
99
import androidx.compose.runtime.remember
10+
import androidx.compose.runtime.retain.retain
1011
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
1112
import androidx.navigation.NavController
1213
import androidx.navigation.compose.NavHost
@@ -66,7 +67,7 @@ fun ProSettingsNavHost(
6667
onBack: () -> Unit
6768
){
6869
val navController = rememberNavController()
69-
val navigator: UINavigator<ProSettingsDestination> = remember {
70+
val navigator: UINavigator<ProSettingsDestination> = retain {
7071
UINavigator<ProSettingsDestination>()
7172
}
7273

0 commit comments

Comments
 (0)