add confirmation dialog for deleting files

Daniel Gultsch created

fixes #3202, closes #3193, closes #3214

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java | 22 
src/main/res/values/strings.xml                                   |  5 
2 files changed, 18 insertions(+), 9 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java πŸ”—

@@ -1467,7 +1467,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
         final CheckBox endConversationCheckBox = dialogView.findViewById(R.id.end_conversation_checkbox);
         builder.setView(dialogView);
         builder.setNegativeButton(getString(R.string.cancel), null);
-        builder.setPositiveButton(getString(R.string.delete_messages), (dialog, which) -> {
+        builder.setPositiveButton(getString(R.string.confirm), (dialog, which) -> {
             this.activity.xmppConnectionService.clearConversationHistory(conversation);
             if (endConversationCheckBox.isChecked()) {
                 this.activity.xmppConnectionService.archiveConversation(conversation);
@@ -1647,12 +1647,20 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
     }
 
 
-    private void deleteFile(Message message) {
-        if (activity.xmppConnectionService.getFileBackend().deleteFile(message)) {
-            message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
-            activity.onConversationsListItemUpdated();
-            refresh();
-        }
+    private void deleteFile(final Message message) {
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
+        builder.setNegativeButton(R.string.cancel, null);
+        builder.setTitle(R.string.delete_file_dialog);
+        builder.setMessage(R.string.delete_file_dialog_msg);
+        builder.setPositiveButton(R.string.confirm, (dialog, which) -> {
+            if (activity.xmppConnectionService.getFileBackend().deleteFile(message)) {
+                message.setTransferable(new TransferablePlaceholder(Transferable.STATUS_DELETED));
+                activity.onConversationsListItemUpdated();
+                refresh();
+            }
+        });
+        builder.create().show();
+
     }
 
     private void resendMessage(final Message message) {

src/main/res/values/strings.xml πŸ”—

@@ -77,8 +77,9 @@
     <string name="sharing_files_please_wait">Sharing files. Please wait…</string>
     <string name="action_clear_history">Clear history</string>
     <string name="clear_conversation_history">Clear Conversation History</string>
-    <string name="clear_histor_msg">Do you want to delete all messages within this Conversation?\n\n<b>Warning:</b> This will not influence messages stored on other devices or servers.</string>
-    <string name="delete_messages">Delete messages</string>
+    <string name="clear_histor_msg">Are you sure you want to delete all messages within this conversation?\n\n<b>Warning:</b> This will not delete copies of those messages that are stored on other devices or servers.</string>
+    <string name="delete_file_dialog">Delete file</string>
+    <string name="delete_file_dialog_msg">Are you sure you want to delete this file?\n\n<b>Warning:</b> This will not delete copies of this file that are stored on other devices or servers. </string>
     <string name="also_end_conversation">End this conversation afterwards</string>
     <string name="choose_presence">Choose device</string>
     <string name="send_unencrypted_message">Send unencrypted message</string>