├── app ├── .gitignore ├── src │ └── main │ │ ├── ic_launcher-playstore.png │ │ ├── res │ │ ├── drawable │ │ │ └── background.xml │ │ └── values │ │ │ ├── dimens.xml │ │ │ ├── theme.xml │ │ │ └── styles.xml │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── styleguide ├── .gitignore ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ └── res │ │ ├── mipmap-anydpi │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── drawable │ │ ├── ic_email.xml │ │ ├── ic_rating_star.xml │ │ ├── ic_play_store.xml │ │ ├── ic_github.xml │ │ └── ic_launcher_background.xml │ │ └── values │ │ └── colors.xml └── build.gradle ├── wear ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── xml │ │ │ │ └── watch_face.xml │ │ │ ├── drawable │ │ │ │ ├── ticks_1.png │ │ │ │ ├── ticks_2.png │ │ │ │ ├── ticks_3.png │ │ │ │ ├── ticks_4.png │ │ │ │ ├── ticks_1_zoom.png │ │ │ │ ├── ticks_2_zoom.png │ │ │ │ ├── ticks_3_zoom.png │ │ │ │ ├── ticks_4_zoom.png │ │ │ │ ├── complication_drawable.xml │ │ │ │ ├── background_hand_preview.xml │ │ │ │ ├── ic_arrow_down.xml │ │ │ │ ├── ic_decline.xml │ │ │ │ ├── remove_color_ripple.xml │ │ │ │ ├── round_color_ripple.xml │ │ │ │ ├── background.xml │ │ │ │ ├── ic_confirm.xml │ │ │ │ ├── round_add_ripple.xml │ │ │ │ ├── square_color.xml │ │ │ │ ├── round_color_small.xml │ │ │ │ ├── ic_date.xml │ │ │ │ ├── round_add.xml │ │ │ │ ├── round_color.xml │ │ │ │ ├── round_confirm.xml │ │ │ │ ├── round_decline.xml │ │ │ │ ├── ic_time.xml │ │ │ │ ├── round_confirm_ripple.xml │ │ │ │ ├── round_decline_ripple.xml │ │ │ │ ├── remove_color_small.xml │ │ │ │ ├── ic_add.xml │ │ │ │ ├── remove_color.xml │ │ │ │ ├── added_big_complication.xml │ │ │ │ └── added_complication.xml │ │ │ ├── drawable-360dpi │ │ │ │ ├── preview.png │ │ │ │ └── preview_round.png │ │ │ ├── drawable-round │ │ │ │ ├── ticks_1.png │ │ │ │ ├── ticks_2.png │ │ │ │ ├── ticks_3.png │ │ │ │ ├── ticks_4.png │ │ │ │ └── background.xml │ │ │ ├── values │ │ │ │ ├── constants.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ └── dimens.xml │ │ │ ├── layout │ │ │ │ ├── activity_main.xml │ │ │ │ ├── item_settings_color_preview.xml │ │ │ │ ├── activity_list.xml │ │ │ │ ├── fragment_list.xml │ │ │ │ ├── item_color_picker.xml │ │ │ │ ├── item_settings_button.xml │ │ │ │ ├── item_settings_switch.xml │ │ │ │ ├── item_settings_button_add.xml │ │ │ │ ├── item_settings_text.xml │ │ │ │ ├── item_ticks_picker.xml │ │ │ │ ├── item_settings_hand_preview.xml │ │ │ │ ├── item_settings_slider.xml │ │ │ │ ├── item_settings_title.xml │ │ │ │ ├── item_settings_ticks_layout_picker.xml │ │ │ │ ├── item_settings_rate.xml │ │ │ │ ├── item_settings_background_complication.xml │ │ │ │ ├── activity_confirm.xml │ │ │ │ └── fragment_choose_complications.xml │ │ │ ├── anim │ │ │ │ ├── slide_in_left.xml │ │ │ │ ├── slide_in_right.xml │ │ │ │ ├── slide_out_left.xml │ │ │ │ └── slide_out_right.xml │ │ │ └── values-round │ │ │ │ └── dimens.xml │ │ └── java │ │ │ └── com │ │ │ └── vlad1m1r │ │ │ └── watchface │ │ │ ├── settings │ │ │ ├── hands │ │ │ │ ├── hand │ │ │ │ │ └── HandType.kt │ │ │ │ ├── HandsFragment.kt │ │ │ │ └── centralcircle │ │ │ │ │ └── CentralCircleFragment.kt │ │ │ ├── colorpicker │ │ │ │ ├── OnColorAction.kt │ │ │ │ ├── Colors.kt │ │ │ │ └── customcolor │ │ │ │ │ ├── ColorsPreviewViewHolder.kt │ │ │ │ │ └── CustomColorActivity.kt │ │ │ ├── RateApp.kt │ │ │ ├── complications │ │ │ │ ├── picker │ │ │ │ │ └── ComplicationLocation.kt │ │ │ │ └── ComplicationsFragment.kt │ │ │ ├── base │ │ │ │ ├── viewholders │ │ │ │ │ ├── SettingsButtonViewHolder.kt │ │ │ │ │ ├── TitleViewHolder.kt │ │ │ │ │ ├── RateViewHolder.kt │ │ │ │ │ ├── SettingsViewHolder.kt │ │ │ │ │ ├── SettingsWithSwitchViewHolder.kt │ │ │ │ │ ├── WatchPreviewViewHolder.kt │ │ │ │ │ ├── SettingsSliderViewHolder.kt │ │ │ │ │ ├── SettingsSliderScaleViewHolder.kt │ │ │ │ │ └── ColorPickerViewHolder.kt │ │ │ │ ├── BaseRecyclerActivity.kt │ │ │ │ ├── BaseRecyclerFragment.kt │ │ │ │ └── WatchPreviewView.kt │ │ │ ├── tickslayoutpicker │ │ │ │ ├── TicksLayoutPickerViewHolder.kt │ │ │ │ ├── TicksLayoutPickerAdapter.kt │ │ │ │ └── TicksLayoutPickerActivity.kt │ │ │ ├── background │ │ │ │ └── SettingsBackgroundComplicationViewHolder.kt │ │ │ ├── SettingsFragment.kt │ │ │ ├── ticks │ │ │ │ ├── viewholders │ │ │ │ │ └── TicksLayoutPickerViewHolder.kt │ │ │ │ └── TicksFragment.kt │ │ │ ├── MainActivity.kt │ │ │ └── confirm │ │ │ │ └── ConfirmDeleteColorActivity.kt │ │ │ ├── data │ │ │ ├── state │ │ │ │ ├── HandState.kt │ │ │ │ ├── BackgroundState.kt │ │ │ │ ├── CircleState.kt │ │ │ │ ├── WatchFaceState.kt │ │ │ │ ├── ComplicationsState.kt │ │ │ │ ├── TicksState.kt │ │ │ │ └── HandsState.kt │ │ │ ├── WatchFaceColors.kt │ │ │ ├── TicksLayoutType.kt │ │ │ ├── style │ │ │ │ ├── CreateGeneralStyleSettings.kt │ │ │ │ ├── CreateUserStyleSchema.kt │ │ │ │ ├── CreateGeneralHandStyleSettings.kt │ │ │ │ ├── CreateBackgroundStyleSettings.kt │ │ │ │ ├── CreateHoursHandStyleSettings.kt │ │ │ │ ├── CreateMinutesHandStyleSettings.kt │ │ │ │ ├── CreateHandCircleStyleSettings.kt │ │ │ │ └── CreateSecondsHandStyleSettings.kt │ │ │ ├── di │ │ │ │ └── StorageModule.kt │ │ │ ├── SizeStorage.kt │ │ │ ├── CustomColorStorage.kt │ │ │ └── DataStorage.kt │ │ │ ├── model │ │ │ └── Point.kt │ │ │ ├── WearApplication.kt │ │ │ ├── utils │ │ │ ├── ZonedDateTimeExt.kt │ │ │ ├── ContextExt.kt │ │ │ ├── PaintExt.kt │ │ │ ├── ColorUtils.kt │ │ │ └── ScreenMetricsCompat.kt │ │ │ ├── components │ │ │ ├── background │ │ │ │ ├── BackgroundData.kt │ │ │ │ ├── Background.kt │ │ │ │ ├── DrawBackground.kt │ │ │ │ ├── GetBackgroundData.kt │ │ │ │ └── BackgroundBitmapProvider.kt │ │ │ ├── hands │ │ │ │ ├── CircleData.kt │ │ │ │ ├── HandData.kt │ │ │ │ ├── HandPaintProvider.kt │ │ │ │ ├── DrawCircle.kt │ │ │ │ ├── DrawHand.kt │ │ │ │ └── Hands.kt │ │ │ ├── ticks │ │ │ │ ├── usecase │ │ │ │ │ ├── AdjustTicks.kt │ │ │ │ │ ├── AdjustToSquare.kt │ │ │ │ │ ├── AdjustToChin.kt │ │ │ │ │ └── RoundCorners.kt │ │ │ │ ├── GetTicks.kt │ │ │ │ ├── layout │ │ │ │ │ └── TicksLayout.kt │ │ │ │ └── TickPaintProvider.kt │ │ │ ├── Layouts.kt │ │ │ └── complications │ │ │ │ ├── Complications.kt │ │ │ │ └── ComplicationConfig.kt │ │ │ └── AnalogWatchFace.kt │ └── test │ │ └── java │ │ └── com │ │ └── vlad1m1r │ │ └── watchface │ │ ├── utils │ │ ├── HandsCalculationsMinutesShould.kt │ │ ├── HandsCalculationsHoursShould.kt │ │ └── HandsCalculationsSecondsShould.kt │ │ └── components │ │ ├── background │ │ └── DrawBackgroundShould.kt │ │ ├── hands │ │ ├── DrawCircleShould.kt │ │ └── DrawHandShould.kt │ │ └── ticks │ │ └── AdjustTicksShould.kt ├── proguard-rules.pro └── build.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── settings.gradle ├── gradle.properties ├── gradlew.bat └── README.md /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /styleguide/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /wear/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /wear/src/main/res/xml/watch_face.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_1.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_2.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_3.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_4.png -------------------------------------------------------------------------------- /styleguide/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_1_zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_1_zoom.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_2_zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_2_zoom.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_3_zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_3_zoom.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ticks_4_zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable/ticks_4_zoom.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable-360dpi/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable-360dpi/preview.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable-round/ticks_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable-round/ticks_1.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable-round/ticks_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable-round/ticks_2.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable-round/ticks_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable-round/ticks_3.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable-round/ticks_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable-round/ticks_4.png -------------------------------------------------------------------------------- /wear/src/main/res/drawable-360dpi/preview_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VladimirWrites/AnalogWatchFace/HEAD/wear/src/main/res/drawable-360dpi/preview_round.png -------------------------------------------------------------------------------- /wear/src/main/res/values/constants.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 300 4 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/complication_drawable.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/settings/hands/hand/HandType.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.settings.hands.hand 2 | 3 | enum class HandType { 4 | HOURS, 5 | MINUTES, 6 | SECONDS 7 | } -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/HandState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | data class HandState( 4 | 5 | val color: Int, 6 | val width: Int, 7 | val lengthScale: Float, 8 | ) -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/BackgroundState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | data class BackgroundState( 4 | val blackInAmbient: Boolean, 5 | val leftColor: Int, 6 | val rightColor: Int 7 | ) -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/model/Point.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.model 2 | 3 | class Point(val x: Float = 0f, val y: Float = 0f) { 4 | operator fun component1(): Float = x 5 | operator fun component2(): Float = y 6 | } -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/CircleState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | data class CircleState( 4 | val color: Int, 5 | val width: Int, 6 | val radius: Int, 7 | val hasInAmbientMode: Boolean, 8 | ) -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches/build_file_checksums.ser 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | .DS_Store 9 | /build 10 | /captures 11 | .externalNativeBuild 12 | .idea/ 13 | *.aab 14 | buildSrc/build/ 15 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/WearApplication.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface 2 | 3 | import android.app.Application 4 | import androidx.annotation.Keep 5 | import dagger.hilt.android.HiltAndroidApp 6 | 7 | @Keep 8 | @HiltAndroidApp 9 | class WearApplication : Application() -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Oct 08 11:21:15 CEST 2022 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/settings/colorpicker/OnColorAction.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.settings.colorpicker 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | interface OnColorAction { 6 | fun colorSelected(@ColorInt color: Int) 7 | fun colorDeleted(@ColorInt color: Int) 8 | } -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/settings/colorpicker/Colors.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.settings.colorpicker 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | data class Colors( 6 | @ColorInt val firstColor: Int?, 7 | @ColorInt val secondColor: Int, 8 | @ColorInt val thirdColor: Int 9 | ) -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/WatchFaceState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | data class WatchFaceState( 4 | val backgroundState: BackgroundState, 5 | val ticksState: TicksState, 6 | val handsState: HandsState, 7 | val complicationsState: ComplicationsState 8 | ) 9 | -------------------------------------------------------------------------------- /styleguide/src/main/res/mipmap-anydpi/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /styleguide/src/main/res/mipmap-anydpi/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/background_hand_preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ic_arrow_down.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wear/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/utils/ZonedDateTimeExt.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.utils 2 | 3 | import java.time.ZonedDateTime 4 | 5 | fun ZonedDateTime.secondsRotation() = ((second + nano / 1000000000f) * 6f) % 360 6 | 7 | fun ZonedDateTime.minutesRotation() = (minute * 6f) % 360 8 | 9 | fun ZonedDateTime.hoursRotation() = (hour * 30f + minute / 2f) % 360 -------------------------------------------------------------------------------- /app/src/main/res/drawable/background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/components/background/BackgroundData.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.components.background 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | data class BackgroundData( 6 | @ColorInt val leftColor: Int, 7 | @ColorInt val rightColor: Int, 8 | @ColorInt val leftColorAmbient: Int, 9 | @ColorInt val rightColorAmbient: Int 10 | ) 11 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/utils/ContextExt.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.utils 2 | 3 | import android.content.Context 4 | import dagger.hilt.android.internal.managers.ViewComponentManager 5 | 6 | fun Context.getActivityContext(): Context { 7 | return if (this is ViewComponentManager.FragmentContextWrapper) { 8 | this.baseContext 9 | } else this 10 | } -------------------------------------------------------------------------------- /wear/src/main/res/layout/item_settings_color_preview.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/WatchFaceColors.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | data class WatchFaceColor( 6 | val id: Int, 7 | @ColorInt val color: Int, 8 | val custom: Boolean = false 9 | ) 10 | 11 | fun List.toWatchFaceColors() = this.mapIndexed { index, color -> 12 | WatchFaceColor(index, color, true) 13 | } 14 | 15 | -------------------------------------------------------------------------------- /wear/src/main/res/anim/slide_in_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | -------------------------------------------------------------------------------- /wear/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | -------------------------------------------------------------------------------- /wear/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | -------------------------------------------------------------------------------- /wear/src/main/res/anim/slide_out_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ic_decline.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable-round/background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 9 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/ComplicationsState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | 4 | data class ComplicationsState( 5 | val hasInAmbientMode: Boolean, 6 | val textColor: Int, 7 | val titleColor: Int, 8 | val iconColor: Int, 9 | val borderColor: Int, 10 | val rangedValuePrimaryColor: Int, 11 | val rangedValueSecondaryColor: Int, 12 | val backgroundColor: Int, 13 | ) -------------------------------------------------------------------------------- /wear/src/main/res/drawable/remove_color_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/round_color_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /wear/src/main/res/layout/activity_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /wear/src/main/res/layout/fragment_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | google() 5 | mavenCentral() 6 | } 7 | } 8 | dependencyResolutionManagement { 9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | } 15 | 16 | include ':wear', ':app', ':styleguide' 17 | 18 | enableFeaturePreview("VERSION_CATALOGS") 19 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/components/hands/CircleData.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.components.hands 2 | 3 | import androidx.annotation.ColorInt 4 | 5 | data class CircleData( 6 | @ColorInt val color: Int, 7 | @ColorInt val colorAmbient: Int, 8 | @ColorInt val shadowColor: Int, 9 | val shadowRadius: Int, 10 | val width: Int, 11 | val radius: Int, 12 | val useAntiAliasingInAmbientMode: Boolean 13 | ) 14 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 10 | 11 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ic_confirm.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/round_add_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/TicksState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | import com.vlad1m1r.watchface.data.TicksLayoutType 4 | 5 | data class TicksState( 6 | val hasInAmbientMode: Boolean, 7 | val hasInInteractiveMode: Boolean, 8 | val layoutType: TicksLayoutType, 9 | val hourTicksColor: Int, 10 | val minuteTicksColor: Int, 11 | val shouldAdjustToSquareScreen: Boolean, 12 | val useAntialiasingInAmbientMode: Boolean 13 | ) -------------------------------------------------------------------------------- /wear/src/main/res/drawable/square_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /wear/src/main/res/values-round/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 42dp 5 | 84dp 6 | 28dp 7 | 8 | 32dp 9 | 32dp 10 | 64dp 11 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/round_color_small.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/data/state/HandsState.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.data.state 2 | 3 | data class HandsState( 4 | val hasSmoothSecondsHand: Boolean, 5 | val hasSecondHand: Boolean, 6 | val secondsHand: HandState, 7 | val minutesHand: HandState, 8 | val hoursHand: HandState, 9 | val circleState: CircleState, 10 | val hasInInteractive: Boolean, 11 | val shouldKeepHandColorInAmbientMode: Boolean, 12 | val hasHands: Boolean, 13 | val useAntialiasingInAmbientMode: Boolean, 14 | ) -------------------------------------------------------------------------------- /styleguide/src/main/res/drawable/ic_email.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /styleguide/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | alias libs.plugins.android.library 3 | alias libs.plugins.kotlin.android 4 | } 5 | 6 | apply from: "$project.rootDir/buildsystem/java_version.gradle" 7 | 8 | android { 9 | compileSdk Versions.compile_sdk 10 | 11 | defaultConfig { 12 | minSdk Versions.min_sdk 13 | targetSdk Versions.target_sdk 14 | versionCode 1 15 | versionName "1.0" 16 | } 17 | 18 | buildTypes { 19 | release { 20 | minifyEnabled false 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/ic_date.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /wear/src/main/java/com/vlad1m1r/watchface/components/hands/HandData.kt: -------------------------------------------------------------------------------- 1 | package com.vlad1m1r.watchface.components.hands 2 | 3 | import androidx.annotation.ColorInt 4 | import androidx.annotation.FloatRange 5 | 6 | data class HandData( 7 | @ColorInt val color: Int, 8 | @ColorInt val colorAmbient: Int, 9 | @ColorInt val shadowColor: Int, 10 | val shadowRadius: Int, 11 | val width: Int, 12 | val paddingFromCenter: Int, 13 | @FloatRange(from = 0.0, to = 1.0) val handLengthRatio: Float, 14 | val useAntiAliasingInAmbientMode: Boolean 15 | ) 16 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/round_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /wear/src/main/res/drawable/round_color.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /wear/src/main/res/layout/item_color_picker.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /wear/src/main/res/layout/item_settings_button.xml: -------------------------------------------------------------------------------- 1 | 2 |