Added enable action to disabled snackbar

This commit is contained in:
M66B
2019-02-19 19:47:23 +00:00
parent 0bc172aab0
commit 7f6a7033a7
3 changed files with 30 additions and 7 deletions

View File

@@ -1521,7 +1521,7 @@ public class FragmentCompose extends FragmentBase {
if (draft == null || draft.ui_hide) {
// New draft
if ("edit".equals(action))
throw new IllegalStateException("Draft not found hide=" + (draft != null));
throw new IllegalArgumentException("Draft not found hide=" + (draft != null));
List<TupleIdentityEx> identities = db.identity().getComposableIdentities(null);
@@ -1741,7 +1741,7 @@ public class FragmentCompose extends FragmentBase {
} else {
if (!draft.content) {
if (draft.uid == null)
throw new IllegalStateException("Draft without uid");
throw new IllegalArgumentException("Draft without uid");
EntityOperation.queue(context, db, draft, EntityOperation.BODY);
}
@@ -2118,7 +2118,7 @@ public class FragmentCompose extends FragmentBase {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
if (!prefs.getBoolean("enabled", true))
throw new IllegalArgumentException(context.getString(R.string.title_sync_disabled));
throw new IllegalStateException(context.getString(R.string.title_sync_disabled));
// Delete draft (cannot move to outbox)
EntityOperation.queue(context, db, draft, EntityOperation.DELETE);
@@ -2198,7 +2198,18 @@ public class FragmentCompose extends FragmentBase {
finish();
else if (ex instanceof IllegalArgumentException || ex instanceof AddressException)
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
else
else if (ex instanceof IllegalStateException) {
Snackbar snackbar = Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG);
snackbar.setAction(R.string.title_enable, new View.OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.edit().putBoolean("enabled", true).apply();
ServiceSynchronize.reload(getContext(), "compose/disabled");
}
});
snackbar.show();
} else
Helper.unexpectedError(getContext(), getViewLifecycleOwner(), ex);
}
};