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
8e154ca67d
slightly more testing of Device/Attributes
2016-09-03 21:16:45 +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
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
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
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
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
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
38c4be4379
Remove isEqual() in favor of Objects.equals()
2016-08-24 23:14:25 +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
cpfeiffer
deeaa87df7
Batch the import of old activity samples to save memory during import
2016-08-18 20:51:15 +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
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
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
eabe625c47
rename some classes, remove obsolete ones
2016-07-30 23:22:27 +02:00
cpfeiffer
493444a2a0
Remove unused stuff
2016-07-28 22:28:29 +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
cpfeiffer
e70a2290c3
sampleproviders now return device specific data #206
2016-06-27 20:43:48 +02:00
cpfeiffer
0596c80381
Some migration fixes
...
especially: add unique index on samples using timestamp and device id
(since composite primary keys are not fully supported yet)
2016-06-19 00:40:51 +02:00
cpfeiffer
233a6155cc
Add class DeviceManager that provides access to the list of managed devices
...
Basically moved code out of ControlCenter to a separate class. Also provides
change events when the device list has changed, or changes to the device
state have occurred.
2016-06-18 23:35:34 +02:00
cpfeiffer
41e6833b2d
Getting closer... db migration almost works.
2016-06-18 01:26:36 +02:00
cpfeiffer
13959677af
More WIP for intrgrating old activity db into new one
...
(one demand to keep user in control)
2016-06-17 00:07:50 +02:00
cpfeiffer
687beee501
Migration work
2016-06-16 21:54:53 +02:00
cpfeiffer
61957d6cb0
WIP: more db work
2016-06-14 20:13:08 +02:00
cpfeiffer
ae548d0806
WIP: more work, compile again
2016-06-06 23:18:46 +02:00
cpfeiffer
4504c5b5a4
Add Activity Description table and order samples
2016-05-23 23:31:22 +02:00
cpfeiffer
4370be28b6
Remove some imports
2016-05-17 00:51:58 +02:00
cpfeiffer
75703b0dea
Import and Export db are back
2016-05-17 00:51:00 +02:00
cpfeiffer
2d2df64003
Port schema migration to greendao
2016-05-16 23:54:51 +02:00
cpfeiffer
876bdac918
More WIP: remove now unused code, better use of generics
2016-05-16 23:36:54 +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
cpfeiffer
6e44ddaee6
WIP: db refactoring
2016-05-15 00:09:34 +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
cpfeiffer
b363d08efb
WIP: a little work towards greendao
...
need to think of how to integrate MiBandActivitySample and PebbleActivitySample
into the app. There's GBActivitySample, MiBandSampleProvider, PebbleSampleProvider,
etc.
2016-04-29 23:12:30 +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
4be1926459
reformat code though Android Studio
2016-03-20 15:00:05 +01:00
cpfeiffer
10975feb49
s/moveToFirst/moveToNext/
2016-03-08 23:30:31 +01:00
cpfeiffer
87023ebdb3
Don't retrieve the column index again and again in a long loop
...
Also: fix weird iteration logic
2016-03-08 21:33:12 +01:00
cpfeiffer
5eb8f57b4c
Some more byte -> int conversions
2016-03-07 22:47:34 +01:00
cpfeiffer
619ea04a63
Fix database creation and updates #246
...
The creation script *must* always do the full creation so that fresh installs
get the correct database (no upgrade scripts will run for them)
2016-03-07 00:39:47 +01:00
danielegobbetti
459f6baf08
Fix missing column in the creation script (upgrades were fine, but new installation weren't).
...
Reindent changelog file.
2016-03-06 17:28:21 +01:00
cpfeiffer
97faf61c5a
Log db upgrade/downgrade requests
2016-03-04 23:37:42 +01:00
cpfeiffer
dc162a9ac8
Only add column if it doesn't exist yet
...
Column can exist if there down- and upgrades
2016-03-04 23:25:11 +01:00
Andreas Shimokawa
ed85fd5011
convert byte and short values related to activity tracking to int
...
This avoids a lot of problems because java
- does not know unsigned values
- jvm and dalvic do not internally support byte and short
- sqlite does not know them either
2016-02-29 20:54:39 +01:00
cpfeiffer
0ef738067d
Some work in progress for heart rate graphs #178
...
Currently we get the heart rate when synchronizing activity data
(i.e. not live) and we write it to the activity database so that we
can show a nice graph. The value is currently always 0 though,
because we can't enable recording hr, yet.
2016-02-26 23:45:17 +01:00
Daniele Gobbetti
8294921de7
Do not ack the sleep data until we can actually store them
...
Added helper method to fetch the latest timestamp stored in the DB, needed for the aforementioned feature.
Update changelog
This closes #188 \o/
2016-02-11 19:14:40 +01:00
Daniele Gobbetti
20c4e49fe1
Refactoring of the Pebble Health steps data receiver.
...
Added logic to deal with pebble health sleep data.
Added database helper to change the type of a range of samples (needed for sleep data).
Fixes to the Pebble Health sample provider.
2016-02-09 17:52:21 +01:00
cpfeiffer
81c2f657bd
Some lint fixes
2015-11-23 22:46:12 +01:00
Andreas Shimokawa
4b9304b897
fix
2015-10-23 23:55:23 +09:00
Andreas Shimokawa
59f4766bc5
no comment
2015-10-23 23:18:36 +09:00
Andreas Shimokawa
e809c490dc
add method for batch inserts in ActivityDatabaseHandler. Closes #150
2015-10-23 22:13:12 +09:00
Andreas Shimokawa
1d41f2f8e4
Refactoring
...
The notfification APIs now use NotificationSpec as their only parameter, which
contains all information (required and optional ones).
We no longer have separate methods and actions for SMS/EMAIL/GENERIC anymore.
The type of notification is important now, not how we received them technically.
2015-09-24 14:45:21 +02:00
cpfeiffer
bddf6c8909
Also log the number of rows (samples) returned by the query #91
2015-09-09 20:52:04 +02:00
cpfeiffer
2dec5574cc
Log the where condition of the samples query #91
2015-09-09 20:49:17 +02:00
cpfeiffer
da5df5621e
Use MEDIUMINT for steps per day (no effect, not used, and ignored by sqlite)
2015-09-01 23:11:22 +02:00
cpfeiffer
4b4c6d1a6b
Do not accept negative step/intensity values in the db
...
(Ignore and log those requests instead)
2015-09-01 22:53:47 +02:00
cpfeiffer
c49c795b1d
Actually remove that implicit "current date" handling
...
We now manage days explicitly in the UI.
2015-09-01 22:43:31 +02:00
cpfeiffer
567f27b0f4
Some initial fixes found by static analysis #92
2015-08-16 00:17:16 +02:00
cpfeiffer
a66a3a15c2
Fix remaining byte parameter in the API for steps.
...
Maybe this was the reason for #91 (negative steps)
This could happen making at least 3 steps per second.
2015-08-15 00:23:13 +02:00
cpfeiffer
7c597b325a
Big refactoring: move classes and packages around to get a better structure
...
- model package contains mostly shared interfaces (UI+service), not named GB*
- impl package contains implementations of those interfaces, named GB*
the impl classes should not be used by the service (not completely done)
- the service classes should mostly use classes inside the service and deviceevents
packages (tbd)
Every device now has two packages:
- devices/[device name] for UI related functionality
- service[device name] for lowlevel communication
2015-08-03 23:09:49 +02:00
cpfeiffer
802f48011d
Refactoring of database access
...
- the db is now exclusively locked for one thread
- the charts read from the db and analyze data in a background thread
+ some small cleanups
2015-08-03 01:21:44 +02:00
Andreas Shimokawa
9f591ef8b5
Refactoring: Merge Pebble app/fw installer activity and Miband firmware update Activity
2015-07-28 17:30:20 +02:00
cpfeiffer
858c962dd0
Refactoring #45
...
- add some device and db independent model interfaces for activity samples
- use these model interfaces where possible
- chart activity does not do device dependent rendering anymore and uses
normalized values for all devices
- initial interface for daily summaries
2015-07-28 00:05:05 +02:00
Andreas Shimokawa
dbbcf20bbc
reformat code
2015-07-25 21:52:52 +02:00
cpfeiffer
d498bd976a
Work in progress #45
...
Comparison between Light Sleep and Deep Sleep.
(Currently wrong, needs more analysis)
2015-07-14 00:29:32 +02:00
cpfeiffer
04e628b2d1
Separate fragments for all activity kinds and just sleep #45
2015-07-13 21:54:46 +02:00
cpfeiffer
8b44f90bb6
Some more refactorings to support different charts
2015-07-12 23:42:23 +02:00
cpfeiffer
f53a037d7f
Use query instead of rawQuery
2015-07-12 21:50:09 +02:00
cpfeiffer
b516ceda01
Support for displaying Toasts from non-ui threads
2015-07-11 21:49:51 +02:00
cpfeiffer
be45f7fe0c
check if table exists before dropping
2015-07-11 21:16:07 +02:00
cpfeiffer
a6e26e5ddc
Cleanup, use fragment based charts (WIP #45 )
...
Known issue: scrolling a zoomed-in chart interferes with swiping to the
next/previous chart (so far there's just one, but...)
Workaround: Swipe down and then left or right in one go, this will let
you scroll the zoomed chart
2015-07-11 00:03:41 +02:00
cpfeiffer
7c61bbb2be
Logging to find the cause for seldom device state/notification mismatch
2015-07-10 21:35:28 +02:00
cpfeiffer
8b54c6e5c4
New incremental, cumulative database upgrades and downgrades
2015-07-10 00:31:45 +02:00
cpfeiffer
cc549a6c49
Basic database import and export (to external storage)
...
(In the Debug Activity)
2015-07-08 23:11:23 +02:00
Andreas Shimokawa
56d314d054
Reformat code and optimize imports
2015-06-13 00:32:48 +02:00
Daniele Gobbetti
376f9c53a0
Fix crash on startup
...
Fixed a typo that was causing a force close on database creation.
2015-06-12 21:26:11 +02:00
cpfeiffer
2f0d00d645
avoid WITHOUT ROWID when not running at least lollipop #62
2015-06-06 00:10:38 +02:00
cpfeiffer
dea4ee82a1
Merge branch 'db_refactoring_proposal'
2015-06-05 21:57:55 +02:00
cpfeiffer
c4096e6d3c
Add daniele's db optimization the WITHOUT ROWID
...
closes #62
2015-06-05 21:46:56 +02:00
cpfeiffer
2f1908e480
Make sure to always close the database
2015-06-04 23:45:46 +02:00
Daniele Gobbetti
fc374881c5
Get rid of the unused ID in the DB, this could help in:
...
* reducing the used space
* reducing the time needed for inserts
2015-06-04 21:37:48 +02:00
Andreas Shimokawa
900b3f3833
use ORDER BY timestamp in SQL statement
...
Also optimize imports...
2015-05-30 17:40:23 +02:00
Andreas Shimokawa
e79f4523c3
Add SQLite database support for activity data
...
This is now used for morpheuz data and the SleepMonitorActivity
2015-05-30 17:28:03 +02:00