static LiveValue clockTimeLiveValue() { SimpleLiveValue lv = stringLiveValue(); clockTimeLiveValue_update(new WeakReference(lv)); ret lv; } svoid clockTimeLiveValue_update(final WeakReference> lvRef) { SimpleLiveValue lv = lvRef!; if (lv == null) ret; lv.set(localTime_24()); doLater((timeToNextLocalMinute()+100) % 60000, r { clockTimeLiveValue_update(lvRef) }); }