1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-10-19 09:49:33 +02:00

Pebble: add option for PebbleKit support (default is disabled)

Also fix an endless loop when number of reconnects is set to 0
This commit is contained in:
Andreas Shimokawa 2015-09-19 12:49:34 +02:00
parent 8bef384855
commit e1b02e1be4
3 changed files with 25 additions and 12 deletions

View File

@ -61,6 +61,8 @@ public class PebbleIoThread extends GBDeviceIoThread {
private final PebbleProtocol mPebbleProtocol; private final PebbleProtocol mPebbleProtocol;
private final PebbleSupport mPebbleSupport; private final PebbleSupport mPebbleSupport;
private final boolean mEnablePebblekit;
private boolean mIsTCP = false; private boolean mIsTCP = false;
private BluetoothAdapter mBtAdapter = null; private BluetoothAdapter mBtAdapter = null;
private BluetoothSocket mBtSocket = null; private BluetoothSocket mBtSocket = null;
@ -152,6 +154,7 @@ public class PebbleIoThread extends GBDeviceIoThread {
mPebbleProtocol = (PebbleProtocol) gbDeviceProtocol; mPebbleProtocol = (PebbleProtocol) gbDeviceProtocol;
mBtAdapter = btAdapter; mBtAdapter = btAdapter;
mPebbleSupport = pebbleSupport; mPebbleSupport = pebbleSupport;
mEnablePebblekit = sharedPrefs.getBoolean("pebble_enable_pebblekit", false);
} }
@ -346,7 +349,7 @@ public class PebbleIoThread extends GBDeviceIoThread {
LOG.info(e.getMessage()); LOG.info(e.getMessage());
gbDevice.setState(GBDevice.State.CONNECTING); gbDevice.setState(GBDevice.State.CONNECTING);
gbDevice.sendDeviceUpdateIntent(getContext()); gbDevice.sendDeviceUpdateIntent(getContext());
mIsConnected = false;
int reconnectAttempts = Integer.valueOf(sharedPrefs.getString("pebble_reconnect_attempts", "10")); int reconnectAttempts = Integer.valueOf(sharedPrefs.getString("pebble_reconnect_attempts", "10"));
while (reconnectAttempts-- > 0 && !mQuit) { while (reconnectAttempts-- > 0 && !mQuit) {
LOG.info("Trying to reconnect (attempts left " + reconnectAttempts + ")"); LOG.info("Trying to reconnect (attempts left " + reconnectAttempts + ")");
@ -377,9 +380,8 @@ public class PebbleIoThread extends GBDeviceIoThread {
} }
private void enablePebbleKitReceiver(boolean enable) { 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 intentFilter = new IntentFilter();
intentFilter.addAction(PEBBLEKIT_ACTION_APP_ACK); intentFilter.addAction(PEBBLEKIT_ACTION_APP_ACK);
intentFilter.addAction(PEBBLEKIT_ACTION_APP_NACK); intentFilter.addAction(PEBBLEKIT_ACTION_APP_NACK);
@ -507,7 +509,7 @@ public class PebbleIoThread extends GBDeviceIoThread {
setInstallSlot(appInfoEvent.freeSlot); setInstallSlot(appInfoEvent.freeSlot);
return false; return false;
} else if (deviceEvent instanceof GBDeviceEventAppMessage) { } else if (deviceEvent instanceof GBDeviceEventAppMessage) {
if (sharedPrefs.getBoolean("pebble_force_untested", false)) { if (mEnablePebblekit) {
LOG.info("Got AppMessage event"); LOG.info("Got AppMessage event");
sendAppMessageIntent((GBDeviceEventAppMessage) deviceEvent); sendAppMessageIntent((GBDeviceEventAppMessage) deviceEvent);
} }

View File

@ -33,7 +33,7 @@
<string name="pref_header_general">General Settings</string> <string name="pref_header_general">General Settings</string>
<string name="pref_title_general_autoconnectonbluetooth">Connect to device when Bluetooth turned on</string> <string name="pref_title_general_autoconnectonbluetooth">Connect to device when Bluetooth turned on</string>
<string name="pref_title_audo_player">Preferred audio player</string> <string name="pref_title_audo_player">Preferred Audioplayer</string>
<string name="pref_default">Default</string> <string name="pref_default">Default</string>
<string name="pref_header_datetime">Date and Time</string> <string name="pref_header_datetime">Date and Time</string>
<string name="pref_title_datetime_syctimeonconnect">Sync time</string> <string name="pref_title_datetime_syctimeonconnect">Sync time</string>
@ -59,6 +59,8 @@
<string name="pref_title_development_miaddr">Mi Band address</string> <string name="pref_title_development_miaddr">Mi Band address</string>
<string name="pref_title_pebble_settings">Pebble Settings</string> <string name="pref_title_pebble_settings">Pebble Settings</string>
<string name="pref_title_enable_pebblekit">Allow 3rd Party Android App Access</string>
<string name="pref_summary_enable_pebblekit">Enable experimental support for Android Apps using PebbleKit</string>
<string name="pref_title_pebble_forceprotocol">Force Notification Protocol</string> <string name="pref_title_pebble_forceprotocol">Force Notification Protocol</string>
<string name="pref_summary_pebble_forceprotocol">This option forces using the latest notification protocol depending on the firmware version. ENABLE ONLY IF YOU KNOW WHAT YOU ARE DOING!</string> <string name="pref_summary_pebble_forceprotocol">This option forces using the latest notification protocol depending on the firmware version. ENABLE ONLY IF YOU KNOW WHAT YOU ARE DOING!</string>
<string name="pref_title_pebble_forceuntested">Enable untested features</string> <string name="pref_title_pebble_forceuntested">Enable untested features</string>

View File

@ -9,7 +9,7 @@
android:title="@string/pref_title_general_autoconnectonbluetooth" /> android:title="@string/pref_title_general_autoconnectonbluetooth" />
<ListPreference <ListPreference
android:defaultValue="default" android:defaultValue="default"
android:key="audio_player" android:key="audio_player"
android:title="@string/pref_title_audo_player" /> android:title="@string/pref_title_audo_player" />
</PreferenceCategory> </PreferenceCategory>
<PreferenceCategory <PreferenceCategory
@ -71,6 +71,21 @@
android:icon="@drawable/ic_device_pebble" android:icon="@drawable/ic_device_pebble"
android:key="pref_key_pebble" android:key="pref_key_pebble"
android:title="@string/pref_title_pebble_settings"> android:title="@string/pref_title_pebble_settings">
<PreferenceCategory
android:key="pref_key_general"
android:title="@string/pref_header_general">
<CheckBoxPreference
android:defaultValue="false"
android:key="pebble_enable_pebblekit"
android:summary="@string/pref_summary_enable_pebblekit"
android:title="@string/pref_title_enable_pebblekit" />
<EditTextPreference
android:defaultValue="12"
android:inputType="number"
android:key="pebble_reconnect_attempts"
android:maxLength="4"
android:title="@string/pref_title_pebble_reconnect_attempts" />
</PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:key="pref_key_development" android:key="pref_key_development"
android:title="@string/pref_header_development"> android:title="@string/pref_header_development">
@ -84,12 +99,6 @@
android:key="pebble_force_untested" android:key="pebble_force_untested"
android:summary="@string/pref_summary_pebble_forceuntested" android:summary="@string/pref_summary_pebble_forceuntested"
android:title="@string/pref_title_pebble_forceuntested" /> android:title="@string/pref_title_pebble_forceuntested" />
<EditTextPreference
android:inputType="number"
android:key="pebble_reconnect_attempts"
android:defaultValue="12"
android:maxLength="4"
android:title="@string/pref_title_pebble_reconnect_attempts" />
<EditTextPreference <EditTextPreference
android:digits="0123456789." android:digits="0123456789."
android:key="pebble_emu_addr" android:key="pebble_emu_addr"