[FL-1781] Desktop: change first start logic, show only if factory provisioned. (#727)

* Desktop: change first start logic, show only if factory provisioned.
* Desktop: code cleanup, correct first start scene position in scene stack.
* Desktop: Remove unused include
This commit is contained in:
あく
2021-09-28 17:42:52 +03:00
committed by GitHub
parent 61c8f3325a
commit ec18c1a92a
10 changed files with 45 additions and 37 deletions

View File

@@ -1,5 +1,4 @@
#include "desktop_i.h"
#include "applications/dolphin/dolphin.h"
static void desktop_lock_icon_callback(Canvas* canvas, void* context) {
furi_assert(canvas);
@@ -104,16 +103,22 @@ void desktop_free(Desktop* desktop) {
free(desktop);
}
static bool desktop_is_first_start() {
Storage* storage = furi_record_open("storage");
bool exists = storage_common_stat(storage, "/int/first_start", NULL) == FSE_OK;
furi_record_close("storage");
return exists;
}
int32_t desktop_srv(void* p) {
Desktop* desktop = desktop_alloc();
Dolphin* dolphin = furi_record_open("dolphin");
if(dolphin_load(dolphin)) {
scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain);
} else {
scene_manager_next_scene(desktop->scene_manager, DesktopSceneMain);
if(desktop_is_first_start()) {
scene_manager_next_scene(desktop->scene_manager, DesktopSceneFirstStart);
}
furi_record_close("dolphin");
if(!furi_hal_version_do_i_belong_here()) {
scene_manager_next_scene(desktop->scene_manager, DesktopSceneHwMismatch);