GithubHelp home page GithubHelp logo

rdnt / m8 Goto Github PK

View Code? Open in Web Editor NEW
12.0 2.0 1.0 461 KB

Source code and issue tracker for M8, a digital, pixelated, retro-futuristic watch face for Wear OS.

Home Page: https://play.google.com/store/apps/details?id=dev.rdnt.m8face

License: MIT License

Kotlin 100.00%
watchface wearos android jetpack jetpack-compose kotlin wear-os help-wanted

m8's Introduction

M8

cover

This is the source code repository and issue tracker for M8, a WearOS watch-face.

M8 was initially conceived as a Samsung Watch Face Studio project, but it was later ported to Kotlin and the new AndroidX/Jetpack APIs, so that its customization UI and capabilities can be on par or close to the native Pixel Watch faces experience, in terms of look & feel as well as performance.

M8's source code is released as open source under the MIT license.

Please submit any issue or suggestion in the issues page.
If the issue is a bug, include your device model and steps required to reproduce, if any.

Keen on checking out the latest features? Become a tester!
Want to help the project grow? Share it on social networks and with your friends! ๐Ÿฅฐ

Get M8 from the Play Store!

Contributing

You are free and actively encouraged to contribute to this project by either contributing code, creating issues, reporting bugs, highlighting vulnerabilities, proposing improvements or helping maintain the documentation.

If you would like to submit code changes, create a new branch from the main branch with the name of the feature you are implementing and submit a pull request to the main branch after you make your changes. Click here for a how-to guide.

In case you want to submit a bug report, please add as many details as possible regarding how the error occurred and include the steps required to reproduce it if that is possible. It will help a lot in testing, finding the cause and implementing fixes.


Changelogs

Changelogs for each and every release can be found here. Alpha releases usually only appear on open pull requests, are available for testing on the Open Testing track, and are retracted from the PR's changelog before merging.

m8's People

Contributors

rdnt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

xygn

m8's Issues

Complication colors on previews appear dimmer

Issue description:
Complications' color on the rendered watch face preview appears dimmer.

Steps to reproduce:

  1. Open the configurator screen and make a change that updates the preview.
  2. The preview will be rendered instead of being taken from the drawable. You can notice the dimmed colors if you go back to interactive mode.

Device info:

  • WearOS version: e.g. 3.5 (Android 11)
  • Device model: e.g. Pixel Watch

Make the clock use more screen real estate in ambient mode

Describe the issue
Currently, the ambient mode only shows the time but the digits are roughly the same size as when the watch is active. I think that the face should use a bigger clock in ambient mode. On a watch with a thicker bezel like the pixel watch this makes the face looks a bit odd in ambient mode. Maybe it can be an added option?

Device info:

  • WearOS version: 3.5 (Android 11)
  • Device model: Pixel Watch

Feature: daily color palette changing

Feature request from user:

Would be nice if there was an option to dynamically rotate the color palette to one of the available ones, randomly, let's say once per day.

This would require converting the current date to a seemingly random index in the available colors list.
Something in the lines idx = hash(dayInYear) % len(colorOptions)

Improve simple color selections

Simple colors' secondary color seems a bit off. Use OKLCH to figure a desaturated bright color along with the pastel version.

Seconds indicator

  • Add configurator screen to select second indicator style (none / dashes / dot)
  • Do not render at high refresh rates when no seconds indicator is shown
  • Support square screens
  • Do not render at 60fps on devices with 30fps screens if possible will always render in 30fps if seconds visible
  • Move complications inward only when seconds are visible wontfix I think it is fine as it is with the complications being more centered anyway

image
image

Support SDK 34 (Wear OS 4)

WearOS 4 devices (e.g. Pixel Watch 2) seem to already be supported, as reported by the Device Catalog within the Play Store Console.

Compile SDK: 33 -> 34
Target SDK: 31 -> 33 (34 was not allowed through the Play Console at this time)

