From aa35cd880defaa8a68bfa17b26c1aa4b2b8d9292 Mon Sep 17 00:00:00 2001 From: Carl Vuorinen Date: Thu, 16 May 2019 20:38:52 +0300 Subject: [PATCH] Handle clicking notifications Pass notificationId to main activity via result intent so that we can navigate (can't navigate straight from notifications activity) --- Habitica/res/layout/notification_item.xml | 1 + .../habitica/helpers/NotificationsManager.kt | 4 +++ .../habitica/ui/activities/MainActivity.kt | 10 +++++++ .../ui/activities/NotificationsActivity.kt | 10 +++++++ .../ui/fragments/NavigationDrawerFragment.kt | 17 ++++++++++- .../ui/viewmodels/NotificationsViewModel.kt | 28 +++++++++++++++++++ 6 files changed, 69 insertions(+), 1 deletion(-) diff --git a/Habitica/res/layout/notification_item.xml b/Habitica/res/layout/notification_item.xml index ed0e1db11..2f2b51049 100644 --- a/Habitica/res/layout/notification_item.xml +++ b/Habitica/res/layout/notification_item.xml @@ -1,5 +1,6 @@ navController.navigate(R.id.newsFragment) + Notification.Type.NEW_CHAT_MESSAGE.type -> clickNewChatMessage(notification, navController) + Notification.Type.NEW_MYSTERY_ITEMS.type -> navController.navigate(R.id.itemsFragment) + Notification.Type.UNALLOCATED_STATS_POINTS.type -> navController.navigate(R.id.statsFragment) + } + } + + private fun clickNewChatMessage(notification: Notification, navController: MainNavigationController) { + val data = notification.data as? NewChatMessageData + if (isPartyMessage(data)) { + navController.navigate(R.id.partyFragment) + } else { + val bundle = Bundle() + bundle.putString("groupID", data?.group?.id) + bundle.putBoolean("isMember", true) // safe to assume user is member since they got the notification + navController.navigate(R.id.guildFragment, bundle) + } + } + }