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.