From fe40324599b856b437afa9bdb0c1ca93c64335d6 Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Wed, 30 Oct 2024 13:56:44 -0400 Subject: [PATCH] Update various UI for chat folders. --- .../app/chats/folders/ChatFoldersFragment.kt | 2 +- .../chats/folders/CreateFoldersFragment.kt | 20 +++++++++---------- .../conversationlist/ChatFolderAdapter.kt | 2 ++ .../securesms/database/ThreadTable.kt | 8 +++++--- .../app_settings_with_change_number.xml | 8 ++++++-- 5 files changed, 23 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersFragment.kt index 5012b7dee2..4e9d217a9c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersFragment.kt @@ -75,7 +75,7 @@ class ChatFoldersFragment : ComposeFragment() { Scaffolds.Settings( title = stringResource(id = R.string.ChatsSettingsFragment__chat_folders), - onNavigationClick = { navController.popBackStack() }, + onNavigationClick = { requireActivity().onNavigateUp() }, navigationIconPainter = painterResource(id = R.drawable.ic_arrow_left_24), navigationContentDescription = stringResource(id = R.string.Material3SearchToolbar__close) ) { contentPadding: PaddingValues -> diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/CreateFoldersFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/CreateFoldersFragment.kt index 593c7121f8..5ede362e10 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/CreateFoldersFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/CreateFoldersFragment.kt @@ -82,7 +82,7 @@ class CreateFoldersFragment : ComposeFragment() { if (viewModel.hasChanges() && !viewModel.hasEmptyName()) { viewModel.showConfirmationDialog(true) } else { - findNavController().popBackStack() + requireActivity().onNavigateUp() } } } @@ -116,7 +116,7 @@ class CreateFoldersFragment : ComposeFragment() { if (viewModel.hasChanges() && !viewModel.hasEmptyName()) { viewModel.showConfirmationDialog(true) } else { - navController.popBackStack() + requireActivity().onNavigateUp() } }, navigationIconPainter = painterResource(id = R.drawable.ic_arrow_left_24), @@ -142,25 +142,23 @@ class CreateFoldersFragment : ComposeFragment() { onDeleteClicked = { viewModel.showDeleteDialog(true) }, onDeleteConfirmed = { viewModel.deleteFolder(requireContext()) - navController.popBackStack() + requireActivity().onNavigateUp() }, onDeleteDismissed = { viewModel.showDeleteDialog(false) }, - onCreateConfirmed = { shouldExit -> + onCreateConfirmed = { if (isNewFolder) { viewModel.createFolder(requireContext()) } else { viewModel.updateFolder(requireContext()) } - if (shouldExit) { - navController.popBackStack() - } + requireActivity().onNavigateUp() }, onCreateDismissed = { shouldExit -> viewModel.showConfirmationDialog(false) if (shouldExit) { - navController.popBackStack() + requireActivity().onNavigateUp() } }, onShowToast = { @@ -191,7 +189,7 @@ fun CreateFolderScreen( onDeleteClicked: () -> Unit = {}, onDeleteConfirmed: () -> Unit = {}, onDeleteDismissed: () -> Unit = {}, - onCreateConfirmed: (Boolean) -> Unit = {}, + onCreateConfirmed: () -> Unit = {}, onCreateDismissed: (Boolean) -> Unit = {}, onShowToast: () -> Unit = {} ) { @@ -368,7 +366,7 @@ fun CreateFolderScreen( if (hasChanges && isNewFolder) { Buttons.MediumTonal( - onClick = { onCreateConfirmed(true) }, + onClick = { onCreateConfirmed() }, modifier = modifier .align(Alignment.BottomEnd) .padding(end = 16.dp, bottom = 16.dp) @@ -395,7 +393,7 @@ fun CreateFolderScreen( if (state.currentFolder.name.isEmpty()) { onShowToast() } else { - onCreateConfirmed(true) + onCreateConfirmed() } }, modifier = modifier diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ChatFolderAdapter.kt b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ChatFolderAdapter.kt index 4dd875ac39..047048dadb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ChatFolderAdapter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ChatFolderAdapter.kt @@ -58,8 +58,10 @@ class ChatFolderAdapter(val callbacks: Callbacks) : MappingAdapter() { } else { ColorStateList.valueOf(ContextCompat.getColor(itemView.context, R.color.signal_colorSurface2)) } + name.setTextColor(ContextCompat.getColor(itemView.context, R.color.signal_colorOnSurface)) } else { itemView.backgroundTintList = ColorStateList.valueOf(ContextCompat.getColor(itemView.context, R.color.transparent)) + name.setTextColor(ContextCompat.getColor(itemView.context, R.color.signal_colorOnSurfaceVariant)) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt index 1fef9dd423..5b20dd93ac 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt @@ -1070,7 +1070,8 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa FROM $TABLE_NAME LEFT OUTER JOIN ${RecipientTable.TABLE_NAME} ON $TABLE_NAME.$RECIPIENT_ID = ${RecipientTable.TABLE_NAME}.${RecipientTable.ID} WHERE - $ACTIVE = 1 + $ACTIVE = 1 AND + $ARCHIVED = 0 $folderQuery """ return readableDatabase.rawQuery(query, null).readToList { cursor -> cursor.requireLong(ID) } @@ -1081,7 +1082,7 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa readableDatabase .select(RECIPIENT_ID) .from(TABLE_NAME) - .where("$ACTIVE = 1") + .where("$ACTIVE = 1 AND $ARCHIVED = 0") .run() .readToList { cursor -> RecipientId.from(cursor.requireLong(RECIPIENT_ID)) @@ -1094,7 +1095,8 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa FROM $TABLE_NAME LEFT OUTER JOIN ${RecipientTable.TABLE_NAME} ON $TABLE_NAME.$RECIPIENT_ID = ${RecipientTable.TABLE_NAME}.${RecipientTable.ID} WHERE - $ACTIVE = 1 + $ACTIVE = 1 AND + $ARCHIVED = 0 $folderQuery """ readableDatabase.rawQuery(query, null).readToList { cursor -> diff --git a/app/src/main/res/navigation/app_settings_with_change_number.xml b/app/src/main/res/navigation/app_settings_with_change_number.xml index 63227c442a..06e667385f 100644 --- a/app/src/main/res/navigation/app_settings_with_change_number.xml +++ b/app/src/main/res/navigation/app_settings_with_change_number.xml @@ -696,7 +696,9 @@ app:enterAnim="@anim/fragment_open_enter" app:exitAnim="@anim/fragment_open_exit" app:popEnterAnim="@anim/fragment_close_enter" - app:popExitAnim="@anim/fragment_close_exit" /> + app:popExitAnim="@anim/fragment_close_exit" + app:popUpTo="@id/app_settings" + app:popUpToInclusive="true" /> + app:popExitAnim="@anim/fragment_close_exit" + app:popUpTo="@id/app_settings" + app:popUpToInclusive="true" />