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 72fdf2e344..9966c847d0 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 @@ -74,6 +74,13 @@ class ChatFoldersFragment : ComposeFragment() { val navController: NavController by remember { mutableStateOf(findNavController()) } viewModel.loadCurrentFolders(requireContext()) + LaunchedEffect(Unit) { + if (viewModel.shouldShowEducationSheet()) { + SignalStore.uiHints.hasSeenChatFoldersEducationSheet = true + navController.safeNavigate(R.id.action_chatFoldersFragment_to_chatFoldersEducationSheet) + } + } + Scaffolds.Settings( title = stringResource(id = R.string.ChatsSettingsFragment__chat_folders), onNavigationClick = { requireActivity().onNavigateUp() }, @@ -82,7 +89,6 @@ class ChatFoldersFragment : ComposeFragment() { ) { contentPadding: PaddingValues -> FoldersScreen( state = state, - navController = navController, modifier = Modifier.padding(contentPadding), onFolderClicked = { navController.safeNavigate(ChatFoldersFragmentDirections.actionChatFoldersFragmentToCreateFoldersFragment(it.id, null)) @@ -116,7 +122,6 @@ class ChatFoldersFragment : ComposeFragment() { @Composable fun FoldersScreen( state: ChatFoldersSettingsState, - navController: NavController? = null, modifier: Modifier = Modifier, onFolderClicked: (ChatFolderRecord) -> Unit = {}, onAdd: (ChatFolderRecord) -> Unit = {}, @@ -128,13 +133,6 @@ fun FoldersScreen( val listState = rememberLazyListState() val reorderableListState = rememberReorderableListState(listState, includeHeader = true, includeFooter = true, onEvent = onReorderListEvent) - LaunchedEffect(Unit) { - if (!SignalStore.uiHints.hasSeenChatFoldersEducationSheet) { - SignalStore.uiHints.hasSeenChatFoldersEducationSheet = true - navController?.safeNavigate(R.id.action_chatFoldersFragment_to_chatFoldersEducationSheet) - } - } - if (state.showDeleteDialog) { Dialogs.SimpleAlertDialog( title = "", diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt index f454a76e5b..d5846c4ad4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChatFoldersViewModel.kt @@ -8,10 +8,12 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.signal.core.util.swap import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.contacts.paged.ChatType import org.thoughtcrime.securesms.database.SignalDatabase +import org.thoughtcrime.securesms.keyvalue.SignalStore import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientId @@ -39,6 +41,16 @@ class ChatFoldersViewModel : ViewModel() { } } + suspend fun shouldShowEducationSheet(): Boolean { + if (SignalStore.uiHints.hasSeenChatFoldersEducationSheet) { + return false + } + + return withContext(Dispatchers.Default) { + ChatFoldersRepository.getFolderCount() == 1 + } + } + private fun getSuggestedFolders(context: Context, currentFolders: List): List { var showIndividualSuggestion = true var showGroupSuggestion = true 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 eb7dcbd33a..f511689175 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 @@ -106,7 +106,7 @@ class CreateFoldersFragment : ComposeFragment() { } LaunchedEffect(Unit) { - if (!SignalStore.uiHints.hasSeenChatFoldersEducationSheet) { + if (viewModel.shouldShowEducationSheet()) { SignalStore.uiHints.hasSeenChatFoldersEducationSheet = true navController.safeNavigate(R.id.action_createFoldersFragment_to_chatFoldersEducationSheet) }