From e5d09b9fa2d358a66a897e84cbb3621934436c3b Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Fri, 17 Feb 2017 23:11:44 +0100 Subject: [PATCH] Automatically start the service on boot (can be turned off) Fixes #9 --- app/src/main/AndroidManifest.xml | 9 +++++++++ .../externalevents/AutoStartReceiver.java | 20 +++++++++++++++++++ .../gadgetbridge/util/GBPrefs.java | 6 ++++++ app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/preferences.xml | 4 ++++ 5 files changed, 40 insertions(+) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/AutoStartReceiver.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bdbc78781..b4132de8f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ + + + + + + + + diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/AutoStartReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/AutoStartReceiver.java new file mode 100644 index 000000000..c6c194d07 --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/AutoStartReceiver.java @@ -0,0 +1,20 @@ +package nodomain.freeyourgadget.gadgetbridge.externalevents; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import nodomain.freeyourgadget.gadgetbridge.GBApplication; + +public class AutoStartReceiver extends BroadcastReceiver { + private static final String TAG = AutoStartReceiver.class.getName(); + + @Override + public void onReceive(Context context, Intent intent) { + if (GBApplication.getGBPrefs().getAutoStart()) { + Log.i(TAG, "Boot completed, starting Gadgetbridge"); + GBApplication.deviceService().start(); + } + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GBPrefs.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GBPrefs.java index 024fb4426..4fc42f0f8 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GBPrefs.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/GBPrefs.java @@ -6,6 +6,8 @@ import java.util.Date; public class GBPrefs { public static final String AUTO_RECONNECT = "general_autocreconnect"; + private static final String AUTO_START = "general_autostartonboot"; + private static final boolean AUTO_START_DEFAULT = true; public static boolean AUTO_RECONNECT_DEFAULT = true; public static final String USER_NAME = "mi_user_alias"; @@ -22,6 +24,10 @@ public class GBPrefs { return mPrefs.getBoolean(AUTO_RECONNECT, AUTO_RECONNECT_DEFAULT); } + public boolean getAutoStart() { + return mPrefs.getBoolean(AUTO_START, AUTO_START_DEFAULT); + } + public String getUserName() { return mPrefs.getString(USER_NAME, USER_NAME_DEFAULT); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3bed06a37..a36191753 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -52,6 +52,7 @@ General Settings Connect to device when Bluetooth turned on + Start automatically Reconnect automatically Preferred Audioplayer Default diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index d324fa3a1..df84c17c5 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -3,6 +3,10 @@ +