From 316dafb0baad20af635362b8750ab340c26d1345 Mon Sep 17 00:00:00 2001 From: Floens Date: Tue, 16 Jul 2019 22:17:27 +0200 Subject: [PATCH] watcher: enable clicking notification to go to thread --- .../java/org/floens/chan/ui/activity/StartActivity.java | 6 +++--- .../org/floens/chan/ui/controller/DrawerController.java | 4 ++++ .../chan/ui/notification/ThreadWatchNotifications.java | 6 ++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java index c26f04a5..03dd2ea5 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java @@ -308,16 +308,16 @@ public class StartActivity extends AppCompatActivity implements NfcAdapter.Creat protected void onNewIntent(Intent intent) { super.onNewIntent(intent); - // Handle WatchNotifier clicks + // Handle notification clicks if (intent.getExtras() != null) { int pinId = intent.getExtras().getInt("pin_id", -2); - if (pinId != -2 && mainNavigationController.getTop() instanceof BrowseController) { + if (pinId != -2) { if (pinId == -1) { drawerController.onMenuClicked(); } else { Pin pin = watchManager.findPinById(pinId); if (pin != null) { - browseController.showThread(pin.loadable, false); + drawerController.openPin(pin); } } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java index c0758194..99f0cb9e 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/DrawerController.java @@ -142,6 +142,10 @@ public class DrawerController extends Controller implements DrawerAdapter.Callba // TODO: probably twice because of some force redraw, fix that. drawerLayout.post(() -> drawerLayout.post(() -> drawerLayout.closeDrawer(drawer))); + openPin(pin); + } + + public void openPin(Pin pin) { ThreadController threadController = getTopThreadController(); if (threadController != null) { threadController.openPin(pin); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/notification/ThreadWatchNotifications.java b/Clover/app/src/main/java/org/floens/chan/ui/notification/ThreadWatchNotifications.java index f4b627c5..f6c505d9 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/notification/ThreadWatchNotifications.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/notification/ThreadWatchNotifications.java @@ -119,7 +119,7 @@ public class ThreadWatchNotifications extends NotificationHelper { addPostsToMessagingStyle(messagingStyle, posts); builder.setStyle(messagingStyle); - setNotificationIntent(builder); + setNotificationIntent(builder, pinWatcher.getPinId()); return builder; } @@ -151,7 +151,7 @@ public class ThreadWatchNotifications extends NotificationHelper { } } - private void setNotificationIntent(NotificationCompat.Builder builder) { + private void setNotificationIntent(NotificationCompat.Builder builder, int pinId) { Intent intent = new Intent(applicationContext, BoardActivity.class); intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); @@ -160,6 +160,8 @@ public class ThreadWatchNotifications extends NotificationHelper { Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); + intent.putExtra("pin_id", pinId); + PendingIntent pendingIntent = PendingIntent.getActivity( applicationContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);