A user reported Play Store error code DF-DFERH-01 while trying to install.
Installing to Pixel Watch 2 (emulated) from the Play Store app within the watch emulator succeeded for the current in-production release.

Transition from ambient bug

Describe the issue
After some time, the wake from ambient animation plays twice(?) in parallel, leading to a weird transition. I haven't been able to determine a way to reproduce this.

To Reproduce
????

Device info:

  • WearOS version: 3.5 (Android 11)
  • Device model: Pixel Watch

Allow standard time along with Military time

Requires new design for AM/PM indicator
Repurposing the issue to add detection of standard/military time from phone and only apply the filter on the hours. No AM/PM indicator will be added for now.

Dynamic layouts

(title)

Ref: #13

Implementation steps:

  • Investigate whether the WearOS complication APIs allow for dynamic layouts on the phone configurator. I assume it is possible as the built-in Pixel Watch watch faces support it.
  • Create design mockups for different layouts. Some ideas:
    • Layout with no complications except for (possibly) the hour/minute shortcuts (Ref: #11)
    • Existing layout: Top/bottom/left/right complication slots
    • Extended layout: Top/Bottom along with 2 complications per side
    • Consider adding a layout with no right complications to make room for a digital seconds indicator.
  • Refine editor session to support said configs
  • Refactor configurator activity to allow setting these up.
  • Add custom rendering for each individual layout on the watchface renderer

Heart rate complication misbehaving

Issue description:
Heart rate complication prefix randomly disappears. It reappears randomly.

Device info:

  • WearOS version: 4 (Android 13)
  • Device model: e.g. Pixel Watch (1st gen)

12-hour clock shows midnight and noon as 00

Describe the issue
When set to 12-hour clock, the 0th and 12th hours (midnight and noon) show as "00", instead of "12".

To Reproduce
Steps to reproduce the behavior:

  1. Ensure military time override slider is not enabled in m8face settings
  2. Go to Settings > System > Date & time
  3. Disable slider for Automatic date & time
  4. Set time to any minute in midnight or noon
  5. Navigate back to watch face
  6. Observe that time shows as "00:mm" rather than "12:mm"

Device info:

  • WearOS version: 3.5
  • Device model: Google Pixel Watch
  • Device build: RWDA.230114.013
  • m8 version: 2.9.8 (I don't believe this issue was present in previous builds)

Missing functionality/suggestions

So i bought the watchface, and to be honest its awesome and well made, however i would like to add a few suggestions:

  1. maybe add an option to open an app when pressing hour/minutes? (useful for e.g. opening gpay or flashlight quickly, alot of watchfaces allow that)

  2. as i see it uses code not some watch maker, so maybe an option with some design/layout choices? e.g. one with more complications etc. etc.

  3. ability to have digital seconds

i really fell in love with this watchface but im missing key features im used to:

  • fast gpay access
  • fast flashlight access
  • weather complication (i just cant fit it when theres only 4 fields)
  • digital seconds

the price is quite high for a watchface but im not refunding and looking forward for future updates, thanks and tia for possibly considering my feedback

Improve complication touch targets

Touch targets should be decoupled from complication rendering bounds, and go all the way to the edge of the screen and further outside of the area of each complication. This will make the complications easier to tap, especially on watches with curved displays (e.g. Pixel Watch).

Additional:

  • Add two more 'invisible' complication slots on hours and minutes respectively, offering the possibility of two more application shortcuts. Ref: #13

There has been a recent update that allows configuring margins. Could be useful.

Standard/military time issues

  • Fix 12 and 00 showing as 00 when in standard time
  • Do not listen to locale update events after the initial watchface configuration

Custom complications rendering

  • Add ability to show/hide the default complications of date and battery.
  • Convert the components to actual complications with custom rendering.

Outstanding tasks:

  • Refined vertical and horizontal complications rendering
  • Fix complication scaling issues on custom complication renderer (text size, monochromatic image on short-text variant etc.)
  • Custom prefix style for battery and heart rate
  • Custom icon for battery
  • Improve complication rendering performance
  • Update preview drawables

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.