diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionFragment.kt index 55d1ea005b..ecc0f9f14a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionFragment.kt @@ -46,7 +46,11 @@ class ChatColorSelectionFragment : Fragment(R.layout.chat_color_selection_fragme viewModel.events.observe(viewLifecycleOwner) { event -> if (event is ChatColorSelectionViewModel.Event.ConfirmDeletion) { - showWarningDialog(event) + if (event.usageCount > 0) { + showWarningDialogForMultipleUses(event) + } else { + showWarningDialogForNoUses(event) + } } } } @@ -56,7 +60,20 @@ class ChatColorSelectionFragment : Fragment(R.layout.chat_color_selection_fragme viewModel.refresh() } - private fun showWarningDialog(confirmDeletion: ChatColorSelectionViewModel.Event.ConfirmDeletion) { + private fun showWarningDialogForNoUses(confirmDeletion: ChatColorSelectionViewModel.Event.ConfirmDeletion) { + MaterialAlertDialogBuilder(requireContext()) + .setMessage(R.string.ChatColorSelectionFragment__delete_chat_color) + .setPositiveButton(R.string.ChatColorSelectionFragment__delete) { dialog, _ -> + viewModel.deleteNow(confirmDeletion.chatColors) + dialog.dismiss() + } + .setNegativeButton(android.R.string.cancel) { dialog, _ -> + dialog.dismiss() + } + .show() + } + + private fun showWarningDialogForMultipleUses(confirmDeletion: ChatColorSelectionViewModel.Event.ConfirmDeletion) { MaterialAlertDialogBuilder(requireContext()) .setTitle(R.string.ChatColorSelectionFragment__delete_color) .setMessage(resources.getQuantityString(R.plurals.ChatColorSelectionFragment__this_custom_color_is_used, confirmDeletion.usageCount, confirmDeletion.usageCount)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt index a9f811d6b5..ace26b02a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorSelectionViewModel.kt @@ -43,11 +43,7 @@ class ChatColorSelectionViewModel(private val repository: ChatColorSelectionRepo fun startDeletion(chatColors: ChatColors) { repository.getUsageCount(chatColors.id) { - if (it > 0) { - internalEvents.postValue(Event.ConfirmDeletion(it, chatColors)) - } else { - deleteNow(chatColors) - } + internalEvents.postValue(Event.ConfirmDeletion(it, chatColors)) } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d39427d32c..3335be556b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3498,6 +3498,7 @@ This custom color is used in %1$d chat. Do you want to delete it for all chats? This custom color is used in %1$d chats. Do you want to delete it for all chats? + Delete chat color? Solid