diff --git a/app/src/main/java/com/rosetta/messenger/MainActivity.kt b/app/src/main/java/com/rosetta/messenger/MainActivity.kt index 1b9a08c..d57b43a 100644 --- a/app/src/main/java/com/rosetta/messenger/MainActivity.kt +++ b/app/src/main/java/com/rosetta/messenger/MainActivity.kt @@ -163,6 +163,7 @@ class MainActivity : ComponentActivity() { }, onLogout = { scope.launch { + com.rosetta.messenger.network.ProtocolManager.disconnect() accountManager.logout() currentAccount = null } @@ -180,6 +181,7 @@ class MainActivity : ComponentActivity() { }, onLogout = { scope.launch { + com.rosetta.messenger.network.ProtocolManager.disconnect() accountManager.logout() currentAccount = null } diff --git a/app/src/main/java/com/rosetta/messenger/network/Protocol.kt b/app/src/main/java/com/rosetta/messenger/network/Protocol.kt index 09f6860..e369f34 100644 --- a/app/src/main/java/com/rosetta/messenger/network/Protocol.kt +++ b/app/src/main/java/com/rosetta/messenger/network/Protocol.kt @@ -102,6 +102,7 @@ class Protocol( } isManuallyClosed = false + reconnectAttempts = 0 // Reset reconnect attempts on new connection _state.value = ProtocolState.CONNECTING _lastError.value = null diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/AuthFlow.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/AuthFlow.kt index cc97cc3..0f17ccd 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/auth/AuthFlow.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/AuthFlow.kt @@ -78,11 +78,7 @@ fun AuthFlow( AuthScreen.SEED_PHRASE -> { SeedPhraseScreen( isDarkTheme = isDarkTheme, - onBack = { - currentScreen = if (hasExistingAccount && accounts.size > 1) - AuthScreen.SELECT_ACCOUNT - else AuthScreen.WELCOME - }, + onBack = { currentScreen = AuthScreen.WELCOME }, onConfirm = { words -> seedPhrase = words currentScreen = AuthScreen.CONFIRM_SEED @@ -111,11 +107,7 @@ fun AuthFlow( AuthScreen.IMPORT_SEED -> { ImportSeedPhraseScreen( isDarkTheme = isDarkTheme, - onBack = { - currentScreen = if (hasExistingAccount && accounts.size > 1) - AuthScreen.SELECT_ACCOUNT - else AuthScreen.WELCOME - }, + onBack = { currentScreen = AuthScreen.WELCOME }, onSeedPhraseImported = { words -> seedPhrase = words currentScreen = AuthScreen.SET_PASSWORD diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/ConfirmSeedPhraseScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/ConfirmSeedPhraseScreen.kt index 441c190..472c74a 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/auth/ConfirmSeedPhraseScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/ConfirmSeedPhraseScreen.kt @@ -373,8 +373,8 @@ fun ConfirmSeedPhraseScreen( colors = ButtonDefaults.buttonColors( containerColor = PrimaryBlue, contentColor = Color.White, - disabledContainerColor = if (isDarkTheme) Color(0xFF3A3A3A) else Color(0xFFE8E8E8), - disabledContentColor = if (isDarkTheme) Color(0xFF666666) else Color(0xFF999999) + disabledContainerColor = PrimaryBlue.copy(alpha = 0.5f), + disabledContentColor = Color.White.copy(alpha = 0.5f) ), shape = RoundedCornerShape(12.dp) ) { diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/ImportSeedPhraseScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/ImportSeedPhraseScreen.kt index e8c7822..c44b78c 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/auth/ImportSeedPhraseScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/ImportSeedPhraseScreen.kt @@ -271,8 +271,8 @@ fun ImportSeedPhraseScreen( colors = ButtonDefaults.buttonColors( containerColor = PrimaryBlue, contentColor = Color.White, - disabledContainerColor = if (isDarkTheme) Color(0xFF3A3A3A) else Color(0xFFE8E8E8), - disabledContentColor = if (isDarkTheme) Color(0xFF666666) else Color(0xFF999999) + disabledContainerColor = PrimaryBlue.copy(alpha = 0.5f), + disabledContentColor = Color.White.copy(alpha = 0.5f) ), shape = RoundedCornerShape(12.dp) ) { diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/SeedPhraseScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/SeedPhraseScreen.kt index 025b9a1..c05b0ee 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/auth/SeedPhraseScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/SeedPhraseScreen.kt @@ -227,8 +227,8 @@ fun SeedPhraseScreen( colors = ButtonDefaults.buttonColors( containerColor = PrimaryBlue, contentColor = Color.White, - disabledContainerColor = if (isDarkTheme) Color(0xFF3A3A3A) else Color(0xFFE8E8E8), - disabledContentColor = if (isDarkTheme) Color(0xFF666666) else Color(0xFF999999) + disabledContainerColor = PrimaryBlue.copy(alpha = 0.5f), + disabledContentColor = Color.White.copy(alpha = 0.5f) ), shape = RoundedCornerShape(12.dp) ) { diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/SelectAccountScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/SelectAccountScreen.kt index b36699f..0a0cccd 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/auth/SelectAccountScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/SelectAccountScreen.kt @@ -278,6 +278,7 @@ private fun AccountListItem( modifier = Modifier .fillMaxWidth() .height(80.dp) + .clip(RoundedCornerShape(16.dp)) .clickable(onClick = onClick), shape = RoundedCornerShape(16.dp), colors = CardDefaults.cardColors( @@ -386,6 +387,7 @@ private fun AddAccountButton( modifier = Modifier .fillMaxWidth() .height(64.dp) + .clip(RoundedCornerShape(16.dp)) .clickable(onClick = onClick), shape = RoundedCornerShape(16.dp), colors = CardDefaults.cardColors(containerColor = surfaceColor), diff --git a/app/src/main/java/com/rosetta/messenger/ui/auth/UnlockScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/auth/UnlockScreen.kt index e00e492..f490115 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/auth/UnlockScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/auth/UnlockScreen.kt @@ -208,6 +208,7 @@ fun UnlockScreen( Card( modifier = Modifier .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)) .clickable { isDropdownExpanded = !isDropdownExpanded }, colors = CardDefaults.cardColors(containerColor = cardBackground), shape = RoundedCornerShape(16.dp) @@ -352,6 +353,7 @@ fun UnlockScreen( modifier = Modifier .fillMaxWidth() .scale(itemScale) + .clip(RoundedCornerShape(12.dp)) .clickable { selectedAccount = account isDropdownExpanded = false diff --git a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt index 7fd4acf..82b3fa2 100644 --- a/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt +++ b/app/src/main/java/com/rosetta/messenger/ui/chats/ChatsListScreen.kt @@ -337,12 +337,13 @@ fun ChatsListScreen( ModalNavigationDrawer( drawerState = drawerState, drawerContent = { - ModalDrawerSheet( + // Custom drawer content - use PermanentDrawerSheet with no insets + PermanentDrawerSheet( modifier = Modifier .width(300.dp) .fillMaxHeight(), drawerContainerColor = drawerBackgroundColor, - windowInsets = WindowInsets(0, 0, 0, 0) // Remove all insets to cover entire screen + windowInsets = WindowInsets(0, 0, 0, 0) ) { // Header with logo and theme toggle Box( @@ -389,17 +390,17 @@ fun ChatsListScreen( Spacer(modifier = Modifier.height(16.dp)) - // Public key - truncated and styled + // Public key - truncated and styled like nickname val truncatedKey = if (accountPublicKey.length > 12) { "${accountPublicKey.take(6)}...${accountPublicKey.takeLast(4)}" } else accountPublicKey Text( text = truncatedKey, - fontSize = 13.sp, - fontWeight = FontWeight.Normal, - color = secondaryTextColor, - letterSpacing = 0.5.sp, + fontSize = 17.sp, + fontWeight = FontWeight.SemiBold, + color = textColor, + letterSpacing = 0.3.sp, maxLines = 1 ) } @@ -474,9 +475,8 @@ fun ChatsListScreen( ) } - // Spacer to push content above navigation bar - Spacer(modifier = Modifier.navigationBarsPadding()) - Spacer(modifier = Modifier.height(16.dp)) + // Bottom spacer for navigation bar area (content padding only) + Spacer(modifier = Modifier.height(48.dp)) } } ) {