text/plain
•
1.82 KB
•
68 lines
#include "settings_screen.h"
#include <stdlib.h>
#include "../playlist.h"
#include "../topbar.h"
#include "bookmark.h"
static void menu_cancel_cb(lv_event_t* e) {
(void)e;
navigate_back(SCREEN_HOME);
}
static void back_cb(lv_event_t* e) {
if (lv_event_get_code(e) == LV_EVENT_CLICKED) {
navigate_back(SCREEN_HOME);
}
}
static void do_reset_bookmarks(void) {
bookmark_clear_all();
playlist_clear();
playlist_save();
}
static void reset_clicked_cb(lv_event_t* e) {
if (lv_event_get_code(e) == LV_EVENT_CLICKED) {
navigate_to_confirm("Clear bookmarks?", do_reset_bookmarks,
SCREEN_SETTINGS);
}
}
ui_state_t setup_settings_screen(lv_obj_t* parent) {
settings_screen_state_t* state = calloc(1, sizeof(settings_screen_state_t));
state->list = bvs_list_create(parent);
topbar_set_title("Settings");
lv_obj_t* wifi_btn = bvs_list_add_button(state->list, NULL, "WiFi");
lv_obj_t* reset_btn =
bvs_list_add_button(state->list, NULL, "Reset Bookmarks");
lv_obj_add_event_cb(reset_btn, reset_clicked_cb, LV_EVENT_CLICKED, NULL);
lv_obj_t* back_btn = bvs_list_add_button(state->list, NULL, "Back");
lv_obj_add_event_cb(back_btn, back_cb, LV_EVENT_CLICKED, NULL);
lv_group_add_obj(lv_group_get_default(), wifi_btn);
lv_group_add_obj(lv_group_get_default(), reset_btn);
lv_group_add_obj(lv_group_get_default(), back_btn);
lv_obj_add_event_cb(wifi_btn, menu_cancel_cb, LV_EVENT_CANCEL, NULL);
lv_obj_add_event_cb(reset_btn, menu_cancel_cb, LV_EVENT_CANCEL, NULL);
lv_obj_add_event_cb(back_btn, menu_cancel_cb, LV_EVENT_CANCEL, NULL);
lv_group_focus_obj(reset_btn);
return (ui_state_t){.type = SCREEN_SETTINGS, .settings = state};
}
void free_settings_screen(settings_screen_state_t* state) {
if (!state) {
return;
}
free(state);
}
void update_settings_screen(settings_screen_state_t* state) {
(void)state;
}