mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-06-14 19:53:35 -07:00
Merge branch 'flipperdevices:dev' into dev
This commit is contained in:
@@ -103,6 +103,15 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) {
|
||||
consumed = true;
|
||||
break;
|
||||
|
||||
case DesktopMainEventOpenPowerOff: {
|
||||
LoaderStatus status = loader_start(desktop->loader, "Power", "off");
|
||||
if(status != LoaderStatusOk) {
|
||||
FURI_LOG_E(TAG, "loader_start failed: %d", status);
|
||||
}
|
||||
consumed = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case DesktopMainEventOpenFavoritePrimary:
|
||||
LOAD_DESKTOP_SETTINGS(&desktop->settings);
|
||||
if(desktop->settings.favorite_primary < FLIPPER_APPS_COUNT) {
|
||||
|
||||
@@ -8,6 +8,7 @@ typedef enum {
|
||||
DesktopMainEventOpenMenu,
|
||||
DesktopMainEventOpenDebug,
|
||||
DesktopMainEventOpenPassport, /**< Broken, don't use it */
|
||||
DesktopMainEventOpenPowerOff,
|
||||
|
||||
DesktopLockedEventUnlocked,
|
||||
DesktopLockedEventUpdate,
|
||||
|
||||
@@ -53,6 +53,8 @@ bool desktop_main_input(InputEvent* event, void* context) {
|
||||
main_view->callback(DesktopMainEventOpenDebug, main_view->context);
|
||||
} else if(event->key == InputKeyLeft) {
|
||||
main_view->callback(DesktopMainEventOpenFavoriteSecondary, main_view->context);
|
||||
} else if(event->key == InputKeyBack) {
|
||||
main_view->callback(DesktopMainEventOpenPowerOff, main_view->context);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -491,7 +491,6 @@ void nfc_worker_mifare_classic_dict_attack(NfcWorker* nfc_worker) {
|
||||
|
||||
void nfc_worker_emulate_mifare_classic(NfcWorker* nfc_worker) {
|
||||
FuriHalNfcTxRxContext tx_rx = {};
|
||||
nfc_debug_pcap_prepare_tx_rx(&tx_rx, nfc_worker->storage, true);
|
||||
FuriHalNfcDevData* nfc_data = &nfc_worker->dev_data->nfc_data;
|
||||
MfClassicEmulator emulator = {
|
||||
.cuid = nfc_util_bytes2num(&nfc_data->uid[nfc_data->uid_len - 4], 4),
|
||||
|
||||
Executable → Regular
+7
-4
@@ -18,7 +18,7 @@ static void power_settings_tick_event_callback(void* context) {
|
||||
scene_manager_handle_tick_event(app->scene_manager);
|
||||
}
|
||||
|
||||
PowerSettingsApp* power_settings_app_alloc() {
|
||||
PowerSettingsApp* power_settings_app_alloc(uint32_t first_scene) {
|
||||
PowerSettingsApp* app = malloc(sizeof(PowerSettingsApp));
|
||||
|
||||
// Records
|
||||
@@ -52,7 +52,7 @@ PowerSettingsApp* power_settings_app_alloc() {
|
||||
app->view_dispatcher, PowerSettingsAppViewDialog, dialog_ex_get_view(app->dialog));
|
||||
|
||||
// Set first scene
|
||||
scene_manager_next_scene(app->scene_manager, PowerSettingsAppSceneStart);
|
||||
scene_manager_next_scene(app->scene_manager, first_scene);
|
||||
return app;
|
||||
}
|
||||
|
||||
@@ -75,8 +75,11 @@ void power_settings_app_free(PowerSettingsApp* app) {
|
||||
}
|
||||
|
||||
int32_t power_settings_app(void* p) {
|
||||
UNUSED(p);
|
||||
PowerSettingsApp* app = power_settings_app_alloc();
|
||||
uint32_t first_scene = PowerSettingsAppSceneStart;
|
||||
if(p && !strcmp(p, "off")) {
|
||||
first_scene = PowerSettingsAppScenePowerOff;
|
||||
}
|
||||
PowerSettingsApp* app = power_settings_app_alloc(first_scene);
|
||||
view_dispatcher_run(app->view_dispatcher);
|
||||
power_settings_app_free(app);
|
||||
return 0;
|
||||
|
||||
Executable → Regular
+4
-1
@@ -28,7 +28,10 @@ bool power_settings_scene_power_off_on_event(void* context, SceneManagerEvent ev
|
||||
|
||||
if(event.type == SceneManagerEventTypeCustom) {
|
||||
if(event.event == DialogExResultLeft) {
|
||||
scene_manager_previous_scene(app->scene_manager);
|
||||
if(!scene_manager_previous_scene(app->scene_manager)) {
|
||||
scene_manager_stop(app->scene_manager);
|
||||
view_dispatcher_stop(app->view_dispatcher);
|
||||
}
|
||||
} else if(event.event == DialogExResultRight) {
|
||||
power_off(app->power);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user