Commit Graph
100 Commits
Author SHA1 Message Date
Daniele Gobbetti b8a137226f Webview: Fix sending configuration from watchfaces when background message exchange is going on 2017-09-03 17:10:04 +02:00
Daniele Gobbetti d669d3b325 Make NoF1 compatible with background js branch 2017-09-03 17:09:19 +02:00
Daniele Gobbetti bb962001a5 Merge branch 'master' into background-javascript
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java
2017-09-03 16:49:27 +02:00
Daniele Gobbetti 612592516b Colored buttons everywhere! 2017-08-27 19:26:27 +02:00
Daniele Gobbetti f7e814431e Use material "history" icon for changelog
fixes #775
2017-08-27 18:48:13 +02:00
Daniele Gobbetti 44d2384aec Use gridlayout from support library
Add gridlayout dependency and use it instead of heavily nested linearlayouts (fragment_live_activity) or to simplify existing grid layouts.
2017-08-27 18:26:49 +02:00
Daniele Gobbetti 41feb008a7 Various style fixes
The top axis had the default color and was not visible with dark theme.
Enabled granularity of 1 to avoid fractions of steps being shown on the axis.
2017-08-27 17:26:24 +02:00
Daniele Gobbetti 8aebf2d9d5 Null extras bundle should not be processed.
Blind attempt to address #778
2017-08-25 22:01:21 +02:00
Daniele Gobbetti 1017561fb6 Add amazfit to the shorlist of supported vendors/devices (DE). 2017-08-19 21:32:44 +02:00
Daniele Gobbetti 8c23d6ec29 Add amazfit to the shorlist of supported vendors/devices. 2017-08-19 21:31:49 +02:00
Daniele Gobbetti c05e5f15ab Add link to liberapay.com in the main drawer.
/cc #14
2017-08-18 21:51:12 +02:00
Daniele Gobbetti d00b5a5d5d Merge branch 'master' into background-javascript 2017-08-18 12:15:01 +02:00
Daniele Gobbetti c1834ec4ea Fastlane/fdroid test - fallback images
Removed images for Italian, to check if fdroid falls back to the english images
2017-08-18 12:12:59 +02:00
Daniele Gobbetti 8cce2d1362 Pebble: allow to blacklist certain calendars
As requested in #736, this adds an entry in the settings menu that allows to blacklist certain calendars.
To avoid confusion, all the former blacklist methods and fields have been renamed to apps_blacklist. The new entries are called calendars_blacklist.
Importing the settings has not been tested with the current changes.
Closes #736

Future improvements TODO: The new setting lives in the Pebble section, i believe in the future the blackslist functionality should be centralized and put in the sidebar.
2017-08-18 10:34:42 +02:00
Daniele Gobbetti 6c38c6bb79 Reword changelog and add versioncode to xml 2017-08-17 18:18:16 +02:00
Daniele Gobbetti 91b1464824 Pebble: use iframe for clay configuration webpages
Replacing the top frame with a data-uri is forbidden since chromium-based-webview version 60.
With this commit we swap the body with an iframe when needed. Old webviews work as usual also with this approach.
No special treatment is needed for local storage as its usage is forbidden in data-uri iframes.

Fixes #758
2017-08-16 21:31:39 +02:00
Daniele Gobbetti 868c0543d5 Pebble: JS proper removal of callbacks (transaction handling) 2017-08-07 18:35:09 +02:00
Daniele Gobbetti 7475d170a7 Pebble: add support for the (unreleased) internet helper addon
This will use the internet helper application if it's available on the android device or fall back to existing methods if it doesn't.
2017-08-05 16:04:48 +02:00
Daniele Gobbetti 9cca16cb00 Pebble: JS fix sending configuration data (regression introduced with last commit) 2017-08-02 22:18:11 +02:00
Daniele Gobbetti aa28625d9f Pebble: JS basic implementation of transaction acknowledgment
JAVA side:
- first trivial handling of ACK/NACK message,
- fake the location age until an update mechanism is implemented,
- make the appmessage parsing more robust,
- comment the forecast mimicked reply as it was wrong and confusing for some watchfaces

