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' }
}
}