From e1b02e1be4363538da8fa3f059529afad2e61e88 Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sat, 19 Sep 2015 12:49:34 +0200 Subject: [PATCH] Pebble: add option for PebbleKit support (default is disabled) Also fix an endless loop when number of reconnects is set to 0 --- .../devices/pebble/PebbleIoThread.java | 10 ++++---- app/src/main/res/values/strings.xml | 4 +++- app/src/main/res/xml/preferences.xml | 23 +++++++++++++------ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java index 9e7cd854..f8628ba4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/PebbleIoThread.java @@ -61,6 +61,8 @@ public class PebbleIoThread extends GBDeviceIoThread { private final PebbleProtocol mPebbleProtocol; private final PebbleSupport mPebbleSupport; + private final boolean mEnablePebblekit; + private boolean mIsTCP = false; private BluetoothAdapter mBtAdapter = null; private BluetoothSocket mBtSocket = null; @@ -152,6 +154,7 @@ public class PebbleIoThread extends GBDeviceIoThread { mPebbleProtocol = (PebbleProtocol) gbDeviceProtocol; mBtAdapter = btAdapter; mPebbleSupport = pebbleSupport; + mEnablePebblekit = sharedPrefs.getBoolean("pebble_enable_pebblekit", false); } @@ -346,7 +349,7 @@ public class PebbleIoThread extends GBDeviceIoThread { LOG.info(e.getMessage()); gbDevice.setState(GBDevice.State.CONNECTING); gbDevice.sendDeviceUpdateIntent(getContext()); - + mIsConnected = false; int reconnectAttempts = Integer.valueOf(sharedPrefs.getString("pebble_reconnect_attempts", "10")); while (reconnectAttempts-- > 0 && !mQuit) { LOG.info("Trying to reconnect (attempts left " + reconnectAttempts + ")"); @@ -377,9 +380,8 @@ public class PebbleIoThread extends GBDeviceIoThread { } private void enablePebbleKitReceiver(boolean enable) { - boolean force_untested = sharedPrefs.getBoolean("pebble_force_untested", false); - if (enable && force_untested) { + if (enable && mEnablePebblekit) { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(PEBBLEKIT_ACTION_APP_ACK); intentFilter.addAction(PEBBLEKIT_ACTION_APP_NACK); @@ -507,7 +509,7 @@ public class PebbleIoThread extends GBDeviceIoThread { setInstallSlot(appInfoEvent.freeSlot); return false; } else if (deviceEvent instanceof GBDeviceEventAppMessage) { - if (sharedPrefs.getBoolean("pebble_force_untested", false)) { + if (mEnablePebblekit) { LOG.info("Got AppMessage event"); sendAppMessageIntent((GBDeviceEventAppMessage) deviceEvent); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9fe36c74..1d9e575b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -33,7 +33,7 @@ General Settings Connect to device when Bluetooth turned on - Preferred audio player + Preferred Audioplayer Default Date and Time Sync time @@ -59,6 +59,8 @@ Mi Band address Pebble Settings + Allow 3rd Party Android App Access + Enable experimental support for Android Apps using PebbleKit Force Notification Protocol This option forces using the latest notification protocol depending on the firmware version. ENABLE ONLY IF YOU KNOW WHAT YOU ARE DOING! Enable untested features diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 4f10aaf0..65b1cdcd 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -9,7 +9,7 @@ android:title="@string/pref_title_general_autoconnectonbluetooth" /> + + + + @@ -84,12 +99,6 @@ android:key="pebble_force_untested" android:summary="@string/pref_summary_pebble_forceuntested" android:title="@string/pref_title_pebble_forceuntested" /> -