mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-25 03:16:51 +01:00
commit
dbe90d7ae3
54
CHANGELOG.md
54
CHANGELOG.md
@ -27,7 +27,7 @@
|
||||
|
||||
####Version 0.13.9
|
||||
* Pebble: use the last known location for setting sunrise and sunset
|
||||
* Pebble: fix Health disappering forever when deactivating through app manager (and get it back for affected users)
|
||||
* Pebble: fix Health disappearing forever when deactivating through app manager (and get it back for affected users)
|
||||
* Mi Band 2: More fixes for connection issues (#408)
|
||||
|
||||
####Version 0.13.8
|
||||
@ -59,7 +59,7 @@
|
||||
* Possibly fix logging to file on certain devices (#406)
|
||||
* Mi Band 2: Possibly fix weird connection interdependency between Mi 1 and 2 (#323)
|
||||
* Mi Band 1S: Whitelist firmware 4.16.4.22
|
||||
* Mi Band: try application level pairing again, in ordert to support data sharing with Mi Fit (#250)
|
||||
* Mi Band: try application level pairing again, in order to support data sharing with Mi Fit (#250)
|
||||
* Pebble: new icons and colours for certain apps
|
||||
* Debug-screen: added button to test "new functionality", currently live sensor data for Mi Band 1
|
||||
|
||||
@ -90,7 +90,7 @@
|
||||
|
||||
####Version 0.12.1 (release withdrawn)
|
||||
* Pebble: Fix activity data being associated with the wrong device and/or user in some cases causing them to invisible in charts
|
||||
* Remove special handling for Conversations notfications since upstream dropped special pebble support
|
||||
* Remove special handling for Conversations notifications since upstream dropped special pebble support
|
||||
|
||||
####Version 0.12.0 (release withdrawn)
|
||||
* NB: User action needed to migrate existing data!
|
||||
@ -107,13 +107,13 @@
|
||||
####Version 0.11.1
|
||||
* Various fixes (including crashes) for location settings
|
||||
* Pebble: Support Pebble Time 2 emulator (needs recompilation of Gadgetbridge)
|
||||
* Fix a rare crash when, due to bluetooth problems, when a device has no name
|
||||
* Fix a rare crash when, due to Bluetooth problems, when a device has no name
|
||||
* Fix activity fetching getting stuck when double tapping (#333)
|
||||
* Mi Band: in the Device Discovery activity, do not display devices that are already paired
|
||||
* Mi Band: only allow automatic reconnection on disconnect when the device was previously fully connected
|
||||
* Mi Band: fix a rare crash when reading data fails due to bluetooth problems
|
||||
* Mi Band: fix a rare crash when reading data fails due to Bluetooth problems
|
||||
* Mi Band: log full activity sample to help deciphering activity kinds (#341)
|
||||
* Mi Band 2: improved discovery mechanism to not rely on mac addresses (#323)
|
||||
* Mi Band 2: improved discovery mechanism to not rely on MAC addresses (#323)
|
||||
* Charts: only display heart rate samples on devices that support that
|
||||
* Add more logging to detect problems with external directories (#343)
|
||||
|
||||
@ -126,13 +126,13 @@
|
||||
####Version 0.10.2
|
||||
* Pebble: allow to manually paste configuration data for legacy configuration pages
|
||||
* Pebble: various improvements to the configuration page
|
||||
* Pebble: Suppport FW 4.0-dp1 and Pebble2 emulator (needs recompilation of Gadgetbridge)
|
||||
* Pebble: Support FW 4.0-dp1 and Pebble2 emulator (needs recompilation of Gadgetbridge)
|
||||
* Pebble: Fix a problem with key events when using the Pebble music player
|
||||
|
||||
####Version 0.10.1
|
||||
* Pebble: set extended music info by dissecting notifications on Android 5.0+
|
||||
* Pebble: various other improvemnts to music playback
|
||||
* Pebble: allow ignoring activity trackers indiviually (to keep the data on the pebble)
|
||||
* Pebble: various other improvements to music playback
|
||||
* Pebble: allow ignoring activity trackers individually (to keep the data on the pebble)
|
||||
* Mi Band: support for shifting the device time by N hours (for people who sleep at daytime)
|
||||
* Mi Band: initial and untested support for Mi Band 2
|
||||
* Allow setting the application language
|
||||
@ -141,12 +141,12 @@
|
||||
* Pebble: option to send sunrise and sunset events to timeline
|
||||
* Pebble: fix problems with unknown app keys while configuring watchfaces
|
||||
* Mi Band: BLE connection fixes
|
||||
* Fixes for enabling logging at whithout restarting Gadgetbridge
|
||||
* Fixes for enabling logging at without restarting Gadgetbridge
|
||||
* Re-enable device paring activity on Android 6 (BLE scanning needs the location preference)
|
||||
* Display device address in device info
|
||||
|
||||
####Version 0.9.8
|
||||
* Pebble: fix more reconnnect issues
|
||||
* Pebble: fix more reconnect issues
|
||||
* Pebble: fix deep sleep not being detected with Firmware 3.12 when using Pebble Health
|
||||
* Pebble: option in AppManager to delete files from cache
|
||||
* Pebble: enable pbw cache and watchface configuration for Firmware 2.x
|
||||
@ -158,7 +158,7 @@
|
||||
* Pebble: hopefully fix some reconnect issues
|
||||
* Mi Band: fix live activity monitoring running forever if back button pressed
|
||||
* Mi Band: allow low latency firmware updates, fixes update with some phones
|
||||
* Mi Band: inital experimental and probably broken support for Amazfit
|
||||
* Mi Band: initial experimental and probably broken support for Amazfit
|
||||
* Show aliases for BT Devices if they had been renamed in BT Settings
|
||||
* Do not show a hint about App Manager when a Mi Band is connected
|
||||
|
||||
@ -240,7 +240,7 @@
|
||||
####Version 0.7.4
|
||||
* Refactored the settings activity: User details are now generic instead of miband specific. Old settings are preserved.
|
||||
* Pebble: Fix regression with broken active reconnect since 0.7.0
|
||||
* Pebble: Support activation and deactivation of Pebble Health. Activation uses the User details as seen above. Insigths are NOT activated.
|
||||
* Pebble: Support activation and deactivation of Pebble Health. Activation uses the User details as seen above. Insights are NOT activated.
|
||||
Please be aware that deactivation does NOT delete the data stored on the watch (but it seems to stop the tracking), and we do not know how to switch to metric length units.
|
||||
|
||||
####Version 0.7.3
|
||||
@ -249,7 +249,7 @@
|
||||
|
||||
####Version 0.7.2
|
||||
* Pebble: Allow replying to generic notifications that contain a wearable reply action (tested with Signal)
|
||||
* Pebble: Support seting up a common suffix for canned replies (defaults to " (canned reply)")
|
||||
* Pebble: Support setting up a common suffix for canned replies (defaults to " (canned reply)")
|
||||
* Mi Band: Avoid NPEs when aborting an erroneous sync #205
|
||||
* Mi Band: Fix discovery of Mi Band 1S
|
||||
* Add a confirmation dialog when performing a db import
|
||||
@ -266,7 +266,7 @@
|
||||
* Pebble: Allow installing apps compiled with SDK 2.x also on the basalt platform (Time, Time Steel)
|
||||
* Pebble: Fix decoding strings in appmessages from the pebble (fixes sending SMS from "Dialer for Pebble")
|
||||
* Pebble: Support incoming reconnections when device returns from "Airplane Mode" or "Stand-By Mode"
|
||||
* Pebble: Fix crash when turning off bluetooth when connected on Android 6.0
|
||||
* Pebble: Fix crash when turning off Bluetooth when connected on Android 6.0
|
||||
* Mi Band: reserve some alarm slots for alerting when upcoming events begin. NB: the band will vibrate at the start time of the event, android reminders are ignored
|
||||
* Mi Band: Display unique devices Names, not just "MI"
|
||||
* Some new and updated icons
|
||||
@ -290,7 +290,7 @@
|
||||
* Pebble: fix installation of pbw files on firmware 3.x when using content providers (eg. download manager)
|
||||
* Pebble: fix crash on firmware 3.x when pebble requests a pbw that is not in Gadgetbridge's cache
|
||||
+ Treat Signal notifications as chat notifications
|
||||
* Fix crash when contacts cannot be read on Android 6.0 (non-granted pemissions)
|
||||
* Fix crash when contacts cannot be read on Android 6.0 (non-granted permissions)
|
||||
|
||||
####Version 0.6.7
|
||||
* Pebble: Allow installation of 3.x apps on OG Pebble (FW will be released soon)
|
||||
@ -324,7 +324,7 @@
|
||||
* Try to prevent service being killed by disallowing backups
|
||||
|
||||
####Version 0.6.2
|
||||
* Mi Band: support firmare versione 1.0.10.14 (and onwards?) vibration
|
||||
* Mi Band: support firmware version 1.0.10.14 (and onwards?) vibration
|
||||
* Mi Band: get device name from official BT SIG endpoint
|
||||
* Mi Band: initial support for displaying live activity data, screen stays on
|
||||
|
||||
@ -336,11 +336,11 @@
|
||||
* Bugfix for app blacklist (some checkboxes where wrongly drawn as checked)
|
||||
|
||||
####Version 0.6.0
|
||||
* Pebble: WIP implementantion of PebbleKit Intents to make some 3rd party Android apps work with the Pebble (eg. Ventoo)
|
||||
* Pebble: WIP implementation of PebbleKit Intents to make some 3rd party Android apps work with the Pebble (eg. Ventoo)
|
||||
* Pebble: Option to set reconnection attempts in settings (one attempt usually takes about 5 seconds)
|
||||
* Support contolling all audio players that react to media buttons (can be chosen in settings)
|
||||
* Support controlling all audio players that react to media buttons (can be chosen in settings)
|
||||
* Treat SMS as generic notification if set to "never" (can be blacklisted there also if desired)
|
||||
* Treat Conversations messagess as chat messages, even if arrived via Pebble Intents (nice icon for Pebble FW 3.x)
|
||||
* Treat Conversations messages as chat messages, even if arrived via Pebble Intents (nice icon for Pebble FW 3.x)
|
||||
* Allow opening firmware / app files from the download manager "app" (technically a content provider)
|
||||
* Mi Band: whitelisted a few firmware versions
|
||||
|
||||
@ -364,7 +364,7 @@
|
||||
* Graphs are now using the same theme as the rest of the application
|
||||
* Graphs now show when the device was not worn by the user (for devices that send this information)
|
||||
* Remove unused settings option in charts view
|
||||
* Build target is now Android SDK 23 (Marshmellow)
|
||||
* Build target is now Android SDK 23 (Marshmallow)
|
||||
|
||||
####Version 0.5.1
|
||||
* Pebble: support taking screenshot from Pebble Time
|
||||
@ -377,7 +377,7 @@
|
||||
* Pebble: use SMS/EMAIL icons for FW 3.x/Pebble Time
|
||||
* Pebble: do not throttle notifications
|
||||
* Support going forward/backwards in time in the activity charts
|
||||
* Various small bugfixes to the App/Fw Installation Activity
|
||||
* Various small bugfixes to the App/FW Installation Activity
|
||||
|
||||
####Version 0.4.6
|
||||
* Mi Band: Fixed negative number of steps displayed (#91)
|
||||
@ -392,13 +392,13 @@
|
||||
####Version 0.4.5
|
||||
* Enhancement to activity graphs: new graph showing the number of steps done today and in the last week
|
||||
* New preference to set the desired fitness goal (number of steps to walk in one day)
|
||||
* Mi Band: support for setting the fitness goal (the band will show the progress to the goal with the leds and vibrates when the goal is reached)
|
||||
* Mi Band: support for setting the fitness goal (the band will show the progress to the goal with the LEDs and vibrates when the goal is reached)
|
||||
* Mi Band: send the wear location (left / right hand) to the device
|
||||
* Mi Band: support for flashing firmware from .fw files (upgrades and downgrades are possible)
|
||||
* Fixed crash when synchronizing activity data in the graphs activity and changing device orientation
|
||||
|
||||
####Version 0.4.4
|
||||
* Set GadgetBridge notification visibility to public, to show the connection status on the lockscreen
|
||||
* Set Gadgetbridge notification visibility to public, to show the connection status on the lockscreen
|
||||
* Support for backup up and restoring of the activity database (via Debug activity)
|
||||
* Support for graceful upgrades and downgrades, keeping your activity database intact
|
||||
* Enhancement to activity graphs: new graphs for sleep data (only last night) accessible swiping right from the main graph
|
||||
@ -475,7 +475,7 @@
|
||||
####Version 0.2.0
|
||||
* Experimental pbw installation support (watchfaces/apps)
|
||||
* New icons for device and app lists
|
||||
* Fix for device list not refreshing when bluetooth gets turned on
|
||||
* Fix for device list not refreshing when Bluetooth gets turned on
|
||||
* Filter out annoying low battery notifications
|
||||
* Fix for crash on some devices when creating a debug notification
|
||||
* Lots of internal changes preparing multi device support
|
||||
@ -498,8 +498,8 @@
|
||||
* Remove quit button from the service notification, put a quit item in the context menu instead
|
||||
|
||||
####Version 0.1.2
|
||||
* Added option to start Gadgetbridge and connect automatically when bluetooth is turned on
|
||||
* stop service if bluetooth is turned off
|
||||
* Added option to start Gadgetbridge and connect automatically when Bluetooth is turned on
|
||||
* stop service if Bluetooth is turned off
|
||||
* try to reconnect if connection was lost
|
||||
|
||||
####Version 0.1.1
|
||||
|
15
README.md
15
README.md
@ -1,7 +1,7 @@
|
||||
Gadgetbridge
|
||||
============
|
||||
|
||||
Gadgetbridge is an Android (4.4+) Application which will allow you to use your
|
||||
Gadgetbridge is an Android (4.4+) application which will allow you to use your
|
||||
Pebble or Mi Band without the vendor's closed source application and without the
|
||||
need to create an account and transmit any of your data to the vendor's servers.
|
||||
|
||||
@ -29,7 +29,7 @@ need to create an account and transmit any of your data to the vendor's servers.
|
||||
* K-9 Mail notification support
|
||||
* Support for generic notifications (above filtered out)
|
||||
* Support for up to 16 predefined replies for SMS and Android Wear compatible notifications (experimental, tested with Signal)
|
||||
* Dismiss individial notifications, mute or open corresponding app on phone from the action menu (generic notifications)
|
||||
* Dismiss individual notifications, mute or open corresponding app on phone from the action menu (generic notifications)
|
||||
* Dismiss all notifications from the action menu (non-generic notifications)
|
||||
* Music playback info (artist, album, track)
|
||||
* Music control: play/pause, next track, previous track, volume up, volume down
|
||||
@ -48,7 +48,7 @@ need to create an account and transmit any of your data to the vendor's servers.
|
||||
|
||||
## Getting Started (Pebble)
|
||||
|
||||
1. Pair your Pebble through the Android's Bluetooth Settings or Gadgetbridge. Pebble 2 MUST be paried though Gadgetbridge (tap on the + in Control Center)
|
||||
1. Pair your Pebble through the Android's Bluetooth Settings or Gadgetbridge. Pebble 2 MUST be paired though Gadgetbridge (tap on the + in Control Center)
|
||||
2. Start Gadgetbridge, tap on the device you want to connect to
|
||||
3. To test, choose "Debug" from the menu and play around
|
||||
|
||||
@ -65,7 +65,7 @@ For more information read [this wiki article](https://github.com/Freeyourgadget/
|
||||
* Generic Android notifications
|
||||
* Synchronize the time to the Mi Band
|
||||
* Display firmware version and battery state
|
||||
* Firmware Update
|
||||
* Firmware update
|
||||
* Heart rate measurement on demand and during sleep
|
||||
* Synchronize activity data
|
||||
* Display sleep data (alpha)
|
||||
@ -99,8 +99,8 @@ For more information read [this wiki article](https://github.com/Freeyourgadget/
|
||||
tap it quickly a few times in a row to confirm the pairing with the band.
|
||||
|
||||
1. Configure other notifications as desired
|
||||
2. Go back to the "Gadgetbridge" Activity
|
||||
3. Tap the Mi Band item to connect if you're not connected yet.
|
||||
2. Go back to the "Gadgetbridge" activity
|
||||
3. Tap the Mi Band item to connect if you're not connected yet
|
||||
4. To test, chose "Debug" from the menu and play around
|
||||
|
||||
Known Issues:
|
||||
@ -127,10 +127,9 @@ Translations can be contributed via https://www.transifex.com/projects/p/gadgetb
|
||||
|
||||
Feel free to open an issue on our issue tracker, but please:
|
||||
- do not use the issue tracker as a forum, do not ask for ETAs and read the issue conversation before posting
|
||||
- use the search functionality to ensure that your questions wasn't already answered. Don't forget to check the **closed** issues as well!
|
||||
- use the search functionality to ensure that your question wasn't already answered. Don't forget to check the **closed** issues as well!
|
||||
- remember that this is a community project, people are contributing in their free time because they like doing so: don't take the fun away! Be kind and constructive.
|
||||
|
||||
|
||||
## Having problems?
|
||||
|
||||
1. Open Gadgetbridge's settings and check the option to write log files
|
||||
|
@ -174,7 +174,7 @@
|
||||
<data android:pathPattern="/.*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\..*\\.pbl" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- to receive the firmwares from the donwload content provider -->
|
||||
<!-- to receive the firmwares from the download content provider -->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
@ -182,7 +182,7 @@
|
||||
|
||||
<data android:mimeType="application/octet-stream" />
|
||||
</intent-filter>
|
||||
<!-- to receive firmwares from the donwload content provider if recognized as zip-->
|
||||
<!-- to receive firmwares from the download content provider if recognized as zip-->
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
||||
</head>
|
||||
<body>
|
||||
<div id="step1" class="step">
|
||||
<h2>Url of the configuration:</h2>
|
||||
<h2>URL of the configuration:</h2>
|
||||
<div id="config_url"></div>
|
||||
<!--<button class="btn" name="show config" value="show config" onclick="Pebble.showConfiguration()" >Show config / URL</button>-->
|
||||
<button class="btn" name="open config" value="open config" onclick="Pebble.actuallyOpenURL()">
|
||||
@ -67,7 +67,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<div id="step1compat" class="step">
|
||||
<p>In case of "network error" after saving settings in the watchhapp, copy the "network error"
|
||||
<p>In case of "network error" after saving settings in the watchapp, copy the "network error"
|
||||
URL and paste it here:</p>
|
||||
<textarea id="pastereturn"></textarea><br/>
|
||||
<button class="btn" name="parse" onclick="Pebble.parseReturnedPebbleJS()">Parse legacy app
|
||||
|
@ -129,10 +129,10 @@ public class DiscoveryActivity extends GBActivity implements AdapterView.OnItemC
|
||||
};
|
||||
|
||||
|
||||
// why use a method to to get callback?
|
||||
// why use a method to get callback?
|
||||
// because this callback need API >= 21
|
||||
// we cant add @TARGETAPI("Lollipop") at class header
|
||||
// so use a method woth SDK check to return this callback
|
||||
// so use a method with SDK check to return this callback
|
||||
private ScanCallback getScanCallback() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
newLeScanCallback = new ScanCallback() {
|
||||
@ -439,10 +439,10 @@ public class DiscoveryActivity extends GBActivity implements AdapterView.OnItemC
|
||||
// New BTLE Discovery use startScan (List<ScanFilter> filters,
|
||||
// ScanSettings settings,
|
||||
// ScanCallback callback)
|
||||
// Its added on API21
|
||||
// It's added on API21
|
||||
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
||||
private void startNEWBTLEDiscovery() {
|
||||
// Only use new APi when user use Lollipop+ device
|
||||
// Only use new API when user uses Lollipop+ device
|
||||
LOG.info("Start New BTLE Discovery");
|
||||
handler.removeMessages(0, stopRunnable);
|
||||
handler.sendMessageDelayed(getPostMessage(stopRunnable), SCAN_DURATION);
|
||||
|
@ -298,7 +298,7 @@ public class ExternalPebbleJSActivity extends GBActivity {
|
||||
|
||||
@JavascriptInterface
|
||||
public String getWatchToken() {
|
||||
//specification says: A string that is is guaranteed to be identical for each Pebble device for the same app across different mobile devices. The token is unique to your app and cannot be used to track Pebble devices across applications. see https://developer.pebble.com/docs/js/Pebble/
|
||||
//specification says: A string that is guaranteed to be identical for each Pebble device for the same app across different mobile devices. The token is unique to your app and cannot be used to track Pebble devices across applications. see https://developer.pebble.com/docs/js/Pebble/
|
||||
return "gb" + appUuid.toString();
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ public interface DeviceCoordinator {
|
||||
boolean supportsScreenshots();
|
||||
|
||||
/**
|
||||
* Returns true if this device/coordinator supports settig alarms.
|
||||
* Returns true if this device/coordinator supports setting alarms.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
|
@ -14,7 +14,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.MusicStateSpec;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.NotificationSpec;
|
||||
|
||||
/**
|
||||
* Specifies all events that GadgetBridge intends to send to the gadget device.
|
||||
* Specifies all events that Gadgetbridge intends to send to the gadget device.
|
||||
* Implementations can decide to ignore events that they do not support.
|
||||
* Implementations need to send/encode event to the connected device.
|
||||
*/
|
||||
|
@ -265,7 +265,7 @@ public class MiBand2Service {
|
||||
*/
|
||||
public static final byte AUTH_RESPONSE = 0x10;
|
||||
/**
|
||||
* Receeived in response to any authentication requests (byte 2 in the byte[] value.
|
||||
* Received in response to any authentication requests (byte 2 in the byte[] value.
|
||||
* 0x01 means success.
|
||||
*/
|
||||
public static final byte AUTH_SUCCESS = 0x01;
|
||||
|
@ -50,7 +50,7 @@ public class VibrationProfile {
|
||||
*
|
||||
* @param id the ID, used as preference key.
|
||||
* @param onOffSequence a sequence of alternating on and off durations, in milliseconds
|
||||
* @param repeat how ofoften the sequence shall be repeated
|
||||
* @param repeat how often the sequence shall be repeated
|
||||
*/
|
||||
public VibrationProfile(String id, int[] onOffSequence, short repeat) {
|
||||
this.id = id;
|
||||
|
@ -181,7 +181,7 @@ public class PBWInstallHandler implements InstallHandler {
|
||||
}
|
||||
|
||||
public boolean isValid() {
|
||||
// always pretend it is valid, as we cant know yet about hw/fw version
|
||||
// always pretend it is valid, as we can't know yet about hw/fw version
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -232,7 +232,7 @@ public class PBWReader {
|
||||
byte[] tmp_buf = new byte[32];
|
||||
ByteBuffer buf = ByteBuffer.wrap(buffer);
|
||||
buf.order(ByteOrder.LITTLE_ENDIAN);
|
||||
buf.getLong(); // header, TODO: verifiy
|
||||
buf.getLong(); // header, TODO: verify
|
||||
buf.getShort(); // struct version, TODO: verify
|
||||
mSdkVersion = buf.getShort();
|
||||
mAppVersion = buf.getShort();
|
||||
|
@ -57,7 +57,7 @@ public class K9Receiver extends BroadcastReceiver {
|
||||
notificationSpec.type = NotificationType.GENERIC_EMAIL;
|
||||
|
||||
/*
|
||||
* there seems to be no way to specify the the uri in the where clause.
|
||||
* there seems to be no way to specify the uri in the where clause.
|
||||
* If we do so, we just get the newest message, not the one requested.
|
||||
* So, we will just search our message and match the uri manually.
|
||||
* It should be the first one returned by the query in most cases,
|
||||
|
@ -257,7 +257,7 @@ public class GBDevice implements Parcelable {
|
||||
}
|
||||
|
||||
/**
|
||||
* for simplicity the user wont see all internal states, just connecting -> connected
|
||||
* for simplicity the user won't see all internal states, just connecting -> connected
|
||||
* instead of connecting->connected->initializing->initialized
|
||||
* Set simple to true to get this behavior.
|
||||
*/
|
||||
|
@ -644,7 +644,7 @@ public class DeviceCommunicationService extends Service implements SharedPrefere
|
||||
|
||||
setDeviceSupport(null);
|
||||
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
nm.cancel(GB.NOTIFICATION_ID); // need to do this because the updated notification wont be cancelled when service stops
|
||||
nm.cancel(GB.NOTIFICATION_ID); // need to do this because the updated notification won't be cancelled when service stops
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -59,7 +59,7 @@ public abstract class AbstractBTLEOperation<T extends AbstractBTLEDeviceSupport>
|
||||
* Subclasses must implement this. When invoked, #prePerform() returned
|
||||
* successfully.
|
||||
* Note that subclasses HAVE TO call #operationFinished() when the entire
|
||||
* opreation is done (successful or not).
|
||||
* operation is done (successful or not).
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
@ -67,7 +67,7 @@ public abstract class AbstractBTLEOperation<T extends AbstractBTLEDeviceSupport>
|
||||
|
||||
/**
|
||||
* You MUST call this method when the operation has finished, either
|
||||
* successfull or unsuccessfully.
|
||||
* successfully or unsuccessfully.
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
|
@ -25,7 +25,7 @@ public abstract class BtLEAction {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this actions expects an (async) result which must
|
||||
* Returns true if this action expects an (async) result which must
|
||||
* be waited for, before continuing with other actions.
|
||||
* <p/>
|
||||
* This is needed because the current Bluedroid stack can only deal
|
||||
|
@ -48,7 +48,7 @@ public final class BtLEQueue {
|
||||
private final InternalGattCallback internalGattCallback;
|
||||
private boolean mAutoReconnect;
|
||||
|
||||
private Thread dispatchThread = new Thread("GadgetBridge GATT Dispatcher") {
|
||||
private Thread dispatchThread = new Thread("Gadgetbridge GATT Dispatcher") {
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
@ -148,7 +148,7 @@ public final class BtLEQueue {
|
||||
}
|
||||
synchronized (mGattMonitor) {
|
||||
if (mBluetoothGatt != null) {
|
||||
// Tribal knowledge says you're better off not reusing existing BlueoothGatt connections,
|
||||
// Tribal knowledge says you're better off not reusing existing BluetoothGatt connections,
|
||||
// so create a new one.
|
||||
LOG.info("connect() requested -- disconnecting previous connection: " + mGbDevice.getName());
|
||||
disconnect();
|
||||
|
@ -30,7 +30,7 @@ public class WriteAction extends BtLEAction {
|
||||
public boolean run(BluetoothGatt gatt) {
|
||||
BluetoothGattCharacteristic characteristic = getCharacteristic();
|
||||
int properties = characteristic.getProperties();
|
||||
//TODO: expectsResult should return false if PROPERTY_WRITE_NO_RESPONSE is true, but this yelds to timing issues
|
||||
//TODO: expectsResult should return false if PROPERTY_WRITE_NO_RESPONSE is true, but this leads to timing issues
|
||||
if ((properties & BluetoothGattCharacteristic.PROPERTY_WRITE) > 0 || ((properties & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) > 0)) {
|
||||
return writeValue(gatt, characteristic, value);
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ public enum AlertCategory {
|
||||
|
||||
/**
|
||||
* Returns the numerical ID value of this category
|
||||
* To be used as uin8 value
|
||||
* To be used as uint8 value
|
||||
* @return the uint8 value for this category
|
||||
*/
|
||||
public int getId() {
|
||||
|
@ -17,7 +17,7 @@ public class SupportedNewAlertCategory {
|
||||
|
||||
/**
|
||||
* Returns the numerical ID value of this category
|
||||
* To be used as uin8 value
|
||||
* To be used as uint8 value
|
||||
* @return the uint8 value for this category
|
||||
*/
|
||||
public int getId() {
|
||||
|
@ -7,7 +7,7 @@ package nodomain.freeyourgadget.gadgetbridge.service.btle.profiles.heartrate;
|
||||
*/
|
||||
public enum BodySensorLocation {
|
||||
Other(0),
|
||||
Checst(1),
|
||||
Chest(1),
|
||||
Wrist(2),
|
||||
Finger(3),
|
||||
Hand(4),
|
||||
|
@ -56,7 +56,7 @@ public class AppMessageHandlerPebStyle extends AppMessageHandler {
|
||||
pairs.add(new Pair<>(KEY_SECOND_HAND, (Object) 0)); //1 enabled
|
||||
pairs.add(new Pair<>(KEY_BLUETOOTH_ALERT, (Object) 0)); //1 silent, 2 weak, up to 5
|
||||
pairs.add(new Pair<>(KEY_TEMPERATURE_FORMAT, (Object) 1)); //0 fahrenheit
|
||||
pairs.add(new Pair<>(KEY_LOCATION_SERVICE, (Object) 2)); //0 uto, 1 manual
|
||||
pairs.add(new Pair<>(KEY_LOCATION_SERVICE, (Object) 2)); //0 auto, 1 manual
|
||||
pairs.add(new Pair<>(KEY_SIDEBAR_LOCATION, (Object) 1)); //0 right
|
||||
pairs.add(new Pair<>(KEY_COLOR_SELECTION, (Object) 1)); //1 custom
|
||||
pairs.add(new Pair<>(KEY_MAIN_COLOR, (Object) PebbleColor.Black));
|
||||
|
@ -323,7 +323,7 @@ class PebbleIoThread extends GBDeviceIoThread {
|
||||
writeInstallApp(mPebbleProtocol.encodeInstallFirmwareComplete());
|
||||
finishInstall(false);
|
||||
} else if (mPBWReader.isLanguage() || mPebbleProtocol.mFwMajor >= 3) {
|
||||
finishInstall(false); // FIXME: dont know yet how to detect success
|
||||
finishInstall(false); // FIXME: don't know yet how to detect success
|
||||
} else {
|
||||
writeInstallApp(mPebbleProtocol.encodeAppRefresh(mInstallSlot));
|
||||
}
|
||||
|
@ -808,7 +808,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||
buf.putShort(duration);
|
||||
buf.put((byte) 0x02); // type (0x02 = pin)
|
||||
buf.putShort((short) 0x0001); // flags 0x0001 = ?
|
||||
buf.put((byte) 0x01); // layout was (0x02 = pin?), 0x01 needed for subtitle aber seems to do no harm if there isn't one
|
||||
buf.put((byte) 0x01); // layout was (0x02 = pin?), 0x01 needed for subtitle but seems to do no harm if there isn't one
|
||||
|
||||
buf.putShort((short) attributes_length); // total length of all attributes and actions in bytes
|
||||
buf.put(attributes_count);
|
||||
@ -1373,7 +1373,7 @@ public class PebbleProtocol extends GBDeviceProtocol {
|
||||
ByteBuffer buf = ByteBuffer.allocate(12 + replies_length);
|
||||
buf.order(ByteOrder.LITTLE_ENDIAN);
|
||||
buf.putInt(0x00000000); // unknown
|
||||
buf.put((byte) 0x00); // atributes count?
|
||||
buf.put((byte) 0x00); // attributes count?
|
||||
buf.put((byte) 0x01); // actions count?
|
||||
|
||||
// action
|
||||
|
@ -113,10 +113,10 @@ class PebbleGATTServer extends BluetoothGattServerCallback {
|
||||
if (command == 0x02) { // some request?
|
||||
LOG.info("got command 0x02");
|
||||
if (value.length > 1) {
|
||||
sendDataToPebble(new byte[]{0x03, 0x19, 0x19}); // no we dont know what that means
|
||||
sendDataToPebble(new byte[]{0x03, 0x19, 0x19}); // no we don't know what that means
|
||||
mPebbleLESupport.createPipedInputReader(); // FIXME: maybe not here
|
||||
} else {
|
||||
sendDataToPebble(new byte[]{0x03}); // no we dont know what that means
|
||||
sendDataToPebble(new byte[]{0x03}); // no we don't know what that means
|
||||
}
|
||||
} else if (command == 0) { // normal package
|
||||
LOG.info("got PPoGATT package serial = " + serial + " sending ACK");
|
||||
|
@ -128,7 +128,7 @@ public class GB {
|
||||
// file header
|
||||
headerbuf.put((byte) 'B');
|
||||
headerbuf.put((byte) 'M');
|
||||
headerbuf.putInt(0); // size in bytes (unconpressed = 0)
|
||||
headerbuf.putInt(0); // size in bytes (uncompressed = 0)
|
||||
headerbuf.putInt(0); // reserved
|
||||
headerbuf.putInt(FILE_HEADER_SIZE + INFO_HEADER_SIZE + screenshot.clut.length);
|
||||
|
||||
@ -139,7 +139,7 @@ public class GB {
|
||||
headerbuf.putShort((short) 1); // planes
|
||||
headerbuf.putShort((short) screenshot.bpp);
|
||||
headerbuf.putInt(0); // compression
|
||||
headerbuf.putInt(0); // length of pixeldata in byte (uncompressed=0)
|
||||
headerbuf.putInt(0); // length of pixeldata in bytes (uncompressed=0)
|
||||
headerbuf.putInt(0); // pixels per meter (x)
|
||||
headerbuf.putInt(0); // pixels per meter (y)
|
||||
headerbuf.putInt(screenshot.clut.length / 4); // number of colors in CLUT
|
||||
|
@ -214,7 +214,7 @@
|
||||
<string name="weeksteps_today_steps_description">Lépések ma, cél: %1$s</string>
|
||||
<string name="pref_title_dont_ack_transfer">Hagyja az aktivitási adatokat a készüléken</string>
|
||||
<string name="pref_summary_dont_ack_transfers">Az aktivitás adatok a band-en maradnak. Hasznos, ha a GB-t más alkalamzásokkal együtt használod.</string>
|
||||
<string name="pref_summary_keep_data_on_device">Az adatokat a Mi Band-en fogja tárolni szinkronizálás után is. Hasznos, ha a GadgetBridge-et együtt használod más alkalmazásokkal.</string>
|
||||
<string name="pref_summary_keep_data_on_device">Az adatokat a Mi Band-en fogja tárolni szinkronizálás után is. Hasznos, ha a Gadgetbridge-et együtt használod más alkalmazásokkal.</string>
|
||||
<string name="pref_title_low_latency_fw_update">Használja a low-latency módot a Firmware frissítésnél</string>
|
||||
<string name="pref_summary_low_latency_fw_update">Ez segíthet, ha a firmware frissítés sikertelen.</string>
|
||||
<string name="live_activity_steps_history">Lépésnapló</string>
|
||||
|
@ -27,7 +27,7 @@
|
||||
</release>
|
||||
<release version="0.13.9" versioncode="71">
|
||||
<change>Pebble: use the last known location for setting sunrise and sunset</change>
|
||||
<change>Pebble: fix Health disappering forever when deactivating through app manager (and get it back for affected users)</change>
|
||||
<change>Pebble: fix Health disappearing forever when deactivating through app manager (and get it back for affected users)</change>
|
||||
<change>Mi Band 2: More fixes for connection issues (#408)</change>
|
||||
</release>
|
||||
<release version="0.13.8" versioncode="70">
|
||||
@ -59,7 +59,7 @@
|
||||
<change>Possibly fix logging to file on certain devices)</change>
|
||||
<change>Mi Band 2: Possibly fix weird connection interdependency between Mi 1 and 2</change>
|
||||
<change>Mi Band 1S: Whitelist firmware 4.16.4.22</change>
|
||||
<change>Mi Band: try application level pairing again, in ordert to support data sharing with Mi Fit</change>
|
||||
<change>Mi Band: try application level pairing again, in order to support data sharing with Mi Fit</change>
|
||||
<change>Pebble: new icons and colours for certain apps</change>
|
||||
<change>Debug-screen: added button to test "new functionality", currently live sensor data for Mi Band 1</change>
|
||||
</release>
|
||||
@ -90,7 +90,7 @@
|
||||
</release>
|
||||
<release version="0.12.1" versioncode="60">
|
||||
<change>Pebble: fix activity data being associated with the wrong device and/or user in some cases causing them to invisible in charts</change>
|
||||
<change>Remove special handling for Conversations notfications since upstream dropped special pebble support</change>
|
||||
<change>Remove special handling for Conversations notifications since upstream dropped special pebble support</change>
|
||||
</release>
|
||||
<release version="0.12.0" versioncode="59">
|
||||
<change>NB: User action needed to migrate existing data!</change>
|
||||
@ -107,13 +107,13 @@
|
||||
<release version="0.11.1" versioncode="57">
|
||||
<change>Various fixes (including crashes) for location settings</change>
|
||||
<change>Pebble: Support Pebble Time 2 emulator (needs recompilation of Gadgetbridge)</change>
|
||||
<change>Fix a rare crash when, due to bluetooth problems, when a device has no name</change>
|
||||
<change>Fix a rare crash when, due to Bluetooth problems, when a device has no name</change>
|
||||
<change>Fix activity fetching getting stuck when double tapping (#333)</change>
|
||||
<change>Mi Band: in the Device Discovery activity, do not display devices that are already paired</change>
|
||||
<change>Mi Band: only allow automatic reconnection on disconnect when the device was previously fully connected</change>
|
||||
<change>Mi Band: fix a rare crash when reading data fails due to bluetooth problems</change>
|
||||
<change>Mi Band: fix a rare crash when reading data fails due to Bluetooth problems</change>
|
||||
<change>Mi Band: log full activity sample to help deciphering activity kinds (#341)</change>
|
||||
<change>Mi Band 2: improved discovery mechanism to not rely on mac addresses (#323)</change>
|
||||
<change>Mi Band 2: improved discovery mechanism to not rely on MAC addresses (#323)</change>
|
||||
<change>Charts: only display heart rate samples on devices that support that</change>
|
||||
<change>Add more logging to detect problems with external directories (#343)</change>
|
||||
</release>
|
||||
@ -126,13 +126,13 @@
|
||||
<release version="0.10.2" versioncode="55">
|
||||
<change>Pebble: allow to manually paste configuration data for legacy configuration pages</change>
|
||||
<change>Pebble: various improvements to the configuration page</change>
|
||||
<change>Pebble: Suppport FW 4.0-dp1 and Pebble2 emulator (needs recompilation of Gadgetbridge)</change>
|
||||
<change>Pebble: Support FW 4.0-dp1 and Pebble2 emulator (needs recompilation of Gadgetbridge)</change>
|
||||
<change>Pebble: Fix a problem with key events when using the Pebble music player</change>
|
||||
</release>
|
||||
<release version="0.10.1" versioncode="54">
|
||||
<change>Pebble: set extended music info by dissecting notifications on Android 5.0+</change>
|
||||
<change>Pebble: various other improvemnts to music playback</change>
|
||||
<change>Pebble: allow ignoring activity trackers indiviually (to keep the data on the pebble)</change>
|
||||
<change>Pebble: various other improvements to music playback</change>
|
||||
<change>Pebble: allow ignoring activity trackers individually (to keep the data on the pebble)</change>
|
||||
<change>Mi Band: support for shifting the device time by N hours (for people who sleep at daytime)</change>
|
||||
<change>Mi Band: initial and untested support for Mi Band 2</change>
|
||||
<change>Allow setting the application language</change>
|
||||
@ -141,12 +141,12 @@
|
||||
<change>Pebble: option to send sunrise and sunset events to timeline</change>
|
||||
<change>Pebble: fix problems with unknown app keys while configuring watchfaces</change>
|
||||
<change>Mi Band: BLE connection fixes</change>
|
||||
<change>Fixes for enabling logging at whithout restarting Gadgetbridge</change>
|
||||
<change>Fixes for enabling logging at without restarting Gadgetbridge</change>
|
||||
<change>Re-enable device paring activity on Android 6 (BLE scanning needs the location preference)</change>
|
||||
<change>Display device address in device info</change>
|
||||
</release>
|
||||
<release version="0.9.8" versioncode="52">
|
||||
<change>Pebble: fix more reconnnect issues</change>
|
||||
<change>Pebble: fix more reconnect issues</change>
|
||||
<change>Pebble: fix deep sleep not being detected with Firmware 3.12 when using Pebble Health</change>
|
||||
<change>Pebble: option in AppManager to delete files from cache</change>
|
||||
<change>Pebble: enable pbw cache and watchface configuration for Firmware 2.x</change>
|
||||
@ -158,7 +158,7 @@
|
||||
<change>Pebble: hopefully fix some reconnect issues</change>
|
||||
<change>Mi Band: fix live activity monitoring running forever if back button pressed</change>
|
||||
<change>Mi Band: allow low latency firmware updates, fixes update with some phones</change>
|
||||
<change>Mi Band: inital experimental and probably broken support for Amazfit</change>
|
||||
<change>Mi Band: initial experimental and probably broken support for Amazfit</change>
|
||||
<change>Show aliases for BT Devices if they had been renamed in BT Settings</change>
|
||||
<change>Do not show a hint about App Manager when a Mi Band is connected</change>
|
||||
</release>
|
||||
|
@ -164,7 +164,7 @@ public class FirmwareTest {
|
||||
String path = System.getProperty("MiFirmwareDir");
|
||||
Assert.assertNotNull("You must run this test with -DMiFirmwareDir=/path/to/directory/with/miband/firmwarefiles/", path);
|
||||
File dir = new File(path);
|
||||
Assert.assertTrue("System property MiFirmwareDir should point to a directory continaing the Mi Band firmware files", dir.isDirectory());
|
||||
Assert.assertTrue("System property MiFirmwareDir should point to a directory containing the Mi Band firmware files", dir.isDirectory());
|
||||
return dir;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user