Interactive (Tappable) States

Daniel Krüger created Modern_Dark and it can be changed from light to dark with a tap of the screen: Daniel Krüger - Modern_Dark - watch face for Apple Watch, Samsung Gear S3, Huawei Watch, and more - Facer

Then I found Christopher’s Digiloge with the digital to analog switch using interactive taps: Christopher - Digiloge - watch face for Apple Watch, Samsung Gear S3, Huawei Watch, and more - Facer

How is this done? I see there’s the stRand(min,max) function that performs similarly, but because it triggers an RNG, the swaps are not consistent (let’s say, between two options). Is there something I’m missing!?

Thanks in advance,


Anyone know how to “unrandomize” the randomizer function of this expression? If there’s no linear version, then maybe that might do it!

1 Like

This question definitely needs an answer. We have interactive touches, but there’s no reliable way to implement it in the documentation.

1 Like

I’m curious about this as well. I’m new to designing watchfaces and may just be overlooking something, but I’ve been doing some experimenting with one of my watchfaces, which can be viewed here. I’m wanting the end-users to be able to tap on the watch and change the watchface color to whichever color they want from the colors I’ve made available to them. I realize it’d be far easier to just create the individual colored watchfaces as separate designs, but if it were me and I wanted blue one day and orange the next, I’d prefer to have the option to change colors in a single design by tapping it rather than having to change the watchface altogether.

As of this post, I’ve uploaded 5 separate images (each with their own color), and in each image’s transparency setting I’ve used this conditional (changing “=1” so each picture has its own number):

If I’m wrong, then someone please help me out, but this is the way I interpret this conditional:

  • (stRand(1,5))
    When the watchface is tapped, one of five possible random numbers is generated.
  • =1?100:0
    If the number generated is equal to 1, then transparency = 100%; otherwise, transparency = 0%.

What I have observed thus far isn’t very promising for what I’m trying to accomplish, and it appears there are two things I don’t like about this conditional. One is what @apalileo said about how “the swaps [made by the stRand(min,max) function] are not consistent”. Instead of accomplishing what I mentioned above about the end-users being able to tap and select the color they want, I’m finding that the random number generator somehow generates the same number consecutively multiple times before it will finally generate another number. In other words, if the current image is on orange and I want to change it to another color, then I tap on the watch to change it. However, instead of it changing to another color, it stays on orange for, say, 3 more taps before it finally changes to another color. The second thing I’ve noticed that I don’t like about this conditional is that the watch is on one color when it’s active, but then when it comes out of dim mode it’s on another color. So again, if I’m wanting my end-users to be able to choose a color that they like, going to dim mode seems to automatically change the color even without it being tapped, thus making their color choice irrelevant.

1 Like

@gavin ~ can you help with this or maybe point someone else who can in this direction please?

@sapph1retw1n Interesting observation! I didn’t even consider the waking states of the randomization. I was so busy tapping at the active screen, I never let it dim to notice this. Your experience with 5 variants is similar to what I experienced with just two. I’d tap the screen and have the same integer pop up several times before switching. My record taps is eight. Eight times I got one option consecutively before it switched to the other. I understand with two options it’s a 50/50, so eight consecutive results is not entirely outside of the possibilities, especially if you increase the size of the sample (100 taps, 500 taps and so on).

Hopefully some insight will be provided soon!

@apalileo Honestly, I didn’t even know stRand considered waking states too. Based on the Wiki provided, I thought it was only supposed to be “active” when tapped since the description for it says that it’s “triggered every time the watchface goes between tappable active states”. So either the description is only partially complete or the stRand function isn’t working properly.

Interestingly enough, this still appears to be an issue. the WakeRand feature will work just fine, and so will the random number generator (but of course that just cycles at top speed). I have not figured out any way to get the stRand to actually produce anything other than a single number. I have a specific need for this in a design I’m doing, and they’re even advertising new interactive faces on the main page, but I gues shaven’t done anything about this feature for two years.

Interactivity is premium designer only. Sorry. As well themeable watchfaces and app shortcuts. Greeting
PS. Exactly what do you want to do? Maybe we can help…

I actually just want it to literally generate a random number (like between 1 and 20) when you tap the screen. So are you saying that the stRand expression that is listed in the Docs (Expressions | Facer Documentation), is only available for premium designers? Why would they put it on the documents for regular users then?

Here’s where I’ve been testing the three random number generators. On the emulator, and on my watch, the stRand only seems to generate a single number upon loading, and does not change no matter what state the watch is in. So my real question is, what is that expression supposed to be for? I can certainly do what I want for now by using the wakeRand expression, but optimally I would want to be able to tap it.

No, the tap action is premium only. You can work with any random generator but theres only that options…