Initial commit: Fenix 8 V3 data watch face

- Restore watchface-kit design (500x500, scaled per device)
- 7 themes auto-generated from tokens via gen_themes.py -> Themes.mc
- Four-segment gradient progress ring (22+21 ticks, 4 anchor dots)
- Center time, date band w/ Bluetooth icon, top battery + dual complications, bottom distance/steps
- 17 devices compiled clean (SDK 9.1.0)
- Includes browser/JS preview (preview.html) + 7-theme SVG sheet
This commit is contained in:
2026-09-09 14:40:33 +08:00
commit 553c55026a
15 changed files with 1404 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
<drawables>
<bitmap id="LauncherIcon" filename="launcher_icon.png"/>
</drawables>

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

View File

@@ -0,0 +1,12 @@
<properties>
<property id="Theme" type="number">1</property>
<property id="RingTR" type="number">0</property>
<property id="RingTL" type="number">1</property>
<property id="RingBR" type="number">4</property>
<property id="RingBL" type="number">3</property>
<property id="LeftTop" type="number">1</property>
<property id="RightTop" type="number">0</property>
<property id="ShowTop" type="boolean">true</property>
<property id="ShowBand" type="boolean">true</property>
<property id="ShowBottom" type="boolean">true</property>
</properties>

View File

@@ -0,0 +1,87 @@
<settings>
<setting propertyKey="@Properties.Theme" title="@Strings.SettingTheme">
<settingConfig type="list">
<listEntry value="1">@Strings.ThemeEmber</listEntry>
<listEntry value="2">@Strings.ThemeAurora</listEntry>
<listEntry value="3">@Strings.ThemeBrass</listEntry>
<listEntry value="4">@Strings.ThemeVoltage</listEntry>
<listEntry value="5">@Strings.ThemeReef</listEntry>
<listEntry value="6">@Strings.ThemeAcid</listEntry>
<listEntry value="7">@Strings.ThemeKelp</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.RingTR" title="@Strings.SettingRingTR">
<settingConfig type="list">
<listEntry value="0">@Strings.MetricSteps</listEntry>
<listEntry value="1">@Strings.MetricCalories</listEntry>
<listEntry value="2">@Strings.MetricDistance</listEntry>
<listEntry value="3">@Strings.MetricFloors</listEntry>
<listEntry value="4">@Strings.MetricMoveBar</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.RingTL" title="@Strings.SettingRingTL">
<settingConfig type="list">
<listEntry value="0">@Strings.MetricSteps</listEntry>
<listEntry value="1">@Strings.MetricCalories</listEntry>
<listEntry value="2">@Strings.MetricDistance</listEntry>
<listEntry value="3">@Strings.MetricFloors</listEntry>
<listEntry value="4">@Strings.MetricMoveBar</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.RingBR" title="@Strings.SettingRingBR">
<settingConfig type="list">
<listEntry value="0">@Strings.MetricSteps</listEntry>
<listEntry value="1">@Strings.MetricCalories</listEntry>
<listEntry value="2">@Strings.MetricDistance</listEntry>
<listEntry value="3">@Strings.MetricFloors</listEntry>
<listEntry value="4">@Strings.MetricMoveBar</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.RingBL" title="@Strings.SettingRingBL">
<settingConfig type="list">
<listEntry value="0">@Strings.MetricSteps</listEntry>
<listEntry value="1">@Strings.MetricCalories</listEntry>
<listEntry value="2">@Strings.MetricDistance</listEntry>
<listEntry value="3">@Strings.MetricFloors</listEntry>
<listEntry value="4">@Strings.MetricMoveBar</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.LeftTop" title="@Strings.SettingLeftTop">
<settingConfig type="list">
<listEntry value="0">@Strings.FieldWeather</listEntry>
<listEntry value="1">@Strings.FieldCalories</listEntry>
<listEntry value="2">@Strings.FieldSteps</listEntry>
<listEntry value="3">@Strings.FieldDistance</listEntry>
<listEntry value="4">@Strings.FieldFloors</listEntry>
<listEntry value="5">@Strings.FieldBattery</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.RightTop" title="@Strings.SettingRightTop">
<settingConfig type="list">
<listEntry value="0">@Strings.FieldWeather</listEntry>
<listEntry value="1">@Strings.FieldCalories</listEntry>
<listEntry value="2">@Strings.FieldSteps</listEntry>
<listEntry value="3">@Strings.FieldDistance</listEntry>
<listEntry value="4">@Strings.FieldFloors</listEntry>
<listEntry value="5">@Strings.FieldBattery</listEntry>
</settingConfig>
</setting>
<setting propertyKey="@Properties.ShowTop" title="@Strings.SettingShowTop">
<settingConfig type="boolean"/>
</setting>
<setting propertyKey="@Properties.ShowBand" title="@Strings.SettingShowBand">
<settingConfig type="boolean"/>
</setting>
<setting propertyKey="@Properties.ShowBottom" title="@Strings.SettingShowBottom">
<settingConfig type="boolean"/>
</setting>
</settings>

View File

@@ -0,0 +1,35 @@
<strings>
<string id="AppName">Fenix 8 V3</string>
<string id="SettingTheme">Theme</string>
<string id="SettingRingTR">Ring · Top-Right</string>
<string id="SettingRingTL">Ring · Top-Left</string>
<string id="SettingRingBR">Ring · Bottom-Right</string>
<string id="SettingRingBL">Ring · Bottom-Left</string>
<string id="SettingLeftTop">Top-Left Complication</string>
<string id="SettingRightTop">Top-Right Complication</string>
<string id="SettingShowTop">Show Top Row</string>
<string id="SettingShowBand">Show Date Band</string>
<string id="SettingShowBottom">Show Bottom Row</string>
<string id="ThemeEmber">1 · Ember</string>
<string id="ThemeAurora">2 · Aurora</string>
<string id="ThemeBrass">3 · Brass</string>
<string id="ThemeVoltage">4 · Voltage</string>
<string id="ThemeReef">5 · Reef</string>
<string id="ThemeAcid">6 · Acid</string>
<string id="ThemeKelp">7 · Kelp</string>
<string id="MetricSteps">Steps</string>
<string id="MetricCalories">Calories</string>
<string id="MetricDistance">Distance</string>
<string id="MetricFloors">Floors</string>
<string id="MetricMoveBar">Move Bar</string>
<string id="FieldWeather">Weather</string>
<string id="FieldCalories">Calories</string>
<string id="FieldSteps">Steps</string>
<string id="FieldDistance">Distance</string>
<string id="FieldFloors">Floors</string>
<string id="FieldBattery">Battery</string>
</strings>