Compare commits

...

3 Commits

Author SHA1 Message Date
Will Bradley
e03b3e6e2b
Finish sundial face 2025-03-12 23:33:40 -07:00
Will Bradley
e23c6bd289
using a complication slot for sunrise/sunset background 2025-03-11 17:43:45 -07:00
Will Bradley
fffe30ad3a
getting project running in android studio 2025-03-11 11:34:38 -07:00
8 changed files with 248 additions and 688 deletions

View File

@ -16,5 +16,4 @@
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
}

View File

@ -1,5 +1,5 @@
[versions]
androidGradlePlugin = "8.8.0"
androidGradlePlugin = "8.8.2"
kotlin = "1.9.25"
[plugins]

Binary file not shown.

View File

@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

5
gradlew vendored
View File

@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@ -206,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.

View File

@ -15,7 +15,6 @@
*/
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
// Use the locally-defined validator to demonstrate validation on-build.
id("com.google.wff.validatorplugin")
}
@ -35,6 +34,9 @@ android {
}
buildTypes {
debug {
isMinifyEnabled = true
}
release {
// TODO:Add your signingConfig here to build release builds
isMinifyEnabled = true

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -1,215 +1,255 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<WatchFace height="450" width="450">
<Scene>
<Group height="450" name="Root" width="450" x="0" y="0">
<Group height="450" name="Background" width="450" x="0" y="0">
<PartDraw height="450" name="BackgroundContour" width="450" x="0" y="0">
<Ellipse height="450.0" width="450.0" x="0.0" y="0.0">
<Stroke color="#fffefbea" thickness="10.0"/>
<Fill color="#ffe6e3d3"/>
<Stroke color="#ff151515" thickness="10.0"/>
<Fill color="#ff333333"/>
</Ellipse>
</PartDraw>
</Group>
<ComplicationSlot
x="0" y="0"
width="450" height="450"
slotId="0"
name="ring_complication" displayName="Ring"
supportedTypes="RANGED_VALUE EMPTY">
<!--
There is no guarantee that the primaryProvider component name is
available on the device. Therefore defaultSystemProvider is mandatory in
DefaultSystemProvider, to provide a fallback.
System providers are listed here: https://developer.android.com/reference/android/support/wearable/complications/SystemProviders.html
-->
<!--"com.weartools/com.weartools.weekdayutccomp.complication.SunriseSunsetComplicationService"-->
<DefaultProviderPolicy
primaryProvider="com.fitbit.FitbitMobile/com.fitbit.complications.calories.CaloriesComplicationDataSourceService"
primaryProviderType="RANGED_VALUE"
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="RANGED_VALUE"
/>
<!--
Several different bounding shapes are supported in WFF, see:
https://developer.android.com/training/wearables/wff/complication/bounding
This example= only demonstrates a round complication.
-->
<BoundingOval x="0" y="0" width="450" height="450" outlinePadding="2" />
<!--
Basic example of a Ranged Value complication.
Ranged Value complications support optional data fields:
- Text
- Title
- Monochromatic Image
(Note that although AndroidX RangedValueComplicationData supports
containing SmallImage, Watch Face format does not expose these, so you
should use Monochromatic Image for icons.)
At least one of these must be set. This condition and set of expressions
evaluates which combination has been provided by the data source and
renders accordingly.
-->
<!--
<Arc centerX="225" centerY="225" height="450" width="450" startAngle="0" endAngle="90" direction="CLOCKWISE">
<Stroke color="#ffff0000" thickness="10.0"/>
</Arc>
-->
<Complication type="EMPTY">
<PartText height="50" width="450" x="0" y="300">
<Text>
<Font family="roboto" size="30" color="#ffe2d86f">
<Template>%s
<Parameter expression="-"/>
</Template>
</Font>
</Text>
</PartText>
</Complication>
<Complication type="RANGED_VALUE">
<Condition>
<Expressions>
<Expression name="valueIsntBlankAndIsDaytime">
<![CDATA[[(WEATHER.IS_DAY] || ![WEATHER.IS_AVAILABLE]) && [COMPLICATION.TEXT] != null && [COMPLICATION.TEXT] != "--"]]>
</Expression>
<Expression name="valueIsntBlankAndIsNotDaytime">
<![CDATA[([WEATHER.IS_AVAILABLE] && ![WEATHER.IS_DAY]) && [COMPLICATION.TEXT] != null && [COMPLICATION.TEXT] != "--"]]>
</Expression>
</Expressions>
<Default>
<PartText height="50" width="430" x="0" y="300">
<Text>
<Font family="roboto" size="30" color="#ffe2d86f">
<Template><![CDATA[ %s ]]>
<Parameter expression="n/a"/>
</Template>
</Font>
</Text>
</PartText>
</Default>
<Compare expression="valueIsntBlankAndIsDaytime">
<Group name="ranged_value_ring" x="0" y="0" width="450" height="450" alpha="255">
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />-->
<!-- <PartDraw x="0" y="0" height="450" width="450">-->
<!-- <Arc direction="COUNTER_CLOCKWISE" startAngle="90" endAngle="-90" centerX="225" centerY="225" width="450" height="450">-->
<!-- <Stroke color="[CONFIGURATION.themeColor.0]" cap="ROUND" thickness="40" />-->
<!-- </Arc>-->
<!-- </PartDraw>-->
<PartDraw x="0" y="0" height="450" width="450">
<Arc direction="COUNTER_CLOCKWISE" startAngle="88" endAngle="-88" centerX="225" centerY="225" width="450" height="450">
<!-- [COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE]+[HOUR_0_23_MINUTE]-->
<!-- [COMPLICATION.RANGED_VALUE_MAX]/1440*360/2 -->
<!-- <Transform target="startAngle" value="([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE])/1440*360" />-->
<!-- <Transform target="endAngle" value="([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360" />-->
<Transform target="startAngle" value="(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)" />
<Transform target="endAngle" value="(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)" />
<Stroke color="#ff97904a" cap="BUTT" thickness="450" />
</Arc>
</PartDraw>
</Group>
<PartText height="50" width="430" x="0" y="300">
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />-->
<Text>
<Font family="roboto" size="30" color="#ffe2d86f">
<Template><![CDATA[ %s,%s %s %s %s (%s %s) ]]>
<Parameter expression="round(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)"/>
<Parameter expression="round(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)"/>
<Parameter expression="[COMPLICATION.TEXT]"/>
<Parameter expression="[WEATHER.IS_DAY]"/>
<Parameter expression="[WEATHER.IS_AVAILABLE]"/>
<Parameter expression="round([COMPLICATION.RANGED_VALUE_VALUE])"/>
<Parameter expression="round([COMPLICATION.RANGED_VALUE_MAX])"/>
</Template>
</Font>
</Text>
</PartText>
</Compare>
<Compare expression="valueIsntBlankAndIsNotDaytime">
<Group name="ranged_value_ring" x="0" y="0" width="450" height="450" alpha="255">
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />-->
<!-- <PartDraw x="0" y="0" height="450" width="450">-->
<!-- <Arc direction="COUNTER_CLOCKWISE" startAngle="90" endAngle="-90" centerX="225" centerY="225" width="450" height="450">-->
<!-- <Stroke color="[CONFIGURATION.themeColor.0]" cap="ROUND" thickness="40" />-->
<!-- </Arc>-->
<!-- </PartDraw>-->
<PartDraw x="0" y="0" height="450" width="450">
<Arc direction="CLOCKWISE" startAngle="88" endAngle="-88" centerX="225" centerY="225" width="450" height="450">
<!-- [COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE]+[HOUR_0_23_MINUTE]-->
<!-- [COMPLICATION.RANGED_VALUE_MAX]/1440*360/2 -->
<!-- <Transform target="startAngle" value="([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE])/1440*360" />-->
<!-- <Transform target="endAngle" value="([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360" />-->
<Transform target="startAngle" value="(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)" />
<Transform target="endAngle" value="(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)" />
<Stroke color="#6697904a" cap="BUTT" thickness="450" />
</Arc>
</PartDraw>
</Group>
<PartText height="50" width="430" x="0" y="300">
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />-->
<Text>
<Font family="roboto" size="30" color="#66ff0000">
<Template><![CDATA[ %s,%s %s %s %s (%s %s) ]]>
<Parameter expression="round(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)"/>
<Parameter expression="round(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)"/>
<Parameter expression="[COMPLICATION.TEXT]"/>
<Parameter expression="[WEATHER.IS_DAY]"/>
<Parameter expression="[WEATHER.IS_AVAILABLE]"/>
<Parameter expression="round([COMPLICATION.RANGED_VALUE_VALUE])"/>
<Parameter expression="round([COMPLICATION.RANGED_VALUE_MAX])"/>
</Template>
</Font>
</Text>
</PartText>
</Compare>
</Condition>
</Complication>
</ComplicationSlot>
<Group height="450" name="Root" width="450" x="0" y="0">
<!-- <AnalogClock x="0" y="0" width="450" height="450">-->
<!-- &lt;!&ndash;<Variant mode="AMBIENT" target="alpha" value="192" />&ndash;&gt;-->
<!-- &lt;!&ndash; Shadows &ndash;&gt;-->
<!-- <HourHand resource="hour" x="220" y="55" width="20" height="190" pivotX="0.5"-->
<!-- pivotY="0.92105263157" tintColor="[CONFIGURATION.themeColor.4]">-->
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />-->
<!-- </HourHand>-->
<!-- &lt;!&ndash; Main hands &ndash;&gt;-->
<!-- <HourHand resource="hour" x="215" y="50" width="20" height="190" pivotX="0.5"-->
<!-- pivotY="0.92105263157" tintColor="[CONFIGURATION.themeColor.0]">-->
<!-- </HourHand>-->
<!-- </AnalogClock>-->
<!-- <Group x="65" y="65" width="320" height="320" scaleX="0.95" scaleY="0.95" name="minutes" alpha="255">-->
<!-- <Transform target="angle" value="[SECOND] * 15">-->
<!-- <Animation duration="1" angleDirection="CLOCKWISE" />-->
<!-- </Transform>-->
<!-- <PartDraw x="0" y="0" width="320" height="320" name="empty" alpha="255">-->
<!-- <Rectangle x="0" y="0" width="64" height="64">-->
<!-- <Fill color="#ff00ffff" />-->
<!-- </Rectangle>-->
<!-- </PartDraw>-->
<!-- </Group>-->
<DigitalClock x="0" y="0" width="450" height="450">
<!-- For further attributes see:
https://developer.android.com/training/wearables/wff/clock/time-text -->
<!-- SYNC_TO_DEVICE specifies to respect the device 12/24h setting -->
<!-- Interactive mode version-->
<TimeText format="hh" hourFormat="SYNC_TO_DEVICE" align="START" x="20" y="120" width="225" height="200" alpha="255">
<Font family="SYNC_TO_DEVICE" size="120" weight="NORMAL" slant="NORMAL" color="#99ffffff"/>
</TimeText>
<TimeText format="mm" hourFormat="SYNC_TO_DEVICE" align="END" x="205" y="120" width="225" height="200" alpha="255">
<Font family="SYNC_TO_DEVICE" size="120" weight="NORMAL" slant="NORMAL" color="#99ffffff"/>
</TimeText>
</DigitalClock>
<Group x="175" y="113" width="100" height="224" name="minutes" angle="0" alpha="255">
<Transform target="angle" value="([SECONDS_IN_DAY]*0.0041667+180)">
<Animation duration="1" angleDirection="CLOCKWISE" />
</Transform>
<PartImage x="0" y="0" width="100" height="224" alpha="255" name="HourHand2">
<Image resource="hour_hand" />
</PartImage>
</Group>
<Group height="450" name="Wrapper" width="450" x="15" y="0">
<PartText height="50" width="430" x="0" y="0">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="42" color="#99000000"> It is </Font>
</Text>
</PartText>
<PartText height="200" width="430" x="0" y="20">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="130" color="#ff000000">
<Template><![CDATA[ %s ]]>
<Parameter expression="
[HOUR_1_12] == 1 ? one :
[HOUR_1_12] == 2 ? two :
[HOUR_1_12] == 3 ? three :
[HOUR_1_12] == 4 ? four :
[HOUR_1_12] == 5 ? five :
[HOUR_1_12] == 6 ? six :
[HOUR_1_12] == 7 ? seven :
[HOUR_1_12] == 8 ? eight :
[HOUR_1_12] == 9 ? nine :
[HOUR_1_12] == 10 ? ten :
[HOUR_1_12] == 11 ? eleven :
[HOUR_1_12] == 12 ? twelve :
[HOUR_1_12_Z]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText height="180" width="450" x="0" y="110">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="70" color="#cc000000">
<Template><![CDATA[ %s ]]>
<Parameter expression="
[MINUTE] == 0 ? o'clock :
[MINUTE] == 1 ? &quot;oh-one&quot; :
[MINUTE] == 2 ? &quot;oh-two&quot; :
[MINUTE] == 3 ? &quot;oh-three&quot; :
[MINUTE] == 4 ? &quot;oh-four&quot; :
[MINUTE] == 5 ? &quot;oh-five&quot; :
[MINUTE] == 6 ? &quot;oh-six&quot; :
[MINUTE] == 7 ? &quot;oh-seven&quot; :
[MINUTE] == 8 ? &quot;oh-eight&quot; :
[MINUTE] == 9 ? &quot;oh-nine&quot; :
[MINUTE] == 10 ? ten :
[MINUTE] == 11 ? eleven :
[MINUTE] == 12 ? twelve :
[MINUTE] == 13 ? thirteen :
[MINUTE] == 14 ? fourteen :
[MINUTE] == 15 ? fifteen :
[MINUTE] == 16 ? sixteen :
[MINUTE] == 17 ? seventeen :
[MINUTE] == 18 ? eighteen :
[MINUTE] == 19 ? nineteen :
[MINUTE] == 20 ? twenty :
[MINUTE] == 21 ? &quot;twenty-one&quot; :
[MINUTE] == 22 ? &quot;twenty-two&quot; :
[MINUTE] == 23 ? &quot;twenty-three&quot; :
[MINUTE] == 24 ? &quot;twenty-four&quot; :
[MINUTE] == 25 ? &quot;twenty-five&quot; :
[MINUTE] == 26 ? &quot;twenty-six&quot; :
[MINUTE] == 27 ? &quot;twenty-seven&quot; :
[MINUTE] == 28 ? &quot;twenty-eight&quot; :
[MINUTE] == 29 ? &quot;twenty-nine&quot; :
[MINUTE] == 30 ? thirty :
[MINUTE] == 31 ? &quot;thirty-one&quot; :
[MINUTE] == 32 ? &quot;thirty-two&quot; :
[MINUTE] == 33 ? &quot;thirty-three&quot; :
[MINUTE] == 34 ? &quot;thirty-four&quot; :
[MINUTE] == 35 ? &quot;thirty-five&quot; :
[MINUTE] == 36 ? &quot;thirty-six&quot; :
[MINUTE] == 37 ? &quot;thirty-seven&quot; :
[MINUTE] == 38 ? &quot;thirty-eight&quot; :
[MINUTE] == 39 ? &quot;thirty-nine&quot; :
[MINUTE] == 40 ? forty :
[MINUTE] == 41 ? &quot;forty-one&quot; :
[MINUTE] == 42 ? &quot;forty-two&quot; :
[MINUTE] == 43 ? &quot;forty-three&quot; :
[MINUTE] == 44 ? &quot;forty-four&quot; :
[MINUTE] == 45 ? &quot;forty-five&quot; :
[MINUTE] == 46 ? &quot;forty-six&quot; :
[MINUTE] == 47 ? &quot;forty-seven&quot; :
[MINUTE] == 48 ? &quot;forty-eight&quot; :
[MINUTE] == 49 ? &quot;forty-nine&quot; :
[MINUTE] == 50 ? fifty :
[MINUTE] == 51 ? &quot;fifty-one&quot; :
[MINUTE] == 52 ? &quot;fifty-two&quot; :
[MINUTE] == 53 ? &quot;fifty-three&quot; :
[MINUTE] == 54 ? &quot;fifty-four&quot; :
[MINUTE] == 55 ? &quot;fifty-five&quot; :
[MINUTE] == 56 ? &quot;fifty-six&quot; :
[MINUTE] == 57 ? &quot;fifty-seven&quot; :
[MINUTE] == 58 ? &quot;fifty-eight&quot; :
[MINUTE] == 59 ? &quot;fifty-nine&quot; :
[MINUTE] == 60 ? sixty :
[MINUTE_Z]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText height="75" width="430" x="0" y="225">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="36" color="#aa000000">
<Template><![CDATA[ and %s %s ]]>
<Parameter expression="
[SECOND] == 0 ? zero :
[SECOND] == 1 ? one :
[SECOND] == 2 ? two :
[SECOND] == 3 ? three :
[SECOND] == 4 ? four :
[SECOND] == 5 ? five :
[SECOND] == 6 ? six :
[SECOND] == 7 ? seven :
[SECOND] == 8 ? eight :
[SECOND] == 9 ? nine :
[SECOND] == 10 ? ten :
[SECOND] == 11 ? eleven :
[SECOND] == 12 ? twelve :
[SECOND] == 13 ? thirteen :
[SECOND] == 14 ? fourteen :
[SECOND] == 15 ? fifteen :
[SECOND] == 16 ? sixteen :
[SECOND] == 17 ? seventeen :
[SECOND] == 18 ? eighteen :
[SECOND] == 19 ? nineteen :
[SECOND] == 20 ? twenty :
[SECOND] == 21 ? &quot;twenty-one&quot; :
[SECOND] == 22 ? &quot;twenty-two&quot; :
[SECOND] == 23 ? &quot;twenty-three&quot; :
[SECOND] == 24 ? &quot;twenty-four&quot; :
[SECOND] == 25 ? &quot;twenty-five&quot; :
[SECOND] == 26 ? &quot;twenty-six&quot; :
[SECOND] == 27 ? &quot;twenty-seven&quot; :
[SECOND] == 28 ? &quot;twenty-eight&quot; :
[SECOND] == 29 ? &quot;twenty-nine&quot; :
[SECOND] == 30 ? thirty :
[SECOND] == 31 ? &quot;thirty-one&quot; :
[SECOND] == 32 ? &quot;thirty-two&quot; :
[SECOND] == 33 ? &quot;thirty-three&quot; :
[SECOND] == 34 ? &quot;thirty-four&quot; :
[SECOND] == 35 ? &quot;thirty-five&quot; :
[SECOND] == 36 ? &quot;thirty-six&quot; :
[SECOND] == 37 ? &quot;thirty-seven&quot; :
[SECOND] == 38 ? &quot;thirty-eight&quot; :
[SECOND] == 39 ? &quot;thirty-nine&quot; :
[SECOND] == 40 ? forty :
[SECOND] == 41 ? &quot;forty-one&quot; :
[SECOND] == 42 ? &quot;forty-two&quot; :
[SECOND] == 43 ? &quot;forty-three&quot; :
[SECOND] == 44 ? &quot;forty-four&quot; :
[SECOND] == 45 ? &quot;forty-five&quot; :
[SECOND] == 46 ? &quot;forty-six&quot; :
[SECOND] == 47 ? &quot;forty-seven&quot; :
[SECOND] == 48 ? &quot;forty-eight&quot; :
[SECOND] == 49 ? &quot;forty-nine&quot; :
[SECOND] == 50 ? fifty :
[SECOND] == 51 ? &quot;fifty-one&quot; :
[SECOND] == 52 ? &quot;fifty-two&quot; :
[SECOND] == 53 ? &quot;fifty-three&quot; :
[SECOND] == 54 ? &quot;fifty-four&quot; :
[SECOND] == 55 ? &quot;fifty-five&quot; :
[SECOND] == 56 ? &quot;fifty-six&quot; :
[SECOND] == 57 ? &quot;fifty-seven&quot; :
[SECOND] == 58 ? &quot;fifty-eight&quot; :
[SECOND] == 59 ? &quot;fifty-nine&quot; :
[SECOND] == 60 ? sixty :
[SECOND_Z]"/>
<Parameter expression="[SECOND] == 1 ? second : seconds"/>
</Template>
</Font>
</Text>
</PartText>
<PartText height="50" width="430" x="0" y="275">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="36" color="#99000000">
<Template><![CDATA[ in the %s ]]>
<Parameter expression="
[HOUR_1_24] &lt; 12 ? morning :
[HOUR_1_24] &lt; 17 ? afternoon :
evening"/>
</Template>
</Font>
</Text>
</PartText>
<PartText height="50" width="430" x="0" y="330">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="36" color="#66000000">
<Template><![CDATA[ %s ]]>
<Parameter expression="[DAY_OF_WEEK_F]"/>
</Template>
</Font>
</Text>
</PartText>
<!-- <PartDraw x="0" y="0" width="450" height="450"-->
<!-- pivotX="115" pivotY="115" angle="0" alpha="255"-->
<!-- name="HourHand3" >-->
<!-- <Ellipse height="120" width="100" x="15" y="15">-->
<!-- <Stroke color="#ff00ff00" thickness="10.0"/>-->
<!-- <Fill color="#ff00ff00"/>-->
<!-- </Ellipse>-->
<!-- </PartDraw>-->
<!-- <PartText height="50" width="430" x="0" y="330">-->
<!-- <Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>-->
<!-- <Text>-->
<!-- <Font family="roboto" size="36" color="#66ffffff">-->
<!-- <Template><![CDATA[ %d s %s h %s sd %s sdh ]]>-->
<!-- <Parameter expression="[SECOND]"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;-->
<!-- <Parameter expression="[HOUR_0_23_MINUTE]"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;-->
<!-- <Parameter expression="[SECONDS_IN_DAY]"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;-->
<!-- <Parameter expression="([SECONDS_IN_DAY]*0.0041667+180)"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;-->
<!-- </Template>-->
<!-- </Font>-->
<!-- </Text>-->
<!-- </PartText>-->
<PartText height="50" width="430" x="0" y="365">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="36" color="#66000000">
<Font family="roboto" size="36" color="#66ffffff">
<Template><![CDATA[ %s %s ]]>
<Parameter expression="[MONTH_F]"/>
<Parameter expression="[DAY_Z]"/>
@ -220,485 +260,5 @@
</Group>
</Group>
<ComplicationSlot
x="2" y="195"
width="60" height="60"
slotId="0"
name="left_complication" displayName="Left"
supportedTypes="RANGED_VALUE">
<!--
There is no guarantee that the primaryProvider component name is
available on the device. Therefore defaultSystemProvider is mandatory in
DefaultSystemProvider, to provide a fallback.
System providers are listed here: https://developer.android.com/reference/android/support/wearable/complications/SystemProviders.html
-->
<DefaultProviderPolicy
primaryProvider="com.fitbit.FitbitMobile/com.fitbit.complications.calories.CaloriesComplicationDataSourceService"
primaryProviderType="RANGED_VALUE"
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="RANGED_VALUE"
/>
<!--
Several different bounding shapes are supported in WFF, see:
https://developer.android.com/training/wearables/wff/complication/bounding
This example= only demonstrates a round complication.
-->
<BoundingOval x="0" y="0" width="60" height="60" outlinePadding="2" />
<!--
Basic example of a Ranged Value complication.
Ranged Value complications support optional data fields:
- Text
- Title
- Monochromatic Image
(Note that although AndroidX RangedValueComplicationData supports
containing SmallImage, Watch Face format does not expose these, so you
should use Monochromatic Image for icons.)
At least one of these must be set. This condition and set of expressions
evaluates which combination has been provided by the data source and
renders accordingly.
-->
<Complication type="RANGED_VALUE">
<Group name="ranged_value_ring_ambient" x="0" y="0" width="60" height="60" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<PartDraw x="0" y="0" height="60" width="60">
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Stroke color="[CONFIGURATION.themeColor.3]" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
<PartDraw x="0" y="0" height="60" width="60" >
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Transform target="endAngle" value="-150 + (((clamp(([COMPLICATION.RANGED_VALUE_VALUE]), ([COMPLICATION.RANGED_VALUE_MIN]), ([COMPLICATION.RANGED_VALUE_MAX])) - ([COMPLICATION.RANGED_VALUE_MIN])) / (([COMPLICATION.RANGED_VALUE_MAX]) - ([COMPLICATION.RANGED_VALUE_MIN]))) * (300))" />
<Stroke color="#66000000" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
</Group>
<Group name="ranged_value_ring" x="0" y="0" width="60" height="60" alpha="255">
<Variant mode="AMBIENT" target="alpha" value="0" />
<PartDraw x="0" y="0" height="60" width="60">
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Stroke color="[CONFIGURATION.themeColor.0]" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
<PartDraw x="0" y="0" height="60" width="60">
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Transform target="endAngle" value="-150 + (((clamp(([COMPLICATION.RANGED_VALUE_VALUE]), ([COMPLICATION.RANGED_VALUE_MIN]), ([COMPLICATION.RANGED_VALUE_MAX])) - ([COMPLICATION.RANGED_VALUE_MIN])) / (([COMPLICATION.RANGED_VALUE_MAX]) - ([COMPLICATION.RANGED_VALUE_MIN]))) * (300))" />
<Stroke color="#66000000" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
</Group>
<Condition>
<!--
Depending on which combination of Icon, Text and Title is present in
the complication will be rendered differently.
-->
<Expressions>
<!-- A Title and/or Text, with optionally an image -->
<Expression name="rangedValue_maybeImage_textAndOrTitle">
<![CDATA[[COMPLICATION.TEXT] != null || [COMPLICATION.TITLE] != null]]>
</Expression>
<!-- An Image present, with no Text or Title -->
<Expression name="rangedValue_image_noTextNorTitle">
<![CDATA[[COMPLICATION.TEXT] == null && [COMPLICATION.TITLE] == null && [COMPLICATION.MONOCHROMATIC_IMAGE] != null]]>
</Expression>
</Expressions>
<Compare expression="rangedValue_maybeImage_textAndOrTitle">
<Condition>
<Expressions>
<Expression name="monochromatic_ambientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] != null]]>
</Expression>
<Expression name="monochromatic_noAmbientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] == null]]>
</Expression>
</Expressions>
<!--
Where the complication has specified an image specifically
for ambient mode, use that, with tinting applied.
-->
<Compare expression="monochromatic_ambientImage">
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT]" />
</PartImage>
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="255">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
<!--
Where the complication hasn't specified an image specifically
for ambient mode, use the normal image, with tinting applied.
-->
<Compare expression="monochromatic_noAmbientImage">
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="255">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
</Condition>
<Condition>
<Expressions>
<Expression name="monochromatic_both_labels">
<![CDATA[([COMPLICATION.TEXT] != null && [COMPLICATION.TITLE] != null)]]>
</Expression>
</Expressions>
<!--
Both Title and Text are present, show title above text.
-->
<Compare expression="monochromatic_both_labels">
<PartText x="0" y="32" width="60" height="20" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="20" width="60" height="20" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="16" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TEXT]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="32" width="60" height="20">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="20" width="60" height="20">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="16" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TEXT]"/>
</Template>
</Font>
</Text>
</PartText>
</Compare>
<!--
Only one of Title or Text is present, show this is slightly
larger than when both are displayed.
-->
<Default>
<PartText x="0" y="0" width="60" height="60" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="14" weight="NORMAL" slant="NORMAL" color="#66000000">
<!-- In this example, prefer Text over Title -->
<Template>%s<Parameter expression="[COMPLICATION.TEXT] != null ? [COMPLICATION.TEXT] : [COMPLICATION.TITLE]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="0" width="60" height="60">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="14" weight="NORMAL" slant="NORMAL" color="#66000000">
<!-- In this example, prefer Text over Title -->
<Template>%s<Parameter expression="[COMPLICATION.TEXT] != null ? [COMPLICATION.TEXT] : [COMPLICATION.TITLE]"/></Template>
</Font>
</Text>
</PartText>
</Default>
</Condition>
</Compare>
<!--
Image is present, but no text or title, so show the image centrally
in the complication, larger then when the text or title is available
-->
<Compare expression="rangedValue_image_noTextNorTitle">
<Condition>
<Expressions>
<Expression name="monochromatic_ambientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] != null]]>
</Expression>
<Expression name="monochromatic_noAmbientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] == null]]>
</Expression>
</Expressions>
<Compare expression="monochromatic_ambientImage">
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT]" />
</PartImage>
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
<Compare expression="monochromatic_noAmbientImage">
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
</Condition>
</Compare>
</Condition>
</Complication>
</ComplicationSlot>
<ComplicationSlot
x="388" y="195"
width="60" height="60"
slotId="1"
name="right_complication" displayName="Right"
supportedTypes="RANGED_VALUE">
<!--
There is no guarantee that the primaryProvider component name is
available on the device. Therefore defaultSystemProvider is mandatory in
DefaultSystemProvider, to provide a fallback.
System providers are listed here: https://developer.android.com/reference/android/support/wearable/complications/SystemProviders.html
-->
<DefaultProviderPolicy
primaryProvider="com.fitbit.FitbitMobile/com.fitbit.complications.calories.CaloriesComplicationDataSourceService"
primaryProviderType="RANGED_VALUE"
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="RANGED_VALUE"
/>
<!--
Several different bounding shapes are supported in WFF, see:
https://developer.android.com/training/wearables/wff/complication/bounding
This example= only demonstrates a round complication.
-->
<BoundingOval x="0" y="0" width="60" height="60" outlinePadding="2" />
<!--
Basic example of a Ranged Value complication.
Ranged Value complications support optional data fields:
- Text
- Title
- Monochromatic Image
(Note that although AndroidX RangedValueComplicationData supports
containing SmallImage, Watch Face format does not expose these, so you
should use Monochromatic Image for icons.)
At least one of these must be set. This condition and set of expressions
evaluates which combination has been provided by the data source and
renders accordingly.
-->
<Complication type="RANGED_VALUE">
<Group name="ranged_value_ring_ambient" x="0" y="0" width="60" height="60" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<PartDraw x="0" y="0" height="60" width="60">
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Stroke color="[CONFIGURATION.themeColor.3]" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
<PartDraw x="0" y="0" height="60" width="60" >
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Transform target="endAngle" value="-150 + (((clamp(([COMPLICATION.RANGED_VALUE_VALUE]), ([COMPLICATION.RANGED_VALUE_MIN]), ([COMPLICATION.RANGED_VALUE_MAX])) - ([COMPLICATION.RANGED_VALUE_MIN])) / (([COMPLICATION.RANGED_VALUE_MAX]) - ([COMPLICATION.RANGED_VALUE_MIN]))) * (300))" />
<Stroke color="#66000000" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
</Group>
<Group name="ranged_value_ring" x="0" y="0" width="60" height="60" alpha="255">
<Variant mode="AMBIENT" target="alpha" value="0" />
<PartDraw x="0" y="0" height="60" width="60">
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Stroke color="[CONFIGURATION.themeColor.0]" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
<PartDraw x="0" y="0" height="60" width="60">
<Arc direction="CLOCKWISE" startAngle="-150" endAngle="150" centerX="30" centerY="30" width="50" height="50">
<Transform target="endAngle" value="-150 + (((clamp(([COMPLICATION.RANGED_VALUE_VALUE]), ([COMPLICATION.RANGED_VALUE_MIN]), ([COMPLICATION.RANGED_VALUE_MAX])) - ([COMPLICATION.RANGED_VALUE_MIN])) / (([COMPLICATION.RANGED_VALUE_MAX]) - ([COMPLICATION.RANGED_VALUE_MIN]))) * (300))" />
<Stroke color="#66000000" cap="ROUND" thickness="10" />
</Arc>
</PartDraw>
</Group>
<Condition>
<!--
Depending on which combination of Icon, Text and Title is present in
the complication will be rendered differently.
-->
<Expressions>
<!-- A Title and/or Text, with optionally an image -->
<Expression name="rangedValue_maybeImage_textAndOrTitle">
<![CDATA[[COMPLICATION.TEXT] != null || [COMPLICATION.TITLE] != null]]>
</Expression>
<!-- An Image present, with no Text or Title -->
<Expression name="rangedValue_image_noTextNorTitle">
<![CDATA[[COMPLICATION.TEXT] == null && [COMPLICATION.TITLE] == null && [COMPLICATION.MONOCHROMATIC_IMAGE] != null]]>
</Expression>
</Expressions>
<Compare expression="rangedValue_maybeImage_textAndOrTitle">
<Condition>
<Expressions>
<Expression name="monochromatic_ambientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] != null]]>
</Expression>
<Expression name="monochromatic_noAmbientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] == null]]>
</Expression>
</Expressions>
<!--
Where the complication has specified an image specifically
for ambient mode, use that, with tinting applied.
-->
<Compare expression="monochromatic_ambientImage">
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT]" />
</PartImage>
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="255">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
<!--
Where the complication hasn't specified an image specifically
for ambient mode, use the normal image, with tinting applied.
-->
<Compare expression="monochromatic_noAmbientImage">
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
<PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="255">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
</Condition>
<Condition>
<Expressions>
<Expression name="monochromatic_both_labels">
<![CDATA[([COMPLICATION.TEXT] != null && [COMPLICATION.TITLE] != null)]]>
</Expression>
</Expressions>
<!--
Both Title and Text are present, show title above text.
-->
<Compare expression="monochromatic_both_labels">
<PartText x="0" y="32" width="60" height="20" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="20" width="60" height="20" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="16" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TEXT]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="32" width="60" height="20">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="20" width="60" height="20">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="16" weight="NORMAL" slant="NORMAL" color="#66000000">
<Template>%s<Parameter expression="[COMPLICATION.TEXT]"/>
</Template>
</Font>
</Text>
</PartText>
</Compare>
<!--
Only one of Title or Text is present, show this is slightly
larger than when both are displayed.
-->
<Default>
<PartText x="0" y="0" width="60" height="60" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="14" weight="NORMAL" slant="NORMAL" color="#66000000">
<!-- In this example, prefer Text over Title -->
<Template>%s<Parameter expression="[COMPLICATION.TEXT] != null ? [COMPLICATION.TEXT] : [COMPLICATION.TITLE]"/>
</Template>
</Font>
</Text>
</PartText>
<PartText x="0" y="0" width="60" height="60">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Text align="CENTER" ellipsis="TRUE">
<Font family="SYNC_TO_DEVICE" size="14" weight="NORMAL" slant="NORMAL" color="#66000000">
<!-- In this example, prefer Text over Title -->
<Template>%s<Parameter expression="[COMPLICATION.TEXT] != null ? [COMPLICATION.TEXT] : [COMPLICATION.TITLE]"/></Template>
</Font>
</Text>
</PartText>
</Default>
</Condition>
</Compare>
<!--
Image is present, but no text or title, so show the image centrally
in the complication, larger then when the text or title is available
-->
<Compare expression="rangedValue_image_noTextNorTitle">
<Condition>
<Expressions>
<Expression name="monochromatic_ambientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] != null]]>
</Expression>
<Expression name="monochromatic_noAmbientImage">
<![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] == null]]>
</Expression>
</Expressions>
<Compare expression="monochromatic_ambientImage">
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT]" />
</PartImage>
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
<Compare expression="monochromatic_noAmbientImage">
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000" alpha="0">
<Variant mode="AMBIENT" target="alpha" value="255" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000">
<Variant mode="AMBIENT" target="alpha" value="0" />
<Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
</PartImage>
</Compare>
</Condition>
</Compare>
</Condition>
</Complication>
</ComplicationSlot>
</Scene>
</WatchFace>