From 054b35f75cb13ac6209d3e877d5f4223c2e5aa4d Mon Sep 17 00:00:00 2001 From: Clara K Date: Fri, 27 Jan 2023 19:58:59 +0100 Subject: [PATCH 1/3] Update ReadMe.md --- ReadMe.md | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 38 insertions(+), 8 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index 4497d6889..58123126d 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,19 +1,19 @@

XFW - Xtreme Firmware for the Flipper Zero

- +

[Intro](https://github.com/ClaraCrazy/Flipper-Xtreme#What-makes-it-special) | [Animations](https://github.com/ClaraCrazy/Flipper-Xtreme#Animations--Asset-Packs) | [Docs](https://github.com/ClaraCrazy/Flipper-Xtreme/wiki) | [Changelog](https://github.com/ClaraCrazy/Flipper-Xtreme#list-of-changes) | [Known bugs](https://github.com/ClaraCrazy/Flipper-Xtreme#Known-bugs) | [Install](https://github.com/ClaraCrazy/Flipper-Xtreme#Install) | [Build](https://github.com/ClaraCrazy/Flipper-Xtreme#build-it-yourself) | [Discord](https://discord.gg/flipper-xtreme) ----- -This firmware is a complete overhaul of the [Official Firmware](https://github.com/flipperdevices/flipperzero-firmware), it also features some of the badly implemented ideas from RogueMaster, and lots of awesome code-bits from [Unleashed](https://github.com/DarkFlippers/unleashed-firmware). +This firmware is a complete overhaul of the [Official Firmware](https://github.com/flipperdevices/flipperzero-firmware), it also features lots of awesome code-bits from [Unleashed](https://github.com/DarkFlippers/unleashed-firmware). -----

What makes it special?

-I have spent many hours perfecting this code even further, and getting the most out of it. +We have spent many hours perfecting this code even further, and getting the most out of it. The goal of this Firmware is to regularly bring out amazing updates based on what the community wants, with an actual understanding of whats going on. Fixing bugs that are regularly talked about, removing unstable / broken applications (.FAP) and actually using the level system that just sits abandoned everywhere else.

@@ -23,11 +23,32 @@ The goal of this Firmware is to regularly bring out amazing updates based on wha - Giving the level system a purpose: Right now, each level unlocks a new wallpaper. More on that below -- Clean upgraded code: RM wrote some updates to certain files. These are... painful, to say the least. Here its all built with perfection in mind and integrated in a mostly clean way. I invite you all to compare the code with theirs. +- Clean upgraded code: Some people wrote updates to certain files. These are... painful, to say the least. Here its all built with perfection in mind and integrated in a mostly clean way. I invite you all to compare the code with theirs. - Up2Date: This firmware receives updates from a few repositories, not just from its Upstream. If there are functional, but yet un-merged Pull requests on another flipper firmware that are good, they will be in here! +----- +
+

Xtreme Settings:

+ + +We wrote a powerful yet easy-to-use application specifically for our Firmware, that gives you easy-access to all the fancy things we implemented: + + + +Base Graphics: Change the fallback assets used. Its either SFW (default) or NSFW +
Asset Pack: Allows you to easily customize your firmware, more on that below +
Anim Speed: Speed in which the animations play +
Cycle Anims: Duration of how long animations are played before switching to next +
Unlock Anims: Custom setting just for NSFW fallback animations. Figure it out ;) +
Battery style: Classic Firmware battery style toggle, just at a more convenient place +
XP Level: Changes your Flippers level +
SubGhz Extend: Allows you to extend the subghz range beyond what FZ devs planned +
SubGhz Bypass: Allows you to bypass the subghz region locks of the Flipper + +
+ -----

Animations / Asset Packs:

@@ -39,12 +60,16 @@ You can easily create your own pack, or find some user made ones in the discord
+
+ Once you have some packs, upload them to your Flipper in SD/dolphin_custom (if you did this right you should see SD/dolphin_custom/PackName/Anims and/or SD/dolphin_custom/PackName/Icons).
+
+ After installing the packs to Flipper, hit the Arrow UP button on the main menu and go to Xtreme Settings. Here choose which pack you want and tweak the other settings how you prefer, then press back to reboot and enjoy your new assets & animations! @@ -54,9 +79,14 @@ After installing the packs to Flipper, hit the Arrow UP button on t

Levels:

