Acknowledged
over 1 year ago

Face it not displaying complications with units UNIT_TEMPERATURE correctly

If I have a public complication published with UNIT_TEMPERATURE, I'd expect this to be converted and displayed depending on the watch setting for units -> Temperature. i.e. I expect that if I publish a value of 30, this would display as 30 if the watch is set to Celsius, or 86 if the watch is set to Fahrenheit. I'd also expect the appropriate unit abbreviation to be displayed next to the number.

For example, I'd expect to see something like 30°C or 86°F

However, the Face it watch face always displays this as just the number published without any abbreviation or conversion.

i.e. I see 30, irrespective of the temperature units and no unit abbreviation.

The documentation states a complication with specified units wil be displayed as, "A numerical value converted from the default units defined for the unit type to the system units with the appropriate unit abbreviation." This does not appear to be happening.

Tested with SDK 6.4.0 Connect IQ Store version 2.25

  • Hi

    This is pretty much what I have already:

        <complication id="0" access="public"
                      longLabel="@Strings.C1LongL"
                      shortLabel="@Strings.C1ShortL"
                      icon="@Drawables.C1Icon"
                      glancePreview="true">
            <faceIt defaultText="@Strings.C1Name" />
        </complication>

            var data = {
                :value => 30,
                :units => Complications.UNIT_TEMPERATURE
            };
            Complications.updateComplication(0, data);

    And this is what I see on the face it watch face and glance folder on my forerunner 265:

    So, the complication is set to 30 with units of Complications.UNIT_TEMPERATURE, so I'd expect face it watch face to display this as 30C or similar when the watch is set to Celsius, and if I change the setting to Fahrenheit, I'd expect it to be displayed as 86F or similar. Neither the face it watch face nor the glance folder seems to do this and always just display 30 without any unit abbreviation or conversion to the correct units.

    Am I misunderstanding? Is this working for you?

  • Hi John,

    We did some testing on this, and found that this works like you expect. Can you compare and see if this works for you?

    Complication:

    <complication id="1"            
      access="public"
      longLabel="@Strings.myLongLabel"
      shortLabel="@Strings.myShortLabel"
      icon="@Drawables.MyComplication0">
      <faceIt defaultText="0"/>
    </complication> 

    Code:

    var data1= {
      :value=> 20,
      :shortLabel=>"temp",
      :unit=>Complications.UNIT_TEMPERATURE
    };
    
    Complications.updateComplication(1, data1);