Skip to content

Commit 3218d38

Browse files
authored
refactor(fcm): check for permission before posting notification (#2674)
1 parent 3dbf8e0 commit 3218d38

File tree

2 files changed

+31
-14
lines changed

2 files changed

+31
-14
lines changed

functions/app/src/main/java/com/google/samples/quickstart/functions/java/FunctionsMessagingService.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
package com.google.samples.quickstart.functions.java;
22

3+
import android.Manifest;
34
import android.app.Notification;
45
import android.app.NotificationChannel;
56
import android.app.NotificationManager;
7+
import android.content.pm.PackageManager;
68
import android.os.Build;
9+
710
import androidx.core.app.NotificationCompat;
811
import androidx.core.app.NotificationManagerCompat;
12+
import androidx.core.content.ContextCompat;
13+
914
import android.util.Log;
1015

1116
import com.google.firebase.messaging.FirebaseMessagingService;
@@ -39,13 +44,17 @@ public void onMessageReceived(RemoteMessage remoteMessage) {
3944
// Check if message contains a data payload.
4045
if (remoteMessage.getData().size() > 0) {
4146
Log.d(TAG, "Message data payload: " + remoteMessage.getData());
42-
NotificationManagerCompat manager = NotificationManagerCompat.from(this);
43-
Notification notification = new NotificationCompat.Builder(this, "Messages")
44-
.setContentText(remoteMessage.getData().get("text"))
45-
.setContentTitle("New message")
46-
.setSmallIcon(R.drawable.ic_stat_notification)
47-
.build();
48-
manager.notify(0, notification);
47+
// Check if permission to post notifications has been granted
48+
if (ContextCompat.checkSelfPermission(this,
49+
Manifest.permission.POST_NOTIFICATIONS) == PackageManager.PERMISSION_GRANTED) {
50+
NotificationManagerCompat manager = NotificationManagerCompat.from(this);
51+
Notification notification = new NotificationCompat.Builder(this, "Messages")
52+
.setContentText(remoteMessage.getData().get("text"))
53+
.setContentTitle("New message")
54+
.setSmallIcon(R.drawable.ic_stat_notification)
55+
.build();
56+
manager.notify(0, notification);
57+
}
4958
}
5059
}
5160
}

functions/app/src/main/java/com/google/samples/quickstart/functions/kotlin/FunctionsMessagingService.kt

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.google.samples.quickstart.functions.kotlin
22

3+
import android.Manifest
34
import android.app.NotificationChannel
45
import android.app.NotificationManager
6+
import android.content.pm.PackageManager
57
import android.os.Build
68
import android.util.Log
79
import androidx.core.app.NotificationCompat
810
import androidx.core.app.NotificationManagerCompat
11+
import androidx.core.content.ContextCompat
912
import com.google.firebase.messaging.FirebaseMessagingService
1013
import com.google.firebase.messaging.RemoteMessage
1114
import com.google.samples.quickstart.functions.R
@@ -32,13 +35,18 @@ class FunctionsMessagingService : FirebaseMessagingService() {
3235
// Check if message contains a data payload.
3336
if (remoteMessage.data.isNotEmpty()) {
3437
Log.d(TAG, "Message data payload: " + remoteMessage.data)
35-
val manager = NotificationManagerCompat.from(this)
36-
val notification = NotificationCompat.Builder(this, "Messages")
37-
.setContentText(remoteMessage.data["text"])
38-
.setContentTitle("New message")
39-
.setSmallIcon(R.drawable.ic_stat_notification)
40-
.build()
41-
manager.notify(0, notification)
38+
// Check if permission to post notifications has been granted
39+
if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) ==
40+
PackageManager.PERMISSION_GRANTED
41+
) {
42+
val manager = NotificationManagerCompat.from(this)
43+
val notification = NotificationCompat.Builder(this, "Messages")
44+
.setContentText(remoteMessage.data["text"])
45+
.setContentTitle("New message")
46+
.setSmallIcon(R.drawable.ic_stat_notification)
47+
.build()
48+
manager.notify(0, notification)
49+
}
4250
}
4351
}
4452

0 commit comments

Comments
 (0)