diff --git a/app/build.gradle b/app/build.gradle
index b7cdf0a..63203fe 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -22,8 +22,10 @@ android {
productFlavors {
regular {
+ buildConfigField "boolean", "HIDDEN_APP", "false"
}
hidden {
+ buildConfigField "boolean", "HIDDEN_APP", "true"
}
}
diff --git a/app/src/hidden/AndroidManifest.xml b/app/src/hidden/AndroidManifest.xml
index 204348f..e497687 100644
--- a/app/src/hidden/AndroidManifest.xml
+++ b/app/src/hidden/AndroidManifest.xml
@@ -2,10 +2,18 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5365632..690b06d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -16,13 +16,16 @@
android:label="@string/app_name"
android:theme="@style/TraccarTheme">
-
+
+
+
-
+
diff --git a/app/src/main/java/org/traccar/client/DialLaunchReceiver.java b/app/src/main/java/org/traccar/client/DialLaunchReceiver.java
new file mode 100644
index 0000000..86b5db7
--- /dev/null
+++ b/app/src/main/java/org/traccar/client/DialLaunchReceiver.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.client;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+
+public class DialLaunchReceiver extends BroadcastReceiver {
+
+ private static final String LAUNCHER_NUMBER = "8722227"; // TRACCAR
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
+ if (phoneNumber.equals(LAUNCHER_NUMBER)) {
+ setResultData(null);
+ Intent appIntent = new Intent(context, MainActivity.class);
+ appIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(appIntent);
+ }
+ }
+
+}
diff --git a/app/src/main/java/org/traccar/client/MainActivity.java b/app/src/main/java/org/traccar/client/MainActivity.java
index bbde886..afe5344 100644
--- a/app/src/main/java/org/traccar/client/MainActivity.java
+++ b/app/src/main/java/org/traccar/client/MainActivity.java
@@ -18,6 +18,7 @@ package org.traccar.client;
import android.Manifest;
import android.app.AlertDialog;
import android.app.Dialog;
+import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -59,6 +60,11 @@ public class MainActivity extends PreferenceActivity implements OnSharedPreferen
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+
+ if (BuildConfig.HIDDEN_APP) {
+ removeLauncherIcon();
+ }
+
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
addPreferencesFromResource(R.xml.preferences);
initPreferences();
@@ -68,6 +74,21 @@ public class MainActivity extends PreferenceActivity implements OnSharedPreferen
}
}
+ private void removeLauncherIcon() {
+ ComponentName componentName = new ComponentName(getPackageName(), getPackageName() + ".Launcher");
+ PackageManager packageManager = getPackageManager();
+ if (packageManager.getComponentEnabledSetting(componentName) != PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
+ packageManager.setComponentEnabledSetting(
+ componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setIcon(android.R.drawable.ic_dialog_alert);
+ builder.setMessage(getString(R.string.hidden_alert));
+ builder.setPositiveButton(android.R.string.ok, null);
+ builder.show();
+ }
+ }
+
private boolean hasPermission(String permission) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {
return true;
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c4c055b..88e0020 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,7 +2,6 @@
Traccar Client
- Device Settings
Traccar
Device identifier
@@ -41,4 +40,7 @@
Location update
Connectivity change
+ Device Settings
+ The app has been hidden from the phone launcher. To open it again please dial 8722227 (TRACCAR).
+