mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-16 04:24:45 -07:00
Merge branch 'dev' of https://github.com/ClaraCrazy/Flipper-Xtreme into badusb-ble
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
#include <m-string.h>
|
#include <m-string.h>
|
||||||
#include <storage/storage.h>
|
#include <storage/storage.h>
|
||||||
#include "toolbox/path.h"
|
#include "toolbox/path.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
#include "xtreme/settings.h"
|
||||||
|
|
||||||
#define FAP_MANIFEST_MAX_ICON_SIZE 32
|
#define FAP_MANIFEST_MAX_ICON_SIZE 32
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../bad_kb_app_i.h"
|
#include "../bad_kb_app_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
bad_kb_scene_error_event_callback(GuiButtonType result, InputType type, void* context) {
|
bad_kb_scene_error_event_callback(GuiButtonType result, InputType type, void* context) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
#include <toolbox/path.h>
|
#include <toolbox/path.h>
|
||||||
#include <gui/elements.h>
|
#include <gui/elements.h>
|
||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define MAX_NAME_LEN 64
|
#define MAX_NAME_LEN 64
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../ibutton_i.h"
|
#include "../ibutton_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void ibutton_scene_delete_success_popup_callback(void* context) {
|
static void ibutton_scene_delete_success_popup_callback(void* context) {
|
||||||
iButton* ibutton = context;
|
iButton* ibutton = context;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../ibutton_i.h"
|
#include "../ibutton_i.h"
|
||||||
#include <dolphin/dolphin.h>
|
#include <dolphin/dolphin.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void ibutton_scene_read_callback(void* context) {
|
static void ibutton_scene_read_callback(void* context) {
|
||||||
iButton* ibutton = context;
|
iButton* ibutton = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../ibutton_i.h"
|
#include "../ibutton_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void ibutton_scene_save_success_popup_callback(void* context) {
|
static void ibutton_scene_save_success_popup_callback(void* context) {
|
||||||
iButton* ibutton = context;
|
iButton* ibutton = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../ibutton_i.h"
|
#include "../ibutton_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void ibutton_scene_write_success_popup_callback(void* context) {
|
static void ibutton_scene_write_success_popup_callback(void* context) {
|
||||||
iButton* ibutton = context;
|
iButton* ibutton = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../infrared_i.h"
|
#include "../infrared_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void infrared_scene_edit_rename_done_on_enter(void* context) {
|
void infrared_scene_edit_rename_done_on_enter(void* context) {
|
||||||
Infrared* infrared = context;
|
Infrared* infrared = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../infrared_i.h"
|
#include "../infrared_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void infrared_scene_learn_done_on_enter(void* context) {
|
void infrared_scene_learn_done_on_enter(void* context) {
|
||||||
Infrared* infrared = context;
|
Infrared* infrared = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../infrared_i.h"
|
#include "../infrared_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
infrared_scene_learn_success_dialog_result_callback(DialogExResult result, void* context) {
|
infrared_scene_learn_success_dialog_result_callback(DialogExResult result, void* context) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../helpers/rfid_writer.h"
|
#include "../helpers/rfid_writer.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void writer_initialize(T55xxTiming* t55xxtiming) {
|
static void writer_initialize(T55xxTiming* t55xxtiming) {
|
||||||
t55xxtiming->wait_time = 400;
|
t55xxtiming->wait_time = 400;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void lfrfid_scene_delete_success_on_enter(void* context) {
|
void lfrfid_scene_delete_success_on_enter(void* context) {
|
||||||
LfRfid* app = context;
|
LfRfid* app = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void lfrfid_scene_emulate_on_enter(void* context) {
|
void lfrfid_scene_emulate_on_enter(void* context) {
|
||||||
LfRfid* app = context;
|
LfRfid* app = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define RAW_READ_TIME 5000
|
#define RAW_READ_TIME 5000
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void lfrfid_scene_rpc_on_enter(void* context) {
|
void lfrfid_scene_rpc_on_enter(void* context) {
|
||||||
LfRfid* app = context;
|
LfRfid* app = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void lfrfid_scene_save_success_on_enter(void* context) {
|
void lfrfid_scene_save_success_on_enter(void* context) {
|
||||||
LfRfid* app = context;
|
LfRfid* app = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void lfrfid_write_callback(LFRFIDWorkerWriteResult result, void* context) {
|
static void lfrfid_write_callback(LFRFIDWorkerWriteResult result, void* context) {
|
||||||
LfRfid* app = context;
|
LfRfid* app = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../lfrfid_i.h"
|
#include "../lfrfid_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void lfrfid_scene_write_success_on_enter(void* context) {
|
void lfrfid_scene_write_success_on_enter(void* context) {
|
||||||
LfRfid* app = context;
|
LfRfid* app = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void nfc_scene_delete_success_popup_callback(void* context) {
|
void nfc_scene_delete_success_popup_callback(void* context) {
|
||||||
Nfc* nfc = context;
|
Nfc* nfc = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define NFC_SCENE_EMULATE_NFCV_LOG_SIZE_MAX (100)
|
#define NFC_SCENE_EMULATE_NFCV_LOG_SIZE_MAX (100)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define NFC_SCENE_EMULATE_UID_LOG_SIZE_MAX (200)
|
#define NFC_SCENE_EMULATE_UID_LOG_SIZE_MAX (200)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define NFC_MF_CLASSIC_DATA_NOT_CHANGED (0UL)
|
#define NFC_MF_CLASSIC_DATA_NOT_CHANGED (0UL)
|
||||||
#define NFC_MF_CLASSIC_DATA_CHANGED (1UL)
|
#define NFC_MF_CLASSIC_DATA_CHANGED (1UL)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include <dolphin/dolphin.h>
|
#include <dolphin/dolphin.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void nfc_scene_mf_classic_update_success_popup_callback(void* context) {
|
void nfc_scene_mf_classic_update_success_popup_callback(void* context) {
|
||||||
Nfc* nfc = context;
|
Nfc* nfc = context;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include <dolphin/dolphin.h>
|
#include <dolphin/dolphin.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void nfc_scene_mf_classic_write_success_popup_callback(void* context) {
|
void nfc_scene_mf_classic_write_success_popup_callback(void* context) {
|
||||||
Nfc* nfc = context;
|
Nfc* nfc = context;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include <lib/nfc/protocols/mifare_ultralight.h>
|
#include <lib/nfc/protocols/mifare_ultralight.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define NFC_SCENE_MF_ULTRALIGHT_EMULATE_LOG_SIZE_MAX (200)
|
#define NFC_SCENE_MF_ULTRALIGHT_EMULATE_LOG_SIZE_MAX (200)
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void nfc_scene_restore_original_popup_callback(void* context) {
|
void nfc_scene_restore_original_popup_callback(void* context) {
|
||||||
Nfc* nfc = context;
|
Nfc* nfc = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void nfc_scene_rpc_on_enter(void* context) {
|
void nfc_scene_rpc_on_enter(void* context) {
|
||||||
Nfc* nfc = context;
|
Nfc* nfc = context;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../nfc_i.h"
|
#include "../nfc_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void nfc_scene_save_success_popup_callback(void* context) {
|
void nfc_scene_save_success_popup_callback(void* context) {
|
||||||
Nfc* nfc = context;
|
Nfc* nfc = context;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../subghz_i.h"
|
#include "../subghz_i.h"
|
||||||
#include "../helpers/subghz_custom_event.h"
|
#include "../helpers/subghz_custom_event.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void subghz_scene_delete_success_popup_callback(void* context) {
|
void subghz_scene_delete_success_popup_callback(void* context) {
|
||||||
SubGhz* subghz = context;
|
SubGhz* subghz = context;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "../subghz_i.h"
|
#include "../subghz_i.h"
|
||||||
#include <lib/subghz/protocols/keeloq.h>
|
#include <lib/subghz/protocols/keeloq.h>
|
||||||
#include <lib/subghz/protocols/star_line.h>
|
#include <lib/subghz/protocols/star_line.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SubGhzRpcStateIdle,
|
SubGhzRpcStateIdle,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../subghz_i.h"
|
#include "../subghz_i.h"
|
||||||
#include "../helpers/subghz_custom_event.h"
|
#include "../helpers/subghz_custom_event.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void subghz_scene_save_success_popup_callback(void* context) {
|
void subghz_scene_save_success_popup_callback(void* context) {
|
||||||
SubGhz* subghz = context;
|
SubGhz* subghz = context;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
#include <m-array.h>
|
#include <m-array.h>
|
||||||
|
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define FRAME_HEIGHT 12
|
#define FRAME_HEIGHT 12
|
||||||
#define MAX_LEN_PX 111
|
#define MAX_LEN_PX 111
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../u2f_app_i.h"
|
#include "../u2f_app_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void u2f_scene_error_event_callback(GuiButtonType result, InputType type, void* context) {
|
static void u2f_scene_error_event_callback(GuiButtonType result, InputType type, void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include "u2f_view.h"
|
#include "u2f_view.h"
|
||||||
#include <gui/elements.h>
|
#include <gui/elements.h>
|
||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
struct U2fView {
|
struct U2fView {
|
||||||
View* view;
|
View* view;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
App(
|
App(
|
||||||
appid="NightstandClock",
|
appid="Nightstand",
|
||||||
name="Nightstand Clock",
|
name="Nightstand Clock",
|
||||||
apptype=FlipperAppType.EXTERNAL,
|
apptype=FlipperAppType.EXTERNAL,
|
||||||
entry_point="clock_app",
|
entry_point="clock_app",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
#include <notification/notification_messages.h>
|
#include <notification/notification_messages.h>
|
||||||
#include <gui/elements.h>
|
#include <gui/elements.h>
|
||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define TAG "BtSrv"
|
#define TAG "BtSrv"
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
#include "animation_storage.h"
|
#include "animation_storage.h"
|
||||||
#include "animation_manager.h"
|
#include "animation_manager.h"
|
||||||
|
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define TAG "AnimationManager"
|
#define TAG "AnimationManager"
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include "animation_storage_i.h"
|
#include "animation_storage_i.h"
|
||||||
#include <assets_dolphin_internal.h>
|
#include <assets_dolphin_internal.h>
|
||||||
#include <assets_dolphin_blocking.h>
|
#include <assets_dolphin_blocking.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
#define ANIMATION_META_FILE "meta.txt"
|
#define ANIMATION_META_FILE "meta.txt"
|
||||||
#define BASE_ANIMATION_DIR EXT_PATH("dolphin")
|
#define BASE_ANIMATION_DIR EXT_PATH("dolphin")
|
||||||
#define TAG "AnimationStorage"
|
#define TAG "AnimationStorage"
|
||||||
|
|||||||
@@ -17,8 +17,6 @@
|
|||||||
#include "helpers/pin_lock.h"
|
#include "helpers/pin_lock.h"
|
||||||
#include "helpers/slideshow_filename.h"
|
#include "helpers/slideshow_filename.h"
|
||||||
|
|
||||||
#include "../../settings/xtreme_settings/xtreme_assets.h"
|
|
||||||
|
|
||||||
static void desktop_auto_lock_arm(Desktop*);
|
static void desktop_auto_lock_arm(Desktop*);
|
||||||
static void desktop_auto_lock_inhibit(Desktop*);
|
static void desktop_auto_lock_inhibit(Desktop*);
|
||||||
static void desktop_start_auto_lock_timer(Desktop*);
|
static void desktop_start_auto_lock_timer(Desktop*);
|
||||||
@@ -307,9 +305,6 @@ static bool desktop_check_file_flag(const char* flag_path) {
|
|||||||
int32_t desktop_srv(void* p) {
|
int32_t desktop_srv(void* p) {
|
||||||
UNUSED(p);
|
UNUSED(p);
|
||||||
|
|
||||||
// TODO: find a (working) way to run this at startup without hooking desktop
|
|
||||||
XTREME_ASSETS_LOAD();
|
|
||||||
|
|
||||||
if(furi_hal_rtc_get_boot_mode() != FuriHalRtcBootModeNormal) {
|
if(furi_hal_rtc_get_boot_mode() != FuriHalRtcBootModeNormal) {
|
||||||
FURI_LOG_W("Desktop", "Desktop load skipped. Device is in special startup mode.");
|
FURI_LOG_W("Desktop", "Desktop load skipped. Device is in special startup mode.");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#include <furi_hal.h>
|
#include <furi_hal.h>
|
||||||
|
|
||||||
#include "../desktop_i.h"
|
#include "../desktop_i.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define DesktopFaultEventExit 0x00FF00FF
|
#define DesktopFaultEventExit 0x00FF00FF
|
||||||
|
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DesktopMainEventOpenClock: {
|
case DesktopMainEventOpenClock: {
|
||||||
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Tools/Clock.fap"));
|
desktop_scene_main_open_app_or_profile(desktop, EXT_PATH("/apps/Misc/Nightstand.fap"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case DesktopLockedEventUpdate:
|
case DesktopLockedEventUpdate:
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "../desktop_i.h"
|
#include "../desktop_i.h"
|
||||||
#include "desktop_view_lock_menu.h"
|
#include "desktop_view_lock_menu.h"
|
||||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
#include "xtreme/settings.h"
|
||||||
|
|
||||||
#define LOCK_MENU_ITEMS_NB 5
|
#define LOCK_MENU_ITEMS_NB 5
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ App(
|
|||||||
requires=[
|
requires=[
|
||||||
"input",
|
"input",
|
||||||
"notification",
|
"notification",
|
||||||
|
"xtreme",
|
||||||
],
|
],
|
||||||
stack_size=2 * 1024,
|
stack_size=2 * 1024,
|
||||||
order=70,
|
order=70,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#include "xtreme/settings.h"
|
||||||
#include "gui_i.h"
|
#include "gui_i.h"
|
||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
|
|
||||||
@@ -54,17 +55,23 @@ static void gui_redraw_status_bar(Gui* gui, bool need_attention) {
|
|||||||
canvas_frame_set(
|
canvas_frame_set(
|
||||||
gui->canvas, GUI_STATUS_BAR_X, GUI_STATUS_BAR_Y, GUI_DISPLAY_WIDTH, GUI_STATUS_BAR_HEIGHT);
|
gui->canvas, GUI_STATUS_BAR_X, GUI_STATUS_BAR_Y, GUI_DISPLAY_WIDTH, GUI_STATUS_BAR_HEIGHT);
|
||||||
|
|
||||||
|
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
|
||||||
|
|
||||||
/* for support black theme - paint white area and
|
/* for support black theme - paint white area and
|
||||||
* draw icon with transparent white color
|
* draw icon with transparent white color
|
||||||
*/
|
*/
|
||||||
canvas_set_color(gui->canvas, ColorWhite);
|
if(xtreme_settings->status_bar) {
|
||||||
// canvas_draw_box(gui->canvas, 1, 1, 9, 7);
|
canvas_set_color(gui->canvas, ColorWhite);
|
||||||
// canvas_draw_box(gui->canvas, 7, 3, 58, 6);
|
canvas_draw_box(gui->canvas, 1, 1, 9, 7);
|
||||||
// canvas_draw_box(gui->canvas, 61, 1, 32, 7);
|
canvas_draw_box(gui->canvas, 7, 3, 58, 6);
|
||||||
// canvas_draw_box(gui->canvas, 89, 3, 38, 6);
|
canvas_draw_box(gui->canvas, 61, 1, 32, 7);
|
||||||
canvas_set_color(gui->canvas, ColorBlack);
|
canvas_draw_box(gui->canvas, 89, 3, 38, 6);
|
||||||
canvas_set_bitmap_mode(gui->canvas, 1);
|
canvas_set_color(gui->canvas, ColorBlack);
|
||||||
// canvas_draw_icon(gui->canvas, 0, 0, &I_Background_128x11);
|
canvas_set_bitmap_mode(gui->canvas, 1);
|
||||||
|
canvas_draw_icon(gui->canvas, 0, 0, &I_Background_128x11);
|
||||||
|
} else {
|
||||||
|
canvas_set_color(gui->canvas, ColorBlack);
|
||||||
|
}
|
||||||
canvas_set_bitmap_mode(gui->canvas, 0);
|
canvas_set_bitmap_mode(gui->canvas, 0);
|
||||||
|
|
||||||
// Right side
|
// Right side
|
||||||
@@ -85,13 +92,16 @@ static void gui_redraw_status_bar(Gui* gui, bool need_attention) {
|
|||||||
GUI_STATUS_BAR_Y + 1,
|
GUI_STATUS_BAR_Y + 1,
|
||||||
width + 2,
|
width + 2,
|
||||||
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||||
// canvas_set_color(gui->canvas, ColorWhite);
|
// Hide battery background
|
||||||
// canvas_draw_box(
|
if(xtreme_settings->status_bar) {
|
||||||
// gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
canvas_set_color(gui->canvas, ColorWhite);
|
||||||
|
canvas_draw_box(
|
||||||
|
gui->canvas, -1, 0, canvas_width(gui->canvas) + 1, canvas_height(gui->canvas));
|
||||||
|
}
|
||||||
canvas_set_color(gui->canvas, ColorBlack);
|
canvas_set_color(gui->canvas, ColorBlack);
|
||||||
// ViewPort draw
|
// ViewPort draw
|
||||||
canvas_frame_set(
|
canvas_frame_set(
|
||||||
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
gui->canvas, x - xtreme_settings->status_bar, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||||
view_port_draw(view_port, gui->canvas);
|
view_port_draw(view_port, gui->canvas);
|
||||||
}
|
}
|
||||||
ViewPortArray_next(it);
|
ViewPortArray_next(it);
|
||||||
@@ -100,41 +110,99 @@ static void gui_redraw_status_bar(Gui* gui, bool need_attention) {
|
|||||||
if(right_used) {
|
if(right_used) {
|
||||||
canvas_frame_set(
|
canvas_frame_set(
|
||||||
gui->canvas,
|
gui->canvas,
|
||||||
GUI_DISPLAY_WIDTH - 3 - right_used,
|
GUI_DISPLAY_WIDTH - 4 - right_used,
|
||||||
GUI_STATUS_BAR_Y,
|
GUI_STATUS_BAR_Y,
|
||||||
right_used + 2,
|
right_used + 4,
|
||||||
GUI_STATUS_BAR_HEIGHT);
|
GUI_STATUS_BAR_HEIGHT);
|
||||||
// canvas_set_color(gui->canvas, ColorBlack);
|
// Disable battery border
|
||||||
// canvas_draw_rframe(
|
if(xtreme_settings->status_bar) {
|
||||||
// gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas) - 1, 1);
|
canvas_set_color(gui->canvas, ColorBlack);
|
||||||
// canvas_draw_line(
|
canvas_draw_rframe(
|
||||||
// gui->canvas,
|
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||||
// canvas_width(gui->canvas) - 1,
|
canvas_draw_line(
|
||||||
// 2,
|
gui->canvas,
|
||||||
// canvas_width(gui->canvas) - 1,
|
canvas_width(gui->canvas) - 2,
|
||||||
// canvas_height(gui->canvas) - 4);
|
1,
|
||||||
|
canvas_width(gui->canvas) - 2,
|
||||||
|
canvas_height(gui->canvas) - 2);
|
||||||
|
canvas_draw_line(
|
||||||
|
gui->canvas,
|
||||||
|
1,
|
||||||
|
canvas_height(gui->canvas) - 2,
|
||||||
|
canvas_width(gui->canvas) - 2,
|
||||||
|
canvas_height(gui->canvas) - 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extra notification
|
// Left side
|
||||||
if(need_attention) {
|
if(xtreme_settings->status_bar) {
|
||||||
width = icon_get_width(&I_Hidden_window_9x8);
|
x = 2;
|
||||||
// Prepare work area background
|
ViewPortArray_it(it, gui->layers[GuiLayerStatusBarLeft]);
|
||||||
canvas_frame_set(
|
while(!ViewPortArray_end_p(it) && (right_used + left_used) < GUI_STATUS_BAR_WIDTH) {
|
||||||
gui->canvas,
|
ViewPort* view_port = *ViewPortArray_ref(it);
|
||||||
x - 1,
|
if(view_port_is_enabled(view_port)) {
|
||||||
GUI_STATUS_BAR_Y + 1,
|
width = view_port_get_width(view_port);
|
||||||
width + 2,
|
if(!width) width = 8;
|
||||||
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
// Prepare work area background
|
||||||
canvas_set_color(gui->canvas, ColorWhite);
|
canvas_frame_set(
|
||||||
canvas_draw_box(gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
gui->canvas,
|
||||||
canvas_set_color(gui->canvas, ColorBlack);
|
x - 1,
|
||||||
// Draw Icon
|
GUI_STATUS_BAR_Y + 1,
|
||||||
canvas_frame_set(
|
width + 2,
|
||||||
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||||
canvas_draw_icon(gui->canvas, 0, 0, &I_Hidden_window_9x8);
|
canvas_set_color(gui->canvas, ColorWhite);
|
||||||
// Recalculate next position
|
canvas_draw_box(
|
||||||
left_used += (width + 2);
|
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||||
x += (width + 2);
|
canvas_set_color(gui->canvas, ColorBlack);
|
||||||
|
// ViewPort draw
|
||||||
|
canvas_frame_set(
|
||||||
|
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||||
|
view_port_draw(view_port, gui->canvas);
|
||||||
|
// Recalculate next position
|
||||||
|
left_used += (width + 2);
|
||||||
|
x += (width + 2);
|
||||||
|
}
|
||||||
|
ViewPortArray_next(it);
|
||||||
|
}
|
||||||
|
// Extra notification
|
||||||
|
if(need_attention) {
|
||||||
|
width = icon_get_width(&I_Hidden_window_9x8);
|
||||||
|
// Prepare work area background
|
||||||
|
canvas_frame_set(
|
||||||
|
gui->canvas,
|
||||||
|
x - 1,
|
||||||
|
GUI_STATUS_BAR_Y + 1,
|
||||||
|
width + 2,
|
||||||
|
GUI_STATUS_BAR_WORKAREA_HEIGHT + 2);
|
||||||
|
canvas_set_color(gui->canvas, ColorWhite);
|
||||||
|
canvas_draw_box(gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas));
|
||||||
|
canvas_set_color(gui->canvas, ColorBlack);
|
||||||
|
// Draw Icon
|
||||||
|
canvas_frame_set(
|
||||||
|
gui->canvas, x, GUI_STATUS_BAR_Y + 2, width, GUI_STATUS_BAR_WORKAREA_HEIGHT);
|
||||||
|
canvas_draw_icon(gui->canvas, 0, 0, &I_Hidden_window_9x8);
|
||||||
|
// Recalculate next position
|
||||||
|
left_used += (width + 2);
|
||||||
|
x += (width + 2);
|
||||||
|
}
|
||||||
|
// Draw frame around icons on the left
|
||||||
|
if(left_used) {
|
||||||
|
canvas_frame_set(gui->canvas, 0, 0, left_used + 3, GUI_STATUS_BAR_HEIGHT);
|
||||||
|
canvas_draw_rframe(
|
||||||
|
gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);
|
||||||
|
canvas_draw_line(
|
||||||
|
gui->canvas,
|
||||||
|
canvas_width(gui->canvas) - 2,
|
||||||
|
1,
|
||||||
|
canvas_width(gui->canvas) - 2,
|
||||||
|
canvas_height(gui->canvas) - 2);
|
||||||
|
canvas_draw_line(
|
||||||
|
gui->canvas,
|
||||||
|
1,
|
||||||
|
canvas_height(gui->canvas) - 2,
|
||||||
|
canvas_width(gui->canvas) - 2,
|
||||||
|
canvas_height(gui->canvas) - 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "m-string.h"
|
#include "m-string.h"
|
||||||
#include "m-algo.h"
|
#include "m-algo.h"
|
||||||
#include <m-array.h>
|
#include <m-array.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
#include "xtreme/settings.h"
|
||||||
|
|
||||||
#define LIST_ITEMS 5u
|
#define LIST_ITEMS 5u
|
||||||
#define MAX_LEN_PX 110
|
#define MAX_LEN_PX 110
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include <furi.h>
|
#include <furi.h>
|
||||||
#include <furi_hal.h>
|
#include <furi_hal.h>
|
||||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
#include "xtreme/settings.h"
|
||||||
|
|
||||||
#define POWER_OFF_TIMEOUT 90
|
#define POWER_OFF_TIMEOUT 90
|
||||||
|
|
||||||
|
|||||||
10
applications/services/xtreme/application.fam
Normal file
10
applications/services/xtreme/application.fam
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
App(
|
||||||
|
appid="xtreme",
|
||||||
|
apptype=FlipperAppType.STARTUP,
|
||||||
|
entry_point="xtreme_on_system_start",
|
||||||
|
requires=["storage"],
|
||||||
|
order=1000,
|
||||||
|
provides=[
|
||||||
|
"xtreme",
|
||||||
|
],
|
||||||
|
)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "xtreme_assets.h"
|
#include "assets.h"
|
||||||
#include "assets_icons.h"
|
#include <assets_icons.h>
|
||||||
#include <core/dangerous_defines.h>
|
#include <core/dangerous_defines.h>
|
||||||
|
|
||||||
#define ICONS_FMT PACKS_DIR "/%s/Icons/%s"
|
#define ICONS_FMT PACKS_DIR "/%s/Icons/%s"
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "settings.h"
|
||||||
#include <gui/icon_i.h>
|
#include <gui/icon_i.h>
|
||||||
#include "xtreme_settings.h"
|
|
||||||
#include <toolbox/path.h>
|
#include <toolbox/path.h>
|
||||||
|
|
||||||
#define PACKS_DIR EXT_PATH("dolphin_custom")
|
#define PACKS_DIR EXT_PATH("dolphin_custom")
|
||||||
7
applications/services/xtreme/on_system_start.c
Normal file
7
applications/services/xtreme/on_system_start.c
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#include "settings.h"
|
||||||
|
#include "assets.h"
|
||||||
|
|
||||||
|
void xtreme_on_system_start() {
|
||||||
|
XTREME_SETTINGS_LOAD();
|
||||||
|
XTREME_ASSETS_LOAD();
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
#include "xtreme_settings.h"
|
#include "settings.h"
|
||||||
|
|
||||||
XtremeSettings* xtreme_settings = NULL;
|
XtremeSettings* xtreme_settings = NULL;
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "xtreme_settings_filename.h"
|
#include "settings_filename.h"
|
||||||
|
|
||||||
#include <furi_hal.h>
|
#include <furi_hal.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@@ -22,6 +22,7 @@ typedef struct {
|
|||||||
BatteryStyle battery_style;
|
BatteryStyle battery_style;
|
||||||
uint16_t anim_speed;
|
uint16_t anim_speed;
|
||||||
bool sort_ignore_dirs;
|
bool sort_ignore_dirs;
|
||||||
|
bool status_bar;
|
||||||
} XtremeSettings;
|
} XtremeSettings;
|
||||||
|
|
||||||
XtremeSettings* XTREME_SETTINGS();
|
XtremeSettings* XTREME_SETTINGS();
|
||||||
@@ -5,7 +5,7 @@ App(
|
|||||||
provides=[
|
provides=[
|
||||||
"passport",
|
"passport",
|
||||||
"system_settings",
|
"system_settings",
|
||||||
"xtreme_settings",
|
"xtreme_app",
|
||||||
"about",
|
"about",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#include "../bt_settings_app.h"
|
#include "../bt_settings_app.h"
|
||||||
#include "furi_hal_bt.h"
|
#include "furi_hal_bt.h"
|
||||||
#include "../../xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
#include <furi_hal_bt.h>
|
#include <furi_hal_bt.h>
|
||||||
|
|
||||||
void bt_settings_app_scene_forget_dev_success_popup_callback(void* context) {
|
void bt_settings_app_scene_forget_dev_success_popup_callback(void* context) {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include "../desktop_settings_app.h"
|
#include "../desktop_settings_app.h"
|
||||||
#include <desktop/desktop_settings.h>
|
#include <desktop/desktop_settings.h>
|
||||||
#include "desktop_settings_scene.h"
|
#include "desktop_settings_scene.h"
|
||||||
#include "../../xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
#define SCENE_EVENT_EXIT (0U)
|
#define SCENE_EVENT_EXIT (0U)
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#include <gui/gui.h>
|
#include <gui/gui.h>
|
||||||
#include <furi_hal_version.h>
|
#include <furi_hal_version.h>
|
||||||
#include "dolphin/dolphin.h"
|
#include "dolphin/dolphin.h"
|
||||||
#include "../xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../power_settings_app.h"
|
#include "../power_settings_app.h"
|
||||||
#include "../../xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
void power_settings_scene_power_off_dialog_callback(DialogExResult result, void* context) {
|
void power_settings_scene_power_off_dialog_callback(DialogExResult result, void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#include "../storage_settings.h"
|
#include "../storage_settings.h"
|
||||||
#include "../../xtreme_settings/xtreme_assets.h"
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
static void
|
static void
|
||||||
storage_settings_scene_unmounted_dialog_callback(DialogExResult result, void* context) {
|
storage_settings_scene_unmounted_dialog_callback(DialogExResult result, void* context) {
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
App(
|
App(
|
||||||
appid="xtreme_settings",
|
appid="xtreme_app",
|
||||||
name="Xtreme FW",
|
name="Xtreme FW",
|
||||||
apptype=FlipperAppType.SETTINGS,
|
apptype=FlipperAppType.SETTINGS,
|
||||||
entry_point="xtreme_settings_app",
|
entry_point="xtreme_app",
|
||||||
stack_size=2 * 1024,
|
stack_size=2 * 1024,
|
||||||
requires=[
|
requires=[
|
||||||
"gui",
|
"gui",
|
||||||
|
"xtreme",
|
||||||
],
|
],
|
||||||
order=90,
|
order=90,
|
||||||
)
|
)
|
||||||
30
applications/settings/xtreme_app/scenes/xtreme_app_scene.c
Normal file
30
applications/settings/xtreme_app/scenes/xtreme_app_scene.c
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#include "xtreme_app_scene.h"
|
||||||
|
|
||||||
|
// Generate scene on_enter handlers array
|
||||||
|
#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter,
|
||||||
|
void (*const xtreme_app_on_enter_handlers[])(void*) = {
|
||||||
|
#include "xtreme_app_scene_config.h"
|
||||||
|
};
|
||||||
|
#undef ADD_SCENE
|
||||||
|
|
||||||
|
// Generate scene on_event handlers array
|
||||||
|
#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event,
|
||||||
|
bool (*const xtreme_app_on_event_handlers[])(void* context, SceneManagerEvent event) = {
|
||||||
|
#include "xtreme_app_scene_config.h"
|
||||||
|
};
|
||||||
|
#undef ADD_SCENE
|
||||||
|
|
||||||
|
// Generate scene on_exit handlers array
|
||||||
|
#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit,
|
||||||
|
void (*const xtreme_app_on_exit_handlers[])(void* context) = {
|
||||||
|
#include "xtreme_app_scene_config.h"
|
||||||
|
};
|
||||||
|
#undef ADD_SCENE
|
||||||
|
|
||||||
|
// Initialize scene handlers configuration structure
|
||||||
|
const SceneManagerHandlers xtreme_app_scene_handlers = {
|
||||||
|
.on_enter_handlers = xtreme_app_on_enter_handlers,
|
||||||
|
.on_event_handlers = xtreme_app_on_event_handlers,
|
||||||
|
.on_exit_handlers = xtreme_app_on_exit_handlers,
|
||||||
|
.scene_num = XtremeAppSceneNum,
|
||||||
|
};
|
||||||
@@ -3,27 +3,27 @@
|
|||||||
#include <gui/scene_manager.h>
|
#include <gui/scene_manager.h>
|
||||||
|
|
||||||
// Generate scene id and total number
|
// Generate scene id and total number
|
||||||
#define ADD_SCENE(prefix, name, id) XtremeSettingsAppScene##id,
|
#define ADD_SCENE(prefix, name, id) XtremeAppScene##id,
|
||||||
typedef enum {
|
typedef enum {
|
||||||
#include "xtreme_settings_scene_config.h"
|
#include "xtreme_app_scene_config.h"
|
||||||
XtremeSettingsAppSceneNum,
|
XtremeAppSceneNum,
|
||||||
} XtremeSettingsAppScene;
|
} XtremeAppScene;
|
||||||
#undef ADD_SCENE
|
#undef ADD_SCENE
|
||||||
|
|
||||||
extern const SceneManagerHandlers xtreme_settings_scene_handlers;
|
extern const SceneManagerHandlers xtreme_app_scene_handlers;
|
||||||
|
|
||||||
// Generate scene on_enter handlers declaration
|
// Generate scene on_enter handlers declaration
|
||||||
#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_enter(void*);
|
#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_enter(void*);
|
||||||
#include "xtreme_settings_scene_config.h"
|
#include "xtreme_app_scene_config.h"
|
||||||
#undef ADD_SCENE
|
#undef ADD_SCENE
|
||||||
|
|
||||||
// Generate scene on_event handlers declaration
|
// Generate scene on_event handlers declaration
|
||||||
#define ADD_SCENE(prefix, name, id) \
|
#define ADD_SCENE(prefix, name, id) \
|
||||||
bool prefix##_scene_##name##_on_event(void* context, SceneManagerEvent event);
|
bool prefix##_scene_##name##_on_event(void* context, SceneManagerEvent event);
|
||||||
#include "xtreme_settings_scene_config.h"
|
#include "xtreme_app_scene_config.h"
|
||||||
#undef ADD_SCENE
|
#undef ADD_SCENE
|
||||||
|
|
||||||
// Generate scene on_exit handlers declaration
|
// Generate scene on_exit handlers declaration
|
||||||
#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_exit(void* context);
|
#define ADD_SCENE(prefix, name, id) void prefix##_scene_##name##_on_exit(void* context);
|
||||||
#include "xtreme_settings_scene_config.h"
|
#include "xtreme_app_scene_config.h"
|
||||||
#undef ADD_SCENE
|
#undef ADD_SCENE
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
ADD_SCENE(xtreme_app, main, Main)
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
#include "../xtreme_settings_app.h"
|
#include "../xtreme_app.h"
|
||||||
#include <lib/toolbox/value_index.h>
|
#include <lib/toolbox/value_index.h>
|
||||||
#include <power/power_service/power.h>
|
#include <power/power_service/power.h>
|
||||||
#include <lib/toolbox/version.h>
|
#include <lib/toolbox/version.h>
|
||||||
|
|
||||||
static void xtreme_settings_scene_start_asset_pack_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_asset_pack_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
uint8_t index = variable_item_get_current_value_index(item);
|
uint8_t index = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(
|
variable_item_set_current_value_text(
|
||||||
item, index == 0 ? "OFF" : *asset_packs_get(app->asset_packs, index - 1));
|
item, index == 0 ? "SFW" : *asset_packs_get(app->asset_packs, index - 1));
|
||||||
strlcpy(
|
strlcpy(
|
||||||
XTREME_SETTINGS()->asset_pack,
|
XTREME_SETTINGS()->asset_pack,
|
||||||
index == 0 ? "" : *asset_packs_get(app->asset_packs, index - 1),
|
index == 0 ? "" : *asset_packs_get(app->asset_packs, index - 1),
|
||||||
@@ -20,8 +20,8 @@ const char* const anim_speed_names[] =
|
|||||||
{"25%", "50%", "75%", "100%", "125%", "150%", "175%", "200%", "225%", "250%", "275%", "300%"};
|
{"25%", "50%", "75%", "100%", "125%", "150%", "175%", "200%", "225%", "250%", "275%", "300%"};
|
||||||
const int32_t anim_speed_values[COUNT_OF(anim_speed_names)] =
|
const int32_t anim_speed_values[COUNT_OF(anim_speed_names)] =
|
||||||
{25, 50, 75, 0, 125, 150, 175, 200, 225, 250, 275, 300};
|
{25, 50, 75, 0, 125, 150, 175, 200, 225, 250, 275, 300};
|
||||||
static void xtreme_settings_scene_start_anim_speed_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_anim_speed_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
uint8_t index = variable_item_get_current_value_index(item);
|
uint8_t index = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, anim_speed_names[index]);
|
variable_item_set_current_value_text(item, anim_speed_names[index]);
|
||||||
XTREME_SETTINGS()->anim_speed = anim_speed_values[index];
|
XTREME_SETTINGS()->anim_speed = anim_speed_values[index];
|
||||||
@@ -44,16 +44,16 @@ const char* const cycle_anims_names[] = {
|
|||||||
"24 H"};
|
"24 H"};
|
||||||
const int32_t cycle_anims_values[COUNT_OF(cycle_anims_names)] =
|
const int32_t cycle_anims_values[COUNT_OF(cycle_anims_names)] =
|
||||||
{-1, 0, 30, 60, 300, 600, 900, 1800, 3600, 7200, 21600, 43200, 86400};
|
{-1, 0, 30, 60, 300, 600, 900, 1800, 3600, 7200, 21600, 43200, 86400};
|
||||||
static void xtreme_settings_scene_start_cycle_anims_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_cycle_anims_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
uint8_t index = variable_item_get_current_value_index(item);
|
uint8_t index = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, cycle_anims_names[index]);
|
variable_item_set_current_value_text(item, cycle_anims_names[index]);
|
||||||
XTREME_SETTINGS()->cycle_anims = cycle_anims_values[index];
|
XTREME_SETTINGS()->cycle_anims = cycle_anims_values[index];
|
||||||
app->settings_changed = true;
|
app->settings_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtreme_settings_scene_start_unlock_anims_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_unlock_anims_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
bool value = variable_item_get_current_value_index(item);
|
bool value = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
|
||||||
XTREME_SETTINGS()->unlock_anims = value;
|
XTREME_SETTINGS()->unlock_anims = value;
|
||||||
@@ -70,24 +70,32 @@ const int32_t battery_style_values[COUNT_OF(battery_style_names)] = {
|
|||||||
BatteryStyleRetro3,
|
BatteryStyleRetro3,
|
||||||
BatteryStyleRetro5,
|
BatteryStyleRetro5,
|
||||||
BatteryStyleBarPercent};
|
BatteryStyleBarPercent};
|
||||||
static void xtreme_settings_scene_start_battery_style_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_battery_style_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
uint8_t index = variable_item_get_current_value_index(item);
|
uint8_t index = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, battery_style_names[index]);
|
variable_item_set_current_value_text(item, battery_style_names[index]);
|
||||||
XTREME_SETTINGS()->battery_style = battery_style_values[index];
|
XTREME_SETTINGS()->battery_style = battery_style_values[index];
|
||||||
app->settings_changed = true;
|
app->settings_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtreme_settings_scene_start_sort_folders_before_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_status_bar_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
|
bool value = variable_item_get_current_value_index(item);
|
||||||
|
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
|
||||||
|
XTREME_SETTINGS()->status_bar = value;
|
||||||
|
app->settings_changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void xtreme_app_scene_main_sort_folders_before_changed(VariableItem* item) {
|
||||||
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
bool value = variable_item_get_current_value_index(item);
|
bool value = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, value ? "ON" : "OFF");
|
||||||
XTREME_SETTINGS()->sort_ignore_dirs = !value;
|
XTREME_SETTINGS()->sort_ignore_dirs = !value;
|
||||||
app->settings_changed = true;
|
app->settings_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtreme_settings_scene_start_xp_level_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_xp_level_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
app->dolphin_level = variable_item_get_current_value_index(item) + 1;
|
app->dolphin_level = variable_item_get_current_value_index(item) + 1;
|
||||||
char level_str[4];
|
char level_str[4];
|
||||||
snprintf(level_str, 4, "%i", app->dolphin_level);
|
snprintf(level_str, 4, "%i", app->dolphin_level);
|
||||||
@@ -95,22 +103,22 @@ static void xtreme_settings_scene_start_xp_level_changed(VariableItem* item) {
|
|||||||
app->level_changed = true;
|
app->level_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtreme_settings_scene_start_subghz_extend_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_subghz_extend_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
app->subghz_extend = variable_item_get_current_value_index(item);
|
app->subghz_extend = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, app->subghz_extend ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, app->subghz_extend ? "ON" : "OFF");
|
||||||
app->subghz_changed = true;
|
app->subghz_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xtreme_settings_scene_start_subghz_bypass_changed(VariableItem* item) {
|
static void xtreme_app_scene_main_subghz_bypass_changed(VariableItem* item) {
|
||||||
XtremeSettingsApp* app = variable_item_get_context(item);
|
XtremeApp* app = variable_item_get_context(item);
|
||||||
app->subghz_bypass = variable_item_get_current_value_index(item);
|
app->subghz_bypass = variable_item_get_current_value_index(item);
|
||||||
variable_item_set_current_value_text(item, app->subghz_bypass ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, app->subghz_bypass ? "ON" : "OFF");
|
||||||
app->subghz_changed = true;
|
app->subghz_changed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void xtreme_settings_scene_start_on_enter(void* context) {
|
void xtreme_app_scene_main_on_enter(void* context) {
|
||||||
XtremeSettingsApp* app = context;
|
XtremeApp* app = context;
|
||||||
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
|
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
|
||||||
VariableItemList* var_item_list = app->var_item_list;
|
VariableItemList* var_item_list = app->var_item_list;
|
||||||
VariableItem* item;
|
VariableItem* item;
|
||||||
@@ -144,10 +152,12 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
if(info.flags & FSF_DIRECTORY) {
|
if(info.flags & FSF_DIRECTORY) {
|
||||||
char* copy = malloc(MAX_PACK_NAME_LEN);
|
char* copy = malloc(MAX_PACK_NAME_LEN);
|
||||||
strlcpy(copy, name, MAX_PACK_NAME_LEN);
|
strlcpy(copy, name, MAX_PACK_NAME_LEN);
|
||||||
uint idx;
|
uint idx = 0;
|
||||||
for(idx = 0; idx < asset_packs_size(app->asset_packs); idx++) {
|
if(strcmp(copy, "NSFW") != 0) {
|
||||||
if(strcasecmp(copy, *asset_packs_get(app->asset_packs, idx)) < 0) {
|
for(; idx < asset_packs_size(app->asset_packs); idx++) {
|
||||||
break;
|
if(strcasecmp(copy, *asset_packs_get(app->asset_packs, idx)) < 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
asset_packs_push_at(app->asset_packs, idx, copy);
|
asset_packs_push_at(app->asset_packs, idx, copy);
|
||||||
@@ -167,17 +177,17 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
var_item_list,
|
var_item_list,
|
||||||
"Asset Pack",
|
"Asset Pack",
|
||||||
asset_packs_size(app->asset_packs) + 1,
|
asset_packs_size(app->asset_packs) + 1,
|
||||||
xtreme_settings_scene_start_asset_pack_changed,
|
xtreme_app_scene_main_asset_pack_changed,
|
||||||
app);
|
app);
|
||||||
variable_item_set_current_value_index(item, current_pack);
|
variable_item_set_current_value_index(item, current_pack);
|
||||||
variable_item_set_current_value_text(
|
variable_item_set_current_value_text(
|
||||||
item, current_pack == 0 ? "OFF" : *asset_packs_get(app->asset_packs, current_pack - 1));
|
item, current_pack == 0 ? "SFW" : *asset_packs_get(app->asset_packs, current_pack - 1));
|
||||||
|
|
||||||
item = variable_item_list_add(
|
item = variable_item_list_add(
|
||||||
var_item_list,
|
var_item_list,
|
||||||
"Anim Speed",
|
"Anim Speed",
|
||||||
COUNT_OF(anim_speed_names),
|
COUNT_OF(anim_speed_names),
|
||||||
xtreme_settings_scene_start_anim_speed_changed,
|
xtreme_app_scene_main_anim_speed_changed,
|
||||||
app);
|
app);
|
||||||
value_index = value_index_int32(
|
value_index = value_index_int32(
|
||||||
xtreme_settings->anim_speed, anim_speed_values, COUNT_OF(anim_speed_names));
|
xtreme_settings->anim_speed, anim_speed_values, COUNT_OF(anim_speed_names));
|
||||||
@@ -188,7 +198,7 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
var_item_list,
|
var_item_list,
|
||||||
"Cycle Anims",
|
"Cycle Anims",
|
||||||
COUNT_OF(cycle_anims_names),
|
COUNT_OF(cycle_anims_names),
|
||||||
xtreme_settings_scene_start_cycle_anims_changed,
|
xtreme_app_scene_main_cycle_anims_changed,
|
||||||
app);
|
app);
|
||||||
value_index = value_index_int32(
|
value_index = value_index_int32(
|
||||||
xtreme_settings->cycle_anims, cycle_anims_values, COUNT_OF(cycle_anims_names));
|
xtreme_settings->cycle_anims, cycle_anims_values, COUNT_OF(cycle_anims_names));
|
||||||
@@ -196,7 +206,7 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
variable_item_set_current_value_text(item, cycle_anims_names[value_index]);
|
variable_item_set_current_value_text(item, cycle_anims_names[value_index]);
|
||||||
|
|
||||||
item = variable_item_list_add(
|
item = variable_item_list_add(
|
||||||
var_item_list, "Unlock Anims", 2, xtreme_settings_scene_start_unlock_anims_changed, app);
|
var_item_list, "Unlock Anims", 2, xtreme_app_scene_main_unlock_anims_changed, app);
|
||||||
variable_item_set_current_value_index(item, xtreme_settings->unlock_anims);
|
variable_item_set_current_value_index(item, xtreme_settings->unlock_anims);
|
||||||
variable_item_set_current_value_text(item, xtreme_settings->unlock_anims ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, xtreme_settings->unlock_anims ? "ON" : "OFF");
|
||||||
|
|
||||||
@@ -204,18 +214,23 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
var_item_list,
|
var_item_list,
|
||||||
"Battery Style",
|
"Battery Style",
|
||||||
COUNT_OF(battery_style_names),
|
COUNT_OF(battery_style_names),
|
||||||
xtreme_settings_scene_start_battery_style_changed,
|
xtreme_app_scene_main_battery_style_changed,
|
||||||
app);
|
app);
|
||||||
value_index = value_index_int32(
|
value_index = value_index_int32(
|
||||||
xtreme_settings->battery_style, battery_style_values, COUNT_OF(battery_style_names));
|
xtreme_settings->battery_style, battery_style_values, COUNT_OF(battery_style_names));
|
||||||
variable_item_set_current_value_index(item, value_index);
|
variable_item_set_current_value_index(item, value_index);
|
||||||
variable_item_set_current_value_text(item, battery_style_names[value_index]);
|
variable_item_set_current_value_text(item, battery_style_names[value_index]);
|
||||||
|
|
||||||
|
item = variable_item_list_add(
|
||||||
|
var_item_list, "Status Bar", 2, xtreme_app_scene_main_status_bar_changed, app);
|
||||||
|
variable_item_set_current_value_index(item, xtreme_settings->status_bar);
|
||||||
|
variable_item_set_current_value_text(item, xtreme_settings->status_bar ? "ON" : "OFF");
|
||||||
|
|
||||||
item = variable_item_list_add(
|
item = variable_item_list_add(
|
||||||
var_item_list,
|
var_item_list,
|
||||||
"Sort dirs before",
|
"Sort Dirs Before",
|
||||||
2,
|
2,
|
||||||
xtreme_settings_scene_start_sort_folders_before_changed,
|
xtreme_app_scene_main_sort_folders_before_changed,
|
||||||
app);
|
app);
|
||||||
variable_item_set_current_value_index(item, !xtreme_settings->sort_ignore_dirs);
|
variable_item_set_current_value_index(item, !xtreme_settings->sort_ignore_dirs);
|
||||||
variable_item_set_current_value_text(item, !xtreme_settings->sort_ignore_dirs ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, !xtreme_settings->sort_ignore_dirs ? "ON" : "OFF");
|
||||||
@@ -226,18 +241,18 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
var_item_list,
|
var_item_list,
|
||||||
"XP Level",
|
"XP Level",
|
||||||
DOLPHIN_LEVEL_COUNT + 1,
|
DOLPHIN_LEVEL_COUNT + 1,
|
||||||
xtreme_settings_scene_start_xp_level_changed,
|
xtreme_app_scene_main_xp_level_changed,
|
||||||
app);
|
app);
|
||||||
variable_item_set_current_value_index(item, app->dolphin_level - 1);
|
variable_item_set_current_value_index(item, app->dolphin_level - 1);
|
||||||
variable_item_set_current_value_text(item, level_str);
|
variable_item_set_current_value_text(item, level_str);
|
||||||
|
|
||||||
item = variable_item_list_add(
|
item = variable_item_list_add(
|
||||||
var_item_list, "SubGHz Extend", 2, xtreme_settings_scene_start_subghz_extend_changed, app);
|
var_item_list, "SubGHz Extend", 2, xtreme_app_scene_main_subghz_extend_changed, app);
|
||||||
variable_item_set_current_value_index(item, app->subghz_extend);
|
variable_item_set_current_value_index(item, app->subghz_extend);
|
||||||
variable_item_set_current_value_text(item, app->subghz_extend ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, app->subghz_extend ? "ON" : "OFF");
|
||||||
|
|
||||||
item = variable_item_list_add(
|
item = variable_item_list_add(
|
||||||
var_item_list, "SubGHz Bypass", 2, xtreme_settings_scene_start_subghz_bypass_changed, app);
|
var_item_list, "SubGHz Bypass", 2, xtreme_app_scene_main_subghz_bypass_changed, app);
|
||||||
variable_item_set_current_value_index(item, app->subghz_bypass);
|
variable_item_set_current_value_index(item, app->subghz_bypass);
|
||||||
variable_item_set_current_value_text(item, app->subghz_bypass ? "ON" : "OFF");
|
variable_item_set_current_value_text(item, app->subghz_bypass ? "ON" : "OFF");
|
||||||
|
|
||||||
@@ -245,18 +260,18 @@ void xtreme_settings_scene_start_on_enter(void* context) {
|
|||||||
"%s %s", version_get_gitbranchnum(NULL), version_get_builddate(NULL));
|
"%s %s", version_get_gitbranchnum(NULL), version_get_builddate(NULL));
|
||||||
item = variable_item_list_add(var_item_list, furi_string_get_cstr(version_tag), 0, NULL, app);
|
item = variable_item_list_add(var_item_list, furi_string_get_cstr(version_tag), 0, NULL, app);
|
||||||
|
|
||||||
view_dispatcher_switch_to_view(app->view_dispatcher, XtremeSettingsAppViewVarItemList);
|
view_dispatcher_switch_to_view(app->view_dispatcher, XtremeAppViewVarItemList);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool xtreme_settings_scene_start_on_event(void* context, SceneManagerEvent event) {
|
bool xtreme_app_scene_main_on_event(void* context, SceneManagerEvent event) {
|
||||||
UNUSED(context);
|
UNUSED(context);
|
||||||
UNUSED(event);
|
UNUSED(event);
|
||||||
bool consumed = false;
|
bool consumed = false;
|
||||||
return consumed;
|
return consumed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void xtreme_settings_scene_start_on_exit(void* context) {
|
void xtreme_app_scene_main_on_exit(void* context) {
|
||||||
XtremeSettingsApp* app = context;
|
XtremeApp* app = context;
|
||||||
asset_packs_it_t it;
|
asset_packs_it_t it;
|
||||||
for(asset_packs_it(it, app->asset_packs); !asset_packs_end_p(it); asset_packs_next(it)) {
|
for(asset_packs_it(it, app->asset_packs); !asset_packs_end_p(it); asset_packs_next(it)) {
|
||||||
free(*asset_packs_cref(it));
|
free(*asset_packs_cref(it));
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
#include "xtreme_settings_app.h"
|
#include "xtreme_app.h"
|
||||||
|
|
||||||
static bool xtreme_settings_custom_event_callback(void* context, uint32_t event) {
|
static bool xtreme_app_custom_event_callback(void* context, uint32_t event) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
XtremeSettingsApp* app = context;
|
XtremeApp* app = context;
|
||||||
return scene_manager_handle_custom_event(app->scene_manager, event);
|
return scene_manager_handle_custom_event(app->scene_manager, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void xtreme_settings_reboot(void* context) {
|
void xtreme_app_reboot(void* context) {
|
||||||
UNUSED(context);
|
UNUSED(context);
|
||||||
power_reboot(PowerBootModeNormal);
|
power_reboot(PowerBootModeNormal);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool xtreme_settings_back_event_callback(void* context) {
|
static bool xtreme_app_back_event_callback(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
XtremeSettingsApp* app = context;
|
XtremeApp* app = context;
|
||||||
|
|
||||||
if(app->level_changed) {
|
if(app->level_changed) {
|
||||||
Dolphin* dolphin = furi_record_open(RECORD_DOLPHIN);
|
Dolphin* dolphin = furi_record_open(RECORD_DOLPHIN);
|
||||||
@@ -45,11 +45,11 @@ static bool xtreme_settings_back_event_callback(void* context) {
|
|||||||
if(app->assets_changed) {
|
if(app->assets_changed) {
|
||||||
popup_set_header(app->popup, "Rebooting...", 64, 26, AlignCenter, AlignCenter);
|
popup_set_header(app->popup, "Rebooting...", 64, 26, AlignCenter, AlignCenter);
|
||||||
popup_set_text(app->popup, "Swapping assets...", 64, 40, AlignCenter, AlignCenter);
|
popup_set_text(app->popup, "Swapping assets...", 64, 40, AlignCenter, AlignCenter);
|
||||||
popup_set_callback(app->popup, xtreme_settings_reboot);
|
popup_set_callback(app->popup, xtreme_app_reboot);
|
||||||
popup_set_context(app->popup, app);
|
popup_set_context(app->popup, app);
|
||||||
popup_set_timeout(app->popup, 1000);
|
popup_set_timeout(app->popup, 1000);
|
||||||
popup_enable_timeout(app->popup);
|
popup_enable_timeout(app->popup);
|
||||||
view_dispatcher_switch_to_view(app->view_dispatcher, XtremeSettingsAppViewPopup);
|
view_dispatcher_switch_to_view(app->view_dispatcher, XtremeAppViewPopup);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -57,20 +57,20 @@ static bool xtreme_settings_back_event_callback(void* context) {
|
|||||||
return scene_manager_handle_back_event(app->scene_manager);
|
return scene_manager_handle_back_event(app->scene_manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
XtremeSettingsApp* xtreme_settings_app_alloc() {
|
XtremeApp* xtreme_app_alloc() {
|
||||||
XtremeSettingsApp* app = malloc(sizeof(XtremeSettingsApp));
|
XtremeApp* app = malloc(sizeof(XtremeApp));
|
||||||
app->gui = furi_record_open(RECORD_GUI);
|
app->gui = furi_record_open(RECORD_GUI);
|
||||||
|
|
||||||
// View Dispatcher and Scene Manager
|
// View Dispatcher and Scene Manager
|
||||||
app->view_dispatcher = view_dispatcher_alloc();
|
app->view_dispatcher = view_dispatcher_alloc();
|
||||||
app->scene_manager = scene_manager_alloc(&xtreme_settings_scene_handlers, app);
|
app->scene_manager = scene_manager_alloc(&xtreme_app_scene_handlers, app);
|
||||||
view_dispatcher_enable_queue(app->view_dispatcher);
|
view_dispatcher_enable_queue(app->view_dispatcher);
|
||||||
view_dispatcher_set_event_callback_context(app->view_dispatcher, app);
|
view_dispatcher_set_event_callback_context(app->view_dispatcher, app);
|
||||||
|
|
||||||
view_dispatcher_set_custom_event_callback(
|
view_dispatcher_set_custom_event_callback(
|
||||||
app->view_dispatcher, xtreme_settings_custom_event_callback);
|
app->view_dispatcher, xtreme_app_custom_event_callback);
|
||||||
view_dispatcher_set_navigation_event_callback(
|
view_dispatcher_set_navigation_event_callback(
|
||||||
app->view_dispatcher, xtreme_settings_back_event_callback);
|
app->view_dispatcher, xtreme_app_back_event_callback);
|
||||||
|
|
||||||
view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen);
|
view_dispatcher_attach_to_gui(app->view_dispatcher, app->gui, ViewDispatcherTypeFullscreen);
|
||||||
|
|
||||||
@@ -78,25 +78,23 @@ XtremeSettingsApp* xtreme_settings_app_alloc() {
|
|||||||
app->var_item_list = variable_item_list_alloc();
|
app->var_item_list = variable_item_list_alloc();
|
||||||
view_dispatcher_add_view(
|
view_dispatcher_add_view(
|
||||||
app->view_dispatcher,
|
app->view_dispatcher,
|
||||||
XtremeSettingsAppViewVarItemList,
|
XtremeAppViewVarItemList,
|
||||||
variable_item_list_get_view(app->var_item_list));
|
variable_item_list_get_view(app->var_item_list));
|
||||||
|
|
||||||
app->popup = popup_alloc();
|
app->popup = popup_alloc();
|
||||||
view_dispatcher_add_view(
|
view_dispatcher_add_view(
|
||||||
app->view_dispatcher, XtremeSettingsAppViewPopup, popup_get_view(app->popup));
|
app->view_dispatcher, XtremeAppViewPopup, popup_get_view(app->popup));
|
||||||
|
|
||||||
// Set first scene
|
|
||||||
scene_manager_next_scene(app->scene_manager, XtremeSettingsAppSceneStart);
|
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
void xtreme_settings_app_free(XtremeSettingsApp* app) {
|
void xtreme_app_free(XtremeApp* app) {
|
||||||
furi_assert(app);
|
furi_assert(app);
|
||||||
|
|
||||||
// Gui modules
|
// Gui modules
|
||||||
view_dispatcher_remove_view(app->view_dispatcher, XtremeSettingsAppViewVarItemList);
|
view_dispatcher_remove_view(app->view_dispatcher, XtremeAppViewVarItemList);
|
||||||
variable_item_list_free(app->var_item_list);
|
variable_item_list_free(app->var_item_list);
|
||||||
view_dispatcher_remove_view(app->view_dispatcher, XtremeSettingsAppViewPopup);
|
view_dispatcher_remove_view(app->view_dispatcher, XtremeAppViewPopup);
|
||||||
popup_free(app->popup);
|
popup_free(app->popup);
|
||||||
|
|
||||||
// View Dispatcher and Scene Manager
|
// View Dispatcher and Scene Manager
|
||||||
@@ -108,10 +106,11 @@ void xtreme_settings_app_free(XtremeSettingsApp* app) {
|
|||||||
free(app);
|
free(app);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int32_t xtreme_settings_app(void* p) {
|
extern int32_t xtreme_app(void* p) {
|
||||||
UNUSED(p);
|
UNUSED(p);
|
||||||
XtremeSettingsApp* app = xtreme_settings_app_alloc();
|
XtremeApp* app = xtreme_app_alloc();
|
||||||
|
scene_manager_next_scene(app->scene_manager, XtremeAppSceneMain);
|
||||||
view_dispatcher_run(app->view_dispatcher);
|
view_dispatcher_run(app->view_dispatcher);
|
||||||
xtreme_settings_app_free(app);
|
xtreme_app_free(app);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -8,14 +8,14 @@
|
|||||||
#include <assets_icons.h>
|
#include <assets_icons.h>
|
||||||
#include <gui/modules/variable_item_list.h>
|
#include <gui/modules/variable_item_list.h>
|
||||||
#include <gui/modules/popup.h>
|
#include <gui/modules/popup.h>
|
||||||
#include "xtreme_settings.h"
|
#include "scenes/xtreme_app_scene.h"
|
||||||
#include "xtreme_assets.h"
|
|
||||||
#include "scenes/xtreme_settings_scene.h"
|
|
||||||
#include "dolphin/helpers/dolphin_state.h"
|
#include "dolphin/helpers/dolphin_state.h"
|
||||||
#include "dolphin/dolphin.h"
|
#include "dolphin/dolphin.h"
|
||||||
#include "dolphin/dolphin_i.h"
|
#include "dolphin/dolphin_i.h"
|
||||||
#include <lib/flipper_format/flipper_format.h>
|
#include <lib/flipper_format/flipper_format.h>
|
||||||
#include <m-array.h>
|
#include <m-array.h>
|
||||||
|
#include "xtreme/settings.h"
|
||||||
|
#include "xtreme/assets.h"
|
||||||
|
|
||||||
ARRAY_DEF(asset_packs, char*)
|
ARRAY_DEF(asset_packs, char*)
|
||||||
|
|
||||||
@@ -33,9 +33,9 @@ typedef struct {
|
|||||||
bool subghz_changed;
|
bool subghz_changed;
|
||||||
bool level_changed;
|
bool level_changed;
|
||||||
asset_packs_t asset_packs;
|
asset_packs_t asset_packs;
|
||||||
} XtremeSettingsApp;
|
} XtremeApp;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
XtremeSettingsAppViewVarItemList,
|
XtremeAppViewVarItemList,
|
||||||
XtremeSettingsAppViewPopup,
|
XtremeAppViewPopup,
|
||||||
} XtremeSettingsAppView;
|
} XtremeAppView;
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
#include "xtreme_settings_scene.h"
|
|
||||||
|
|
||||||
// Generate scene on_enter handlers array
|
|
||||||
#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_enter,
|
|
||||||
void (*const xtreme_settings_on_enter_handlers[])(void*) = {
|
|
||||||
#include "xtreme_settings_scene_config.h"
|
|
||||||
};
|
|
||||||
#undef ADD_SCENE
|
|
||||||
|
|
||||||
// Generate scene on_event handlers array
|
|
||||||
#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_event,
|
|
||||||
bool (*const xtreme_settings_on_event_handlers[])(void* context, SceneManagerEvent event) = {
|
|
||||||
#include "xtreme_settings_scene_config.h"
|
|
||||||
};
|
|
||||||
#undef ADD_SCENE
|
|
||||||
|
|
||||||
// Generate scene on_exit handlers array
|
|
||||||
#define ADD_SCENE(prefix, name, id) prefix##_scene_##name##_on_exit,
|
|
||||||
void (*const xtreme_settings_on_exit_handlers[])(void* context) = {
|
|
||||||
#include "xtreme_settings_scene_config.h"
|
|
||||||
};
|
|
||||||
#undef ADD_SCENE
|
|
||||||
|
|
||||||
// Initialize scene handlers configuration structure
|
|
||||||
const SceneManagerHandlers xtreme_settings_scene_handlers = {
|
|
||||||
.on_enter_handlers = xtreme_settings_on_enter_handlers,
|
|
||||||
.on_event_handlers = xtreme_settings_on_event_handlers,
|
|
||||||
.on_exit_handlers = xtreme_settings_on_exit_handlers,
|
|
||||||
.scene_num = XtremeSettingsAppSceneNum,
|
|
||||||
};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ADD_SCENE(xtreme_settings, start, Start)
|
|
||||||
Reference in New Issue
Block a user