Merge branch 'ofwdev' into 420

This commit is contained in:
RogueMaster
2022-12-20 10:14:17 -05:00
5 changed files with 36 additions and 37 deletions
@@ -204,6 +204,8 @@ bool archive_scene_browser_on_event(void* context, SceneManagerEvent event) {
break;
case ArchiveBrowserEventFileMenuDelete:
if(archive_get_tab(browser) != ArchiveTabFavorites) {
scene_manager_set_scene_state(
archive->scene_manager, ArchiveAppSceneBrowser, SCENE_STATE_NEED_REFRESH);
scene_manager_next_scene(archive->scene_manager, ArchiveAppSceneDelete);
}
consumed = true;
+1 -1
View File
@@ -56,7 +56,7 @@ static void clock_render_callback(Canvas* canvas, void* ctx) {
31,
AlignLeft,
AlignCenter,
(data->datetime.hour > 12) ? "AM" : "PM");
(data->datetime.hour > 12) ? "PM" : "AM");
}
canvas_set_font(canvas, FontSecondary);
@@ -13,6 +13,8 @@
#define TAG "DesktopSrv"
#define CLOCK_APP EXT_PATH("/apps/Main/Clock.fap")
static void desktop_scene_main_new_idle_animation_callback(void* context) {
furi_assert(context);
Desktop* desktop = context;
@@ -61,6 +63,19 @@ static void desktop_switch_to_app(Desktop* desktop, const FlipperApplication* fl
}
#endif
static void desktop_scene_main_open_app_or_profile(Desktop* desktop, const char* path) {
do {
LoaderStatus status = loader_start(desktop->loader, FAP_LOADER_APP_NAME, path);
if(status == LoaderStatusOk) break;
FURI_LOG_E(TAG, "loader_start failed: %d", status);
status = loader_start(desktop->loader, "Passport", NULL);
if(status != LoaderStatusOk) {
FURI_LOG_E(TAG, "loader_start failed: %d", status);
}
} while(false);
}
void desktop_scene_main_callback(DesktopEvent event, void* context) {
Desktop* desktop = (Desktop*)context;
view_dispatcher_send_custom_event(desktop->view_dispatcher, event);
@@ -131,12 +146,6 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) {
consumed = true;
break;
}
case DesktopMainEventOpenClock: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Main/Clock.fap"));
consumed = true;
break;
}
case DesktopMainEventOpenFavoritePrimary:
DESKTOP_SETTINGS_LOAD(&desktop->settings);
if(desktop->settings.favorite_primary.is_external) {
@@ -200,57 +209,43 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) {
break;
}
case DesktopMainEventOpenSnake: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Games/Snake.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Snake.fap"));
break;
}
case DesktopMainEventOpen2048: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Games/2048.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/2048.fap"));
break;
}
case DesktopMainEventOpenZombiez: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Games/Zombiez.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Zombiez.fap"));
break;
}
case DesktopMainEventOpenTetris: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Games/Tetris.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Tetris.fap"));
break;
}
case DesktopMainEventOpenDOOM: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Games/DOOM.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/DOOM.fap"));
break;
}
case DesktopMainEventOpenDice: {
LoaderStatus status =
loader_start(desktop->loader, "Applications", EXT_PATH("/apps/Games/Dice.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Dice.fap"));
break;
}
case DesktopMainEventOpenArkanoid: {
LoaderStatus status = loader_start(
desktop->loader, "Applications", EXT_PATH("/apps/Games/Arkanoid.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Arkanoid.fap"));
break;
}
case DesktopMainEventOpenHeap: {
LoaderStatus status = loader_start(
desktop->loader, "Applications", EXT_PATH("/apps/Games/Heap_Defence.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Games/Heap_Defence.fap"));
break;
}
case DesktopMainEventOpenSubRemote: {
LoaderStatus status = loader_start(
desktop->loader, "Applications", EXT_PATH("/apps/Main/SubGHz_Remote.fap"));
consumed = true;
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Main/SubGHz_Remote.fap"));
break;
}
case DesktopMainEventOpenClock: {
desktop_scene_main_open_app_or_profile(desktop, CLOCK_APP);
break;
}
case DesktopLockedEventUpdate:
@@ -22,6 +22,7 @@ typedef enum {
DesktopMainEventOpenArkanoid,
DesktopMainEventOpenHeap,
DesktopMainEventOpenSubRemote,
DesktopMainEventOpenClock,
DesktopLockedEventUnlocked,
DesktopLockedEventUpdate,
+4 -3
View File
@@ -564,7 +564,7 @@ void elements_scrollable_text_line(
}
// Calculate scroll size
size_t scroll_size = furi_string_size(string);
size_t scroll_size = furi_string_size(line);
size_t right_width = 0;
for(size_t i = scroll_size; i > 0; i--) {
right_width += canvas_glyph_width(canvas, furi_string_get_char(line, i));
@@ -579,10 +579,11 @@ void elements_scrollable_text_line(
furi_string_right(line, scroll);
}
do {
len_px = canvas_string_width(canvas, furi_string_get_cstr(line));
while(len_px > width) {
furi_string_left(line, furi_string_size(line) - 1);
len_px = canvas_string_width(canvas, furi_string_get_cstr(line));
} while(len_px > width);
}
if(ellipsis) {
furi_string_cat(line, "...");