aboutsummaryrefslogtreecommitdiff
path: root/app/src/google/java/org/traccar/manager/GoogleMainApplication.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/google/java/org/traccar/manager/GoogleMainApplication.kt')
-rw-r--r--app/src/google/java/org/traccar/manager/GoogleMainApplication.kt64
1 files changed, 64 insertions, 0 deletions
diff --git a/app/src/google/java/org/traccar/manager/GoogleMainApplication.kt b/app/src/google/java/org/traccar/manager/GoogleMainApplication.kt
new file mode 100644
index 0000000..cfeaf6e
--- /dev/null
+++ b/app/src/google/java/org/traccar/manager/GoogleMainApplication.kt
@@ -0,0 +1,64 @@
+/*
+ * 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 org.traccar.manager
+
+import android.app.Application
+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.analytics.FirebaseAnalytics
+import com.google.firebase.messaging.FirebaseMessaging
+
+class GoogleMainApplication : Application() {
+
+ private lateinit var firebaseAnalytics: FirebaseAnalytics
+
+ override fun onCreate() {
+ super.onCreate()
+ firebaseAnalytics = FirebaseAnalytics.getInstance(this)
+ val intentFilter = IntentFilter(MainFragment.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.isComplete) {
+ broadcastToken(it.result)
+ }
+ }
+ }
+ }
+
+ fun broadcastToken(token: String?) {
+ val intent = Intent(MainFragment.EVENT_TOKEN)
+ intent.putExtra(MainFragment.KEY_TOKEN, token)
+ LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
+ }
+}