From b7ec644ecf71333faf2ab585b68175804091c918 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 9 Oct 2021 17:11:40 -0700 Subject: [PATCH] Improve app autostart --- app/build.gradle | 13 +++++++------ app/src/main/AndroidManifest.xml | 10 +++++++--- .../org/traccar/client/BatteryOptimizationHelper.kt | 5 +++++ build.gradle | 4 ++-- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8195fdd..e86dbe3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -2,13 +2,13 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { - compileSdkVersion 30 + compileSdkVersion 31 defaultConfig { applicationId 'org.traccar.client' buildConfigField 'boolean', 'HIDDEN_APP', 'false' minSdkVersion 16 - targetSdkVersion 30 + targetSdkVersion 31 versionCode 73 versionName '6.12' multiDexEnabled true @@ -47,20 +47,21 @@ android { } dependencies { - implementation 'com.google.android.material:material:1.5.0-alpha02' + implementation 'com.google.android.material:material:1.5.0-alpha04' implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.preference:preference-ktx:1.1.1' implementation 'androidx.test:core-ktx:1.4.0' - implementation "androidx.core:core-ktx:1.6.0" + 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' testImplementation 'junit:junit:4.13.2' - testImplementation 'org.robolectric:robolectric:4.1' + testImplementation 'org.robolectric:robolectric:4.6.1' googleImplementation platform('com.google.firebase:firebase-bom:28.2.1') googleImplementation 'com.google.firebase:firebase-core' googleImplementation 'com.google.firebase:firebase-analytics' googleImplementation 'com.google.firebase:firebase-crashlytics' googleImplementation 'com.google.android.gms:play-services-location:18.0.0' - googleImplementation 'com.google.android.play:core:1.10.0' + googleImplementation 'com.google.android.play:core:1.10.2' } if (getGradle().getStartParameter().getTaskRequests().toString().contains('Google')) { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3057f45..73304c0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -38,7 +38,8 @@ + android:targetActivity=".MainActivity" + android:exported="true"> @@ -52,7 +53,8 @@ + android:label="@string/menu_shortcuts" + android:exported="true"> @@ -66,7 +68,9 @@ - + diff --git a/app/src/main/java/org/traccar/client/BatteryOptimizationHelper.kt b/app/src/main/java/org/traccar/client/BatteryOptimizationHelper.kt index 188aa35..b1cbf8c 100644 --- a/app/src/main/java/org/traccar/client/BatteryOptimizationHelper.kt +++ b/app/src/main/java/org/traccar/client/BatteryOptimizationHelper.kt @@ -25,6 +25,7 @@ import android.os.PowerManager import android.provider.Settings import androidx.appcompat.app.AlertDialog import androidx.preference.PreferenceManager +import com.judemanutd.autostarter.AutoStartPermissionHelper class BatteryOptimizationHelper { @@ -80,11 +81,15 @@ class BatteryOptimizationHelper { } } } + } else if (!sharedPreferences.getBoolean(KEY_AUTOSTART_REQUESTED, false)) { + sharedPreferences.edit().putBoolean(KEY_AUTOSTART_REQUESTED, true).apply() + AutoStartPermissionHelper.getInstance().getAutoStartPermission(context) } } } companion object { private const val KEY_EXCEPTION_REQUESTED = "exceptionRequested" + private const val KEY_AUTOSTART_REQUESTED = "autostartRequested" } } diff --git a/build.gradle b/build.gradle index ab0bc00..8de6002 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ buildscript { - ext.kotlin_version = '1.5.30' + ext.kotlin_version = '1.5.31' repositories { google() mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.0.1' + classpath 'com.android.tools.build:gradle:7.0.2' classpath 'com.google.gms:google-services:4.3.10' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"