diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6e94022f9..1541c70d0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -179,6 +179,10 @@
- This will permanently delete the selected message.
- This will permanently delete all %1$d selected messages.
+
+ - This will permanently delete the selected message here and on the server.
+ - This will permanently delete all %1$d selected messages here and one the server.
+
Save to storage?
- Saving this media to storage will allow any other apps on your device to access it.\n\nContinue?
diff --git a/src/com/b44t/messenger/DcMsg.java b/src/com/b44t/messenger/DcMsg.java
index ce060e824..f66c27c4e 100644
--- a/src/com/b44t/messenger/DcMsg.java
+++ b/src/com/b44t/messenger/DcMsg.java
@@ -33,6 +33,7 @@ import org.thoughtcrime.securesms.recipients.RecipientProvider;
import java.util.Collections;
import java.util.List;
+import java.util.Set;
public class DcMsg {
@@ -114,6 +115,15 @@ public class DcMsg {
public native void setMediainfo (String author, String trackname);
// aliases and higher-level tools
+ public static int[] msgSetToIds(final Set dcMsgs) {
+ int cnt = dcMsgs==null? 0 : dcMsgs.size();
+ int[] ids = new int[cnt];
+ int i = 0;
+ for (DcMsg dcMsg : dcMsgs) {
+ ids[i++] = dcMsg.getId();
+ }
+ return ids;
+ }
public boolean isOutgoing() {
return getFromId() == DcContact.DC_CONTACT_ID_SELF;
diff --git a/src/org/thoughtcrime/securesms/ConversationFragment.java b/src/org/thoughtcrime/securesms/ConversationFragment.java
index 52d82f5d5..d1d940651 100644
--- a/src/org/thoughtcrime/securesms/ConversationFragment.java
+++ b/src/org/thoughtcrime/securesms/ConversationFragment.java
@@ -347,38 +347,14 @@ public class ConversationFragment extends Fragment
builder.setIconAttribute(R.attr.dialog_alert_icon);
builder.setTitle(getActivity().getResources().getQuantityString(R.plurals.ConversationFragment_delete_selected_messages, messagesCount, messagesCount));
- builder.setMessage(getActivity().getResources().getQuantityString(R.plurals.ConversationFragment_this_will_permanently_delete_all_n_selected_messages, messagesCount, messagesCount));
+ builder.setMessage(getActivity().getResources().getQuantityString(R.plurals.ConversationFragment_this_will_delete_n_selected_messages_here_and_on_server, messagesCount, messagesCount));
builder.setCancelable(true);
builder.setPositiveButton(R.string.delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- /* TODO: delete messages
- new ProgressDialogAsyncTask(getActivity(),
- R.string.ConversationFragment_deleting,
- R.string.ConversationFragment_deleting_messages)
- {
- @Override
- protected Void doInBackground(MessageRecord... messageRecords) {
- for (MessageRecord messageRecord : messageRecords) {
- boolean threadDeleted;
-
- if (messageRecord.isMms()) {
- threadDeleted = DatabaseFactory.getMmsDatabase(getActivity()).delete(messageRecord.getId());
- } else {
- threadDeleted = DatabaseFactory.getSmsDatabase(getActivity()).deleteMessage(messageRecord.getId());
- }
-
- if (threadDeleted) {
- threadId = -1;
- listener.setThreadId(threadId);
- }
- }
-
- return null;
- }
- }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, messageRecords.toArray(new MessageRecord[messageRecords.size()]));
- */
+ int[] ids = DcMsg.msgSetToIds(messageRecords);
+ dcContext.deleteMsgs(ids);
}
});