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:
parent
8bef384855
commit
e1b02e1be4
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Reference in New Issue