diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 62c85be441..0d38d747ac 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -112,14 +112,13 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB private boolean searching = false; static final int REQUEST_UNIFIED = 1; - static final int REQUEST_FOLDER = 2; - static final int REQUEST_WHY = 3; - static final int REQUEST_ALERT = 4; - static final int REQUEST_THREAD = 5; - static final int REQUEST_OUTBOX = 6; - static final int REQUEST_ERROR = 7; - static final int REQUEST_UPDATE = 8; - static final int REQUEST_WIDGET = 9; + static final int REQUEST_WHY = 2; + static final int REQUEST_ALERT = 3; + static final int REQUEST_THREAD = 4; + static final int REQUEST_OUTBOX = 5; + static final int REQUEST_ERROR = 6; + static final int REQUEST_UPDATE = 7; + static final int REQUEST_WIDGET = 8; static final String ACTION_VIEW_FOLDERS = BuildConfig.APPLICATION_ID + ".VIEW_FOLDERS"; static final String ACTION_VIEW_MESSAGES = BuildConfig.APPLICATION_ID + ".VIEW_MESSAGES"; @@ -319,6 +318,8 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB private void init() { Bundle args = new Bundle(); + long account = getIntent().getLongExtra("account", -1); + FragmentBase fragment; switch (startup) { case "accounts": @@ -327,10 +328,14 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB break; case "folders": fragment = new FragmentFolders(); + args.putLong("account", account); break; case "primary": fragment = new FragmentFolders(); - args.putBoolean("primary", true); + if (account < 0) + args.putBoolean("primary", true); + else + args.putLong("account", account); break; default: fragment = new FragmentMessages(); diff --git a/app/src/main/java/eu/faircode/email/Widget.java b/app/src/main/java/eu/faircode/email/Widget.java index 5bf8100b33..72c1634e2c 100644 --- a/app/src/main/java/eu/faircode/email/Widget.java +++ b/app/src/main/java/eu/faircode/email/Widget.java @@ -55,18 +55,22 @@ public class Widget extends AppWidgetProvider { EntityFolder folder = db.folder().getFolderByType(account, EntityFolder.INBOX); - Intent view = new Intent(context, ActivityView.class); + PendingIntent pi; if (folder == null) { + Intent view = new Intent(context, ActivityView.class); view.setAction("unified"); view.putExtra("refresh", true); + view.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + pi = PendingIntent.getActivity(context, ActivityView.REQUEST_UNIFIED, view, PendingIntent.FLAG_UPDATE_CURRENT); } else { + Intent view = new Intent(context, ActivityView.class); view.setAction("folder:" + folder.id); view.putExtra("account", account); view.putExtra("type", folder.type); view.putExtra("refresh", true); + view.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + pi = PendingIntent.getActivity(context, appWidgetId, view, PendingIntent.FLAG_UPDATE_CURRENT); } - view.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); - PendingIntent pi = PendingIntent.getActivity(context, ActivityView.REQUEST_UNIFIED, view, PendingIntent.FLAG_UPDATE_CURRENT); TupleMessageStats stats = db.message().getUnseenWidget(account < 0 ? null : account); Integer unseen = (unseen_ignored ? stats.notifying : stats.unseen); diff --git a/app/src/main/java/eu/faircode/email/WidgetUnified.java b/app/src/main/java/eu/faircode/email/WidgetUnified.java index 4d944c6b0d..0325b36780 100644 --- a/app/src/main/java/eu/faircode/email/WidgetUnified.java +++ b/app/src/main/java/eu/faircode/email/WidgetUnified.java @@ -49,7 +49,7 @@ public class WidgetUnified extends AppWidgetProvider { view.putExtra("type", type); view.putExtra("refresh", true); view.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); - PendingIntent pi = PendingIntent.getActivity(context, ActivityView.REQUEST_FOLDER, view, PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent pi = PendingIntent.getActivity(context, appWidgetId, view, PendingIntent.FLAG_UPDATE_CURRENT); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_unified);