Andreas Shimokawa
a302b5509f
Huami: re-enable setting the timezone correctly with included DST
...
This will trigger bugs, but also fix some.
We "just" need to fix the new bugs :/
2021-07-30 16:33:44 +02:00
Andreas Shimokawa
603050b7cc
InfiniTime: support notification for battery level
2021-07-08 23:46:18 +02:00
Andreas Shimokawa
f32c4d6a43
Support timezones with half an our offset (like UTC+5:30)
...
Should help #2283
2021-06-04 13:07:42 +02:00
Robbert Gurdeep Singh
99aa59e7da
Add friendly reminder of number of bytes to javadoc
2021-03-14 22:21:58 +01:00
Toby Murray
203176a01e
Update GATT characteristic list
...
The current GATT characteristic list mentions it was up to date as of populated 2015-09-28. In the last 6 years, significantly more characteristics have been added to the Bluetooth spec. While it's not necessary to have all these constants available in Gadgetbridge, it's useful while implementing new features for a device or adding support for a new device
This was retrieved from https://btprodspecificationrefs.blob.core.windows.net/assigned-values/16-bit%20UUID%20Numbers%20Document.pdf . The GATT characteristics were parsed from that PDF and converted to constants with names via:
```
String description = uuid.description.trim().toUpperCase().replace(' ', '_').replace('-', '_');
System.out.println("public static final UUID UUID_CHARACTERISTIC_" + description + " = UUID.fromString((String.format(AbstractBTLEDeviceSupport.BASE_UUID, \"" + uuid.uuid + "\")));");
```
2021-01-18 19:38:16 -05:00
License Bot
1b5402dcb4
update license headers
2021-01-10 23:38:13 +01:00
Andreas Böhler
92986724ee
Fix watch init (only do the bare minimum) and add basic
...
notification support. Reconnect is WiP.
2020-11-21 22:12:19 +01:00
Maxim Baz
e2a75d75d4
Add Wire messenger to the chat applications
...
This is a chat app that uses end-to-end encryption algorithm similar to Signal.
2020-10-26 23:29:58 +01:00
Bot
40852d3641
Fixed a bunch of misspellings and formatting
2020-08-26 14:37:40 +03:00
TaaviE
010785113b
Fixed a few more warnings
2020-08-26 09:38:31 +02:00
TaaviE
7db3b68047
Fixed a bunch of warnings
2020-08-26 09:38:31 +02:00
License Bot
d6fa5d0dd5
Update license headers
2020-01-09 10:44:32 +01:00
Andreas Shimokawa
f0e8440e67
Try to fix race condition when re-connecting
...
(Count down latch only if services have been discovered)
2019-12-26 00:18:36 +01:00
License Bot
171f283ca8
Update license headers
2019-12-15 22:09:02 +01:00
License Bot
1dc8c26e2a
Update license headers
2019-12-06 22:51:43 +01:00
dakhnod
f4a0f0ce8f
Merge branch 'master' of github.com:Freeyourgadget/Gadgetbridge into fossil-q-hybrid
2019-12-04 00:48:26 +01:00
FYG_license_bot_ignore_me
8e5c4b4602
Update license headers
2019-11-23 21:53:22 +01:00
Andreas Shimokawa
c2db30274f
Make reconnect logic more device agnostic and remove pebble reconnect logic
2019-11-20 10:53:25 +01:00
Andreas Shimokawa
c7053747cd
Add active reconnection
...
Closes #1724
Closes #1632
Closes #1452
Closes #1271
Closes #564
(Probably more)
2019-11-19 14:40:20 +01:00
Daniel Dakhno
64b407da92
added mtu transactions
2019-11-14 04:53:19 +01:00
Cre3per
fdffe813f2
makibes hr3.
...
download progress notification (needs to be tested).
2019-10-12 12:44:38 +02:00
Andreas Shimokawa
16090f0e21
Move fake device offset to Mi Band 1 preferences, remove support for other devices
...
Reasons for removal:
- I doubt we honored the offset correctly for new features anyway that are available on newer devices
- Newer devices have a display always displaying the wrong time
2019-06-05 14:11:44 +02:00
License Bot
9aadb2f2fd
Update license headers
2019-04-21 18:53:10 +02:00
Andreas Böhler
c091828205
Rename getActionSize() -> getActionCount() and make it abstract
2019-02-27 19:08:54 +01:00
Andreas Böhler
325add3f0a
Remove duplicate queue
...
# Conflicts:
# app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java
2019-02-27 09:27:50 +01:00
Andreas Böhler
88ac816393
Fix queue handling if only server or client operation is present
2019-02-18 20:20:57 +01:00
Andreas Böhler
6577ad69b0
Add initial support for Gatt server in BtLEQueue
2019-02-18 20:20:57 +01:00
License Bot
beedb653e6
Update license headers
2019-02-13 20:43:31 +01:00
Daniele Gobbetti
75d3dffb14
Migrate to androidx support libraries and bump compile SDK version
...
"Optimize imports" has been run on all source files, there might be
unrelated changes, but these should be harmless.
2019-01-26 16:00:56 +01:00
cpfeiffer
fb85326939
performConnected() -> builder.qeueue(getQueue())
2019-01-03 00:44:34 +01:00
cpfeiffer
60397c88c0
Avoid possible NPE
2018-09-23 11:27:35 +02:00
cpfeiffer
8c1a1861e4
Fix some static analysis warnings
2018-09-16 13:59:16 +02:00
cpfeiffer
87bee53ef3
Add a tiny bit of javadoc
2018-09-15 22:43:45 +02:00
cpfeiffer
d6f5e36e12
Huami devices: Fix seldom fetch failures (better support for app level ble feedback)
...
Fixes #1264
2018-09-15 22:24:27 +02:00
cpfeiffer
a2bd8212f6
Attempt to fix connection problems on Samsung devices
2018-09-06 18:25:41 +02:00
José Rebelo
cc6c57bd4c
Add support for LED Color, FM Frequency
2018-08-31 14:03:39 +01:00
License Bot
696653eabf
Update contributors list and license headers.
2018-08-29 21:30:23 +02:00
cpfeiffer
50295864f5
Use a custom IntentListener callback instead of LocalBroadcastManager for ble profiles
...
The issue here is the following:
- we used intents in the generic BleProfile classes to notify about the results of e.g. certain read requests
- we used to send these results asynchronously via LocalBroadcastManager.sendBroadcast(), which always used the main thread for sending
- however, we noticed that reconnecting to devices sometimes failed because the results arrived too late and the next action in the BLE queue lacked the necessary information
- the fix was to use LocalBroadcastManager.setBroadcastSync(), so that the results arrive in time
- this unfortunately meant that they were not sent in the main thread anymore, and especially, this would send all pending intents that were previously queued via sendBroadcast() also in the "wrong" thread (in order to keep the order of events)
The fix is to use a custom IntentListener callback interface for synchronous notifications of ble profile results
*without* also causing other, previously queued intents to be sent.
Fixes #1218
2018-08-18 00:39:14 +02:00
cpfeiffer
cc3c70b161
Send results of AbstractBleProfile synchronously
...
This should fix issues like a ConditionalWriteAction failing with an NPE when GBDevice.getFirmwareVersion() returns null even though the DeviceInfoProfile had already received the firmware version (but the intent notification has not been received yet).
2018-08-06 20:51:28 +02:00
Andreas Shimokawa
3d3cc1f40c
Merge branch 'master' into bip-wip
2018-03-13 17:27:18 +01:00
License Bot
238bacde9f
Update license headers
2018-02-26 14:27:33 +01:00
Daniele Gobbetti
4f246b3ed9
Add Antox to the chat applications.
...
Notifications coming from the chat.tox.antox package are treated as chat
messages. This closes #910
2018-02-17 17:39:15 +01:00
Daniele Gobbetti
48b89f1bd2
Add Kontalk to the chat applications.
...
Notifications coming from the org.kontalk package are treated as chat
messages. This closes #994
2018-02-17 17:33:34 +01:00
Andreas Shimokawa
6f68c8adde
Merge branch 'master' into bip-wip
2018-01-04 12:09:57 +01:00
Lukas Veneziano
6b339a3013
Added notification type for threema app
2017-12-31 00:10:39 +01:00
cpfeiffer
da7de378d3
Back out the DST handling, since it causes problems with activity fetching
...
Details: when we ask to fetch activity samples from date:time:tz+dst, the band,
under certain conditions, will send us back date:time:tz (without the dst offset)
We're fine with that, so we start fetching. When it's done, we take the last sample's
timestamp (still without dst offset), convert it to a unix timestamp, create a Calendar
using current tz and apply the unix timestamp. Then we send that timestamp again to the
band in order to fetch activity samples from then, but we again add the dst offset to the tz,
so send as date:time:tz+dst without changing the timestamp. That way, we may end up at the
timestamp we began with, fetching the same activity data again and not progressing.
We first need to thorougly understand how the devices behave, before we can reenable and fix
this.
2017-11-07 21:24:48 +01:00
Andreas Shimokawa
9764e8e54e
try to parse timezone that comes back from huami devices
...
(there are other places where something like this has to be done, probably also in the other direction)
related to #869
(cherry picked from commit a58e3f66ce
)
2017-11-06 23:23:11 +01:00
Andreas Shimokawa
a58e3f66ce
try to parse timezone that comes back from huami devices
...
(there are other places where something like this has to be done, probably also in the other direction)
related to #869
2017-11-05 22:35:28 +01:00
cpfeiffer
fd159b7603
Bip: improved logging, read expected number of bytes for progress monitoring during sync
2017-11-01 23:05:29 +01:00
cpfeiffer
f5318287c4
WIP: Bip GPS fetching, parsing, exporting
...
Also adjust Mi2 date/time sending wrt DST offsets
2017-10-31 23:16:39 +01:00
License Bot
3ea2ac6dd2
Update license headers
2017-10-25 09:29:36 +02:00
Andreas Shimokawa
f07b77f903
Mi Band 2: support app icons and textual notifications for more apps
2017-10-22 00:02:36 +02:00
Andreas Shimokawa
3301194e75
Consolidate duplicate Mi2 / Bip icon definition
...
Also handle some more recently added icons
2017-09-14 10:15:14 +02:00
License Bot
a10fc8ad4e
Update license headers
2017-09-12 12:39:15 +02:00
cpfeiffer
c468e7f521
Mi Bands+Bip: when an operation finishes, unset the gatt callback on the BtLEQeue
...
Otherwise it will continue to receive events until another transaction is being executed.
2017-09-02 22:49:58 +02:00
Andreas Shimokawa
e839a2c6a3
Trim strings coming from DeviceInfoProfile (BLE).
...
On the Bip strings have trailing zeroes. Putting this in the Database results in a "BLOB"
2017-08-31 11:52:21 +02:00
License Bot
15f4ce2869
Update license headers
2017-08-25 11:25:01 +02:00
Andreas Shimokawa
ebc1cedf55
damn typo
2017-08-23 23:12:44 +02:00
Andreas Shimokawa
a398f33cb8
Mi Band2: do not misuse ALERT_LEVEL_ constants, use AlertCategory enum
2017-08-23 23:04:40 +02:00
Andreas Shimokawa
4c8728c78f
Amazfit Bip: Support app icons in notifications
2017-08-21 23:47:47 +02:00
Andreas Shimokawa
fdcc51cb98
Amazfit Bip: Support sending notification body, not only title
2017-08-20 23:58:41 +02:00
License Bot
8af9054f2d
Update license headers
2017-04-26 00:14:25 +02:00
cpfeiffer
696dc1f08d
Attempt to fix reconnection not happening in some cases
...
Fixes #530
2017-04-20 23:01:32 +02:00
João Paulo Barraca
9f0d260e7a
HPlus: Improve connection process ( #651 )
...
* Clean HPlus services and characteristics
* Improve connectivity
2017-04-18 10:47:28 +01:00
cpfeiffer
1a88858c6f
Fix some findbugs findings
2017-04-09 01:09:43 +02:00
License Bot
6a842c52fa
Update license header in all java files.
2017-03-16 17:36:15 +01:00
cpfeiffer
17ecee0cab
Mi2: initial support for text notifications and icons
...
See #560
2017-03-14 00:45:54 +01:00
cpfeiffer
8fc6dfeca7
Improved AlertNotificationProfile
...
AlertLevel, AlertCategory, Control Point
2017-03-14 00:45:54 +01:00
License Bot
e392fbfd80
Add license header to all java files.
2017-03-10 14:53:19 +01:00
cpfeiffer
6282597790
Handle BT issues with discovered characteristics
...
It occurred to me that onServicesDiscovered() was called multiple times
whenever I connected to my Mi Band 2. Either the band actually sent the
characteristics in multiple chunks or Android itself notified multiple
times.
So we gracefully handle this by
- updating the list of characteristics
- *not* initializing the device again when it *is* already initialized
or at least initializing.
2017-03-09 22:49:13 +01:00
cpfeiffer
4419200624
Mi2: Initial support for textual notifications #560
2017-03-03 20:12:43 +01:00
cpfeiffer
6c269aa089
Generic characteristic names from field names
2017-01-08 21:37:43 +01:00
cpfeiffer
6dfc895303
Mi2: Initial work on firmware update #427
2016-12-11 02:11:58 +01:00
Andreas Shimokawa
17b581022b
optimize imports
2016-12-09 20:14:17 +01:00
cpfeiffer
44f74270df
Mi2: Experimental support for activity recognition
2016-12-02 00:22:06 +01:00
Uwe Hermann
0746aaa579
app: Random typo and consistency fixes.
2016-12-01 20:22:12 +01:00
Uwe Hermann
6dd74d04ac
code/docs: Consistently use the "Gadgetbridge" spelling.
...
"Gadgetbridge" appears to be the common spelling as per most docs,
code comments, wiki, and so on. Thus avoid using "GadgetBridge".
2016-12-01 17:28:51 +01:00
cpfeiffer
09ff95eb34
Support for continuous hr readings (live activity) #323
2016-11-29 23:25:11 +01:00
cpfeiffer
82cd06f4c1
Mi2: WIP: initial support for activity data
...
(#323 )
2016-11-22 00:05:41 +01:00
cpfeiffer
51fa31aa66
Fix BLE type conversions problems
2016-11-18 23:36:22 +01:00
cpfeiffer
ddaf51768d
Improved logging
2016-11-13 20:24:25 +01:00
cpfeiffer
b20a9c9ccc
Some initial hacky support for hr readings (Debug activity only)
...
My Mi2 stopped reporting hr values a while ago though, even on-device.
2016-10-23 23:53:48 +02:00
cpfeiffer
839da4f06a
Shuffle some logging things around
2016-10-21 00:50:41 +02:00
cpfeiffer
8f36712342
WIP: A little more Alert Notification Profile
...
I think we should rather focus on a code generator, though.
2016-09-29 20:32:15 +02:00
cpfeiffer
c2f8037f07
WIP: Alert Notification Profile
2016-09-26 22:21:59 +02:00
Andreas Shimokawa
55a1248e8f
compile fix
2016-09-26 21:43:10 +02:00
cpfeiffer
d4b134a490
WIP regarding heart rate profile
2016-09-26 11:44:57 +02:00
cpfeiffer
ccdb843b6e
Improved Mi Band 2 support #323
...
- connecting works and is stable
- firmware and hardware version is displayed
- time is set
2016-09-20 23:12:17 +02:00
Andreas Shimokawa
da01a76594
fix BatteryInfoProfile NPE, show battery level for Vibratissimo
2016-09-19 16:37:45 +02:00
JohnnySun
53d4681763
Optimize Imports
2016-09-13 23:53:35 +08:00
cpfeiffer
fbf06c1fe3
Separate coordinator and support instances for Mi1 and Mi2 #323
...
+ Some more testing stuff for Mi2
2016-08-17 00:53:16 +02:00
cpfeiffer
9b7e8e06d6
Improved time conversion (0x2A0F)
...
- support for org.bluetooth.characteristic.local_time_information
- support for day of week in 0x2A2B
Unfortunately Mi Band 2 does not support 0x2A0F ;(
2016-08-15 00:40:35 +02:00
cpfeiffer
43d7566c0b
some more microsteps #206
2016-08-01 22:18:57 +02:00
cpfeiffer
b43b7948b0
Let GallCallback return boolean values in order to mark an event as "consumed"
...
(to avoid dispatching the event to further listeners (ble profiles)
2016-07-28 23:04:37 +02:00
cpfeiffer
f5ba09ebe0
Some babysteps towards miband2 support #323
...
Start to implement standard BLE profiles/services.
2016-07-25 00:00:22 +02:00
cpfeiffer
1997a9b7fa
some more service discovery logging
2016-07-18 23:55:44 +02:00
cpfeiffer
8154a887cb
When there are cached services, skip service discovery
2016-07-08 22:15:36 +02:00
cpfeiffer
8549031c6f
Only attempt to reconnect when we were previously initialized
2016-07-04 23:38:25 +02:00
cpfeiffer
f0da25c49b
Fix activity fetching getting stuck when double tapping #333
2016-06-28 23:07:24 +02:00
cpfeiffer
2d49ce505a
Set state to "Waiting for reconnect" for BTLE devices
2016-05-26 23:48:05 +02:00