cpfeiffer
5d3c45d2c0
Mi2: Remember and use last synced timestamp in preferences
...
(instead of using the last sample's timestamp in the database.
The database also contains manual hr measurements and live activity
samples, so we would miss activity data before the last manual
measurement.
Closes #478
2016-12-29 23:23:20 +01:00
cpfeiffer
aadde7d1ca
Port to UriHelper, fix potential resource leak
2016-12-29 01:41:47 +01:00
João Paulo Barraca
a135f51d31
HPlus: Improve initial configuration process and refactor constants
2016-12-28 13:53:17 +00:00
João Paulo Barraca
fed5638782
HPlus: Refactor Sex into Gender and convert value appropriatelly
2016-12-28 13:50:56 +00:00
Andreas Shimokawa
16d9279728
Merge branch 'master' into feature-weather
2016-12-26 23:03:11 +01:00
cpfeiffer
da494cde7b
Handle live activity for Mi2 and Mi1 in the same way #448
...
Realtime samples now use ActivitySample.NOT_MEASURED for unknown or
invalid values.
2016-12-26 12:51:12 +01:00
cpfeiffer
8719cadc43
Mi Band: fix live activity messing up stepcount #448
...
live samples now report relative steps, not absolute to the current
day's stepcount.
Also live samples' steps should NOT be added to the database since
they are already counted in the regular stepcount.
2016-12-26 01:38:20 +01:00
cpfeiffer
305bd7600c
Fix current realtime steps calculations #450
...
timestamp is already in seconds instead of milliseconds
Also: port to REALTIME_SAMPLES
2016-12-26 00:23:02 +01:00
cpfeiffer
999d3e3252
Mi1: Attempt at throttling notifications during sync #438
2016-12-25 23:27:56 +01:00
Andreas Shimokawa
6c5b51cd6d
Merge branch 'master' into feature-weather
2016-12-25 22:53:44 +01:00
Carsten Pfeiffer
a84bc16503
Merge pull request #470 from jpbarraca/hplus
...
Add preliminary support for HPlus devices: Zeblaze Zeband and others
2016-12-25 21:33:52 +01:00
João Paulo Barraca
649e20ad04
HPlus: Ignore duplicated messages from band
2016-12-24 00:05:51 +00:00
João Paulo Barraca
88f2d2ee4f
HPlus: Fixed notification title size
2016-12-23 12:20:06 +00:00
João Paulo Barraca
cd915598b0
HPlus: Improved handling of incomming calls
2016-12-23 11:46:20 +00:00
João Paulo Barraca
9dd5967f4e
HPlus: Set date and time on connect
2016-12-23 10:14:03 +00:00
João Paulo Barraca
9a338c9bae
HPlus: Fix text notification length
2016-12-23 01:35:18 +00:00
João Paulo Barraca
2b78f2708f
Cleanup according to PR Review
2016-12-23 01:21:05 +00:00
João Paulo Barraca
ae9ebc1be8
Refactoring some parts. Added support for param synchronisation with band
2016-12-21 23:57:57 +00:00
João Paulo Barraca
5b3ef8999f
Add preliminary support for HPlus devices, such as the Zeblaze Zeband (and many others)
...
Working: Text and call notifications, setting most user data, date and time, heart rate monitoring, sleep monitoring (alfa)
2016-12-21 12:51:25 +00:00
Andreas Shimokawa
2148b431ea
Merge branch 'master' into feature-weather
2016-12-19 23:32:53 +01:00
Andreas Shimokawa
bd5dc6bfbc
Pebble 2/LE: Add setting to limit the MTU (for debugging broken BLE stacks)
2016-12-19 23:28:06 +01:00
Andreas Shimokawa
8990e7e3da
Merge branch 'master' into feature-weather
2016-12-17 00:20:16 +01:00
Andreas Shimokawa
97aed43518
Pebble: fix for previous commit
...
(potential crashes when installing and receiving notifications)
2016-12-17 00:17:05 +01:00
Andreas Shimokawa
9588535004
Merge branch 'master' into feature-weather
2016-12-17 00:01:37 +01:00
Andreas Shimokawa
2b3592f354
Pebble: allow sending data to the pebble during installation on FW >= 3.0
...
It seems to be no problem to recieve notifications etc during app installation with non legacy firmwares :)
2016-12-16 23:47:59 +01:00
cpfeiffer
caaa38ed04
Mi2: support for current battery status #449
...
so far we understand
- last charge date
- current level
- state normal
- state charging
and we are notified on changes.
2016-12-14 00:50:43 +01:00
cpfeiffer
dd48869fa5
Mi2: move Miband2Support into the package it belongs
2016-12-14 00:28:35 +01:00
Andreas Shimokawa
f74bb4e3f3
Merge branch 'master' into feature-weather
2016-12-12 09:05:19 +01:00
cpfeiffer
c69889d177
Simplified + fixed ArrayUtils.equals() + added lots of testcases
2016-12-11 23:30:20 +01:00
cpfeiffer
bcfc8bc110
Mi1/Mi2: fix firmware file probing for the different devices
2016-12-11 23:30:20 +01:00
cpfeiffer
40354f8f5a
Some @Override
2016-12-11 21:31:27 +01:00
cpfeiffer
94c0d6af9d
Mi2: Fix off-by-one in activity fetching
2016-12-11 21:31:27 +01:00
Andreas Shimokawa
825f2bf2e8
Merge branch 'master' into feature-weather
2016-12-11 20:27:28 +01:00
Andreas Shimokawa
31122f0b09
Pebble: Propagate watch apps launches outside of PebbleProtocol
...
This does not do anything yet.
2016-12-11 20:25:46 +01:00
cpfeiffer
6dfc895303
Mi2: Initial work on firmware update #427
2016-12-11 02:11:58 +01:00
cpfeiffer
fd2c182714
Mi 2: another characteristic rename (0000005)
2016-12-11 02:11:58 +01:00
cpfeiffer
83ad2a9bd9
Mi 2: rename characteristic 00000003 to "CONFIGURATION"
2016-12-11 02:11:58 +01:00
Andreas Shimokawa
f63a7db5f9
Pebble: map owm conditions to TimeStyle icons
...
This is probably not the way we should do it, just experimenting for personal use :P
2016-12-11 00:08:57 +01:00
Daniele Gobbetti
a6a2c6d6d6
Pebble: timestyle doesn't use Yahoo anymore.
...
The values do not work anyway, because it's mapping them internally. See https://github.com/freakified/TimeStylePebble/tree/master/src/pkjs for the mappings.
2016-12-10 15:09:22 +01:00
Andreas Shimokawa
779699cd95
Pebble: remove configuration stuff from TimeStylePebble handler, update weather keys
...
This is not usable now, just playing around
2016-12-09 23:31:32 +01:00
Andreas Shimokawa
a0e21d7c6d
Merge branch 'master' into feature-weather
2016-12-09 23:29:54 +01:00
Andreas Shimokawa
0e1287e382
Pebble: also execute AppMessageHandler.pushMessage() if present when connection gets established
...
This does not have any effect now since pushMessage() is not used in this branch
2016-12-09 23:21:51 +01:00
Andreas Shimokawa
efb1cd389b
Merge branch 'master' into feature-weather
2016-12-09 21:52:55 +01:00
Andreas Shimokawa
17b581022b
optimize imports
2016-12-09 20:14:17 +01:00
Kevin Richter
34296c021f
Revamp Notification types Pebble ( #453 )
...
* Remove notification switches for enum & hashmap
* Fix code style
* Fix null reference exception
* Add whatsapp support
* Remove duplicate entry
2016-12-09 17:54:19 +01:00
Andreas Shimokawa
313499abd4
Pebble: also display debug level in app logs output
2016-12-08 23:20:00 +01:00
Daniele Gobbetti
2d0489960e
Pebble: boilerplate code to open dictation session #189
...
This is just boilerplate code, doesn't do anything but will do no harm as it's not called from anywhere
2016-12-08 16:38:31 +01:00
Daniele Gobbetti
6a09023c24
Liveview: add some sanity checks to the incoming data lenghts
2016-12-07 13:09:15 +01:00
Daniele Gobbetti
4eb56eb9ca
Liveview: refactor the BT stream reading functionality
...
Read the expected number of bytes at each step instead of a single byte.
2016-12-05 17:45:03 +01:00
Daniele Gobbetti
e53b8b6b32
Liveview: ignore the SocketTimeoutException, disconnect in any other case
2016-12-04 21:04:30 +01:00
Daniele Gobbetti
219cc7bff1
Merge branch 'master' into liveview
2016-12-04 20:42:29 +01:00
Daniele Gobbetti
8c01123a48
Liveview: addressed the first feedback.
...
- centralized string encoding and byte order
- replaced printStrackTrace with LOG.error
2016-12-04 19:10:58 +01:00
Andreas Shimokawa
013029443b
Pebble: Minor cleanups
2016-12-04 17:21:29 +01:00
Andreas Shimokawa
a691cd0ff7
Pebble: add option to enable applogs (debug messags from pebble apps)
2016-12-04 16:55:27 +01:00
Daniele Gobbetti
e0a844b60a
Liveview: Initial support for Liveview devices
...
Working so far: stable connection, setting time and sending notifications.
2016-12-03 16:20:02 +01:00
Andreas Shimokawa
3db009e77d
Pebble: do not dump all LE traffic, minor code cleanups
2016-12-02 23:38:54 +01:00
Andreas Shimokawa
ae2c107ed1
Pebble 2/LE: only notify once when first PP packets are incoming
2016-12-02 08:50:02 +01:00
Andreas Shimokawa
bc9041a4c9
Pebble 2/LE: on connect wait 30s max and stop waiting immediately if a real PP connection got establish (ie write request on the gatt server)
2016-12-02 08:07:44 +01:00
Andreas Shimokawa
3eda2d4b81
Pebble 2/LE: honor reconnect tries
2016-12-02 00:38:53 +01:00
cpfeiffer
44f74270df
Mi2: Experimental support for activity recognition
2016-12-02 00:22:06 +01:00
cpfeiffer
da297ecd8b
Fix + cleanup time setting and calendar sending #441
2016-12-01 22:51:08 +01:00
Uwe Hermann
0746aaa579
app: Random typo and consistency fixes.
2016-12-01 20:22:12 +01:00
Andreas Shimokawa
f0789cc147
Pebble 2/LE: fix another bug when reconnecting
2016-12-01 00:28:23 +01:00
Andreas Shimokawa
2993bb6b5c
Pebble 2/LE: fix potential NPE
2016-12-01 00:20:21 +01:00
Andreas Shimokawa
74c20f3a82
Pebble 2/LE: More fun with reconnect
2016-11-30 23:56:58 +01:00
Andreas Shimokawa
b878fa5eda
Pebble LE/Pebble 2: Fix reconnect not working when first attempt fails
2016-11-30 22:28:34 +01:00
Andreas Shimokawa
95ec1fb44c
Pebble LE/Pebble 2: Improve reconnect
2016-11-30 19:54:21 +01:00
cpfeiffer
09ff95eb34
Support for continuous hr readings (live activity) #323
2016-11-29 23:25:11 +01:00
cpfeiffer
49acde118d
Do not log heartrate separately during miband 1s sync
2016-11-29 23:25:11 +01:00
Andreas Shimokawa
34ad088b88
Pebble: Experimental support for BLE on all models via dev option in Pebble Settings
...
HOWTO:
1) Pair you normal Pebble (not necessary if already done), make sure it was connected once
2) Unpair your LE pebble if already paired
3) Switch on "Always prefer BLE" in Pebble Settings
4) Tap on the + in Control Center to add a new device
5) Pair your Pebble-LE XXXX or Pebble Time LE XXXX inside Gadgetbridge's Device Discovery actibity
Now Gadgetbridge will connect to your LE Pebble when tapping on Pebble XXXX if "Always Prefer BLE" option is enabled.
You can easily switch back to classic LE by turning that option off again
2016-11-27 09:49:28 +01:00
Andreas Shimokawa
a5263141d7
Pebble 2: Ignore all GATT communication with all other that the current device
...
Fixes a bad bug where disconnecting from another BLE device caused the Pebble2 to disconnect
2016-11-25 14:28:04 +01:00
cpfeiffer
7da328d5db
Fix an invalid leftover check for array length
...
Also removed a method invocation that did not belong there.
2016-11-24 22:16:04 +01:00
cpfeiffer
3fdfb7d172
Mi2: Support for setting the fitness goal (steps)
2016-11-24 21:58:32 +01:00
Andreas Shimokawa
381323011e
Pebble 2: work around FW installation problems
...
Wait a 0.5s after each complete Pebble packet and do not longer wait at all after a completed GATT package chunk (was 0.1s)
Big outgoing messages will be now much faster such as firmware installations but smaller take more time than before.
(This is not the proper fix but I could update the firmware this way, failed 10 times before after a few percent)
2016-11-24 18:52:58 +01:00
cpfeiffer
67d89ce1b9
Create the correct start-sync timestamp #323
2016-11-22 22:52:26 +01:00
cpfeiffer
dfbaba4cb6
Make sure that the charts display the requested time range
...
(instead of only the range with available samples)
2016-11-22 15:53:58 +01:00
cpfeiffer
a8a7d8db31
Mi2: WIP synchronize only new data since last sync
...
(#323 )
2016-11-22 00:05:41 +01:00
cpfeiffer
0c51f86afc
Mi2: more work on activity data #323
2016-11-22 00:05:41 +01:00
cpfeiffer
82cd06f4c1
Mi2: WIP: initial support for activity data
...
(#323 )
2016-11-22 00:05:41 +01:00
Andreas Shimokawa
eb052cead3
Pebble 2: Also honor the mtu when client gets a change reported
...
Should help older LE Pebbles
2016-11-21 17:29:16 +01:00
Andreas Shimokawa
647b67cfca
Pebble 2: call both requestMTU and use the characteristic write
2016-11-21 15:17:03 +01:00
Andreas Shimokawa
fce86482b9
Pebble 2: try an alternative way of setting the MTU (might revert)
2016-11-21 14:54:01 +01:00
Andreas Shimokawa
e8da301da3
Pebble 2: fix a few crashes with disconnect/ reconnect
2016-11-20 22:04:49 +01:00
Andreas Shimokawa
4f3c46f704
Pebble 2: only add second service if first one was added sucessfully
2016-11-20 00:12:41 +01:00
Andreas Shimokawa
3b250a4568
Pebble 2: initial hacky reconnect support
...
Works sometimes, at least less crashes
(#432 )
2016-11-19 23:53:07 +01:00
Andreas Shimokawa
ddfab1cdae
Pebble 2: use requestMTU() on Android 5+ instead of characteristics write.
...
This actually fixes MTU problems with older Pebbles (Time, OG)
2016-11-18 23:47:48 +01:00
Andreas Shimokawa
4dc085de57
Pebble 2: React to MTU notifications, fixes LE for older pebbles also
...
It seems that setting the MTU on older pebbles does not work, so just use what we can use.
Maybe old pebbles need setMTU() which only works on Android 5+, we could use that conditionally...
2016-11-18 23:47:48 +01:00
Andreas Shimokawa
66e3de9168
Pebble 2: improve connection problems (at least for me)
2016-11-18 22:38:39 +01:00
Andreas Shimokawa
d7256d172e
I hate java
2016-11-15 23:23:21 +01:00
Andreas Shimokawa
163a7bdf15
Pebble 2: save heart rate values to database (hopefully)
2016-11-15 23:21:13 +01:00
Andreas Shimokawa
82a47022fa
Pebble 2: allow to disable/enable HRM in context menu of Workout app
...
Okay this might be stupid since Workout seems to work also works without HRM!
I assumed (wrongly) that I will disable Workout by disabling HRM
anyway, better than not being able to toggle it at all!
2016-11-15 12:17:51 +01:00
Andreas Shimokawa
4b7f47ba6c
Pebble 2: add Workout system app to app manager on P2 and hexdump incoming HRM datalog
2016-11-15 11:56:14 +01:00
cpfeiffer
d8145a52f9
Activate the display when lifting the wrist #323
...
Configurable, defaults to true
2016-11-13 21:47:54 +01:00
Andreas Shimokawa
00a71f53b3
Pebble 2: add not yet working code (at least not without weird workarounds)
...
This is is a pain because of tons of weird pairing issues
2016-11-13 21:29:58 +01:00
cpfeiffer
d89899557c
Mi2: Add config option to configure date/time display
...
(added a new EventHandler method to set a specific configuration option)
2016-11-13 20:47:24 +01:00
cpfeiffer
3cc8d887ca
Mi2: Initial support for wear location, hr during sleep and date format #323
...
- wear location from prefs is sent to the band
- hr measurement during sleep is sent to the band
- date format is sent to the band (date+time or just time)
(TODO: needs preference option)
2016-11-13 01:44:52 +01:00
Andreas Shimokawa
f68bbe453b
Pebble: bump flags and version we report
...
Plus some small preparations for P2 support which do not hurt in master
2016-11-10 11:05:32 +01:00
cpfeiffer
3b474bb5a9
Move another notify registration to after initialization #408
2016-11-08 22:55:31 +01:00
cpfeiffer
55f036c104
Move heart rate notification enamblement to after authentication
...
Might fix #408 and #425
2016-11-04 22:11:07 +01:00
Andreas Shimokawa
14ef5202e1
some internal testing which does not hurt in master
2016-11-03 11:07:44 +01:00
cpfeiffer
0076bbf572
Remove all Mi2 DeviceInfo stuff -- they're not used together #365
...
This might fix firmware downgrading on certain Mi1A devices
with hw revision 8
2016-10-30 23:04:21 +01:00
cpfeiffer
cea5f5fa36
Remove duplicate case here as well
2016-10-29 00:01:56 +02:00
cpfeiffer
3db9748136
Mi2: Attempt to support non-repetitive alarms #323
2016-10-28 23:18:10 +02:00
cpfeiffer
1352403089
Mi2: Allow for disabling alarms #323
2016-10-28 22:26:07 +02:00
Andreas Shimokawa
55daaf247c
Merge pull request #420 from atkyritsis/master
...
Removed duplicate if statement.
2016-10-28 10:45:09 +02:00
Andreas Shimokawa
d6b9e6d64b
Pebble: Support sending byte arrays from app configuration data
...
Also add debug output if trying to encode unknown classes in PebbleProtocol
(Fixes #421 )
2016-10-28 00:32:45 +02:00
atkyritsis
45cf4e5396
Removed duplicate if statement.
2016-10-27 18:44:27 +02:00
cpfeiffer
de46555e37
Mi2: display heart rate result from Debug screen as a toast #323
2016-10-24 00:23:59 +02: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
17b70a1b82
Support for more than one alarm #323
...
Smart alarms not supported yet.
2016-10-23 23:05:54 +02:00
cpfeiffer
3a12ffd42d
Mi2: Fix for alarm enablement. Was too late, apparently.
2016-10-23 22:38:57 +02:00
Daniele Gobbetti
503bcee7b4
Support record version 13 (firmware 4.2)
2016-10-21 13:07:07 +02:00
cpfeiffer
ee24443b6a
Make it really clear, that only the first alarm works #323
2016-10-21 01:01:30 +02:00
cpfeiffer
15954d4561
Initial support for alarms (one, atm) #323
...
(repetitinos not tested yet)
2016-10-21 00:50:41 +02:00
cpfeiffer
839da4f06a
Shuffle some logging things around
2016-10-21 00:50:41 +02:00
cpfeiffer
c87d08bf4b
Small refactoring for initial support for Mi2 Alarms #323
2016-10-21 00:50:41 +02:00
Daniele Gobbetti
21fc5c7498
Integrate Daniele's live-sensor-data support
2016-10-11 23:13:40 +02:00
cpfeiffer
713989ef38
Add event "test new function" for the debug screen
2016-10-11 23:06:59 +02:00
cpfeiffer
7c3dc741d2
Send vibration off-commands to Mi2 ( #323 )
...
Far from perfect, but a little better.
2016-10-11 21:38:17 +02:00
cpfeiffer
e7c0afa603
Cleanup onNotification()
2016-10-11 21:18:43 +02:00
Andreas Shimokawa
a094f0cc76
Mi Band: for vibration settings, group navication types (email, sms, chat, social network, navigation)
2016-10-11 15:20:55 +02:00
Andreas Shimokawa
cd195a5969
map more apps to notification types (icons and colors on the pebble)
2016-10-11 11:54:52 +02:00
cpfeiffer
92c629c351
Ranem NotificationType.UNDEFINED to UNKNOWN
2016-10-10 23:06:44 +02:00
cpfeiffer
62828e5158
Remove ORIGIN_ notification constants, clean up
...
- MI preferences now use NotificationType.getFixedName() for preference
keys
2016-10-10 22:45:26 +02:00
cpfeiffer
db034a246c
Add 'Try' button to vibration profile preferences, closes #405
2016-10-09 00:10:53 +02:00
cpfeiffer
9e32e7d0d3
Remove some Mi2 testing code, only use Mild Alerts for Mi1 (fow now)
2016-10-08 22:43:41 +02:00
cpfeiffer
125c0092cb
Storage and improved way of realtime data (hr, steps so far)
2016-10-08 01:35:58 +02:00
cpfeiffer
713e9426b9
Re-enable UUID_PAIR again, when keeping data on device is configured) #250
...
This should fix data sharing with Mi Fit
2016-10-05 23:01:35 +02:00
cpfeiffer
f23ed5ce69
Mi2: declare to always support hr #323
2016-10-03 21:17:58 +02:00
cpfeiffer
5bdc7933b3
Somewhat hacky support for Mi2 notification icons #323
2016-10-02 23:04:59 +02:00
Daniele Gobbetti
42f622af85
Support record version 12 (firmware 4.1)
2016-09-30 17:28:46 +02:00
Andreas Shimokawa
9cccb085c4
Pebble: allow sending acks to pebblekit android apps which always use transaction id -1 (this seems to be okay for pebblekit apps which do not want to use real transaction ids)
2016-09-26 21:51:11 +02:00
Andreas Shimokawa
8080734470
Pebble: use telegram icon for telegram messages
...
also use the facebook icon for the official facebook app
(untested because we would never use facebook)
2016-09-21 21:31:23 +02:00
cpfeiffer
1bd919ccaa
For a start, we can reuse the alert notification from Mi 1 #323
...
So vibration works :-)
2016-09-20 23:41:50 +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
1f8cfa5a68
Vibratissimo: clear queue when setting vibration
2016-09-20 21:49:27 +02:00
Andreas Shimokawa
6a18d90fee
Vibratissimo: add simple and buggy activity with a slider for vibration control
...
Also includes some fixes and "find your device" support ;)
2016-09-20 20:28:52 +02:00
Andreas Shimokawa
da01a76594
fix BatteryInfoProfile NPE, show battery level for Vibratissimo
2016-09-19 16:37:45 +02:00
Andreas Shimokawa
8ba7bc7353
Add (useless) support for Vibratissimo "massage devices"
...
Don't take this serious. It will make the "massage device" vibrate when a phone call arrives.
It is inspired by the famous lawsuit[1] which has nothing to do with the Vibratissimo device maker.
After reading this I picked up the cheapest ble massage device just to see if we could support it.
And yes, we can.
[1] http://arstechnica.com/wp-content/uploads/2016/09/vibratorsuit.pdf
2016-09-19 12:37:41 +02:00
JohnnySun
53d4681763
Optimize Imports
2016-09-13 23:53:35 +08:00
JohnnySun
19fbe5719c
When miband2 auth success, let application show miband status is connected
2016-09-13 23:50:35 +08:00
JohnnySun
08f2b0eb7c
fix somebug and rewirte the auth process
2016-09-13 18:15:03 +08:00
JohnnySun
90d730bdc8
Added miband2 connection support
2016-09-13 01:28:50 +08:00
cpfeiffer
e555066ffc
Fix firmware2 not being set
2016-09-11 21:15:36 +02:00
Andreas Shimokawa
9c2e40ecc0
Pebble: fix mixup of userId and deviceId in contructor for Misfit and Morpheuz samples
2016-09-11 00:12:37 +02:00
Daniele Gobbetti
5cbedc782d
Pebble health: accept records of firmware 4.0 (nothing changed among the data we parse)
2016-09-04 15:59:19 +02:00
Daniele Gobbetti
84e644fa1a
Add preference for save raw pebble health data.
2016-08-31 14:05:02 +02:00
cpfeiffer
c59553c9c9
Rename GBDevice#hardwareVersion to model
...
(e.g. while DeviceType is "PEBBLE" in general, the model
might specify a Pebble Time or Time Steel.
2016-08-26 20:57:59 +02:00
Daniele Gobbetti
2a2ad20aa3
Store raw data in the DB for later interpretation.
2016-08-21 20:24:02 +02:00
Andreas Shimokawa
3fb558c536
db refactoring: add raw data column in health overlay table and make rawType part of the composite key
2016-08-18 22:06:26 +02:00
Daniele Gobbetti
0126b90f20
Store the timestamps as sent by the pebble. Use a strict inequality operator at the end of the period to exclude the last sample.
2016-08-18 21:44:06 +02:00
Andreas Shimokawa
ce8af615d1
Merge branch 'composite-key-dao'
2016-08-18 20:35:56 +02: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
Andreas Shimokawa
69933c5e92
db refactoring: depend on latest -fyg patched greendao, change column order again (primary keys first), remove index from pebble health overlay also
2016-08-14 22:33:41 +02:00
Andreas Shimokawa
eb962c65f0
work towards composite keys
...
(builds but does not run because greendao generates wrong table creation code - we need to fix that)
2016-08-13 01:24:43 +02:00
Andreas Shimokawa
68b303246d
db refactoring: change column order for health overlay table also
2016-08-10 23:26:25 +02:00
Andreas Shimokawa
359ed46b06
db refactoring: remove raw activity kind field from pebble health minute data, add a blob column for raw undecoded health minute data.
...
also:
- change column order for all pebble related minute data tables (mandatory stuff first, then custom columns, for easier addition of new columns)
- remove unused code
TODO:
- fix column order in Mi Band table also
2016-08-10 23:06:07 +02:00
Daniele Gobbetti
4a7a34f461
Use only the overlay table for storing overlay data.
...
This removes the need to wait to have minute samples to store the overlay data, hence store has been made void instead of boolean.
2016-08-09 18:05:24 +02:00
Andreas Shimokawa
5072d6b959
Pebble: try to write to health activity overlay table
2016-08-08 19:16:53 +02:00
Andreas Shimokawa
6b2565e4c9
DB refactoring: remove activity type from Morpheuz database, determinate it in PebbleMorpheuzSampleProvider instead
2016-08-07 01:47:15 +02:00
Andreas Shimokawa
e05d40dc7e
Pebble: Support for latest version of Morpheuz (4.6)
...
Also a few simplifications and minor fixes.
Morpheuz 3.7 should still work (last version for FW 2.x)
2016-08-06 01:19:38 +02:00
Andreas Shimokawa
4fe498efc2
Pebble: delay 100ms after writing a pebble packet to the output steam
...
This fixes a problem on newer firmwares, probably from 3.0 on, where sending an
appmessage packet right after acknowledging a previous incoming appmessage
packet results in our outgoing appmessage packet to be NACKed by the pebble
firmware and not even reaching the app running on the pebble.
2016-07-31 23:49:19 +02:00
Andreas Shimokawa
8ba1ae3f3e
create extra table for Morpheuz, remove more unused stuff
...
Pebble activity tracker now do not share a common base anymore.
TODO: consider creating a custom way of querying activity types like in Misfit. The activity kind stored in the database now is solely based on the intensity, so it is redundant.
(#206 )
2016-07-31 00:06:26 +02:00
Andreas Shimokawa
eabe625c47
rename some classes, remove obsolete ones
2016-07-30 23:22:27 +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
b22111df9d
Fix field ordering of ActivitySample (c'tor!) and improve importer #206
2016-07-28 22:12:20 +02:00
Andreas Shimokawa
8ea29e6e1d
Refactor database / sample access ( #206 )
...
We now have separate tables for each provider's samples but a common interface.
2016-07-27 23:34:13 +02:00
Andreas Shimokawa
726f767576
work towards a Pebble Misfit raw sample table
2016-07-25 22:19:39 +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
7b26986ab0
Fix for #349
...
We must not use UUID_CHAR_PAIR anymore. This prevents connecting
without being bonded. Connecting when bonded still works.
As without bonding, ControlCenter would not display the device anymore,
we have to re-install the "remember last connected device" in the
preferences thing.
2016-07-15 00:13:49 +02:00
cpfeiffer
367091587f
No more 0x8 in the logs
...
It's the confirmation that setting the latency succeeded.
2016-07-14 20:15:54 +02:00
cpfeiffer
91d1cea51f
Avoid potential NPEs
2016-07-04 22:40:24 +02:00
Andreas Shimokawa
73b2fc357e
Pebble: Add some Pebble Time 2 support - NOT WORKING
...
Not working because these are expected to use BLE.
The Emulator should work though.
2016-07-04 22:09:56 +02:00
cpfeiffer
8b24e098ea
Set sampleProvider to avoid NPEs
2016-07-01 00:22:54 +02:00
cpfeiffer
f65afa64d9
log raw activity data from mi band, closes #341
...
Hopefully aids in deciphering activity kinds.
2016-06-28 23:23:29 +02:00
cpfeiffer
f0da25c49b
Fix activity fetching getting stuck when double tapping #333
2016-06-28 23:07:24 +02:00
cpfeiffer
e70a2290c3
sampleproviders now return device specific data #206
2016-06-27 20:43:48 +02:00
Andreas Shimokawa
659165fa4c
Pebble: fix new app manager on 2.x
...
- properly intert apps reported from pebble into the corresponding tab
- disable tracking of installed apps
- disable drag and drop for apps and watchfaces
- ...
2016-06-24 13:39:29 +02:00
Andreas Shimokawa
1de6ee019f
Pebble: fix regression. FW 2.x was completely broken
...
No one noticed, so it seems we can kill 2.x support soon :D
2016-06-24 12:07:44 +02:00
Andreas Shimokawa
b77f3ad3bf
Pebble: Implement call dismissal with canned messages
...
This also moved the canned replies setting to pebble settings
(we will change that if we have another device supporting this)
2016-06-24 10:25:08 +02:00
Andreas Shimokawa
67e5bc0434
Pebble: implement decline call with SMS
...
Based on a proposal by @danielegobbetti, thanks!
This still does not enable the feature since the necessary blobdb is not filled yet
2016-06-21 00:31:53 +02:00
cpfeiffer
9772d8af06
Merge remote-tracking branch 'origin/master' into db-refactoring
2016-06-19 21:14:03 +02:00
Andreas Shimokawa
4b5969ef96
Merge branch 'master' into appmanager-fragments
2016-06-19 12:33:05 +02:00
Andreas Shimokawa
f42899d910
Pebble: on FW 2.x do not send extended music info and do not send playstate
...
I don't think they are supported and I cannot test.
2016-06-19 12:17:19 +02:00
Andreas Shimokawa
79b439da28
Implement App Sorting
...
- grab icon to move apps
- cache can be sorted but nothing will be send to watch
- if sorting apps or watchfaces, order will be sent to watch
- we try to keep track of what is installed and what not
Firmware 2.x is currently not working properly
2016-06-17 22:43:06 +02:00
cpfeiffer
d544509b60
Merge remote-tracking branch 'origin/master' into db-refactoring
2016-06-16 21:55:16 +02:00
Andreas Shimokawa
b79b94809a
initial support for FW 4.0-dp1
2016-06-16 00:24:27 +02:00
Andreas Shimokawa
d225743d64
Pebble: some preparations for Pebble 2
2016-06-15 22:53:05 +02:00
cpfeiffer
a01507a924
Merge remote-tracking branch 'origin/master' into db-refactoring
2016-06-14 20:14:04 +02:00
Andreas Shimokawa
98999993e5
Pebble: In AppManager allow moving apps on the device to the top (context menu)
2016-06-12 01:20:12 +02:00
Andreas Shimokawa
f812fb1b1f
Improvements to MusicPlayback receiver
...
- Also send duration if "duration" extra is present
- If "playing" and "postion" extras are present send a music state update
treat previous state and current state as equal if position delta is <=2 seconds
(Neccessary for some players which update every second - the pebble however counts by itself)
2016-06-11 23:37:03 +02:00
Andreas Shimokawa
9623449b6e
Merge branch 'master' into feature-weather
2016-06-09 23:15:23 +02:00
Andreas Shimokawa
b76619bb5b
Pebble: implement app reordering in PebbleProtocol
...
Not yet used.
2016-06-09 23:14:40 +02:00
Andreas Shimokawa
fd31bfe56b
Merge pull request #325 from stepardo/steffen/pocketcasts_notifications
...
Set extended music info by dissecting notifications on Android 5.0+
2016-06-09 23:12:17 +02:00
Steffen Liebergeld
c5262869d9
Use names for playstates
...
These names need to be mapped to device specific constants in the
device code.
2016-06-09 20:02:55 +02:00
Steffen Liebergeld
91f374edec
Revert ""duration" parameter in onSetMusicInfo uses microseconds"
...
The decision on granularity of APIs is up to the maintainers.
This reverts commit 204748c518
.
2016-06-09 20:02:55 +02:00
Andreas Shimokawa
088dfda5f4
Pebble: implement app reordering in PebbleProtocol
...
Not yet used.
2016-06-09 19:55:36 +02:00
Steffen Liebergeld
204748c518
"duration" parameter in onSetMusicInfo uses microseconds
...
This is in line with Android, and saves some calculations (and thereby a
tiny little bit of battery life).
2016-06-08 20:43:46 +02:00
Steffen Liebergeld
e386d6da43
Add onSetMusicState(MusicStateSpec stateSpec)
...
This commit contains the infrastructure needed for the
NotificationHandler to send music state information to the device. That
is, it introduces a call onSetMusicState(MusicStateSpec stateSpec), that
in turn sets up an intent to the service, which will then call the
encodeSetMusicState() function of the device. encodeSetMusicState is
available for pebble only. There are empty stubs for other devices.
2016-06-08 20:31:48 +02:00
Steffen Liebergeld
0470731e4b
PebbleProtocol: Do not call encodeSetMusicState in encodeSetMusicInfo
...
encodeSetMusicState will be accessible on its own. If it was used to set
the music state, a call to encodeSetMusicInfo must not reset this info
arbitrarily.
2016-06-08 20:16:33 +02:00
Andreas Shimokawa
98a0774fc2
Merge branch 'master' into feature-weather
2016-06-07 22:53:40 +02:00
Andreas Shimokawa
32429df7bc
Pebble: allow to enable or disable sync for each activity tracker in settings
...
This is useful if you have multiple phones and do not want to have your data synced to one of them
2016-06-07 22:51:14 +02:00
cpfeiffer
ae548d0806
WIP: more work, compile again
2016-06-06 23:18:46 +02:00
cpfeiffer
3b87966fe9
Merge branch 'master' into db-refactoring
2016-06-06 22:16:40 +02:00
cpfeiffer
2b6ee41970
Add logging of heartrate values #318
2016-06-05 22:37:42 +02:00
cpfeiffer
ca26e27c60
Basic support for Mi Band 2 #323 , untested
2016-06-05 22:31:07 +02:00
Andreas Shimokawa
9d3f3c57cd
Pebble: make disabling of appmessage handlers more generic
...
Also disable morpheuz handler if morpheuz is not the chosen activity tracker
.... and bump reported version to 3.12 to match the latest pebble release
2016-06-04 21:50:26 +02:00
Andreas Shimokawa
321707af8f
Pebble: ignore incoming misfit data if misfit is not set as the preferred activty tracker
2016-06-04 21:33:38 +02:00
Daniele Gobbetti
968d15c8d8
Keep the pebble health data on the pebble watch if the activity provider is not pebble Health.
...
This will nack all pebble health datalog messages. As mentioned in #322 , this would allow to use multiple android device without secondary devices "sipping" the health data from the watch.
2016-06-04 18:21:49 +02:00
cpfeiffer
2e6536555b
Fix previous commit (compile!)
2016-05-31 22:56:22 +02:00
cpfeiffer
9a106667d2
Setting the wear location appears to fail for amazfit #274
...
So as a test, disable that for amazfit. Let's see what happens
next.
2016-05-31 22:33:38 +02:00
Andreas Shimokawa
19d7c03545
Pebble: get rid of log spamming when changing applications (unhandled message)
2016-05-31 14:18:45 +02:00
Andreas Shimokawa
b71597800a
Pebble: set device to reconnecting state when actively reconnecting
...
It makes it easier to watch connection attempts and the delay between them in control center.
2016-05-29 23:24:16 +02:00
Andreas Shimokawa
33da6c2925
Pebble: make sure that "waiting for reconnect" state is set when initial connect fails
2016-05-29 22:58:25 +02:00
Andreas Shimokawa
e3bee37b81
Change UUID prefix to 0x4767744272646700
2016-05-24 13:20:16 +02:00
Andreas Shimokawa
cb1ec5dccb
Make calendar event type byte instead of int
...
Now the UUID will be constructed like this:
High 64bit 0x4742474200 | type
Low 64bit id
2016-05-24 13:11:57 +02:00
Andreas Shimokawa
ec154c9041
Merge branch 'master' into feature-weather
2016-05-24 11:09:21 +02:00
Andreas Shimokawa
af3cfefec0
Merge branch 'master' into feature-sunrise
2016-05-23 23:52:39 +02:00
Daniele Gobbetti
bef59ae9c0
Parse new version of Pebble health datalog message with tag "84".
...
This message was previously treated as a further "Sleep" message type, with firmware version 3.12 further types were added that are clearly unrelated to sleep (possibly to high-intensity activities like running etc.), hence the related code is now moved to a separate class.
The only decoded records are still sleep-related.
Fixes #312
2016-05-23 21:13:12 +02:00
Andreas Shimokawa
6370fdbebe
Merge branch 'master' into feature-sunrise
2016-05-22 01:25:52 +02:00
Andreas Shimokawa
0d7986a5ab
Pebble: rework incoming reconnection support
...
This is now completely generic and should work for other devices also
Fixes #296
2016-05-22 01:19:28 +02:00
Andreas Shimokawa
4bd578ebea
Pebble: send sunrise/sunset to watch for today and tomorrow, also delete previous timeline pins
2016-05-16 23:37:40 +02:00
cpfeiffer
876bdac918
More WIP: remove now unused code, better use of generics
2016-05-16 23:36:54 +02:00
cpfeiffer
40a376bbd0
Merge branch 'master' into db-refactoring
2016-05-16 23:01:16 +02:00
cpfeiffer
3e0bc16741
More WIP, but we're getting closer
...
current state:
- storing samples works (tested only mi band)
- charts work
2016-05-16 23:00:04 +02:00
Andreas Shimokawa
017f650b3f
Pebble: send sunrine and sunset pins to timeline when setting time in debug menu
...
This is just a test and it will leak your timeline data, since we never delete it.
Also this adds some rough infrastructure for calendar events.
2016-05-16 17:30:11 +02:00
Andreas Shimokawa
dafdb1008d
Merge branch 'master' into feature-weather
2016-05-16 14:15:39 +02:00
cpfeiffer
3a1f91b5a8
Default to low latency mode #287
...
Tested with Mi1A and Mi1S -- works fine and faster than without
low-latency mode.
2016-05-15 00:22:53 +02:00
cpfeiffer
5963843216
Experimental support for #274 (untested yet)
2016-05-15 00:15:31 +02:00
cpfeiffer
8ca821ab8a
More WIP on db refactoring
2016-05-13 23:47:47 +02:00
cpfeiffer
d0c8483d92
More WIP
2016-05-08 23:49:15 +02:00
Andreas Shimokawa
9b7f2c1e91
try to fix weiredness with pebble reconnects
2016-05-08 17:19:01 +02:00
Andreas Shimokawa
65a95366f4
Mi Band: Allow setting low-latency FW update mode in Mi Band development settings
2016-05-04 13:24:32 +02:00
cpfeiffer
5e02724c4c
Make automatic reconnect after connection loss configurable #293
...
Mi Band: automatically reconnect when the device is back in range
Also: #89
2016-04-28 23:17:13 +02:00
cpfeiffer
e35ce978bd
Remove now unused imports + fix one more SharedPreferences usage
2016-04-25 23:43:19 +02:00
cpfeiffer
0704915a88
Move parsing of preference strings to int values to Prefs
2016-04-25 23:39:03 +02:00
cpfeiffer
0c715a2669
Wrap access to SharedPreferences with "Prefs"
...
(to centralize quirk handling)
2016-04-25 23:18:55 +02:00
cpfeiffer
78bf516897
Disabling sleep measurement for continuous measurement is not necessary
...
Looks like they don't interfere, after all. #178
2016-04-12 23:25:12 +02:00
cpfeiffer
f15a97d994
Initial live heartrate measurement in the live activity tab #178
2016-04-12 23:12:50 +02:00
Daniele Gobbetti
a49335fa67
Allow to change stored samples converting only certain old types
2016-04-07 17:52:15 +02:00
Andreas Shimokawa
e91b5a07bd
Pebble: change delay between reconects to 1,2,4,8,16,32,64 (max) seconds
2016-04-06 22:55:04 +02:00
Andreas Shimokawa
94cec55a20
Merge pull request #276 from roidelapluie/reconnect
...
Pebble: Smarter reconnection attempts
2016-04-06 22:41:07 +02:00
danielegobbetti
d2af3468f0
Add support for new datalog message added in pebble firmware 3.11
...
This adds support for storing deep sleep data.
2016-04-06 21:48:16 +02:00
Julien Pivotto
e42a041448
Pebble: Smarter reconnection attempts
...
Sleep several seconds between reconnection attempts:
One second after first attempt, two after the second, and so on.
refs #89
2016-04-06 12:37:23 +02:00
Daniele Gobbetti
51def0d497
Add light intensity to the known steps datalog message.
...
Add support for record version 6 introduced with firmware 3.11.
There are more data in each record now, but we still do not know what they mean.
Close #270
2016-04-04 23:33:17 +02:00
Daniele Gobbetti
34600e085e
Fix wrong assignment, needed to properly deal with datalog messages longer than 255
2016-04-04 23:13:57 +02:00
Andreas Shimokawa
a15b327ff1
Refactoring: get rid of ServiceCommand, use new CallSpec and MusicSpec to pass Call and Music info
2016-04-04 20:08:34 +02:00
cpfeiffer
59c3970008
Reuse characteristic objects #234
2016-04-03 23:01:58 +02:00
cpfeiffer
b129844169
Small fixes to PR 273 #232
...
- dynamically toggle hr sleep support when preference changes
- check hr support dynaically after device info is available to avoid false error message
2016-04-03 22:38:06 +02:00
cpfeiffer
7cda9f1923
Merge branch 'computerlyrik-heartrate-sleep-support'
2016-04-03 21:46:29 +02:00