text/plain
•
1.57 KB
•
66 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 wifi_clicked_cb(lv_event_t* e) {
if (lv_event_get_code(e) == LV_EVENT_CLICKED) {
navigate_to(SCREEN_WIFI);
}
}
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_nav_button(
state->list, NULL, "WiFi", wifi_clicked_cb, NULL, menu_cancel_cb);
bvs_list_add_nav_button(state->list, NULL, "Reset Bookmarks",
reset_clicked_cb, NULL, menu_cancel_cb);
bvs_list_add_nav_button(state->list, NULL, "Back", back_cb, NULL,
menu_cancel_cb);
lv_group_focus_obj(wifi_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;
}