diff --git a/CODEOWNERS b/CODEOWNERS
index 7356aa55..feca4011 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1,6 +1,7 @@
* @yrezgui @kkuan2011
/compose/ @android/devrel-compose
/car/ @android/devrel-car
+/watchface/ @android/devrel-wear
/wear/ @android/devrel-wear
/wearcompanion/ @android/devrel-wear
/xr/ @android/devrel-xr
diff --git a/settings.gradle.kts b/settings.gradle.kts
index b8187236..7474e22f 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -34,6 +34,7 @@ include(
":kotlin",
":compose:snippets",
":datastore",
+ ":watchface",
":wear",
":wearcompanion",
":views",
diff --git a/watchface/.gitignore b/watchface/.gitignore
new file mode 100644
index 00000000..42afabfd
--- /dev/null
+++ b/watchface/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/watchface/build.gradle.kts b/watchface/build.gradle.kts
new file mode 100644
index 00000000..8f888f08
--- /dev/null
+++ b/watchface/build.gradle.kts
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+plugins {
+ alias(libs.plugins.android.application)
+}
+
+android {
+ namespace = "com.example.simpledigital"
+ compileSdk = 36
+
+ defaultConfig {
+ applicationId = "com.example.simpledigital"
+ minSdk = 36
+ targetSdk = 36
+ versionCode = 1
+ versionName = "1.0.0"
+ }
+
+ buildTypes {
+ debug {
+ isMinifyEnabled = true
+ }
+ release {
+ // TODO:Add your signingConfig here to build release builds
+ isMinifyEnabled = true
+ // Ensure shrink resources is false, to avoid potential for them
+ // being removed.
+ isShrinkResources = false
+
+ signingConfig = signingConfigs.getByName("debug")
+ }
+ }
+}
diff --git a/watchface/src/main/AndroidManifest.xml b/watchface/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..f5471edc
--- /dev/null
+++ b/watchface/src/main/AndroidManifest.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/drawable/background0.png b/watchface/src/main/res/drawable/background0.png
new file mode 100644
index 00000000..f1dff0de
Binary files /dev/null and b/watchface/src/main/res/drawable/background0.png differ
diff --git a/watchface/src/main/res/drawable/background0_icon.png b/watchface/src/main/res/drawable/background0_icon.png
new file mode 100644
index 00000000..93028b0c
Binary files /dev/null and b/watchface/src/main/res/drawable/background0_icon.png differ
diff --git a/watchface/src/main/res/drawable/background1.png b/watchface/src/main/res/drawable/background1.png
new file mode 100644
index 00000000..6f6dbdd1
Binary files /dev/null and b/watchface/src/main/res/drawable/background1.png differ
diff --git a/watchface/src/main/res/drawable/background1_icon.png b/watchface/src/main/res/drawable/background1_icon.png
new file mode 100644
index 00000000..5556ac31
Binary files /dev/null and b/watchface/src/main/res/drawable/background1_icon.png differ
diff --git a/watchface/src/main/res/drawable/background_option_icon.png b/watchface/src/main/res/drawable/background_option_icon.png
new file mode 100644
index 00000000..50e9247d
Binary files /dev/null and b/watchface/src/main/res/drawable/background_option_icon.png differ
diff --git a/watchface/src/main/res/drawable/default_image.png b/watchface/src/main/res/drawable/default_image.png
new file mode 100644
index 00000000..0bc96455
Binary files /dev/null and b/watchface/src/main/res/drawable/default_image.png differ
diff --git a/watchface/src/main/res/drawable/digit1.png b/watchface/src/main/res/drawable/digit1.png
new file mode 100644
index 00000000..52bdf155
Binary files /dev/null and b/watchface/src/main/res/drawable/digit1.png differ
diff --git a/watchface/src/main/res/drawable/digit12.png b/watchface/src/main/res/drawable/digit12.png
new file mode 100644
index 00000000..d5f0cee5
Binary files /dev/null and b/watchface/src/main/res/drawable/digit12.png differ
diff --git a/watchface/src/main/res/drawable/digit2.png b/watchface/src/main/res/drawable/digit2.png
new file mode 100644
index 00000000..c9218ad4
Binary files /dev/null and b/watchface/src/main/res/drawable/digit2.png differ
diff --git a/watchface/src/main/res/drawable/digit3.png b/watchface/src/main/res/drawable/digit3.png
new file mode 100644
index 00000000..a05ed764
Binary files /dev/null and b/watchface/src/main/res/drawable/digit3.png differ
diff --git a/watchface/src/main/res/drawable/digit4.png b/watchface/src/main/res/drawable/digit4.png
new file mode 100644
index 00000000..1c410480
Binary files /dev/null and b/watchface/src/main/res/drawable/digit4.png differ
diff --git a/watchface/src/main/res/drawable/green.png b/watchface/src/main/res/drawable/green.png
new file mode 100644
index 00000000..cd28e473
Binary files /dev/null and b/watchface/src/main/res/drawable/green.png differ
diff --git a/watchface/src/main/res/drawable/hour.png b/watchface/src/main/res/drawable/hour.png
new file mode 100644
index 00000000..9c9bb39e
Binary files /dev/null and b/watchface/src/main/res/drawable/hour.png differ
diff --git a/watchface/src/main/res/drawable/minute.png b/watchface/src/main/res/drawable/minute.png
new file mode 100644
index 00000000..a0715eb7
Binary files /dev/null and b/watchface/src/main/res/drawable/minute.png differ
diff --git a/watchface/src/main/res/drawable/orange.png b/watchface/src/main/res/drawable/orange.png
new file mode 100644
index 00000000..e61e22fe
Binary files /dev/null and b/watchface/src/main/res/drawable/orange.png differ
diff --git a/watchface/src/main/res/drawable/preview.png b/watchface/src/main/res/drawable/preview.png
new file mode 100644
index 00000000..b2f350df
Binary files /dev/null and b/watchface/src/main/res/drawable/preview.png differ
diff --git a/watchface/src/main/res/drawable/red.png b/watchface/src/main/res/drawable/red.png
new file mode 100644
index 00000000..778d5256
Binary files /dev/null and b/watchface/src/main/res/drawable/red.png differ
diff --git a/watchface/src/main/res/drawable/second.png b/watchface/src/main/res/drawable/second.png
new file mode 100644
index 00000000..161d22dc
Binary files /dev/null and b/watchface/src/main/res/drawable/second.png differ
diff --git a/watchface/src/main/res/drawable/watch_face_dial.png b/watchface/src/main/res/drawable/watch_face_dial.png
new file mode 100644
index 00000000..b4db66dc
Binary files /dev/null and b/watchface/src/main/res/drawable/watch_face_dial.png differ
diff --git a/watchface/src/main/res/font/pacifico.ttf b/watchface/src/main/res/font/pacifico.ttf
new file mode 100644
index 00000000..e7def95d
Binary files /dev/null and b/watchface/src/main/res/font/pacifico.ttf differ
diff --git a/watchface/src/main/res/raw/watchface.xml b/watchface/src/main/res/raw/watchface.xml
new file mode 100644
index 00000000..c503145c
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+ Snippets
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_ambient.xml b/watchface/src/main/res/raw/watchface_ambient.xml
new file mode 100644
index 00000000..eabee5fd
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_ambient.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_basic.xml b/watchface/src/main/res/raw/watchface_basic.xml
new file mode 100644
index 00000000..8c4c2255
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_basic.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+ Snippets
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_boolean_configuration.xml b/watchface/src/main/res/raw/watchface_boolean_configuration.xml
new file mode 100644
index 00000000..d9c6a9cf
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_boolean_configuration.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show date
+
+
+
+
+
+
+
+
+
+ Don't show date
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Complex
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_clocks.xml b/watchface/src/main/res/raw/watchface_clocks.xml
new file mode 100644
index 00000000..c25766a2
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_clocks.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_color_configuration.xml b/watchface/src/main/res/raw/watchface_color_configuration.xml
new file mode 100644
index 00000000..79ad73b7
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_color_configuration.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_complications.xml b/watchface/src/main/res/raw/watchface_complications.xml
new file mode 100644
index 00000000..fd87767a
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_complications.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_dynamic_appearance.xml b/watchface/src/main/res/raw/watchface_dynamic_appearance.xml
new file mode 100644
index 00000000..a9c35f17
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_dynamic_appearance.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_dynamic_content.xml b/watchface/src/main/res/raw/watchface_dynamic_content.xml
new file mode 100644
index 00000000..d52edd22
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_dynamic_content.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+ = 6 && [HOUR_0_23] < 8]]>
+
+
+
+
+
+
+
+
+
+
+
+ Early morning
+
+
+
+
+
+
+
+
+
+ Morning
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_effects.xml b/watchface/src/main/res/raw/watchface_effects.xml
new file mode 100644
index 00000000..4acc1c0d
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_effects.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_flavors_configuration.xml b/watchface/src/main/res/raw/watchface_flavors_configuration.xml
new file mode 100644
index 00000000..23c106b5
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_flavors_configuration.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HR!
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_groups.xml b/watchface/src/main/res/raw/watchface_groups.xml
new file mode 100644
index 00000000..62f81300
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_groups.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_images.xml b/watchface/src/main/res/raw/watchface_images.xml
new file mode 100644
index 00000000..e15cb805
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_images.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_list_configuration.xml b/watchface/src/main/res/raw/watchface_list_configuration.xml
new file mode 100644
index 00000000..f7a165bd
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_list_configuration.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+ ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Complex
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_optimize.xml b/watchface/src/main/res/raw/watchface_optimize.xml
new file mode 100644
index 00000000..7ed6a324
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_optimize.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_photos.xml b/watchface/src/main/res/raw/watchface_photos.xml
new file mode 100644
index 00000000..062a9085
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_photos.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_photos_multi.xml b/watchface/src/main/res/raw/watchface_photos_multi.xml
new file mode 100644
index 00000000..fd22f325
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_photos_multi.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_text.xml b/watchface/src/main/res/raw/watchface_text.xml
new file mode 100644
index 00000000..4494a7ee
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_text.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Hello!
+
+
+
+
+
+
+
+
+
+ Day: %s
+
+
+
+
+
+
+
+
+
+ greeting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/raw/watchface_weather.xml b/watchface/src/main/res/raw/watchface_weather.xml
new file mode 100644
index 00000000..6abd540f
--- /dev/null
+++ b/watchface/src/main/res/raw/watchface_weather.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [WEATHER.IS_AVAILABLE]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/values/strings.xml b/watchface/src/main/res/values/strings.xml
new file mode 100644
index 00000000..2d1ea57b
--- /dev/null
+++ b/watchface/src/main/res/values/strings.xml
@@ -0,0 +1,30 @@
+
+
+
+ Simple Digital
+ Hello, World!
+ Show date
+ Background Image
+ Image A
+ Image B
+ Color theme
+ Relaxed
+ Urban
+ Show HR
+ Sporty
+ Sporty
+
diff --git a/watchface/src/main/res/xml/watch_face_info.xml b/watchface/src/main/res/xml/watch_face_info.xml
new file mode 100644
index 00000000..803c38f1
--- /dev/null
+++ b/watchface/src/main/res/xml/watch_face_info.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/watchface/src/main/res/xml/watch_face_shapes.xml b/watchface/src/main/res/xml/watch_face_shapes.xml
new file mode 100644
index 00000000..03d7275d
--- /dev/null
+++ b/watchface/src/main/res/xml/watch_face_shapes.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+