|
@@ -22,6 +22,58 @@ void flip_world_show_submenu()
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+bool alloc_view_loader(void *context)
|
|
|
|
|
+{
|
|
|
|
|
+ FlipWorldApp *app = (FlipWorldApp *)context;
|
|
|
|
|
+ if (!app)
|
|
|
|
|
+ {
|
|
|
|
|
+ FURI_LOG_E(TAG, "FlipWorldApp is NULL");
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!app->view_loader)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!easy_flipper_set_view(&app->view_loader, FlipWorldViewLoader, loader_draw_callback, NULL, callback_to_submenu, &app->view_dispatcher, app))
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ loader_init(app->view_loader);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (!app->widget_result)
|
|
|
|
|
+ {
|
|
|
|
|
+ if (!easy_flipper_set_widget(&app->widget_result, FlipWorldViewWidgetResult, "", callback_to_submenu, &app->view_dispatcher))
|
|
|
|
|
+ {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void free_view_loader(void *context)
|
|
|
|
|
+{
|
|
|
|
|
+ FlipWorldApp *app = (FlipWorldApp *)context;
|
|
|
|
|
+ if (!app)
|
|
|
|
|
+ {
|
|
|
|
|
+ FURI_LOG_E(TAG, "FlipWorldApp is NULL");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ // Free Widget(s)
|
|
|
|
|
+ if (app->widget_result)
|
|
|
|
|
+ {
|
|
|
|
|
+ view_dispatcher_remove_view(app->view_dispatcher, FlipWorldViewWidgetResult);
|
|
|
|
|
+ widget_free(app->widget_result);
|
|
|
|
|
+ app->widget_result = NULL;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Free View(s)
|
|
|
|
|
+ if (app->view_loader)
|
|
|
|
|
+ {
|
|
|
|
|
+ view_dispatcher_remove_view(app->view_dispatcher, FlipWorldViewLoader);
|
|
|
|
|
+ loader_free_model(app->view_loader);
|
|
|
|
|
+ view_free(app->view_loader);
|
|
|
|
|
+ app->view_loader = NULL;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// Function to allocate resources for the FlipWorldApp
|
|
// Function to allocate resources for the FlipWorldApp
|
|
|
FlipWorldApp *flip_world_app_alloc()
|
|
FlipWorldApp *flip_world_app_alloc()
|
|
|
{
|
|
{
|
|
@@ -36,16 +88,6 @@ FlipWorldApp *flip_world_app_alloc()
|
|
|
return NULL;
|
|
return NULL;
|
|
|
}
|
|
}
|
|
|
view_dispatcher_set_custom_event_callback(app->view_dispatcher, custom_event_callback);
|
|
view_dispatcher_set_custom_event_callback(app->view_dispatcher, custom_event_callback);
|
|
|
- // Main view
|
|
|
|
|
- if (!easy_flipper_set_view(&app->view_loader, FlipWorldViewLoader, loader_draw_callback, NULL, callback_to_submenu, &app->view_dispatcher, app))
|
|
|
|
|
- {
|
|
|
|
|
- return NULL;
|
|
|
|
|
- }
|
|
|
|
|
- loader_init(app->view_loader);
|
|
|
|
|
- if (!easy_flipper_set_widget(&app->widget_result, FlipWorldViewWidgetResult, "", callback_to_submenu, &app->view_dispatcher))
|
|
|
|
|
- {
|
|
|
|
|
- return NULL;
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
// Submenu
|
|
// Submenu
|
|
|
if (!easy_flipper_set_submenu(&app->submenu, FlipWorldViewSubmenu, VERSION_TAG, callback_exit_app, &app->view_dispatcher))
|
|
if (!easy_flipper_set_submenu(&app->submenu, FlipWorldViewSubmenu, VERSION_TAG, callback_exit_app, &app->view_dispatcher))
|
|
@@ -90,20 +132,8 @@ void flip_world_app_free(FlipWorldApp *app)
|
|
|
view_dispatcher_remove_view(app->view_dispatcher, FlipWorldViewGameSubmenu);
|
|
view_dispatcher_remove_view(app->view_dispatcher, FlipWorldViewGameSubmenu);
|
|
|
submenu_free(app->submenu_game);
|
|
submenu_free(app->submenu_game);
|
|
|
}
|
|
}
|
|
|
- // Free Widget(s)
|
|
|
|
|
- if (app->widget_result)
|
|
|
|
|
- {
|
|
|
|
|
- view_dispatcher_remove_view(app->view_dispatcher, FlipWorldViewWidgetResult);
|
|
|
|
|
- widget_free(app->widget_result);
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- // Free View(s)
|
|
|
|
|
- if (app->view_loader)
|
|
|
|
|
- {
|
|
|
|
|
- view_dispatcher_remove_view(app->view_dispatcher, FlipWorldViewLoader);
|
|
|
|
|
- loader_free_model(app->view_loader);
|
|
|
|
|
- view_free(app->view_loader);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ free_view_loader(app);
|
|
|
|
|
|
|
|
free_all_views(app, true, true);
|
|
free_all_views(app, true, true);
|
|
|
|
|
|