From 307e69245965ce8447f29ee52fb28c361111526b Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 9 Oct 2021 17:40:20 -0700 Subject: [PATCH] Integrate DKMA info --- app/build.gradle | 3 +++ app/src/main/java/org/traccar/client/MainFragment.kt | 12 +++++++++++- .../main/java/org/traccar/client/TrackingService.kt | 7 ++++++- app/src/main/res/menu/main.xml | 5 +++++ app/src/main/res/values/strings.xml | 1 + build.gradle | 1 + 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e86dbe3..918af8b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,6 +54,9 @@ dependencies { implementation 'androidx.core:core-ktx:1.6.0' implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.github.judemanutd:autostarter:1.1.0' + implementation('dev.doubledot.doki:library:0.0.1@aar') { + transitive = true + } testImplementation 'junit:junit:4.13.2' testImplementation 'org.robolectric:robolectric:4.6.1' googleImplementation platform('com.google.firebase:firebase-bom:28.2.1') diff --git a/app/src/main/java/org/traccar/client/MainFragment.kt b/app/src/main/java/org/traccar/client/MainFragment.kt index 7c8c7d4..7cefcd5 100644 --- a/app/src/main/java/org/traccar/client/MainFragment.kt +++ b/app/src/main/java/org/traccar/client/MainFragment.kt @@ -45,6 +45,7 @@ import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager import androidx.preference.TwoStatePreference +import dev.doubledot.doki.ui.DokiActivity import java.util.* import kotlin.collections.HashSet @@ -92,7 +93,13 @@ class MainFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeListene alarmManager = requireActivity().getSystemService(Context.ALARM_SERVICE) as AlarmManager val originalIntent = Intent(activity, AutostartReceiver::class.java) originalIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND) - alarmIntent = PendingIntent.getBroadcast(activity, 0, originalIntent, PendingIntent.FLAG_UPDATE_CURRENT) + + val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + PendingIntent.FLAG_MUTABLE + } else { + 0 + } + alarmIntent = PendingIntent.getBroadcast(activity, 0, originalIntent, flags) if (sharedPreferences.getBoolean(KEY_STATUS, false)) { startTrackingService(checkPermission = true, initialPermission = false) @@ -190,6 +197,9 @@ class MainFragment : PreferenceFragmentCompat(), OnSharedPreferenceChangeListene if (item.itemId == R.id.status) { startActivity(Intent(activity, StatusActivity::class.java)) return true + } else if (item.itemId == R.id.info) { + DokiActivity.start(requireContext()) + return true } return super.onOptionsItemSelected(item) } diff --git a/app/src/main/java/org/traccar/client/TrackingService.kt b/app/src/main/java/org/traccar/client/TrackingService.kt index 86c91e9..41be5f1 100644 --- a/app/src/main/java/org/traccar/client/TrackingService.kt +++ b/app/src/main/java/org/traccar/client/TrackingService.kt @@ -122,7 +122,12 @@ class TrackingService : Service() { } else { intent = Intent(Settings.ACTION_SETTINGS) } - builder.setContentIntent(PendingIntent.getActivity(context, 0, intent, 0)) + val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + PendingIntent.FLAG_IMMUTABLE + } else { + PendingIntent.FLAG_UPDATE_CURRENT + } + builder.setContentIntent(PendingIntent.getActivity(context, 0, intent, flags)) return builder.build() } } diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml index 0b75dab..e643fcb 100644 --- a/app/src/main/res/menu/main.xml +++ b/app/src/main/res/menu/main.xml @@ -8,4 +8,9 @@ android:title="@string/menu_status" app:showAsAction="ifRoom" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1e0cfa2..ab94c14 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,6 +34,7 @@ Foreground service Increase service priority Status + Info Add shortcuts Clear Service started diff --git a/build.gradle b/build.gradle index 8de6002..8852539 100644 --- a/build.gradle +++ b/build.gradle @@ -16,5 +16,6 @@ allprojects { repositories { google() mavenCentral() + maven { url 'https://jitpack.io' } } }