summaryrefslogtreecommitdiff
path: root/wasp/apps
AgeCommit message (Collapse)Author
2021-07-25Advanced alarm appAdam Blair
Features: * Multiple alarms (up to 4) * Day of the week support * One time alarms * Snooze Changes to wasp-os for app support: * Added + and - to the 28pt and 36pt fonts * Checkboxes now require a click on the body of the checkbox if there is no label * Added a Toggle Button class that extends Button and stores a state like checkbox Signed-off-by: Adam Blair <adampblair@protonmail.com>
2021-06-20apps: SportsApp: Initial sports app implementationDaniel Thompson
This app is functional... although it lacking in almost every costmetic way, from the icon to the main screen. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-06-20widgets: Refactor the stopwatch as a widgetDaniel Thompson
This is purely a refactoring for the purposes of code reuse. No change of behaviour is expected. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-06-20apps: DemoApp: Fully document the demo appDaniel Thompson
The demo app is of somewhat niche interest and is disabled by default but arguable that makes it more important to document it fully since this app is harder to find the many others. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-06-20apps: FacesApp: Add a watch face chooserDaniel Thompson
This app is enabled by default and allows users to select a watch face based on a fullscreen preview of how the app will draw the screen. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-06-20all clocks: Add a preview() method ready for a watch face chooserDaniel Thompson
One benefit from wasp-os' dirt simple drawing model is that it is very easy for apps to provide full screen previews of themselves. Add this for all clocks ready for us to add a watch face chooser application. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-06-03Added weather application.Tait Berlette
Signed-off-by: Tait Berlette <54515877+taitberlette@users.noreply.github.com>
2021-05-05apps: heart: Implement a debug mode to copy out raw dataDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-03-29apps: testapp: Force characters to render with a not-black backgroundDaniel Thompson
This helps pick up any problems with the glpyh rendering. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-03-27apps: Add DualClock app.Benoît HERVIER
Signed-off-by: Benoît HERVIER <b@rvier.fr> [daniel@redfelineninja.org.uk: Removed unused dual clock fonts from clock_dual.py, fixed up the manifest] Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-03-27apps: music: Change SWIPE_LEFTRIGHT to SWIPE_UPDOWN.Tait Berlette
The music player volume control uses up and down events, but in the foreground function the app requests left and right events. Signed-off-by: Tait Berlette <54515877+taitberlette@users.noreply.github.com>
2021-03-10apps: software: Include word clock in the available applicationsDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-03-10apps: software: Automatically track y position for checkboxesDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-03-10apps: WordClock: Add a new word-based clock appBrendan M. Sleight
Signed-off-by: Brendan M. Sleight <bms.git@barwap.com> [daniel@redfelineninja.org.uk: Squashed down into a single commit and updated subject] Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk
2021-03-01apps: steps: Reduce the graphing scaleDaniel Thompson
Currently then even fast walking will run off the top of the graph. Change the scale to that fast walking shows in full. I think at this level fast running will probably run off the top but I need to gather a few more details before settling on the final scale. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-25apps: steps: Add a history graphDaniel Thompson
The steplogger records steps but currently there is no way to see the data recorded on the device itself. Make a first attempt at graphing the step data. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-20apps: settings: Clamp the dates a little more tightlyDaniel Thompson
Currently a couple of down presses on the year results in the time being set to some time in 2099. The micropython date logic does not support dates this far in the future and throws an exception. Adopt a simple fix that should be OK for the next 39 years ;-) . Reported-by: Christopher Peters <me@christopherp.de> Fixes: #167 Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-04apps: testapp: Ensure we test centred stringsDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-02-03apps: settings: Added labels to the datesIsaiah Grace
Signed-off-by: Isaiah Grace <isaiah@graces.com>
2021-01-18apps: musicplayer: Adopt GfxButton and use it for trace fwd/backDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-17drivers: st7789: Pre-allocate a memoryviewDaniel Thompson
Reduce the cost of slicing the linebuffer by pre-allocating a memoryview. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-15Disallow swipes while confirmation prompt is displayedGeorge Griffin
Signed-off-by: George Griffin <george@menomnom.com>
2021-01-13simulator: test_qa: Add some basic docstring testsDaniel Thompson
This one picked up a lot of inconsistancy so the changes here are pretty big. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-12apps: settings: Allow date and time to be set on the watchDaniel Thompson
Currently many first-time users excitedly install wasp-os and then struggle to set the time using the various BLE based methods (REPL, wasptool, GadgetBridge, etc). This results in "is there another way to set the time" being *the* frequently asked question. Whilst getting the BLE tools is highly recommened to get the best from wasp-os we can delivery a better out-of-the-box experience for first time users is we provide on board date/time setting. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-12widgets: Clarity whether spinner max is inclusive or exclusiveDaniel Thompson
Currently the spinner uses exclusive max when wrapping from low to high and inclusive max when wrapping from high to low. Fix this by adopting *inclusive* max everywhere. The call sites are similarly confused. Fix this! Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10apps: software: Fix some scrolling bugsDaniel Thompson
Currently the number of pages is (acidentally) hardcoded where it need not be and the scroll directions aren't right as soon as we go beyond two pages (where scroll up and down are equivalent actions). Fix both. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10apps: play2048: Optimized the icon a littleDaniel Thompson
wasp-os uses a rather eccentric "2-bit" RLE encoding which works best when there are only three colors (and black) in a single line. Modify the screenshot slightly to allow it to be encoded with fewer palette updated.
2021-01-10apps: play2048: Add the 2048 game applicationMiguel Rochefort
2048 is a popular sliding block puzzle game in which tiles are combined to make the number 2048. It's one of the few games that are enjoyable to play on such a small form factor. This started as a port of a TkInter implementation of the 2048 game. I implemented all of the TkInter APIs used by the game and it worked on wasp-os without any code change in the game. However, the performance was very poor and it consumed too much RAM. I have since reimplemented the whole game from scratch and managed to achieve acceptable performance, although more improvements could still be made. Because names in Python can't start with numbers, I had some trouble naming things. The module is called "ttfe" (two-thousand-forty-eight), the class name is Play2048App, and the software.py entry is "Play 2048". Signed-off-by: Miguel Rochefort <miguelrochefort@gmail.com> [daniel@redfelineninja.org.uk: Renamed the python filename, normalized the screenshot and included the app in the docs] Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10apps: timer: Add a countdown timer applicationWolfgang Ginolas
Signed-off-by: Wolfgang Ginolas <wolfgang.ginolas@gwif.eu> [daniel@redfelineninja.org.uk: squashed into a single commit, rebase to latest master, integrate with the Software application and rename the screenshots to match the application name] Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10apps: music: Update the application iconDaniel Thompson
Switch from a headphone to music notation metaphor and take the (lazy?) approach of using the watch chassis to frame the icon. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10system: Allows apps to be registered using stringsDaniel Thompson
Use instance tests to identify strings and substitute then for an instanciated class. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-10widgets: ConfirmationView: Adopt the button widgetDaniel Thompson
Replace the pixelated Yes/No buttons with text based alternatives. This also required changes to the pager to change the way the redraw after changing view is implemented (improved muting and a reset of the colours). Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-03apps: software: Add an apps to enable/disable other appsDaniel Thompson
Currently wasp-os enables a narrow set of applications because we don't want to consume RAM by importing the module and constructing the application. We can improve on this situation by providing a small (stateless) application that can be used to enable or diable applications. This allows all the ROMed applications to be enabled using the GUI without compromising on the ability to develop applications. In fact this application significantlly reduces the RAM consumed in the default case becasue the Self Test app does not need to maintain its state. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-03apps: settings: Use theme colours for text labelsDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-03apps: launcher: Use theme colours for text labelsDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-03apps: heart: Use theme colours for text labelsDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-31apps: calc: Use the UI colours to generate a backgroundDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-31manager: Recategorize the theme labels for appsDaniel Thompson
By default bright and mid are white/grey tones, the ui widgets are blue and the spot colours are different variants of orange. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-30apps: steps: Fix typo in docstringsDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-30widgets: ConfirmationView: Fix hit box problemsDaniel Thompson
The ConfirmationView became broken when we converted it's images over to 2-bit RLE. That happened because the confirmation view relied on the the 1-bit RLE to dynamically generate hit boxes. Currently the code pre-calculates the hit box which is a waste of RAM. Let's rip out the existing hit box logic and replace it with much larger ("fat finger") hit targets. We make the touch() method more closely adopt the idioms of other UI components (e.g. don't return the dialog status... just whether or not we handled the touch). Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: alarm: add a full colour iconDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: alarm: Adopt the spinner widgetDaniel Thompson
Replace the open coded spinner widget with the newly introduced system one. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: alarm: avoid setting a "silly" alarm during app initDaniel Thompson
The alarm is off by default so there's no reason to set an alarm that is disabled. Let's stop doing that. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29widgets: Spinner: Add a simple spinner widgetDaniel Thompson
We are able to add this to the self tests without having to create a special page. Instead we can modify the existing notifications test to utilize the spinner. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: alarm: Adopt the checkbox widgetDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29widgets: Checkbox: Add a simple checkbox widgetDaniel Thompson
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: calc: Remember the results between invocationsDaniel Thompson
Currently if you spend more then 15 seconds looking up figures or transcribing the answer then the system will switch back to the clock and the answer will be lost. Fix this by remembering the output between invocations. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: calc: Rewrite the display and calculation engineDaniel Thompson
Currently calculations such as 22/7 do not work correctly on the simulator (which uses double precision floating point). Fix this by explicitly truncating the strings when needed. Additionally the current calculate() method has some problems when the calculation cannot be evaluated since it will needlessly clear out the calculation. Push calculate (and the exception handling) into the caller and report errors using the vibration motor instead. Finally we rename display_output() to the more idiomatic _update(). Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: calc: Optimize the fields lookup structureDaniel Thompson
Currently the fields is a list of lists of strings. This will needlessly consume RAM so lets switch it over to a simple string (which is immutable and can be stored in flash). We also replace indices with simple x and y variables. In addition to avoiding a (temporary) memory allocation this is also easier to use when looking up in fields. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-29apps: calc: Draw a closed gridDaniel Thompson
Currently the calculator uses an open grid. It's a matter of taste but I prefer a closed grid. Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>