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