JS side: first trivial handling of ACK/NACK message
2017-08-02 22:08:29 +02:00
Daniele Gobbetti 8353026c08 Pebble: call the callbacks, do not return them 2017-07-28 18:38:03 +02:00
Daniele Gobbetti c81a768000 Pebble: call the callbacks, do not return them 2017-07-28 18:34:36 +02:00
Daniele Gobbetti 25e6af81a4 Pebble: some more fixes to the webview
- add back support for clay that was mistakenly removed
- timestamps are in milliseconds in JS as well
- intercept the whole URL path instead of the last part
2017-07-28 18:30:27 +02:00
Daniele Gobbetti 868593cfd3 Pebble: further improvements to the background webview
- the webview is not static anymore (but its holder is)
- the openweathermap calls of type weather and forecast are now supported (as properly as possible)
- assemble the main JSON messages in the weather receiver, as info are lost afterwards
- switch to Uri parsing instead of String (also unify handling of legacy and new requests)
- attempt to address most of the lints/warnings of AS
- remove printStackTrace in favor of LOG.warn
2017-07-26 18:12:12 +02:00
Daniele Gobbetti 79f3cad36d Pebble: some refinements to webview
- rename the createWebView method to getInstance
- remove the stateChangeListener after it has been fired once and remove obsolete code within
- instantiate the jsInterface object only when needed
- use the application context when possible to limit the usage of the mutableContextWrapper
2017-07-24 23:57:07 +02:00
Daniele Gobbetti f6946c4402 Merge branch 'master' into background-javascript 2017-07-24 23:47:15 +02:00
Daniele Gobbetti fe3448f6e4 Add icon.png to the fastlane metadata and update License
- added a 512x512px version of the launcher icon to each language directory
- added the fastlane graphic resources to the LICENSE.artwork file
2017-07-23 08:53:10 +02:00
Daniele Gobbetti caf79bb5e6 First test of fastlane metadata files for English, Italian and German:
- added title and feature graphic for all three languages
- added short and full description for English and Italian
- added changelog only for last version and only for English
2017-07-20 13:20:48 +02:00
Daniele GobbettiandGitHub 7e6a41a773 Add a checkbox about content polices
Let the user confirm content polices have been read and understood
2017-07-13 22:26:16 +02:00
Daniele Gobbetti 737578debc The good parts of "refactor notification management"
- centralize the logic for skipping unwanted notifications
- use *Compat methods wherever possible

