/* * Copyright 2017 - 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.app.NotificationChannel import android.app.NotificationManager import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter import android.os.Build import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.google.firebase.messaging.FirebaseMessaging import kotlinx.coroutines.DelicateCoroutinesApi import mx.trackermap.TrackerMap.android.session.LoginFragment @DelicateCoroutinesApi class GoogleMainApplication : TrackerApp() { override fun onCreate() { super.onCreate() val intentFilter = IntentFilter(LoginFragment.EVENT_LOGIN) LocalBroadcastManager.getInstance(this).registerReceiver(broadcastReceiver, intentFilter) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val channel = NotificationChannel( getString(R.string.notification_channel_id), getString(R.string.notification_channel), NotificationManager.IMPORTANCE_DEFAULT ) (getSystemService(NOTIFICATION_SERVICE) as NotificationManager).createNotificationChannel(channel) } } private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { FirebaseMessaging.getInstance().token.addOnCompleteListener { if (it.isSuccessful) { broadcastToken(it.result) } } } } fun broadcastToken(token: String?) { val intent = Intent(LoginFragment.EVENT_TOKEN) intent.putExtra(LoginFragment.KEY_TOKEN, token) LocalBroadcastManager.getInstance(this).sendBroadcast(intent) } }