@@ -20,6 +20,7 @@ import android.content.Intent
2020import android.content.pm.PackageManager
2121import android.os.Build
2222import android.os.Bundle
23+ import android.util.Log
2324import android.view.KeyEvent
2425import android.view.KeyboardShortcutGroup
2526import android.view.KeyboardShortcutInfo
@@ -30,8 +31,10 @@ import androidx.activity.enableEdgeToEdge
3031import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
3132import androidx.glance.appwidget.updateAll
3233import androidx.lifecycle.lifecycleScope
34+ import com.google.android.gms.tasks.OnCompleteListener
3335import com.google.android.samples.socialite.ui.Main
3436import com.google.android.samples.socialite.widget.SociaLiteAppWidget
37+ import com.google.firebase.messaging.FirebaseMessaging
3538import dagger.hilt.android.AndroidEntryPoint
3639import kotlinx.coroutines.launch
3740
@@ -40,6 +43,7 @@ class MainActivity : ComponentActivity() {
4043 override fun onCreate (savedInstanceState : Bundle ? ) {
4144 installSplashScreen()
4245 enableEdgeToEdge()
46+ initializeFcm()
4347 if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
4448 window.isNavigationBarContrastEnforced = false
4549 }
@@ -55,6 +59,25 @@ class MainActivity : ComponentActivity() {
5559 }
5660 }
5761
62+ /* *
63+ * Sets up Firebase Cloud Messaging (FCM) for push notifications.
64+ * FCM enables cross device message delivery and versatile message delivery.
65+ * See https://firebase.google.com/docs/cloud-messaging/android/get-started.
66+ */
67+ private fun initializeFcm () {
68+ FirebaseMessaging .getInstance().token.addOnCompleteListener(
69+ OnCompleteListener { task ->
70+ if (! task.isSuccessful) {
71+ Log .w(" FCM" , " Fetching FCM registration token failed" , task.exception)
72+ return @OnCompleteListener
73+ } // Get new FCM registration token
74+ val token = task.result
75+ // Log token, for testing purposes only.
76+ // Log.d("FCM", "FCM message token $token")
77+ },
78+ )
79+ }
80+
5881 private fun extractAppArgs (intent : Intent ? ): AppArgs ? {
5982 if (intent == null ) return null
6083 return AppArgs .ShortcutParams .tryFrom(intent) ? : AppArgs .LaunchParams .tryFrom(intent)
0 commit comments