}
void app_setup() {
+ static bool is_first_launch = true;
+
+ if (is_first_launch) {
+ for(uint8_t i = 0; i < LAUNCHER_NUM_WIDGETS; i++) {
+ widget_contexts[i] = NULL;
+ is_first_launch = false;
+ }
+ }
if (launcher_state.screensaver_ticks != -1) {
watch_disable_extwake_interrupt(BTN_ALARM);
watch_rtc_disable_alarm_callback();
void simple_clock_widget_setup(LauncherSettings *settings, void ** context_ptr) {
(void) settings;
// the only context we need is the timestamp of the previous tick.
- *context_ptr = malloc(sizeof(uint32_t));
+ if (*context_ptr == NULL) *context_ptr = malloc(sizeof(uint32_t));
}
void simple_clock_widget_activate(LauncherSettings *settings, void *context) {
void preferences_widget_setup(LauncherSettings *settings, void ** context_ptr) {
(void) settings;
- *context_ptr = malloc(sizeof(uint8_t));
+ if (*context_ptr == NULL) *context_ptr = malloc(sizeof(uint8_t));
}
void preferences_widget_activate(LauncherSettings *settings, void *context) {
void set_time_widget_setup(LauncherSettings *settings, void ** context_ptr) {
(void) settings;
- *context_ptr = malloc(sizeof(uint8_t));
+ if (*context_ptr == NULL) *context_ptr = malloc(sizeof(uint8_t));
}
void set_time_widget_activate(LauncherSettings *settings, void *context) {