aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/google/java/ManagerMessagingService.kt
diff options
context:
space:
mode:
Diffstat (limited to 'androidApp/src/google/java/ManagerMessagingService.kt')
-rw-r--r--androidApp/src/google/java/ManagerMessagingService.kt54
1 files changed, 54 insertions, 0 deletions
diff --git a/androidApp/src/google/java/ManagerMessagingService.kt b/androidApp/src/google/java/ManagerMessagingService.kt
new file mode 100644
index 0000000..b10475f
--- /dev/null
+++ b/androidApp/src/google/java/ManagerMessagingService.kt
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2018 - 2021 Anton Tananaev (anton.tananaev@gmail.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package mx.trackermap.TrackerMap.android
+
+import android.annotation.SuppressLint
+import android.app.NotificationManager
+import android.app.PendingIntent
+import android.content.Intent
+import android.os.Build
+import androidx.core.app.NotificationCompat
+import com.google.firebase.messaging.FirebaseMessagingService
+import com.google.firebase.messaging.RemoteMessage
+import kotlinx.coroutines.DelicateCoroutinesApi
+import mx.trackermap.TrackerMap.android.units.UnitsActivity
+
+@DelicateCoroutinesApi
+class ManagerMessagingService : FirebaseMessagingService() {
+
+ @SuppressLint("UnspecifiedImmutableFlag")
+ override fun onMessageReceived(remoteMessage: RemoteMessage) {
+ super.onMessageReceived(remoteMessage)
+ val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_IMMUTABLE
+ } else {
+ PendingIntent.FLAG_ONE_SHOT
+ }
+ val pendingIntent = PendingIntent.getActivity(this, 0, Intent(this, UnitsActivity::class.java), flags)
+ val builder = NotificationCompat.Builder(this, getString(R.string.notification_channel_id))
+ .setSmallIcon(R.drawable.icon_notify)
+ .setContentTitle(getString(R.string.app_name))
+ .setContentText(remoteMessage.notification?.body)
+ .setAutoCancel(true)
+ .setContentIntent(pendingIntent)
+ (getSystemService(NOTIFICATION_SERVICE) as NotificationManager).notify(remoteMessage.hashCode(), builder.build())
+ }
+
+ override fun onNewToken(token: String) {
+ super.onNewToken(token)
+ (application as GoogleMainApplication).broadcastToken(token)
+ }
+}