From e38b790d0bd1b92e62e96380601a25e35be37627 Mon Sep 17 00:00:00 2001 From: bryantran24 <158430748+bryantran24@users.noreply.github.com> Date: Sat, 31 Jan 2026 00:27:06 -0500 Subject: [PATCH 1/3] Update google-services.json --- app/google-services.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/google-services.json b/app/google-services.json index 9493b40..ccdadd6 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -1,13 +1,13 @@ { "project_info": { - "project_number": "659686770672", - "project_id": "shuttle-tracker-fcm", - "storage_bucket": "shuttle-tracker-fcm.appspot.com" + "project_number": "1029011361871", + "project_id": "shuttle-tracker-ef6fd", + "storage_bucket": "shuttle-tracker-ef6fd.firebasestorage.app" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:659686770672:android:3ea865115ac069747f7f35", + "mobilesdk_app_id": "1:1029011361871:android:7c7e5dcfd22fbed40c5a3a", "android_client_info": { "package_name": "edu.rpi.shuttletracker" } @@ -15,7 +15,7 @@ "oauth_client": [], "api_key": [ { - "current_key": "AIzaSyAlPiqjKd2mnYdI9zznPxoquEiYvs0OYuQ" + "current_key": "AIzaSyCUcRBNPqTRxAFdLpdkhp-vZEpDjHE7HiM" } ], "services": { From e82386b40edf3b34ab53a1e06ba4192f42cafc01 Mon Sep 17 00:00:00 2001 From: bryantran24 <158430748+bryantran24@users.noreply.github.com> Date: Sat, 31 Jan 2026 12:39:51 -0500 Subject: [PATCH 2/3] Disable announcement worker --- .../edu/rpi/shuttletracker/ShuttleTrackerApplication.kt | 3 +-- .../util/notifications/NotificationReceiver.kt | 6 +++--- .../edu/rpi/shuttletracker/util/services/FirebaseService.kt | 5 ++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/edu/rpi/shuttletracker/ShuttleTrackerApplication.kt b/app/src/main/java/edu/rpi/shuttletracker/ShuttleTrackerApplication.kt index 325486d..6e6e33d 100644 --- a/app/src/main/java/edu/rpi/shuttletracker/ShuttleTrackerApplication.kt +++ b/app/src/main/java/edu/rpi/shuttletracker/ShuttleTrackerApplication.kt @@ -6,7 +6,6 @@ import androidx.work.Configuration import dagger.hilt.android.HiltAndroidApp import edu.rpi.shuttletracker.util.notifications.Notifications import edu.rpi.shuttletracker.util.services.FirebaseService -import edu.rpi.shuttletracker.util.workers.AnnouncementWorker import javax.inject.Inject @HiltAndroidApp @@ -22,7 +21,7 @@ class ShuttleTrackerApplication : FirebaseService.retrieveToken() - AnnouncementWorker.startWork(this) +// AnnouncementWorker.startWork(this) } override val workManagerConfiguration: Configuration diff --git a/app/src/main/java/edu/rpi/shuttletracker/util/notifications/NotificationReceiver.kt b/app/src/main/java/edu/rpi/shuttletracker/util/notifications/NotificationReceiver.kt index 83854c7..9cb6208 100644 --- a/app/src/main/java/edu/rpi/shuttletracker/util/notifications/NotificationReceiver.kt +++ b/app/src/main/java/edu/rpi/shuttletracker/util/notifications/NotificationReceiver.kt @@ -38,9 +38,9 @@ class NotificationReceiver : BroadcastReceiver() { ) as NotificationManager notificationManager.cancel(Notifications.ID_ANNOUNCEMENT) - goAsync { - userPreferencesRepository.saveNotificationsRead(intent.getIntExtra("count", 0)) - } +// goAsync { +// userPreferencesRepository.saveNotificationsRead(intent.getIntExtra("count", 0)) +// } } } } diff --git a/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt b/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt index 2209c4c..bd69a40 100644 --- a/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt +++ b/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt @@ -1,7 +1,6 @@ package edu.rpi.shuttletracker.util.services import android.app.NotificationManager -import android.content.Context import androidx.core.app.NotificationCompat import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.FirebaseMessagingService @@ -41,7 +40,7 @@ class FirebaseService : FirebaseMessagingService() { private fun sendNotification(body: String) { val notificationManager: NotificationManager = getSystemService( - Context.NOTIFICATION_SERVICE, + NOTIFICATION_SERVICE, ) as NotificationManager val notificationBody = @@ -52,7 +51,7 @@ class FirebaseService : FirebaseMessagingService() { ).setContentTitle("FCM") .setContentText(body) .setSmallIcon(R.drawable.ic_stat_default) - .setContentIntent(NotificationReceiver.openAnnouncements(this)) + .setContentIntent(NotificationReceiver.openMaps(this)) .build() notificationManager.notify(Notifications.ID_ANNOUNCEMENT, notificationBody) From dbea40d72c8e651a3f03ece916526ac6db3b5bc0 Mon Sep 17 00:00:00 2001 From: bryantran24 <158430748+bryantran24@users.noreply.github.com> Date: Mon, 2 Feb 2026 17:39:59 -0500 Subject: [PATCH 3/3] App resume clear notifications --- .../edu/rpi/shuttletracker/ui/MainActivity.kt | 7 ++++ .../util/notifications/Notifications.kt | 36 +++++-------------- .../util/services/FirebaseService.kt | 14 ++++++-- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/edu/rpi/shuttletracker/ui/MainActivity.kt b/app/src/main/java/edu/rpi/shuttletracker/ui/MainActivity.kt index e82fc00..7748401 100644 --- a/app/src/main/java/edu/rpi/shuttletracker/ui/MainActivity.kt +++ b/app/src/main/java/edu/rpi/shuttletracker/ui/MainActivity.kt @@ -1,5 +1,6 @@ package edu.rpi.shuttletracker.ui +import android.app.NotificationManager import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent @@ -66,4 +67,10 @@ class MainActivity : ComponentActivity() { } } } + + override fun onResume() { + super.onResume() + val nm = getSystemService(NotificationManager::class.java) + nm?.cancelAll() + } } diff --git a/app/src/main/java/edu/rpi/shuttletracker/util/notifications/Notifications.kt b/app/src/main/java/edu/rpi/shuttletracker/util/notifications/Notifications.kt index ba3d84a..5cf85d2 100644 --- a/app/src/main/java/edu/rpi/shuttletracker/util/notifications/Notifications.kt +++ b/app/src/main/java/edu/rpi/shuttletracker/util/notifications/Notifications.kt @@ -5,22 +5,24 @@ import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationChannelGroupCompat import androidx.core.app.NotificationManagerCompat import androidx.core.app.NotificationManagerCompat.IMPORTANCE_DEFAULT -import edu.rpi.shuttletracker.R /** * Based on the notification generator for Tachiyomi * */ object Notifications { + // Group private const val GROUP_TRACKER = "group_tracker" - const val CHANNEL_TRACKING_BUS = "tracking_bus_channel" - const val ID_TRACKING_BUS = 1 - private const val GROUP_ANNOUNCEMENTS = "group_announcements" - const val CHANNEL_ANNOUNCEMENT = "announcement_channel" - const val ID_ANNOUNCEMENT = 11 - private const val GROUP_DEPARTURES = "group_departures" + + // Channels + const val CHANNEL_TRACKING_BUS = "tracking_bus_channel" + const val CHANNEL_ANNOUNCEMENT = "announcement_channel" const val CHANNEL_FIRING_DEPARTURES = "departure_alarm_channel" + + // IDs + const val ID_TRACKING_BUS = 1 + const val ID_ANNOUNCEMENT = 11 const val ID_FIRING_DEPARTURE = 10000 private val deprecatedChannels = @@ -37,42 +39,22 @@ object Notifications { // creates notification groups notificationManager.createNotificationChannelGroupsCompat( listOf( - buildNotificationChannelGroup( - GROUP_TRACKER, - context.getString(R.string.bus_tracker), - ), buildNotificationChannelGroup( GROUP_ANNOUNCEMENTS, "Announcements", ), - buildNotificationChannelGroup( - GROUP_DEPARTURES, - "Departures", - ), ), ) // create notification channels notificationManager.createNotificationChannelsCompat( listOf( - buildNotificationChannel( - GROUP_TRACKER, - CHANNEL_TRACKING_BUS, - IMPORTANCE_DEFAULT, - context.getString(R.string.tracker), - ), buildNotificationChannel( GROUP_ANNOUNCEMENTS, CHANNEL_ANNOUNCEMENT, IMPORTANCE_DEFAULT, "Announcement", ), - buildNotificationChannel( - GROUP_DEPARTURES, - CHANNEL_FIRING_DEPARTURES, - IMPORTANCE_DEFAULT, - "Firing departures", - ), ), ) } diff --git a/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt b/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt index bd69a40..c7a294f 100644 --- a/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt +++ b/app/src/main/java/edu/rpi/shuttletracker/util/services/FirebaseService.kt @@ -33,11 +33,19 @@ class FirebaseService : FirebaseMessagingService() { super.onMessageReceived(message) message.notification?.let { - it.body?.let { body -> sendNotification(body) } + val title = it.title + val body = it.body + + if (title != null && body != null) { + sendNotification(title, body) + } } } - private fun sendNotification(body: String) { + private fun sendNotification( + title: String, + body: String, + ) { val notificationManager: NotificationManager = getSystemService( NOTIFICATION_SERVICE, @@ -48,7 +56,7 @@ class FirebaseService : FirebaseMessagingService() { .Builder( this, Notifications.CHANNEL_ANNOUNCEMENT, - ).setContentTitle("FCM") + ).setContentTitle(title) .setContentText(body) .setSmallIcon(R.drawable.ic_stat_default) .setContentIntent(NotificationReceiver.openMaps(this))