Handle deleted drafts

pull/156/head
M66B 6 years ago
parent 8bdcc9c8f7
commit 6929f0cd99

@ -2059,7 +2059,7 @@ public class FragmentCompose extends FragmentBase {
private SimpleTask<EntityMessage> draftLoader = new SimpleTask<EntityMessage>() { private SimpleTask<EntityMessage> draftLoader = new SimpleTask<EntityMessage>() {
@Override @Override
protected EntityMessage onExecute(Context context, Bundle args) throws IOException { protected EntityMessage onExecute(Context context, Bundle args) throws Throwable {
String action = args.getString("action"); String action = args.getString("action");
long id = args.getLong("id", -1); long id = args.getLong("id", -1);
long reference = args.getLong("reference", -1); long reference = args.getLong("reference", -1);
@ -2077,7 +2077,7 @@ public class FragmentCompose extends FragmentBase {
if (draft == null || draft.ui_hide) { if (draft == null || draft.ui_hide) {
// New draft // New draft
if ("edit".equals(action)) if ("edit".equals(action))
throw new IllegalStateException("Draft not found hide=" + (draft != null)); throw new MessageRemovedException("Draft for edit was deleted hide=" + (draft != null));
EntityFolder drafts; EntityFolder drafts;
EntityMessage ref = db.message().getMessage(reference); EntityMessage ref = db.message().getMessage(reference);
@ -2467,7 +2467,9 @@ public class FragmentCompose extends FragmentBase {
pbWait.setVisibility(View.GONE); pbWait.setVisibility(View.GONE);
// External app sending absolute file // External app sending absolute file
if (ex instanceof SecurityException) if (ex instanceof MessageRemovedException)
finish();
else if (ex instanceof SecurityException)
handleFileShare(); handleFileShare();
else if (ex instanceof IllegalArgumentException) else if (ex instanceof IllegalArgumentException)
Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show(); Snackbar.make(view, ex.getMessage(), Snackbar.LENGTH_LONG).show();
@ -2539,8 +2541,8 @@ public class FragmentCompose extends FragmentBase {
EntityIdentity identity = db.identity().getIdentity(iid); EntityIdentity identity = db.identity().getIdentity(iid);
// Draft deleted by server // Draft deleted by server
if (draft == null) if (draft == null || draft.ui_hide)
throw new MessageRemovedException("Draft for action was deleted"); throw new MessageRemovedException("Draft for action was deleted hide=" + (draft != null));
Log.i("Load action id=" + draft.id + " action=" + action); Log.i("Load action id=" + draft.id + " action=" + action);

Loading…
Cancel
Save