Skip to content

pacjo/WearWatchfaces

Repository files navigation

WearWatchfaces 2.0 - rewrite

jetpack / WFF shared project

This project contains watchfaces written with both legacy jetpack libraries and newer WatchFaceFormat.

  • legacy watchfaces are available in jetpack
  • WFF based watchfaces are available in wff

TODO:

  • use good practises for android libraries - https://developer.android.com/studio/projects/android-library
  • allow overriding style defaults per watchface (for example when customization is disabled)
  • make all ic_launcher resources specify adaptive icon
  • make jimball play Funkytown (maybe even configurable: never, on_touch, always)
  • add jimball gif sources (pixelorama project) and figure out how to manage original sources for WFF based watchfaces
  • add nav controller to EditorActivity and make every feature it's separate screen with the main HorizontalPager only highlighting the configured feature
  • fix hands rotation
  • don't draw seconds hand in ambient
  • enable minification where possible
  • separate jetpack and wff based projects by package name
  • figure out something with android.service.wallpaper.square_mode metadata
  • figure out how to share resources between jetpack and wff
  • backgrounds should get watch state to be able to react to ambient changes, maybe zonedTimeDate too, context?
  • maybe don't require overriding all methods in WatchFaceRenderer? (but we could log it)
  • add docs to watchfaces
    • add missing readmes
    • add images
    • standardize format
  • convert BackgroundMusicPlayer to proper feature module
  • allow features to implement multiple (e.g. background can be a background and a taplistener)
  • make drawing from WatchFaceRendererImpl WatchFaceLayer aware
  • unify Analog and Digital WatchFaceService-s and RendererAdapter-s
  • maybe :jetpack:watchface:base should depend on :jetpack:feature:background?
  • features should be able to opt out of being user-configurable
  • make :jetpack:watchfaces:snake use new Grid2d class
  • redo previews
  • move :feature:base and :feature:complications related code to ...watchfaces package in base instead of ...watchfaces.base (utils package maybe too?)
  • maybe :feature:editor should be added automatically if watchface has editable features?
  • update preview in editor if complications change (or anything else happens)
  • introduce InteractiveFeature interface for TapListener
  • introduce ConfigurableFeature interface for feature configuration
    • though how would that work for background?
  • handle ambient state in DrawableFeatures
  • features override getStyleSettings two times - can we change this?
  • merge WatchFaceFeature and FeatureFactory once more
  • check if complications could be further simplified
  • maybe don't hardcode font size but use drawTextFillBounds
  • clean up HandStyle drawing code
  • add color styles (and make them available for features too)
  • companion app (full watchface) previews don't work (at least when changing hands)
  • don't include hands feature by default since we might want to customize available hands
  • static color background options show up as Color background in the editor (maybe allow naming?)
  • figure out what :feature:rendering is supposed to be (it's here to prevent a circular dependency issues in some modules)
  • setup koin annotations. In module build.gradle.kts add:
    plugins {
      /* ... */
      alias(libs.plugins.ksp)
    }
    
    ksp {
      arg("KOIN_CONFIG_CHECK", "true")
    }
    
    dependencies {
        api(libs.koin.annotations)
        ksp(libs.koin.ksp.compiler)
    }
  • handle colors better, allow for manually setting hands and complication colors, deriving from main when not set
  • consider removing empty proguard files from modules
  • maybe refactor :background to be :overlay (or based on it)?
  • create :jetpack:shared and move :jetpack:feature:rendering there

About

Repository for my Wear OS watchfaces

Resources

Stars

Watchers

Forks

Releases

No releases published

Languages