Confirm deleting searches

pull/207/head
M66B 4 years ago
parent 9e1eee0420
commit 6dec972edf

@ -399,6 +399,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
static final int REQUEST_BUTTONS = 24; static final int REQUEST_BUTTONS = 24;
private static final int REQUEST_ALL_READ = 25; private static final int REQUEST_ALL_READ = 25;
private static final int REQUEST_SAVE_SEARCH = 26; private static final int REQUEST_SAVE_SEARCH = 26;
private static final int REQUEST_DELETE_SEARCH = 27;
static final String ACTION_STORE_RAW = BuildConfig.APPLICATION_ID + ".STORE_RAW"; static final String ACTION_STORE_RAW = BuildConfig.APPLICATION_ID + ".STORE_RAW";
static final String ACTION_DECRYPT = BuildConfig.APPLICATION_ID + ".DECRYPT"; static final String ACTION_DECRYPT = BuildConfig.APPLICATION_ID + ".DECRYPT";
@ -4993,30 +4994,19 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
} }
private void onMenuDeleteSearch() { private void onMenuDeleteSearch() {
Bundle args = new Bundle(); if (criteria == null)
args.putLong("id", criteria == null ? -1 : criteria.id); return;
new SimpleTask<Void>() {
@Override
protected Void onExecute(Context context, Bundle args) throws Throwable {
long id = args.getLong("id");
DB db = DB.getInstance(context);
db.search().deleteSearch(id);
return null;
}
@Override Bundle args = new Bundle();
protected void onExecuted(Bundle args, Void data) { args.putString("question", getString(R.string.title_search_delete));
finish(); args.putString("remark", criteria.getTitle(getContext()));
} args.putLong("id", criteria.id);
args.putBoolean("warning", true);
@Override FragmentDialogAsk ask = new FragmentDialogAsk();
protected void onException(Bundle args, Throwable ex) { ask.setArguments(args);
Log.unexpectedError(getParentFragmentManager(), ex); ask.setTargetFragment(FragmentMessages.this, REQUEST_DELETE_SEARCH);
} ask.show(getParentFragmentManager(), "swipe:delete");
}.execute(this, args, "search:delete");
} }
private void onMenuFolders(long account) { private void onMenuFolders(long account) {
@ -5415,6 +5405,30 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
}.execute(this, args, "search:save"); }.execute(this, args, "search:save");
} }
private void onDeleteSearch(Bundle args) {
new SimpleTask<Void>() {
@Override
protected Void onExecute(Context context, Bundle args) throws Throwable {
long id = args.getLong("id");
DB db = DB.getInstance(context);
db.search().deleteSearch(id);
return null;
}
@Override
protected void onExecuted(Bundle args, Void data) {
finish();
}
@Override
protected void onException(Bundle args, Throwable ex) {
Log.unexpectedError(getParentFragmentManager(), ex);
}
}.execute(this, args, "search:delete");
}
private void onMenuSyncMore() { private void onMenuSyncMore() {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("folder", folder); args.putLong("folder", folder);
@ -7219,6 +7233,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
if (resultCode == RESULT_OK && data != null) if (resultCode == RESULT_OK && data != null)
onSaveSearch(data.getBundleExtra("args")); onSaveSearch(data.getBundleExtra("args"));
break; break;
case REQUEST_DELETE_SEARCH:
if (resultCode == RESULT_OK && data != null)
onDeleteSearch(data.getBundleExtra("args"));
break;
} }
} catch (Throwable ex) { } catch (Throwable ex) {
Log.e(ex); Log.e(ex);

@ -1472,6 +1472,8 @@
<string name="title_search_server">Search on server</string> <string name="title_search_server">Search on server</string>
<string name="title_search_in">Search in</string> <string name="title_search_in">Search in</string>
<string name="title_search_delete">Delete saved search?</string>
<string name="title_sort_on">Sort on</string> <string name="title_sort_on">Sort on</string>
<string name="title_sort_on_time">Time</string> <string name="title_sort_on_time">Time</string>
<string name="title_sort_on_unread">Unread</string> <string name="title_sort_on_unread">Unread</string>

Loading…
Cancel
Save