From c18cef03e64a0fc83f3ae908e14809584bc30dc2 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 2 Dec 2018 14:59:18 +0100 Subject: [PATCH] Navigate to message list from sync operation --- .../eu/faircode/email/AdapterOperation.java | 62 ++++++++++++------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AdapterOperation.java b/app/src/main/java/eu/faircode/email/AdapterOperation.java index 36c978a155..3264fbb9cc 100644 --- a/app/src/main/java/eu/faircode/email/AdapterOperation.java +++ b/app/src/main/java/eu/faircode/email/AdapterOperation.java @@ -95,30 +95,50 @@ public class AdapterOperation extends RecyclerView.Adapter() { + @Override + protected EntityFolder onLoad(Context context, Bundle args) { + long id = args.getLong("id"); + return DB.getInstance(context).folder().getFolder(id); + } - new SimpleTask() { - @Override - protected EntityMessage onLoad(Context context, Bundle args) { - long id = args.getLong("id"); - return DB.getInstance(context).message().getMessage(id); - } + @Override + protected void onLoaded(Bundle args, EntityFolder folder) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_VIEW_MESSAGES) + .putExtra("account", folder.account) + .putExtra("folder", folder.id) + .putExtra("outgoing", folder.isOutgoing())); + } + }.load(context, owner, args); + } else { + Bundle args = new Bundle(); + args.putLong("id", operation.message); - @Override - protected void onLoaded(Bundle args, EntityMessage message) { - LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); - lbm.sendBroadcast( - new Intent(ActivityView.ACTION_VIEW_THREAD) - .putExtra("account", message.account) - .putExtra("thread", message.thread) - .putExtra("id", message.id) - .putExtra("found", message.ui_found)); - } - }.load(context, owner, args); + new SimpleTask() { + @Override + protected EntityMessage onLoad(Context context, Bundle args) { + long id = args.getLong("id"); + return DB.getInstance(context).message().getMessage(id); + } + + @Override + protected void onLoaded(Bundle args, EntityMessage message) { + LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context); + lbm.sendBroadcast( + new Intent(ActivityView.ACTION_VIEW_THREAD) + .putExtra("account", message.account) + .putExtra("thread", message.thread) + .putExtra("id", message.id) + .putExtra("found", message.ui_found)); + } + }.load(context, owner, args); + } } @Override