1
0
Fork 0
Commit Graph

425 Commits (8ac5f6c16d0969e91e55d618e6e72cd16606e5e4)

Author SHA1 Message Date
Daniel Thompson 8ac5f6c16d github: workflows: Fix add-path problems
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-24 14:14:39 +00:00
Daniel Thompson 8824646939 tools: themer: Fix the online help
Correct the indentation and the quoting of the theme strings.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-13 16:51:07 +00:00
Daniel Thompson 4468285c34 widgets: BatteryMeter: Fix theme handling
Add the battery frame to the theme so it matches the frame used for
charging and rename accordingly.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-13 16:51:07 +00:00
Daniel Thompson e44e605b7a apps: clock: Fix theme handling
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-13 16:51:07 +00:00
kozova1 2624a6e998 Added basic theming engine.
This theming engine uses a bytestring (but supports anything indexable,
as long as the index results are a byte long),
stored as `wasp.system._theme`.
It has a default value, which should not change anything about the way this looks currently.

The theme can be set via `wasp.system.set_theme`,
but this should *ONLY* be used in `main.py`.
`wasp.system.set_theme` will return True if it was successful,
or False if the theme is of an old format.
Using an old format theme will *not* crash the watch,
but will use the default theme instead.

To theme this, one has to use tools/themer.py (use flag -h for complete explanation)
to generate a bytestring that's added in main.py (see diff).

The bytestring is then loaded into 'wasp.system._theme'.
Theme values can be looked up by apps by using `wasp.system.theme("theme-key")`.
Theme keys appear in the function body of `wasp.system.theme()`.

I've took the liberty of converting existing apps to use this method,
and it seems to work well.

A test theme is provided in `tools/test_theme.py`

Signed-off-by: kozova1 <mug66kk@gmail.com>
2020-12-13 16:51:07 +00:00
Daniel Thompson 784c9bb36d apps: testapp: Automatically report free memory
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-13 16:07:24 +00:00
Daniel Thompson 338925b4a8 apps: testapp: Make the line benchmark use 360 degrees
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 18:19:57 +00:00
Kozova1 c17abd1728 draw565: Added line drawing function
This is the API:
drawable.line(x1, y1, x2, y2, color)

The function has optimizations for the case of vertical or horizontal lines.

Signed-off-by: Kozova1 <mug66kk@gmail.com>
[daniel@redfelineninja.org.uk: Minor update to commit message]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 18:18:01 +00:00
Daniel Thompson 339b835782 apps: snake: Remove redundant import
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 18:15:33 +00:00
Daniel Thompson 941d4a264d boards: simulator: Additional tests
Start to work (most of) the code paths in the self test application.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 18:15:15 +00:00
Daniel Thompson e3b2c7bf7d boards: simulator: Improve spi.write() simulation
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 12:57:06 +00:00
Siroj42 c1773a3976 tools: Update intelhex, hexmerge.py and nrfutil for python 3.9 compatibility
Signed-off-by: Joris Warmbier <siroj42@t-online.de>
[daniel@redfelineninja.org.uk: Remove changes to tools/hexmerge.py]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 09:11:12 +00:00
Daniel Thompson fd288e01b8 tools: hexmerge: Replace redundant copy with a symlink
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-10 19:44:40 +00:00
kozova1 502efa7493 apps: settings: Add Scroll Indicator
This commit adds a ScrollIndicator widget to the settings app,
to help users realize they can scroll there.

Signed-off-by: kozova1 <mug66kk@gmail.com>
2020-12-05 20:51:27 +00:00
Daniel Thompson 896a4e1a8d simulator: Suppress the pysdl2/numpy warning
This makes the simulator look nicer when it starts up... but it
doesn't help the simulator.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-04 20:35:16 +00:00
Daniel Thompson 46bd454392 simulator: test: Grey box stopwatch test
Currently we can act on the controls but we cannot "see" the display
in the test suite. That leads us to a slightly odd form of "grey box"
testing. It's functionally black box testing but some of the asserts
have to reach inside the components instead of looking at the display.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-04 20:34:23 +00:00
Daniel Thompson 901e43870e simulator: tests: Parameterize the basic app tests
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-04 20:32:40 +00:00
Daniel Thompson 2bb5ae3a89 Makefile: Allow specific tests to be run
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-04 20:31:14 +00:00
Daniel Thompson f1f5cc9e0c simulator: Introduce fully automatic testint
Currently the tests do little more than fire up the simulator and
switch into (and out of) the built in applications. However this is
useful and allows us to fully integrate as a CI job.

