I exposed the last style via the settings.xml as well. So it is visible in the UI from the editor. What I see is that *after* I quit the editor and than reopen the editor the value gets changed in the UI and in the debug console.
When I keep the editor open it seems to cache the data. You should try getting the value with the "onUpdate()" call in the view and see what comes out there. But I'm not sure how you go about that.
onSettingsChanged - the thing that responds to the change of your settings.

So it means you have to have other place to read properties. Why? Because user can change settings for your WF when other is selected.
My case is a bit complicated because I have to read resource when user change some settings but

So I can't do it during low power and I'm not sure when system calls onSettingsChanged (maybe is asynchronous). Because doc is not clear (for many thing), just in case, I read properties only in high power.
I dunno. I'm as puzzled as you are. I would file a bug for this and see what Garmin says about it. Could also be a simulator bug, but I have noooo clue.
Low power and onPartialUpdate are two very different things You can access the file system when a watch face is in low power, but can't in onPartialUpdate.
Nothing surprises me anymore :)
But you can observe how settings are change
1. run memory monitor and look into branch

2. change settings, save, refresh monitor and look again

lastStyle is your internal property so use storage to save it and you save memory
Well. It is a good way to fix this issue. And indeed it will save memory.
Thanks.
But I am still curious about the culprit for my demo project.
setValue seems take effect.
But I only get the old value when another onSettingsChanged is called.
XD.
before reporting bug, make a test moving this code to any initialise
there are new functions connected with properties so maybe values are overwritten after onSettingsChanged