/* * 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 import kotlin.time.ExperimentalTime @DelicateCoroutinesApi @ExperimentalTime 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) } }