Leaving out the problematic parts (persistent IDs and updating)
2017-05-28 18:50:41 +02:00
Daniele Gobbetti bc28990a96 Parse the EXTRA_MESSAGE bundle in the notification, if present.
This way notifications are updating for the Conversations app.
2017-04-29 23:22:03 +02:00
Daniele Gobbetti ccfe8d5777 Merge branch 'master' into notification-refactor 2017-04-29 21:34:19 +02:00
Daniele Gobbetti cede8a0826 Refactor notification management
- centralize the logic for skipping over unwanted notifications
- use *Compat methods wherever possible
- use unique and persistent ID (update notifications)
- switch to using BigText style by default (since we can now update existing notifications)
- for Pebble: delete and reinsert notification as updating is not possible
2017-04-28 18:03:19 +02:00
Daniele Gobbetti 41ecd4e7d6 Update contributors list.
Also update the self-contained script to ignore the service bots.
2017-04-26 18:15:27 +02:00
Daniele Gobbetti 534eb385f7 Pebble: manage the dictation session initialization.
Currently we inform the watch that GadgetBridge doesn't support voice input.
2017-04-24 21:32:51 +02:00
Daniele Gobbetti fae116d1bd Add Calendar related tests (WIP) 2017-04-24 13:50:53 +02:00
Daniele Gobbetti d570d188a2 Remove the low battery notification if a normal battery level is reported. 2017-04-24 09:53:48 +02:00
Daniele Gobbetti f06298a3c8 Fix some lint errors and warnings:
- check the calling Intent action when autostarting
- replace the FAB + image with a vector drawable
2017-04-23 12:43:13 +02:00
Daniele Gobbetti 3ef5f5b811 Add support for all day events and add location in the CalendarEventSpec
Further: fix the hashCode method to properly deal nulls fields.
2017-04-19 17:44:02 +02:00
Daniele Gobbetti 18157daf46 Ensure that the Notification listener service gets restarted if crashed.
This change adds an additional service that checks the status of the NotificationListenerService, and restarts it if it's stale/crashed.
Crashes happen mostly during development, but were reported also by users.
2017-04-19 13:23:13 +02:00
Daniele Gobbetti 7b50ba9572 Implement hashCode() as equals has been implemented. 2017-04-17 21:07:50 +02:00
Daniele Gobbetti 1e231e6129 Move the Calendar receiver code in the proper place. 2017-04-17 20:33:39 +02:00
Daniele Gobbetti 61690eb2cc Get notified when calendar events change instead of polling. 2017-04-17 20:26:33 +02:00
Daniele Gobbetti d9769be78d Merge branch 'master' into feature-calendarsync 2017-04-17 20:06:44 +02:00
Daniele GobbettiandGitHub 0cf3625304 Remove the Pebble Time 2
Pebble Time 2 is unreleased / untested, better leave it out from the supported devices list
2017-04-17 15:12:25 +02:00
Daniele Gobbetti 5bf6251dc5 Rename some layout files as they are used for specific purposes 2017-04-09 16:03:07 +02:00
Daniele Gobbetti fe626eb11e Remove the checkboxes in the alarms cardview and simplify layout of details activity
- rename the layout file of the alarm item to better organize the files
- add a color selector for the item view, this replicates the old behavior of using the color to highlight enabled days
- remove the nested linearlayouts in the alarm details activity layout and use CheckedTextView instead
2017-04-09 16:01:48 +02:00
Daniele Gobbetti a77ff03ca5 Add filter functionality to the app blacklist activity 2017-04-09 00:21:43 +02:00
Daniele Gobbetti 48728cbb50 Implement recyclerView in the AppBlackListActivity.
This allows to implement a search functionality (in the future)
2017-04-08 22:26:12 +02:00
Daniele Gobbetti 5c0c5581bb Merge branch 'master' into background-javascript
# Conflicts:
#	app/src/main/assets/app_config/js/gadgetbridge_boilerplate.js
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java
2017-04-08 21:16:01 +02:00
Daniele Gobbetti 16cff936d3 Pebble: do not show the battery state in the control center
- the mapping voltage<->percentage is probably family dependent (or perhaps even device dependent!)
- the values are often outdated by more than one hour, this could yield to issue reports which are false positive
2017-04-08 18:46:39 +02:00
Daniele Gobbetti 018c2a971e Show the list of alarms as (material design) cards 2017-04-08 18:44:15 +02:00
Daniele Gobbetti dd5ee03932 Set the right color for the Pie charts entry labels.
Closes #647 by showing the text also on the light theme, instead of hiding it everywhere.
2017-04-08 15:50:13 +02:00
Daniele Gobbetti 2e98b1396f Do not override the android:* text colors, define our own. This fixes a crash on API 19.
Also define them in the attrs xml file and do some grouping in the colors xml.
It might be we don't need them at all, but for the time being let's keep them around.
2017-04-08 15:49:00 +02:00
Daniele Gobbetti bd833a37d4 Get rid of the v21 special style
We don't need it anymore since we are extending AppCompat.
2017-04-08 15:45:32 +02:00
Daniele Gobbetti 5a019c238a Hide the dateBar but don't set it as gone, this prevents charts from changing size when swiping. 2017-04-08 15:16:35 +02:00
Daniele Gobbetti 3004177f44 Update Changelog 2017-04-08 09:00:01 +02:00
Daniele Gobbetti cad777e4ce Pebble: always return the position after 10 tries. Fixes #643
This is a workaround for bugs in the javascript code of the configured watchfaces, that could fail to handle a returned failure properly and crash the webview / fill its stack.
2017-04-08 08:57:23 +02:00
Daniele Gobbetti df71d695c3 Pebble: pass an object to the ready event handlers
apparently also the ready event needs an object for some watchfaces. Reported in #643 (not the main report)
2017-04-08 08:50:18 +02:00
Daniele Gobbetti 4dbc255ad5 Pebble: return the current position to the caller of the getCurrentPosition function.
This fixes a bug introduced in d8894d315a that affects also #643.
2017-04-08 08:34:33 +02:00
Daniele Gobbetti 8e780fa122 Add some space between the tabs and the chart legend. 2017-04-03 21:24:21 +02:00
Daniele Gobbetti 4ab39e2c00 Just applied automatic code formatting to all layout files. NO content change. 2017-04-03 21:09:35 +02:00
Daniele Gobbetti e556a65ff5 Change layout it to avoid duplicates.
It didn't cause any issue as this layout is not referenced anywhere.
2017-04-03 21:05:27 +02:00
Daniele Gobbetti 0573939c9e Lint: change marginRight to marginEnd 2017-04-03 21:03:31 +02:00
Daniele Gobbetti 96a49f0b7a Fix alignment of action icons and enable proper (vector) scaling. 2017-04-03 18:30:29 +02:00
Daniele Gobbetti d8894d315a Pebble: In the geolocation override, fail if the position is too old.
The previous logic was wrong as it was calling success every time. Further checks must be added for some watchfaces.
2017-04-02 22:34:22 +02:00
Daniele Gobbetti e89ba529c3 Apply some Material design guidelines to the charts
- replace the PagerTabStrip with a TabLayout (moved to top and scrollable)
- move the date selection to the bottom
- do not update the activity title as the tab name is much more visible now
2017-04-01 17:47:54 +02:00
Daniele Gobbetti 9a0439c6e0 Apply some Material design guidelines to the app management
- replace the PagerTabStrip with a TabLayout (moved to top)
- change the row element to adhere to the guidelines wrt spacing
- move the FAB a bit and hide it when scrolling down, scroll up to reveal it again
2017-04-01 17:06:38 +02:00
Daniele Gobbetti db4e37d08b Make the drag handle less prominent (grey) 2017-04-01 15:45:30 +02:00
Daniele Gobbetti 8fccbe3b69 Pebble: implement battery display in control center
- extract the millivolts reading from the analytics datalog message and map to percentage
- mapping is manually made and is possibly wrong, but the values are commented
- the values are sent once per hour and are delayed, this might make the reading really inaccurate on pebble time round watches
2017-03-31 18:23:02 +02:00
Daniele Gobbetti f80215b37a Use standard recyclerview for app reordering
- allow dragging by using a drag handler (as per best practice)
- remove the custom draglistview dependency
- update to the latest android support libraries
2017-03-31 18:17:53 +02:00
Daniele GobbettiandGitHub 447885033b Add links to the wiki sections next to supported devices line 2017-03-29 08:59:53 +02:00
Daniele GobbettiandGitHub eae119f9df Add some preliminary checks/links to the issue template 2017-03-29 08:53:13 +02:00
Daniele Gobbetti 46501be249 Enlarge the "hit box" of each icon (replace some margin pixels with padding).
Fixes #615
2017-03-27 13:56:03 +02:00
Daniele Gobbetti 1813ec9378 Forbid landscape orientation on AlarmDetails activity.
Landscape mode triggers a bug in android DatePicker on devices with small screens.
Fixes #612
2017-03-26 20:29:57 +02:00
Daniele Gobbetti d550defcb3 Do not save an alarm as "smart" if the device does not support it (#612)
Opening the activity when a device that does not support smart alarms is connected hides the "smart alarm" toggle. This is now reflected also on the saved data.
This solution is not ideal in case of multiple devices but as long as #577 is not solved its the best we can do.
2017-03-26 17:57:03 +02:00
Daniele Gobbetti 5008f08272 Revert "Use constraintlayout for the cardview and few improvements."
This partially reverts commit ecd2c166c2 because the ConstraintLayout dependency it creates problems in travis and in f-droid build system. #thanksgoogle #wecanthavenicethings :(
2017-03-12 09:06:58 +01:00
Daniele Gobbetti 0ac77fc0a4 Remove the legacy ControlCenter and its usages. Add New GUI to the changelog. 2017-03-11 19:49:57 +01:00
Daniele Gobbetti 183d89dc47 Show the full changelog when selecting the Changelog entry in the navigation drawer.
Show a line separator between groups of icons in the navigation drawer.
2017-03-11 17:10:51 +01:00
Daniele Gobbetti ecd2c166c2 Use constraintlayout for the cardview and few improvements.
Icons are now bigger.
"find device" is in the icon row
2017-03-11 16:50:12 +01:00
Daniele Gobbetti 2c152e8447 Override textColorPrimary and not textColor as it conflicts with support libraries (e.g. snackbar text).
Further, use textColorPrimary in the graphs instead of textColor.
2017-03-11 16:48:55 +01:00
Daniele Gobbetti 68608f8582 Fix merge conflicts (from 3abbe12b53) and update the support libraries. Add constraint layout library. 2017-03-11 16:45:39 +01:00
Daniele Gobbetti 8117caf73c Merge branch 'master' into new_GUI 2017-03-11 16:44:16 +01:00
Daniele Gobbetti c23b938a9a Update changelog 2017-03-11 10:32:04 +01:00
Daniele Gobbetti a1af4a4599 Add classification for Squeaky Mail as mail app. Fixes #589 2017-03-11 10:23:57 +01:00
Daniele Gobbetti a566a6656c Fix line endings (no content changes) 2017-03-10 13:43:47 +01:00
Daniele Gobbetti 75d4abc9dc Pebble background webview: bring back the mutableContextWrapper, otherwise inputs aren't working.
Reliably go back to first step of the configuration page when closing (this causes a Toast when closing the activity while in the clay settings page)
2017-03-04 20:43:32 +01:00
Daniele Gobbetti f84c651c38 Pebble background webview: config page should be shown reliably now. 2017-03-04 19:46:18 +01:00
Daniele Gobbetti 76be0ae676 Pebble background webview improvements:
remove the pre-KITKAT checks as the minsupportedversion is KITKAT
fix the currentPosition override
move the returned configuration parsing to onResume method (where it was previously) as it seems more reliable
pass the whole GBDeviceEventAppMessage object, this way the jsInterface in the webview doesn't need to be static anymore
change the way the webview is initialized, this way the context doesn't need to be static anymore
use runOnUiThread instead of the Handler .. MainLooper to post the commands to the webview instance
comment a couple of custom message handler for weather as the watchapp seem to work well with JS alone
add a couple of log messages for debugging

known issue: legacy app configuration pasting does not work.
2017-02-28 21:11:26 +01:00
Daniele Gobbetti ca73d0c2d4 Add mapping to weather icons 2017-02-27 21:45:10 +01:00
Daniele Gobbetti 21498bd2e9 Pebble: mimic openweatherapi response from our cached data.
This should allow watchfaces using openweathermap to run without modification (but we lack the icon ATM). Tested with multifit watchface.

Also centralize the location data in own local class and remove leftover comment.
2017-02-27 19:02:34 +01:00
Daniele Gobbetti ca8e0db078 Merge branch 'master' into background-javascript 2017-02-26 17:57:37 +01:00
Daniele Gobbetti a545c56680 Pebble: ack the messages that go to the webview and do not destroy it on disconnect. 2017-02-26 17:57:26 +01:00
Daniele Gobbetti 176cf79cc1 Merge branch 'master' into new_GUI
# Conflicts:
#	app/build.gradle
2017-02-26 16:55:54 +01:00
Daniele Gobbetti a4ac108287 Pebble: merge master moving the location override to WebViewSingleton 2017-02-25 15:44:37 +01:00
Daniele Gobbetti 6c993d40aa Merge branch 'master' into background-javascript
# Conflicts:
#	app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java
2017-02-25 15:26:55 +01:00
Daniele Gobbetti e7846f4754 Pebble: override the native navigator.geolocation GetCurrentPosition
The native method requires FINE location permission, and we don't have it. Further we should handle the runtime permission request.
2017-02-25 13:31:48 +01:00
Daniele Gobbetti 2eb43fa740 Pebble: Fix for week sleep chart amounts (the colors are still wrong) 2017-02-25 12:52:24 +01:00
Daniele Gobbetti b7bad268c2 Pebble: support weather for Obsidian
Ref: #482
2017-02-05 17:21:04 +01:00
Daniele Gobbetti dccd6c1b06 Pebble: implement privacy modes
The user can choose whether to completely hide the notification text or push it off-screen. This also effects the incoming call notification.
Fixes #370
2017-02-05 16:37:59 +01:00