A collection of arithmetic functions and operations, which other Watch Face Format elements use to resolve real-time attribute values and gyroscopic effects.
Introduced in Wear OS 4.
Example
An example expression for rotating a value up to 5 degrees in either direction, based on the $ x $-value of the Wear OS device's accelerometer:
(5/90)*clamp([ACCELEROMETER_ANGLE_X],0,90) + (-5/90)*clamp([ACCELEROMETER_ANGLE_X],-90,0)
...which is equivalent to the following mathematical expression, where $ \theta_x $ represents the accelerometer angle in the $ x $-direction:
Functions
The Watch Face Format recognizes the following string values as functions:
round()
- Converts the input value to a floating-point value, then performs the standard
round()
mathematical operation. floor()
- Performs the standard
floor()
mathematical operation. ceil()
- Performs the standard
ceil()
mathematical operation. fract()
- Returns the fractional part of the input value; that is, the part of the floating-point value that appears to the right of the decimal point.
sin()
- Performs the standard
sin()
trigonometric operation. cos()
- Performs the standard
cos()
trigonometric operation. tan()
- Performs the standard
tan()
trigonometric operation. asin()
- Performs the standard
asin()
trigonometric operation. The returned value is always in the range $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. acos()
- Performs the standard
acos()
trigonometric operation. The returned value is always in the range $ [0.0, \pi] $. atan()
- Performs the standard
atan()
trigonometric operation. The returned value is always in the range $ [-\frac{\pi}{2}, \frac{\pi}{2}] $. abs()
- Converts the input value to a floating-point value, then performs the standard
abs()
mathematical operation. clamp(,,)
- Converts the input values to floating-point values, then performs the
clamp()
Jetpack operation to fit the first value in the range defined by the second and third values. rand(,)
Generates a random floating-point value that fulfills the following conditions at the same time:
- Greater than or equal to the first value.
- Less than or equal to the second value.
Assumes that the first value is less than or equal to the second value.
log()
Performs the standard base-$ e $
log()
mathematical operation.log2()
Simulates a base-2 logarithm. This value is calculated by dividing the base-10 logarithm (
log10
of the input value) by the base-10 logarithm of $ 2 $.log10()
Performs the standard base-10
log10
mathematical operation.sqrt()
Performs the standard
sqrt()
mathematical operation.cbrt()
Performs the standard
cbrt()
mathematical operation.exp()
Performs the standard
exp()
mathematical operation.expm1()
Directly calls the
expm1()
mathematical operation if the input value is $ 1 $. For any other input value, simulates the function by performing the standardexp()
mathematical operation, then subtracting 1.deg()
Performs the standard
toDegrees()
mathematical operation. $ \frac{\pi}{2} $ is defined as 90 degrees, and $ \pi $ is defined as 180 degrees.rad()
Performs the standard
toRadians()
mathematical operation. 90 degrees is defined as $ \frac{\pi}{2} $, and 180 degrees is defined as $ \pi $.pow(,)
Performs the standard
pow()
mathematical operation. The output value is always a floating-point number.numberFormat(,)
Applies the number format in the first value to the second value.
The first value can contain the following characters:
#
-- represents a numeric digit.,
-- represents a comma separator in large numbers..
-- represents a decimal point.
icuText()
Converts the input date format string to a pattern that matches the expected locale format. If the parent
PartText
element includes aLocalization
element, that locale's format is used. Otherwise, uses th Wear OS device's current locale.For example, if the device is being used in the United States, an input value of
EE, MMM d, yyyy h:mm a
yields the following output:Tue, Mar 14, 2023 1:59 PM
icuBestText()
Converts the input date format string to the current time whose pattern matches the expected format. If the parent
PartText
element includes aLocalization
element, that locale's format is used. Otherwise, uses the Wear OS device's current locale.For example, if the device is being used in the United States on March 14, 2023 at 1:59 PM, an input value of
yyyy MMM d EE a h:mm
yields the following output:Tue, Mar 14, 2023, 1:59 PM
subText(,,)
Extracts a substring from the first value. The second value indicates the 0-based index into the first value where the substring should begin. The third value indicates the 0-based index into the first value where substring extraction should stop ("from the second value up to, but not including, the third value").
Examples:
subText("abc def", 2, 5)
isc d
subText("abc def", 2, 7)
isc def
textLength()
Calculates the length of the input string.
Operators
The Watch Face Format recognizes the following string values as operators:
+
- Unary plus, or addition of multiple values. Supports both integers and floating-point values.
-
- Unary minus, or subtraction of multiple values. Supports both integers and floating-point values.
*
- Multiplication of multiple integer or floating-point values.
/
Division of 2 integer or floating-point values.
If division of 2 integers results in a non-integer value, the decimal part is preserved in the floating-point result. For example, $ \frac{1}{2} = 0.5 $.
In addition, the expression $ \frac{x}{0} $ is evaluated as
0
, where $ x $ is any integer.%
Modular division of 2 integer or floating-point values.
If both operands are integers, the result is the remainder from dividing the 2 values. For example, $ 19 \bmod 7 = 5 $.
If at least one operand is a floating-point number, the result is a floating-point equivalent of the remainder; for example: $ 19.0 \bmod 7 = 5.0 $.
~
Bitwise "not" operator. Several examples:
~1
is $ -2 $~0
is $ -1 $
!
Logical "not" operator, which supports double negatives. Several examples:
- $ !2 $ is
false
- $ !!0 $ is
true
|
Bitwise "or" operator. Supports more than 2 input values. Several examples:
- $ 1 | 0 = 1 $
- $ 1 | 2 | 4 = 7 $
||
- Logical "or" operator.
&
- Bitwise "and" operator. Supports exactly 2 input values.
&&
- Logical "and" operator.
(
- Open parenthesis. Used for changing the standard order of operations, where multiplication and division ordinarily take priority over addition and subtraction.
)
- Closed parenthesis. Used for changing the standard order of operations, where multiplication and division ordinarily take priority over addition and subtraction.
<
- The "less than" comparison operator. When comparing an integer value with its
floating-point equivalent, the result is
false
. <=
- The "less than or equal to" comparison operator. When comparing an integer
value with its floating-point equivalent, the result is
true
. >
- The "greater than" comparison operator. When comparing an integer value with
its floating-point equivalent, the result is
false
. >=
- The "greater than or equal to" comparison operator. When comparing an integer
value with its floating-point equivalent, the result is
true
. ?
and:
Provides support for ternary operations. The general format is as follows:
condition ? value_if_true : value_if_false
Supports nested ternary operations using parentheses.
,
Separates values in functions that take more than 1 argument.
"
When placed at the beginning and end of a value, indicates that the Watch Face Format should interpret the value as a string.
==
Compare for equality. When comparing an integer value with its floating-point equivalent, the result is
true
.!=
Compare for inequality. When comparing an integer value with its floating-point equivalent, the result is
false
.
Recommended for you
- Note: link text is displayed when JavaScript is off
- SourceType
- ListConfiguration
- PartText