-This firmware contains some NSFW animations to bring a twist to the boring community, and added a fun leveling-system around them, that you can easily add to your own `Asset Packs`. +This Firmware has 30 levels, not just the basic 3 the official one has. -The idle_animations are tied to the level system. Each level you reach, unlocks a new animation. The higher your level, the more lewd it will become. Rumors have it, I'm to be found in at least one of those too +With this new system in place, it allows for some cool stuff like locking animations behind a certain level. This can be done fairly easy: The idle_animations are tied to the level system. Specifically, the `Min level` variable of your manifest file is used here. Each level you reach, unlocks a new animation. The higher your level, the more animations people can see. + +
+Our example + +In our case, this is used with the NSFW animations. Dont worry, these are disabled by default because I know not everyone likes to see my / anime tits and thats fine. Anyways.. each level gives a brand new background animation, they also become more and more lewd over time. (Funfact for those reading.. thats why the repository has this warning. Github doesnt like my tits :c) | Level | Animations | | ------------- | ------------- | @@ -64,7 +94,7 @@ The idle_animations are tied to the level system. Each level you reach, unlocks | 11-20 | Some tits, maybe an ass | | 21-30 | Fully NSFW, graphic scenes | -By default, SFW mode is selected, but if you want to enable all of the above simply hit `Arrow UP` from the main menu, select `Xtreme Settings` and change to NSFW graphics. +
-----
@@ -181,4 +211,4 @@ This helps us a lot, thanks for the free license for this project! [PVS-Studio](https://pvs-studio.com/en/pvs-studio/?utm_source=github&utm_medium=organic&utm_campaign=open_source) - static analyzer for C, C++, C#, and Java code. ---- -

"What we do for ourselves dies with us. What we do for others and the world remains and is immortal.” ― Albert Pike

+

"What we do for ourselves dies with us. What we do for others and the world remains and is immortal.” ― Albert Pine

From efcfcedaed8496953828fa5af8d0d2fe706b6731 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Mon, 13 Feb 2023 00:41:50 +0300 Subject: [PATCH 2/3] Rename functions and cleanup a bit --- .../gui/modules/file_browser_worker.c | 36 +++---------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/applications/services/gui/modules/file_browser_worker.c b/applications/services/gui/modules/file_browser_worker.c index faf307d55..8e56ab273 100644 --- a/applications/services/gui/modules/file_browser_worker.c +++ b/applications/services/gui/modules/file_browser_worker.c @@ -189,6 +189,7 @@ static bool browser_folder_init( return state; } +// Load files list by chunks, like it was originally, not compatible with sorting, sorting needs to be disabled to use this static bool browser_folder_load_chunked( BrowserWorker* browser, FuriString* path, @@ -270,8 +271,8 @@ static bool browser_folder_load_chunked( return (items_cnt == count); } -static bool - browser_folder_load(BrowserWorker* browser, FuriString* path, uint32_t offset, uint32_t count) { +// Load all files at once, may cause memory overflow so need to limit that to about 400 files +static bool browser_folder_load_full(BrowserWorker* browser, FuriString* path) { FileInfo file_info; Storage* storage = furi_record_open(RECORD_STORAGE); @@ -288,35 +289,6 @@ static bool if(!storage_dir_open(directory, furi_string_get_cstr(path))) { break; } - - // items_cnt = 0; - // while(items_cnt < offset) { - // if(!storage_dir_read(directory, &file_info, name_temp, FILE_NAME_LEN_MAX)) { - // break; - // } - // if(storage_file_get_error(directory) == FSE_OK) { - // furi_string_set(name_str, name_temp); - // if(browser_filter_by_name(browser, name_str, (file_info.flags & FSF_DIRECTORY))) { - // items_cnt++; - // } - // } else { - // break; - // } - // } - // if(items_cnt != offset) { - // break; - // } - - // ROGUE MASTER MOMENT - // this used to load the file list in chunks, which makes sense - // but then RM made it sort the files, still in chunks... - // so while scrolling, it loads more files and sorts them... - // chances are, the new files are higher in the sorted list... - // so the files keep shifting around while scrolling... - // now this does something intelligent: loads and sorts all in one go. - // might take a few milliseconds longer, but atleast it works - UNUSED(offset); - UNUSED(count); if(browser->list_load_cb) { browser->list_load_cb(browser->cb_ctx, 0); } @@ -450,7 +422,7 @@ static int32_t browser_worker(void* context) { browser_folder_load_chunked( browser, path, browser->load_offset, browser->load_count); } else { - browser_folder_load(browser, path, browser->load_offset, browser->load_count); + browser_folder_load_full(browser, path); } } From 025b4e27ea7d542d5b3efe44987cac3f882e7a3c Mon Sep 17 00:00:00 2001 From: Willy-JL Date: Sun, 12 Feb 2023 22:35:30 +0000 Subject: [PATCH 3/3] Fix statusbar without battery --- applications/services/gui/gui.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/services/gui/gui.c b/applications/services/gui/gui.c index daec0c606..24936e8eb 100644 --- a/applications/services/gui/gui.c +++ b/applications/services/gui/gui.c @@ -93,7 +93,7 @@ static void gui_redraw_status_bar(Gui* gui, bool need_attention) { width + 2, GUI_STATUS_BAR_WORKAREA_HEIGHT + 2); // Hide battery background - if(xtreme_settings->status_bar) { + if(xtreme_settings->status_bar && xtreme_settings->battery_style != BatteryStyleOff) { canvas_set_color(gui->canvas, ColorWhite); canvas_draw_box( gui->canvas, -1, 0, canvas_width(gui->canvas) + 1, canvas_height(gui->canvas)); @@ -119,7 +119,7 @@ static void gui_redraw_status_bar(Gui* gui, bool need_attention) { right_used + 4, GUI_STATUS_BAR_HEIGHT); // Disable battery border - if(xtreme_settings->status_bar) { + if(xtreme_settings->status_bar && xtreme_settings->battery_style != BatteryStyleOff) { canvas_set_color(gui->canvas, ColorBlack); canvas_draw_rframe( gui->canvas, 0, 0, canvas_width(gui->canvas), canvas_height(gui->canvas), 1);