Unfortunately the numpy warning from pysdl2 mean we have been forced
to disable all warnings to prevent pytest from collecting and reporting
them.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-04 20:11:41 +00:00
Carlosgg 3fb1faceab Notify level in settings app
Signed-off-by: Carlos Gil Gonzalez <carlosgilglez@gmail.com>
[daniel@redfelineninja.org.uk: Fixed board support for simulator and
sphinx (a.k.a. doc builder)]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 20:20:03 +00:00
Johannes Wache e450ccf9f0 apps: snake: Add a snake game application
Signed-off-by: Johannes Wache <jbwa@posteo.de>
[daniel@redfelineninja.org.uk: Removed some couple of unwanted merge artifacts]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 20:08:59 +00:00
Daniel Thompson bdd3f91b77 github: actions: Ensure warning free docs build
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 20:01:21 +00:00
Daniel Thompson 233c136a5c apps: alarm: Add the alarm app to the library
Like the other library applications this is enabled in the simulator and
included in the flash image but is disabled by default to conserve RAM
(and to give time to new apps to mature and receive improvements).

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 19:14:31 +00:00
Daniel Thompson 39c9344b14 apps: alarm: Fix touch handling when the alarm is ringing
Currently the widgets react to touch when the alarm is ringing (and they
are invisible. For now we fix this by disabling the alarm on a touch
event. Maybe the app should reject touch events since they could acidentally
dismiss the alarm... but we already disable the alarm if we get a swipe
event so this doesn't make things much worse than they already are!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 19:14:31 +00:00
Daniel Thompson 707c4e2fa7 apps: alarm: Adopt 2-bit RLE for the icon
The long term plan is to retire and remove the 1-bit RLE code from wasp-os
so we don't want new icons using that encoding.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 19:14:31 +00:00
Siroj42 27413eb5e1 apps: alarm: Add Alarm application based on the new alarm system
Signed-off-by: Joris Warmbier <siroj42@t-online.de>
2020-11-29 19:14:31 +00:00
Daniel Thompson 02d5d8ca28 docs: Makefile: Turn sphinx warnings into errors
Currently patches that break the documentation build are not triggering
CI failure. Fix this.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 19:14:03 +00:00
Daniel Thompson 66cbfa20e8 sphinx: icons: Get the doc build working again
Fixes: 393dfefc86 ("apps: pager: notifications: Added remove all notifications dialog")
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 19:12:54 +00:00
Daniel Thompson 057c140f0e apps: pager: notifications: improve swipe handling
Currently the swipe handling added for the confirmation view has a number
of prolems: it does not work at all for multi-screen notifications, it
interferes with the haptic feedback if we keep swiping down and an up
swipe incorrectly dismisses whole notification app.

Fix these.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 09:12:14 +00:00
Daniel Thompson c6d5e841a0 apps: pager: notifications: dismiss confirmation view on app exit
Currently the confirmation view remains active when we switch away from
the notification view. Ensure we dismiss when we background the
application.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 09:12:14 +00:00
Daniel Thompson bcf616f7bc apps: pager: notifications: fix handling of touch messages
Currently there are detailed hit boxes in the confirmation view widget
but any inaccurate hit is treated as No anyway by the notification app.
Additionally selecting 'No' dismisses the whole notification app rather
than just the confirmation view.

Fix the event handling so that we ignore touches outside the hit box and
only dismiss the whole notification app if we actually clear the
notifications.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 09:12:14 +00:00
Daniel Thompson 167173e9ba widgets: ConfirmationView: Allow the widget to manage its own visibility
When the buttons are pressed then the widget should be dismissed. There
is no reason to make the caller handle that.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 09:12:14 +00:00
Daniel Thompson 40ac92094e apps: pager: notifications: Fix typo in clear notification message
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 09:12:14 +00:00
Aidan Houlihan 393dfefc86 apps: pager: notifications: Added remove all notifications dialog
Signed-off-by: Aidan Houlihan <aidandhoulihan@gmail.com>
[daniel@redfelineninja.org.uk: Minor changes to .gitignore]
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-29 09:12:03 +00:00
Daniel Thompson 4c0120aa1e apps: settings: Avoid circular dependancies during app init
wasp.system cannot be safely be used from app __init__ methods. Move
the initial value settings to the foreground method instead.

Fixes: b1326e1609 ("apps: settings: Fix initial slider value")
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-26 21:23:38 +00:00
kozova1 b1326e1609 apps: settings: Fix initial slider value
When the Settings app is launched, it shows the "Mid" text (this is
correct), but the slider is at the lowest position. After moving the
slider it functions correctly, so this fix is mostly cosmetic.

Signed-off-by: kozova1 <mug66kk@gmail.com>
2020-11-26 21:09:22 +00:00
Maarten de Jong 02777d5dff Add wget to build dependencies
Signed-off-by: Maarten de Jong <accounts@arteeh.com>
2020-11-26 19:18:04 +00:00
Daniel Thompson 21245bf918 docs: contributing: Add a simple style guide
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-26 18:56:58 +00:00
Daniel Thompson b33105d1e1 README: Add links to the official IRC channel
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-26 18:56:30 +00:00
Daniel Thompson 2a7df82864 docs: install: Update install requirements
Some of the new reloader features require additonal python modules.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-22 12:01:03 +00:00
Daniel Thompson bfa715b488 widgets: clock: Improve the redraw logic
Currently if we wake the watch exactly N hours (where N is integer)
after it goes to sleep then the time will not be updated. Fix this the
obvious way.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-22 09:27:14 +00:00
Daniel Thompson 748e5fe65a docs: Wordsmtithing updates after review
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-22 09:25:24 +00:00
Daniel Thompson 6f0238415f apps: music: Add to application index
Additionally we rename the screenshot to conform to the naming
convention (app.NAME + 'App.png') used for simulator screenshots.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-22 09:22:50 +00:00
Daniel Thompson fd0e0d77aa [pinetime,p8,k9]: Show when main.py is running
This is yet another step towards making the role of main.py more obvious.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-14 20:40:16 +00:00
Daniel Thompson e105c8bb68 apps: testapp: Add an alarm test
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-14 20:36:41 +00:00
Daniel Thompson aeda73ad90 docs: install: Update for newer PineTime devices
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-14 20:07:42 +00:00
Daniel Thompson dd5a1e75af apps: steps: Use the alarm system to reset the step counter at midnight
This is way better than zeroing it the first time in the day we use the
step counter!

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-14 12:25:32 +00:00
Daniel Thompson d0a99d5636 manager: Implement alarm callbacks for applications to use
Create a simple time queue where actions (functions or bound methods) can
be queued against the real time clock.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-14 12:24:28 +00:00
Daniel Thompson d2357f2325 simulator: Enable the music app in the simulator
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-12 21:47:38 +00:00
Daniel Thompson 3d0d96ee3a icons: Optimize flash size of the music player icons
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-11-12 21:47:38 +00:00