diff --git a/jni/dc_wrapper.c b/jni/dc_wrapper.c
index f82dd9a27..6fe99ba11 100644
--- a/jni/dc_wrapper.c
+++ b/jni/dc_wrapper.c
@@ -738,6 +738,12 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcContext_imexHasBackup(JNIEnv *env, j
}
+JNIEXPORT void Java_com_b44t_messenger_DcContext_emptyServer(JNIEnv *env, jobject obj, jint flags)
+{
+ dc_empty_server(get_dc_context(env, obj), flags);
+}
+
+
JNIEXPORT jint Java_com_b44t_messenger_DcContext_addAddressBook(JNIEnv *env, jobject obj, jstring adrbook)
{
CHAR_REF(adrbook);
diff --git a/res/layout/empty_folder_options.xml b/res/layout/empty_folder_options.xml
new file mode 100644
index 000000000..d1930c3e3
--- /dev/null
+++ b/res/layout/empty_folder_options.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/xml/preferences_advanced.xml b/res/xml/preferences_advanced.xml
index 771fae720..f5594c55f 100644
--- a/res/xml/preferences_advanced.xml
+++ b/res/xml/preferences_advanced.xml
@@ -42,16 +42,16 @@
-
+
+
+
-
-
diff --git a/src/com/b44t/messenger/DcContext.java b/src/com/b44t/messenger/DcContext.java
index 6d8f3f42a..228123ff5 100644
--- a/src/com/b44t/messenger/DcContext.java
+++ b/src/com/b44t/messenger/DcContext.java
@@ -69,6 +69,9 @@ public class DcContext {
public final static int DC_SHOW_EMAILS_ACCEPTED_CONTACTS = 1;
public final static int DC_SHOW_EMAILS_ALL = 2;
+ public final static int DC_EMPTY_MVBOX = 0x01;
+ public final static int DC_EMPTY_INBOX = 0x02;
+
public DcContext(String osName) {
handleEvent(0,0,0); // call handleEvent() to make sure it is not optimized away and JNI won't find it
contextCPtr = createContextCPtr(osName);
@@ -105,6 +108,7 @@ public class DcContext {
public native boolean continueKeyTransfer (int msg_id, String setup_code);
public native void imex (int what, String dir);
public native String imexHasBackup (String dir);
+ public native void emptyServer (int flags);
public native int checkPassword (String pw);
public native boolean mayBeValidAddr (String addr);
public native int lookupContactIdByAddr(String addr);
diff --git a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java
index 179fc2fec..6e384ce66 100644
--- a/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java
+++ b/src/org/thoughtcrime/securesms/preferences/AdvancedPreferenceFragment.java
@@ -288,20 +288,23 @@ public class AdvancedPreferenceFragment extends ListSummaryPreferenceFragment
public boolean onPreferenceClick(Preference preference) {
View gl = View.inflate(getActivity(), R.layout.empty_folder_options, null);
new AlertDialog.Builder(getActivity())
- .setTitle("Empty folders on server")
- .setMessage("This will delete all messages in the given folders on the server.")
+ .setTitle("Empty server folders")
+ .setMessage("This function helps to free space on your server by deleting messages in the given folders. Messages on this device will not be deleted.")
.setView(gl)
.setNegativeButton(R.string.cancel, null)
- .setPositiveButton(R.string.ok, (dialog, which) -> {
+ .setPositiveButton("Delete messages", (dialog, which) -> {
int flags = 0;
- CheckBox cb = gl.findViewById(R.id.empty_inbox_chat_folder);
+ CheckBox cb = gl.findViewById(R.id.empty_inbox_folder);
if (cb!=null && cb.isChecked()) {
- flags |= DC_EMPTY_INBOX;
+ flags |= DcContext.DC_EMPTY_INBOX;
}
+ cb = gl.findViewById(R.id.empty_deltachat_folder);
if (cb!=null && cb.isChecked()) {
- flags |= DC_EMPTY_MVBOX;
+ flags |= DcContext.DC_EMPTY_MVBOX;
+ }
+ if (flags!=0) {
+ dcContext.emptyServer(flags);
}
-
})
.show();
return true;