aboutsummaryrefslogtreecommitdiff
path: root/androidApp/src/google/java/GoogleMainApplication.kt
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2022-01-13 18:17:15 -0600
committerIván Ávalos <avalos@disroot.org>2022-01-13 18:17:15 -0600
commit2f23203099cd152c36571a39c42ff3056c13484c (patch)
treeb3fe1d68b439600b39753c4e6b5cf2b4ab8aa7fb /androidApp/src/google/java/GoogleMainApplication.kt
parent2fef9e4abfcfa2895ba4f4c082fe7a7a10acebac (diff)
downloadetbsa-trackermap-mobile-2f23203099cd152c36571a39c42ff3056c13484c.tar.gz
etbsa-trackermap-mobile-2f23203099cd152c36571a39c42ff3056c13484c.tar.bz2
etbsa-trackermap-mobile-2f23203099cd152c36571a39c42ff3056c13484c.zip
Introduced Google product flavor for FCM notifications
Diffstat (limited to 'androidApp/src/google/java/GoogleMainApplication.kt')
-rw-r--r--androidApp/src/google/java/GoogleMainApplication.kt62
1 files changed, 62 insertions, 0 deletions
diff --git a/androidApp/src/google/java/GoogleMainApplication.kt b/androidApp/src/google/java/GoogleMainApplication.kt
new file mode 100644
index 0000000..96062e1
--- /dev/null
+++ b/androidApp/src/google/java/GoogleMainApplication.kt
@@ -0,0 +1,62 @@
+/*
+ * 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)
+ }
+}