cpfeiffer
f57fec25f8
Remove the coordinator instance #323
...
For now, always iterate over the available coordinators instead.
Should fix MiBandSupport occasionally being used in place of MiBand2Support.
2016-10-10 20:52:40 +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
c2ff05e849
Make timestamp to mpandroidchart float x-value explicit
2016-10-08 21:27:32 +02:00
cpfeiffer
125c0092cb
Storage and improved way of realtime data (hr, steps so far)
2016-10-08 01:35:58 +02:00
cpfeiffer
5a2ddaaec0
Use x-values instead of x indices for the charts
2016-10-08 01:35:03 +02:00
cpfeiffer
558c9e4664
Fiix visal glitch in weeksteps chart (first and last bar only partly visible)
2016-10-07 21:46:00 +02:00
cpfeiffer
7479c3d420
Whitelist 4.16.4.22 #369
2016-10-05 23:17:02 +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
e5d178b315
Fix crash with mpandroidchart 3.0pre (master)
2016-10-04 23:39:14 +02:00
cpfeiffer
75bca1b924
Update to latest master in mpac and fix labels for sleep chart as well
2016-10-04 00:09:56 +02:00
cpfeiffer
f35f76a42b
Fix extraneous space at the bottom of the week steps chart
2016-10-04 00:04:04 +02:00
cpfeiffer
eccf9164f6
No need to have a separate xLabelsFormatter
2016-10-03 23:48:32 +02:00
cpfeiffer
dee492bc4f
Fixes regarding xlabels -- must set them at the correct point in time
...
(otherwise we get ArrayIndexOutOfBoundsException when the chart
refreshes and the wrong xLabels, potentially with fewer entries are used)
2016-10-03 23:36:04 +02:00
cpfeiffer
827c99f620
Fix weekday charts, closes #403
2016-10-03 22:42:25 +02:00
Daniele Gobbetti
bbecfbeace
Check if the bluetoothReceiver is still valid before unregistering it.
...
Do not set the scan tipe as BT classic if the discovery action has been set by BLE scans.
2016-10-03 22:31:33 +02:00
cpfeiffer
dd590528dc
Add back the x-labels
2016-10-03 21:53:06 +02:00
cpfeiffer
f23ed5ce69
Mi2: declare to always support hr #323
2016-10-03 21:17:58 +02:00
Andreas Shimokawa
ed343778ee
cleanup Debug activity a bit, add Spinner and remove a lot of buttons
2016-10-03 20:51:28 +02:00
cpfeiffer
5bdc7933b3
Somewhat hacky support for Mi2 notification icons #323
2016-10-02 23:04:59 +02:00
cpfeiffer
2a0d97b39a
Improved error handling, display errors when deleting device
2016-09-30 23:07:30 +02:00
cpfeiffer
09502f96c9
AlertDialog.show() is non-modal, so put code into callback. Also added unpairing.
2016-09-30 22:58:28 +02:00
cpfeiffer
2e7fb57172
Display device name to delete, and use different API to delete device
2016-09-30 22:58:28 +02:00
cpfeiffer
b890242c4f
Only refresh when deletion of device was confirmed
2016-09-30 22:58:28 +02:00
Andreas Shimokawa
5e63b7ce04
Vibratissimo: do not show database migration activity
2016-09-30 21:43:44 +02:00
cpfeiffer
f44974c215
Use findDevice() instead of getDevice() when you want to delete it
2016-09-30 21:27:33 +02:00
cpfeiffer
1fd6b59bf8
Fix logic error
2016-09-30 20:19:06 +02:00
cpfeiffer
27c83604d3
Update DeviceManager after deleting a device
2016-09-30 20:17:20 +02:00
Andreas Shimokawa
56d8a49d5b
only disconnect device when confirming delete dialog
2016-09-30 19:20:04 +02:00
Andreas Shimokawa
5c0618d43d
show confirm dialog before actually delete device
...
Also delete device last (after associated data), so that we do not leak if something fails
(#401 )
2016-09-30 19:04:44 +02:00
Daniele Gobbetti
42f622af85
Support record version 12 (firmware 4.1)
2016-09-30 17:28:46 +02:00
Andreas Shimokawa
30d686fa50
support deleting devices and associated data
...
(#401 )
TODO:
- remove device from list after deleting (needs changes to DeviceManager)
- confirmation dialog!!!
2016-09-30 13:41:06 +02:00
cpfeiffer
e3f15f7bd8
Sort devices lexicographically
2016-09-29 22:56:16 +02:00
cpfeiffer
fbfc9ed97f
Workaround for https://github.com/PhilJay/MPAndroidChart/issues/2317
2016-09-29 22:45:17 +02:00
cpfeiffer
f58b1f33c6
Fix parameter order for mpandroidchart 3.0
2016-09-29 22:45:17 +02:00
cpfeiffer
1b5bc23981
Initial port to mpandroidchart 3.0
...
does not quite work yet
2016-09-29 22:45:17 +02:00
cpfeiffer
0a4eefcf11
Use device information from the database for GBDevices
...
fixes offline charts not displaying heartrate for Mi1S
2016-09-29 22:40:16 +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
Daniele Gobbetti
fabc52fdad
Don't forward group summary notifications to the wearable, they are meant for the android device only
...
Possibly also related to #395
2016-09-27 17:33:10 +02:00
cpfeiffer
dbdd7366ed
Reenable the lollipop LE scanner, but after the plain BT scanner
2016-09-26 22:30:15 +02:00
cpfeiffer
c2f8037f07
WIP: Alert Notification Profile
2016-09-26 22:21:59 +02:00
Andreas Shimokawa
cb232638d4
disable new btle scanning, it does not work for me :(
2016-09-26 22:07: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
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
0341c7f61f
fix e.printStackTrace() by logging instead
2016-09-26 11:44:08 +02:00
JohnnySun
3259efbd10
When discovery gadget use Lollipop+ device, use new BTLE API instead of old general BT discovery.
...
(cherry picked from commit 53e3fde7c0
)
2016-09-26 11:43:28 +02:00
Andreas Shimokawa
fd03dac5cd
Pebble: try to work around duplicate Telegram messages
...
(#395 )
2016-09-22 09:31:14 +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
Andreas Shimokawa
c8fb7c5d10
Add icon for Vibratissimo
2016-09-21 19:16:07 +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
696611d392
Do not show "your activity" if activity tracking is not supported
2016-09-20 22:02:40 +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
b2669d6fd7
Match manufacturer string with what we get from BLE device info
2016-09-19 15:00:24 +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
56c7b6b1cb
fix sleep goal and step goal not being set in database (should fix user attribute table spamming)
2016-09-11 12:35:26 +02:00
Andreas Shimokawa
0cc95bd297
more debug
2016-09-11 12:23:36 +02:00
Andreas Shimokawa
d0f8e308a4
also invalidate fw2 when invalidating fw
2016-09-11 12:23:14 +02:00
Andreas Shimokawa
ec1f539267
revert accidentially commited stuff
2016-09-11 00:38:26 +02:00
Andreas Shimokawa
053b9553bc
correct changelog (pebble health is also affected by userid and deviceid swapping)
2016-09-11 00:36:04 +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
Andreas Shimokawa
e1927733ba
remove special handling for conversations (latest release removed pebble messages)
2016-09-10 23:53:24 +02:00
cpfeiffer
c31049839a
Make DeviceCommunicationServiceTestCase runnable with robolectric
...
- enables the test for travis
- tests operation when not connected
- tests connecting
- tests operation when connected
2016-09-10 11:12:51 +02:00
cpfeiffer
ec0a0db4f6
Make strings translatable in the database management activity
2016-09-06 22:59:08 +02:00
cpfeiffer
d011c437a2
This hopefully fixes the recreation of the old activity db
...
(I cannot reproduce or test it)
2016-09-06 21:54:03 +02:00
cpfeiffer
f2b344349f
Make some primary and foreign keys not-nullable
2016-09-06 00:00:48 +02:00
cpfeiffer
afef50dfab
Hide the "merge old activity database" elements when there is no old db
2016-09-05 23:55:00 +02:00
cpfeiffer
411a90326e
Fix method name
2016-09-04 22:39:35 +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
cpfeiffer
8e154ca67d
slightly more testing of Device/Attributes
2016-09-03 21:16:45 +02:00
Andreas Shimokawa
5a49f1215e
Display known devices from db even if Bluetooth is off or unsupported
...
This allows to view activity data without turning bt on or connecting to the pebble emulator via tcp/ip (needs modified manifest for internet access)
2016-09-02 10:54:32 +02:00
cpfeiffer
6f02f9e350
Unit-Test and fix *Attributes sort order
...
When adding e.g. new DeviceAttributes, we cannot simply add them to the
attributes list, because that list is supposed to be ordered. We could
insert it at the beginning, but that would be brittle to changes in the
GBDaoGenerator, so we simply re-fetch them from the db after adding
new attributes.
2016-09-02 00:34:30 +02:00
Daniele Gobbetti
1e6cb67edd
UI refactoring of the DB management activity.
...
Added a method to delete the legacy DB only.
2016-08-31 17:35:28 +02:00
Daniele Gobbetti
6a2043eeb7
Create DB management activity by taking the existing functionalities from the debug activity.
2016-08-31 15:12:26 +02:00
Daniele Gobbetti
84e644fa1a
Add preference for save raw pebble health data.
2016-08-31 14:05:02 +02:00
cpfeiffer
cd535a0a45
Include known devices from the database in CC
...
(as long as device-support is still available)
Fixes non-paired devices not being displayed
2016-08-31 00:33:54 +02:00
cpfeiffer
6340bcff15
Small cleanup
2016-08-31 00:03:20 +02:00
Andreas Shimokawa
93b165ee96
onboarding: use the text area not the button itself for displaying the info text ;)
2016-08-29 00:32:36 +02:00
cpfeiffer
bcb07ccacd
Enable LoggingTest with robolectric
2016-08-29 00:26:29 +02:00
Andreas Shimokawa
07ee860b1c
add information to onboarding activity, make strings translatable
2016-08-29 00:17:40 +02:00
Andreas Shimokawa
c55369747d
launch onboarding (database migration) activity from service when:
...
- device got initialized
- is not yet in the new device db
- an old database exists
2016-08-28 23:49:05 +02:00
cpfeiffer
eb7771c1a9
Support for overlapping ActivityDescriptions + testcases
2016-08-28 00:22:34 +02:00
cpfeiffer
39c7762416
Update the device in case it has changed
2016-08-27 23:25:37 +02:00
cpfeiffer
1a22259b4e
Good practice: use the DAO to insert/update instead of the session
...
(saves a few cycles to look up the correct DAO from the session)
2016-08-27 23:12:48 +02:00
cpfeiffer
840a125c81
Fix compilation
2016-08-27 22:55:00 +02:00
cpfeiffer
8d6e6c8675
Upon request, delete not only the old, but also the new database
2016-08-27 22:51:00 +02:00
cpfeiffer
ae2df2580c
Remove/document deprecated stuff
2016-08-27 22:45:27 +02:00
cpfeiffer
e139840fee
More appropriate user handling: update the user instead of creating new
2016-08-27 22:34:30 +02:00
cpfeiffer
bfaaed7e5c
Detcach samples from the session after querying, to save memory
2016-08-27 21:40:46 +02:00
cpfeiffer
083d752011
Even more documentation/specification
2016-08-27 20:14:42 +02:00
cpfeiffer
ec9e999be1
Lots of documentation
2016-08-27 16:44:47 +02:00
cpfeiffer
ec0db033b1
Avoid potential NPE when subclasses return null for rawKindSampleProperty
2016-08-27 15:36:42 +02:00
cpfeiffer
350e72d534
Initial support for user-configured activity descriptions
...
- for a given user and time span, there may be an ActivityDescription
- with a textual description
- and a list of tags
- every tag has
- a name
- and an optional description
2016-08-27 00:25:45 +02:00
Andreas Shimokawa
5ab40918c0
rename database from test-db5 to Gadgetbridge
2016-08-26 23:48:54 +02:00
Andreas Shimokawa
34aead6c63
remove obsolte stuff
2016-08-26 23:37:17 +02:00
cpfeiffer
69f73467ea
Store not only device type, but also the model in the db
2016-08-26 21:16:01 +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
Andreas Shimokawa
4363f110fb
finish onboarding activity after import
2016-08-25 01:27:09 +02:00
Andreas Shimokawa
063d00cc51
only launch onboarding after device is initialized and write device to database if not in yet.
2016-08-25 01:08:43 +02:00
cpfeiffer
49b8b9ebca
More robolectric stuff
...
- guard against multiple GBApplication.onCreate() invocations
- test DBHelper.getDevice() for a start
2016-08-25 00:00:53 +02:00
cpfeiffer
38c4be4379
Remove isEqual() in favor of Objects.equals()
2016-08-24 23:14:25 +02:00
cpfeiffer
bfc0b4faaf
Add robolectric dependency and addd a first EntitiesTest
...
Use KitKat (19) as target sdk since robolectric 3.1.2/sqlite4java
does not understand "WITHOUT ROWID" tables.
Also, add constants for user's gender and document some things.
2016-08-24 22:56:42 +02:00
cpfeiffer
02ac70e2a7
Only dismiss the dialog is the activity is still alive
2016-08-24 22:56:42 +02:00
Andreas Shimokawa
ec4469a87b
Testing with dummy onboarding activity
...
crashes
2016-08-24 20:15:26 +02:00
Daniele Gobbetti
2a2ad20aa3
Store raw data in the DB for later interpretation.
2016-08-21 20:24:02 +02:00
Daniele Gobbetti
b617ba7264
Fix the logic regarding the last sample of a run. Remove the unneded try-catch block and reuse the current DB session instead.
2016-08-21 17:38:07 +02:00
Andreas Shimokawa
0ae9955a6f
Display Toast when trying to import old Misfit data (unsupported)
...
... and update TODO
2016-08-20 21:38:39 +02:00
Daniele Gobbetti
6119f3501a
Import the old samples and map the ranges to overlays for pebble.
2016-08-19 21:09:32 +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
cpfeiffer
7a16834482
*return* the created device!
2016-08-18 21:29:26 +02:00
cpfeiffer
deeaa87df7
Batch the import of old activity samples to save memory during import
2016-08-18 20:51:15 +02:00
Andreas Shimokawa
ce8af615d1
Merge branch 'composite-key-dao'
2016-08-18 20:35:56 +02:00
cpfeiffer
6e98defe94
Only import old activity data once per device, not for every provider
2016-08-18 20:29:20 +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
cpfeiffer
26d490ffd6
Store the DeviceType in the Device entity
...
(so that we can later recreate a GBDevice from a Device)
2016-08-17 00:34:19 +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
6843b5aa8f
Add icon for Mi Band 2
2016-08-15 00:39:31 +02:00
cpfeiffer
8766fc5269
Handle MiBand2 device type
2016-08-14 23:25:35 +02:00
cpfeiffer
a38bea892a
Some logging of found devices/uuids
2016-08-14 23:21:09 +02:00
Andreas Shimokawa
4ddbbfdfb0
change db name to test-db5
2016-08-14 22:36:50 +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
cpfeiffer
7c060506cf
Invalidate UserAttributes and DeviceAttributes when new ones are created
2016-08-13 00:52:35 +02:00
cpfeiffer
b3984a409c
Fix checking for up-to-date User and Device attributes
2016-08-13 00:27:38 +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
23c289ce1a
Use the real raw values as received by the device.
...
Some types were also added, even though they are educated guesses.
2016-08-09 20:22:05 +02:00
Daniele Gobbetti
22d0387f76
Fix the comparison order again ,as it was correct originally.
...
Partial revert of 5cfddbb7e9
2016-08-09 20:05:42 +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
Daniele Gobbetti
5cfddbb7e9
Use the right properties to build the query and fix the comparison operators.
...
Performance: iterate first on the smaller dataset.
2016-08-09 17:52:07 +02:00
Andreas Shimokawa
fe5ec74ca1
Pebble Health: read overlay data in sample provider and patch in raw kind
...
completely untested
2016-08-09 11:56:05 +02:00
Andreas Shimokawa
5072d6b959
Pebble: try to write to health activity overlay table
2016-08-08 19:16:53 +02:00
Andreas Shimokawa
af58b4600d
whoops
2016-08-07 12:15:40 +02:00
Andreas Shimokawa
c4f83d68cd
refactoring: add generic support for manually filtering samples by acticty kind in AbstractSampleProvider
...
This allows a lot of simplifications for Morpheuz and Misfit
2016-08-07 11:45:09 +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
cpfeiffer
a7b9ae5596
whitelist fw 4.15.12.10 #369
2016-08-04 00:05:58 +02:00
Andreas Shimokawa
9520e23439
fix negative steps in Charts with Morpheuz
2016-08-02 00:31:29 +02:00
cpfeiffer
43d7566c0b
some more microsteps #206
2016-08-01 22:18:57 +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