Conditionals work in creator and in Watchbox but not on watch or watch preview

Hello,

I am trying to center a date created using images for each number because I want a specific typeface. I want the entire date string centered on the watch face. The date string can take four forms: m/d, m/dd, mm/d, mm/dd.

For example, it could be 1/1, 1/10, 10/1 or 10/10. I want that whole “string” centered.

For just the ones digit of the month, I’ve calculated that it should have an x position of:

m/d: 142
m/dd: 132
mm/d: 152
mm/dd: 142

My statement for this is:

$#DM#<10&&#Dd#<10?142:$$#DM#>9&&#Dd#<10?152:$$#DM#<10&&#Dd#>9?132:142$

When I look at this on the desktop creator for Windows, or the web based creator, the ones digit shows up in the right place.

When I open the Facer app on my Android phone and go to the Watchbox, then My Designs, it shows the preview with the ones digit in the right place.

When I tap on it in Watchbox and it goes to the preview, the ones digit no longer shows at all. I’m assuming it’s because the statement fails to compute and returns 0 (I have a circular watch face).

When I send it to my watch (Fossil Gen 5e running WearOS), I see the same thing as I see in the preview after tapping in Watchbox–the ones digit is in the wrong place.

I’ve seen while searching that the nested conditionals like I’m using only work when using equals, especially on WearOS. I’m not so sure about that as I have my watch battery and phone battery centered using statements like:

$#BLN#==100?228.5:$$#BLN#>10?218.75:209$

But that’s not what this post is about. Why is it that a statement will work in the creator, but not on my watch? This is not the first time I’ve come across this. I’ve found that conditionals with = work on creator, but not my watch. I have to use == to make it work on my watch.

Why the difference?

Thanks
Rick

Hi Rick, I had odd results for some of my faces and found that using brackets to separate elements of the conditionals helped, for example one of mine was
$#DD#<=197?(197-#DD#):(198-#DD#+365)$
Hope this helps
Andy

Andy, thanks for your reply. I found something similar and ended up with this:

$((floor(log10(#DM#))*2)+floor(log10(#Dd#)))==0?178:(((floor(log10(#DM#))*2)+floor(log10(#Dd#)))==1?187.5:(((floor(log10(#DM#))*2)+floor(log10(#Dd#)))==2?187.5:197.5))$

Note that by using the log10 function I was able to get rid of both the non-equals condition and the and conditions, so maybe that has something to do with it. But I also found that using the parenthesis as you suggested instead of the $$ helped, too.

But the question remains, why do some things work in the creator, but not on the watch. If it works in one place, it should work in the other, and if it doesn’t work in one place, it shouldn’t work in the other. It seems kind of basic to me that it would function that way.

It is odd that its works in creator but not on the watch. Probably this is because Creator is an emulator and not the true watch OS.

True. The App itself is weird, too. It’s showing the watch rendered the same way as the creator in one place and the same way as the watch in another. I can’t believe they’d have two emulators in the same app.