Watch Face Format - Preview Icon Issue

Hey there, I hope it’s fine that I report an issue which I’m having with the watch face format! Let me get straight to the point… Some how the “preview icon” (see code below) is causing my watch face to crash

<ListConfiguration id="marks" displayName="@string/marks" defaultValue="0">
	<ListOption id="0" displayName="@string/mark_0" icon="@drawable/mark_icon_0" />
	<ListOption id="1" displayName="@string/mark_1" icon="@drawable/mark_icon_1" />
	<ListOption id="2" displayName="@string/mark_2" icon="@drawable/mark_icon_2" />
	<ListOption id="3" displayName="@string/mark_3" icon="@drawable/mark_icon_3" />
</ListConfiguration>

I’ve tested the watch face on a Pixel Watch 2, Galaxy Watch 6 and an emulator. It works perfectly fine on the Pixel Watch, but it crashes on both the GW 6 and the emulator. Here is a screenshot of the emulator:

Screenshot_20231217_140306

When I remove the icon it works without any issues:

<ListConfiguration id="marks" displayName="@string/marks" defaultValue="0">
	<ListOption id="0" displayName="@string/mark_0" >
	<ListOption id="1" displayName="@string/mark_1" />
	<ListOption id="2" displayName="@string/mark_2" />
	<ListOption id="3" displayName="@string/mark_3" />
</ListConfiguration>

The images I use are 256px*256px PNGs…

Has anyone else faced this issue yet? If possible, could you try to recreate it?

I have no idea what to do, so any help is appreciated :slight_smile:

Thanks in advance!

Hi. First of all, remove all @string and @drawable notations, they are not needed.

Secondly, try re-creating preview images (open in some graphics editor and just save again).

Then uninstall watch face and install again.

This should help

Tomas

Removing the @string and @drawable notations fixed it! Apologies for the oversight on my end.

Thanks a bunch Tomas :slight_smile:

1 Like

I am also having problems with preview icons. Without the [icon=“image_id”] tag the watch face works fine but the user configuration has no image in Samsung’s companion app. If I add an icon tag referring to a png in the drawable directory, the emulator fails as above. If I deliberately add a non-existant image_id it again works on the emulator (no icon in companion app). I assume this has something to do with my icon drawables not conforming to a standard and causing the crash?

I have tried your recommendations, have tried with 450x450px png, 256x256px png and 454x454px png, 100x100px png and 100x100px bmp.

Do the icon drawables need to be something specific in order for this to work?

    <UserConfigurations>
        <ListConfiguration id="user_config" displayName="digital_display" defaultValue="digital_none">
            <ListOption id="digital_none" displayName="display_none" icon="image_id" />
            <ListOption id="digital_12" displayName="display_12" />
            <ListOption id="digital_ampm" displayName="display_ampm" />
            <ListOption id="digital_mil" displayName="display_mil" />
            <ListOption id="digital_24" displayName="display_24" />
            <ListOption id="digital_step" displayName="display_step" />
            <ListOption id="digital_heart" displayName="display_heart" />
            <ListOption id="digital_note" displayName="display_note" />
            <ListOption id="digital_date" displayName="display_date" />
        </ListConfiguration>
    </UserConfigurations>

Hi, 256px * 256px PNGs for the preview icon should be fine. However, as Tomas suggested, try re-creating them in a graphics editor—I used Figma.

As explained in the documentation here (refer to the comments in the code example) the drawable folder should be named “drawable-nodpi”.

Consider naming the IDs of the ListOptions as id=“0”, id=“1”, and so on. This may or may not cause an issue; I’m not entirely sure!

Additionally, avoid naming the images simply with a number, like “1.png”, as it somehow lead to crashes in my experience as well…

1 Like

Quick note, do you have these drawables in res/drawable or drawable-nodpi?

Size should be always under 256x256

1 Like

Thank you both so much for your help. It is all working perfectly now.

I had previously tried re-saving images (Paint3D) and using the id=“0”, id=“1” format but to no avail.

My drawables were NOT in the drawable-nodpi so I made that change.

For other people having a similar problem please note that if you add an icon for one Option, you must add an icon for ALL Options. When testing using an image for one option it would fail but after adding an icon tag for every option and moving images to the drawable-nodpi folder she works like a charm.

Thanks again!