Compare commits

..

No commits in common. "wb-sundial-face" and "main" have entirely different histories.

8 changed files with 643 additions and 203 deletions

View File

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

View File

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

Binary file not shown.

View File

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

5
gradlew vendored
View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

View File

@ -1,29 +1,237 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<WatchFace height="450" width="450"> <WatchFace height="450" width="450">
<Scene> <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"> <PartDraw height="450" name="BackgroundContour" width="450" x="0" y="0">
<Ellipse height="450.0" width="450.0" x="0.0" y="0.0"> <Ellipse height="450.0" width="450.0" x="0.0" y="0.0">
<Stroke color="#ff151515" thickness="10.0"/> <Stroke color="#fffefbea" thickness="10.0"/>
<Fill color="#ff333333"/> <Fill color="#ffe6e3d3"/>
</Ellipse> </Ellipse>
</PartDraw> </PartDraw>
<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>
<PartText height="50" width="430" x="0" y="365">
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>
<Text>
<Font family="anaktoria" size="36" color="#66000000">
<Template><![CDATA[ %s %s ]]>
<Parameter expression="[MONTH_F]"/>
<Parameter expression="[DAY_Z]"/>
</Template>
</Font>
</Text>
</PartText>
</Group>
</Group> </Group>
<ComplicationSlot <ComplicationSlot
x="0" y="0" x="2" y="195"
width="450" height="450" width="60" height="60"
slotId="0" slotId="0"
name="ring_complication" displayName="Ring" name="left_complication" displayName="Left"
supportedTypes="RANGED_VALUE EMPTY"> supportedTypes="RANGED_VALUE">
<!-- <!--
There is no guarantee that the primaryProvider component name is There is no guarantee that the primaryProvider component name is
available on the device. Therefore defaultSystemProvider is mandatory in available on the device. Therefore defaultSystemProvider is mandatory in
DefaultSystemProvider, to provide a fallback. DefaultSystemProvider, to provide a fallback.
System providers are listed here: https://developer.android.com/reference/android/support/wearable/complications/SystemProviders.html System providers are listed here: https://developer.android.com/reference/android/support/wearable/complications/SystemProviders.html
--> -->
<!--"com.weartools/com.weartools.weekdayutccomp.complication.SunriseSunsetComplicationService"-->
<DefaultProviderPolicy <DefaultProviderPolicy
primaryProvider="com.fitbit.FitbitMobile/com.fitbit.complications.calories.CaloriesComplicationDataSourceService" primaryProvider="com.fitbit.FitbitMobile/com.fitbit.complications.calories.CaloriesComplicationDataSourceService"
primaryProviderType="RANGED_VALUE" primaryProviderType="RANGED_VALUE"
@ -35,7 +243,7 @@
https://developer.android.com/training/wearables/wff/complication/bounding https://developer.android.com/training/wearables/wff/complication/bounding
This example= only demonstrates a round complication. This example= only demonstrates a round complication.
--> -->
<BoundingOval x="0" y="0" width="450" height="450" outlinePadding="2" /> <BoundingOval x="0" y="0" width="60" height="60" outlinePadding="2" />
<!-- <!--
Basic example of a Ranged Value complication. Basic example of a Ranged Value complication.
@ -54,211 +262,443 @@
evaluates which combination has been provided by the data source and evaluates which combination has been provided by the data source and
renders accordingly. 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"> <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> <Condition>
<!--
Depending on which combination of Icon, Text and Title is present in
the complication will be rendered differently.
-->
<Expressions> <Expressions>
<Expression name="valueIsntBlankAndIsDaytime"> <!-- A Title and/or Text, with optionally an image -->
<![CDATA[[(WEATHER.IS_DAY] || ![WEATHER.IS_AVAILABLE]) && [COMPLICATION.TEXT] != null && [COMPLICATION.TEXT] != "--"]]> <Expression name="rangedValue_maybeImage_textAndOrTitle">
<![CDATA[[COMPLICATION.TEXT] != null || [COMPLICATION.TITLE] != null]]>
</Expression> </Expression>
<Expression name="valueIsntBlankAndIsNotDaytime"> <!-- An Image present, with no Text or Title -->
<![CDATA[([WEATHER.IS_AVAILABLE] && ![WEATHER.IS_DAY]) && [COMPLICATION.TEXT] != null && [COMPLICATION.TEXT] != "--"]]> <Expression name="rangedValue_image_noTextNorTitle">
<![CDATA[[COMPLICATION.TEXT] == null && [COMPLICATION.TITLE] == null && [COMPLICATION.MONOCHROMATIC_IMAGE] != null]]>
</Expression> </Expression>
</Expressions> </Expressions>
<Default> <Compare expression="rangedValue_maybeImage_textAndOrTitle">
<PartText height="50" width="430" x="0" y="300"> <Condition>
<Text> <Expressions>
<Font family="roboto" size="30" color="#ffe2d86f"> <Expression name="monochromatic_ambientImage">
<Template><![CDATA[ %s ]]> <![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] != null]]>
<Parameter expression="n/a"/> </Expression>
</Template> <Expression name="monochromatic_noAmbientImage">
</Font> <![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] == null]]>
</Text> </Expression>
</PartText> </Expressions>
</Default> <!--
<Compare expression="valueIsntBlankAndIsDaytime"> Where the complication has specified an image specifically
<Group name="ranged_value_ring" x="0" y="0" width="450" height="450" alpha="255"> for ambient mode, use that, with tinting applied.
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />--> -->
<!-- <PartDraw x="0" y="0" height="450" width="450">--> <Compare expression="monochromatic_ambientImage">
<!-- <Arc direction="COUNTER_CLOCKWISE" startAngle="90" endAngle="-90" centerX="225" centerY="225" width="450" height="450">--> <PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="0">
<!-- <Stroke color="[CONFIGURATION.themeColor.0]" cap="ROUND" thickness="40" />--> <Variant mode="AMBIENT" target="alpha" value="255" />
<!-- </Arc>--> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT]" />
<!-- </PartDraw>--> </PartImage>
<PartDraw x="0" y="0" height="450" width="450"> <PartImage x="21" y="44" width="18" height="18" tintColor="#66000000" alpha="255">
<Arc direction="COUNTER_CLOCKWISE" startAngle="88" endAngle="-88" centerX="225" centerY="225" width="450" height="450"> <Variant mode="AMBIENT" target="alpha" value="0" />
<!-- [COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE]+[HOUR_0_23_MINUTE]--> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
<!-- [COMPLICATION.RANGED_VALUE_MAX]/1440*360/2 --> </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>
<!-- <Transform target="startAngle" value="([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE])/1440*360" />--> <Condition>
<!-- <Transform target="endAngle" value="([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360" />--> <Expressions>
<Expression name="monochromatic_both_labels">
<Transform target="startAngle" value="(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)" /> <![CDATA[([COMPLICATION.TEXT] != null && [COMPLICATION.TITLE] != null)]]>
<Transform target="endAngle" value="(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)" /> </Expression>
<Stroke color="#ff97904a" cap="BUTT" thickness="450" /> </Expressions>
</Arc> <!--
</PartDraw> Both Title and Text are present, show title above text.
</Group> -->
<PartText height="50" width="430" x="0" y="300"> <Compare expression="monochromatic_both_labels">
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />--> <PartText x="0" y="32" width="60" height="20" alpha="0">
<Text> <Variant mode="AMBIENT" target="alpha" value="255" />
<Font family="roboto" size="30" color="#ffe2d86f"> <Text align="CENTER" ellipsis="TRUE">
<Template><![CDATA[ %s,%s %s %s %s (%s %s) ]]> <Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
<Parameter expression="round(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)"/> <Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
<Parameter expression="round(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)"/> </Template>
<Parameter expression="[COMPLICATION.TEXT]"/> </Font>
<Parameter expression="[WEATHER.IS_DAY]"/> </Text>
<Parameter expression="[WEATHER.IS_AVAILABLE]"/> </PartText>
<Parameter expression="round([COMPLICATION.RANGED_VALUE_VALUE])"/> <PartText x="0" y="20" width="60" height="20" alpha="0">
<Parameter expression="round([COMPLICATION.RANGED_VALUE_MAX])"/> <Variant mode="AMBIENT" target="alpha" value="255" />
</Template> <Text align="CENTER" ellipsis="TRUE">
</Font> <Font family="SYNC_TO_DEVICE" size="16" weight="NORMAL" slant="NORMAL" color="#66000000">
</Text> <Template>%s<Parameter expression="[COMPLICATION.TEXT]"/>
</PartText> </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> </Compare>
<Compare expression="valueIsntBlankAndIsNotDaytime"> <!--
<Group name="ranged_value_ring" x="0" y="0" width="450" height="450" alpha="255"> Image is present, but no text or title, so show the image centrally
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />--> in the complication, larger then when the text or title is available
<!-- <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">--> <Compare expression="rangedValue_image_noTextNorTitle">
<!-- <Stroke color="[CONFIGURATION.themeColor.0]" cap="ROUND" thickness="40" />--> <Condition>
<!-- </Arc>--> <Expressions>
<!-- </PartDraw>--> <Expression name="monochromatic_ambientImage">
<PartDraw x="0" y="0" height="450" width="450"> <![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] != null]]>
<Arc direction="CLOCKWISE" startAngle="88" endAngle="-88" centerX="225" centerY="225" width="450" height="450"> </Expression>
<!-- [COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE]+[HOUR_0_23_MINUTE]--> <Expression name="monochromatic_noAmbientImage">
<!-- [COMPLICATION.RANGED_VALUE_MAX]/1440*360/2 --> <![CDATA[[COMPLICATION.MONOCHROMATIC_IMAGE] != null && [COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT] == null]]>
</Expression>
<!-- <Transform target="startAngle" value="([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]-[COMPLICATION.RANGED_VALUE_VALUE])/1440*360" />--> </Expressions>
<!-- <Transform target="endAngle" value="([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360" />--> <Compare expression="monochromatic_ambientImage">
<PartImage x="30" y="30" width="25" height="25" tintColor="#66000000" alpha="0">
<Transform target="startAngle" value="(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)" /> <Variant mode="AMBIENT" target="alpha" value="255" />
<Transform target="endAngle" value="(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)" /> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE_AMBIENT]" />
<Stroke color="#6697904a" cap="BUTT" thickness="450" /> </PartImage>
</Arc> <PartImage x="30" y="30" width="25" height="25" tintColor="#66000000">
</PartDraw> <Variant mode="AMBIENT" target="alpha" value="0" />
</Group> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
<PartText height="50" width="430" x="0" y="300"> </PartImage>
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />--> </Compare>
<Text> <Compare expression="monochromatic_noAmbientImage">
<Font family="roboto" size="30" color="#66ff0000"> <PartImage x="30" y="30" width="25" height="25" tintColor="#66000000" alpha="0">
<Template><![CDATA[ %s,%s %s %s %s (%s %s) ]]> <Variant mode="AMBIENT" target="alpha" value="255" />
<Parameter expression="round(([HOUR_0_23_MINUTE]*60-[COMPLICATION.RANGED_VALUE_MAX]+[COMPLICATION.RANGED_VALUE_VALUE])/1440*360)"/> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
<Parameter expression="round(([COMPLICATION.RANGED_VALUE_VALUE]+([HOUR_0_23_MINUTE]*60))/1440*360)"/> </PartImage>
<Parameter expression="[COMPLICATION.TEXT]"/> <PartImage x="30" y="30" width="25" height="25" tintColor="#66000000">
<Parameter expression="[WEATHER.IS_DAY]"/> <Variant mode="AMBIENT" target="alpha" value="0" />
<Parameter expression="[WEATHER.IS_AVAILABLE]"/> <Image resource="[COMPLICATION.MONOCHROMATIC_IMAGE]" />
<Parameter expression="round([COMPLICATION.RANGED_VALUE_VALUE])"/> </PartImage>
<Parameter expression="round([COMPLICATION.RANGED_VALUE_MAX])"/> </Compare>
</Template> </Condition>
</Font>
</Text>
</PartText>
</Compare> </Compare>
</Condition> </Condition>
</Complication> </Complication>
</ComplicationSlot> </ComplicationSlot>
<Group height="450" name="Root" width="450" x="0" y="0">
<!-- <AnalogClock x="0" y="0" width="450" height="450">--> <ComplicationSlot
<!-- &lt;!&ndash;<Variant mode="AMBIENT" target="alpha" value="192" />&ndash;&gt;--> x="388" y="195"
<!-- &lt;!&ndash; Shadows &ndash;&gt;--> width="60" height="60"
<!-- <HourHand resource="hour" x="220" y="55" width="20" height="190" pivotX="0.5"--> slotId="1"
<!-- pivotY="0.92105263157" tintColor="[CONFIGURATION.themeColor.4]">--> name="right_complication" displayName="Right"
<!-- <Variant mode="AMBIENT" target="alpha" value="0" />--> supportedTypes="RANGED_VALUE">
<!-- </HourHand>--> <!--
<!-- &lt;!&ndash; Main hands &ndash;&gt;--> There is no guarantee that the primaryProvider component name is
<!-- <HourHand resource="hour" x="215" y="50" width="20" height="190" pivotX="0.5"--> available on the device. Therefore defaultSystemProvider is mandatory in
<!-- pivotY="0.92105263157" tintColor="[CONFIGURATION.themeColor.0]">--> DefaultSystemProvider, to provide a fallback.
<!-- </HourHand>--> System providers are listed here: https://developer.android.com/reference/android/support/wearable/complications/SystemProviders.html
<!-- </AnalogClock>--> -->
<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:
<!-- <Group x="65" y="65" width="320" height="320" scaleX="0.95" scaleY="0.95" name="minutes" alpha="255">--> - Text
<!-- <Transform target="angle" value="[SECOND] * 15">--> - Title
<!-- <Animation duration="1" angleDirection="CLOCKWISE" />--> - Monochromatic Image
<!-- </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"> (Note that although AndroidX RangedValueComplicationData supports
<!-- For further attributes see: containing SmallImage, Watch Face format does not expose these, so you
https://developer.android.com/training/wearables/wff/clock/time-text --> should use Monochromatic Image for icons.)
<!-- 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"> At least one of these must be set. This condition and set of expressions
<Transform target="angle" value="([SECONDS_IN_DAY]*0.0041667+180)"> evaluates which combination has been provided by the data source and
<Animation duration="1" angleDirection="CLOCKWISE" /> renders accordingly.
</Transform> -->
<PartImage x="0" y="0" width="100" height="224" alpha="255" name="HourHand2"> <Complication type="RANGED_VALUE">
<Image resource="hour_hand" /> <Group name="ranged_value_ring_ambient" x="0" y="0" width="60" height="60" alpha="0">
</PartImage> <Variant mode="AMBIENT" target="alpha" value="255" />
</Group> <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>
<Group height="450" name="Wrapper" width="450" x="15" y="0"> <Condition>
<Expressions>
<!-- <PartDraw x="0" y="0" width="450" height="450"--> <Expression name="monochromatic_both_labels">
<!-- pivotX="115" pivotY="115" angle="0" alpha="255"--> <![CDATA[([COMPLICATION.TEXT] != null && [COMPLICATION.TITLE] != null)]]>
<!-- name="HourHand3" >--> </Expression>
<!-- <Ellipse height="120" width="100" x="15" y="15">--> </Expressions>
<!-- <Stroke color="#ff00ff00" thickness="10.0"/>--> <!--
<!-- <Fill color="#ff00ff00"/>--> Both Title and Text are present, show title above text.
<!-- </Ellipse>--> -->
<!-- </PartDraw>--> <Compare expression="monochromatic_both_labels">
<PartText x="0" y="32" width="60" height="20" alpha="0">
<!-- <PartText height="50" width="430" x="0" y="330">--> <Variant mode="AMBIENT" target="alpha" value="255" />
<!-- <Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/>--> <Text align="CENTER" ellipsis="TRUE">
<!-- <Text>--> <Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
<!-- <Font family="roboto" size="36" color="#66ffffff">--> <Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
<!-- <Template><![CDATA[ %d s %s h %s sd %s sdh ]]>--> </Template>
<!-- <Parameter expression="[SECOND]"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;--> </Font>
<!-- <Parameter expression="[HOUR_0_23_MINUTE]"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;--> </Text>
<!-- <Parameter expression="[SECONDS_IN_DAY]"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;--> </PartText>
<!-- <Parameter expression="([SECONDS_IN_DAY]*0.0041667+180)"/> &lt;!&ndash; [DAY_OF_WEEK_F] &ndash;&gt;--> <PartText x="0" y="20" width="60" height="20" alpha="0">
<!-- </Template>--> <Variant mode="AMBIENT" target="alpha" value="255" />
<!-- </Font>--> <Text align="CENTER" ellipsis="TRUE">
<!-- </Text>--> <Font family="SYNC_TO_DEVICE" size="16" weight="NORMAL" slant="NORMAL" color="#66000000">
<!-- </PartText>--> <Template>%s<Parameter expression="[COMPLICATION.TEXT]"/>
<PartText height="50" width="430" x="0" y="365"> </Template>
<Localization calendar="GREGORIAN" timeZone="SYNC_TO_DEVICE"/> </Font>
<Text> </Text>
<Font family="roboto" size="36" color="#66ffffff"> </PartText>
<Template><![CDATA[ %s %s ]]> <PartText x="0" y="32" width="60" height="20">
<Parameter expression="[MONTH_F]"/> <Variant mode="AMBIENT" target="alpha" value="0" />
<Parameter expression="[DAY_Z]"/> <Text align="CENTER" ellipsis="TRUE">
</Template> <Font family="SYNC_TO_DEVICE" size="10" weight="NORMAL" slant="NORMAL" color="#66000000">
</Font> <Template>%s<Parameter expression="[COMPLICATION.TITLE]"/>
</Text> </Template>
</PartText> </Font>
</Group> </Text>
</Group> </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> </Scene>
</WatchFace> </WatchFace>