diff --git a/app/build.gradle b/app/build.gradle
index 3da89d0..57f2033 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,11 +1,12 @@
apply plugin: 'com.android.application'
android {
+ compileSdkVersion 30
+
defaultConfig {
applicationId 'org.traccar.client'
buildConfigField 'boolean', 'HIDDEN_APP', 'false'
minSdkVersion 16
- targetSdkVersion 30
versionCode 66
versionName '6.5'
multiDexEnabled true
diff --git a/app/src/main/java/org/traccar/client/MainActivity.java b/app/src/main/java/org/traccar/client/MainActivity.java
index ed58d4a..9619a5e 100644
--- a/app/src/main/java/org/traccar/client/MainActivity.java
+++ b/app/src/main/java/org/traccar/client/MainActivity.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2017 Anton Tananaev (anton@traccar.org)
+ * Copyright 2017 - 2020 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,9 +24,7 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (savedInstanceState == null) {
- getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new MainFragment()).commit();
- }
+ setContentView(R.layout.main);
}
}
diff --git a/app/src/main/java/org/traccar/client/MainFragment.java b/app/src/main/java/org/traccar/client/MainFragment.java
index 3248060..ef25d7c 100644
--- a/app/src/main/java/org/traccar/client/MainFragment.java
+++ b/app/src/main/java/org/traccar/client/MainFragment.java
@@ -47,6 +47,8 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
import androidx.preference.TwoStatePreference;
+import com.google.android.material.snackbar.Snackbar;
+
import java.util.Arrays;
import java.util.HashSet;
import java.util.Random;
@@ -69,6 +71,7 @@ public class MainFragment extends PreferenceFragmentCompat implements OnSharedPr
public static final String KEY_WAKELOCK = "wakelock";
private static final int PERMISSIONS_REQUEST_LOCATION = 2;
+ private static final String KEY_DISCLOSURE_SHOWN = "disclosureShown";
private SharedPreferences sharedPreferences;
@@ -77,6 +80,7 @@ public class MainFragment extends PreferenceFragmentCompat implements OnSharedPr
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+
if (BuildConfig.HIDDEN_APP && Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
removeLauncherIcon();
}
@@ -191,6 +195,17 @@ public class MainFragment extends PreferenceFragmentCompat implements OnSharedPr
public void onResume() {
super.onResume();
sharedPreferences.registerOnSharedPreferenceChangeListener(this);
+
+ if (!sharedPreferences.getBoolean(KEY_DISCLOSURE_SHOWN, false)) {
+ Snackbar.make(getView(), R.string.disclosure_location, Snackbar.LENGTH_INDEFINITE)
+ .addCallback(new Snackbar.Callback() {
+ @Override
+ public void onDismissed(Snackbar transientBottomBar, int event) {
+ sharedPreferences.edit().putBoolean(KEY_DISCLOSURE_SHOWN, true).apply();
+ }
+ })
+ .show();
+ }
}
@Override
diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml
new file mode 100644
index 0000000..864fa12
--- /dev/null
+++ b/app/src/main/res/layout/main.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 64caa03..c6ed936 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -46,4 +46,5 @@
Device Settings
The app has been hidden. To open it again please dial 8722227 (TRACCAR).
Please enter a valid http:// or https:// URL
+ This app collects location data to enable live tracking even when the app is closed or not in use.