/* * 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.PendingIntent import android.content.Intent import android.os.Build import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessage import kotlinx.coroutines.DelicateCoroutinesApi import mx.trackermap.TrackerMap.android.shared.Utils 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 intent = Intent(this, UnitsActivity::class.java) val pendingIntent = PendingIntent.getActivity(this, 0, intent, flags) Utils.showNotification( this, remoteMessage.hashCode(), remoteMessage.notification?.body, pendingIntent ) } override fun onNewToken(token: String) { super.onNewToken(token) (application as GoogleMainApplication).broadcastToken(token) } }