Skip to content

Commit

Permalink
Merge branch 'dev' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
xMasterX committed Mar 18, 2023
2 parents ad27f87 + 9e94b1f commit 56adcf1
Show file tree
Hide file tree
Showing 30 changed files with 456 additions and 405 deletions.
10 changes: 8 additions & 2 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,9 @@ steps:
Version: {{build.tag}}
[-> Sponsor our project](https://boosty.to/mmxdev)
[-Github - Changelog-](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/${DRONE_TAG})
Expand Down Expand Up @@ -220,7 +223,7 @@ steps:
commands:
- wget "https://raw.githubusercontent.com/fieu/discord.sh/e1dc1a7595efad2cad8f072f0b3531c470f5b7c8/discord.sh"
- chmod +x ./discord.sh
- ./discord.sh --text 'New Unleashed firmware released!\n\nVersion - '${DRONE_TAG}'\n\n[[Github - Changelog]](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')\n\n[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)\n\n[-Download latest extra apps pack-](https://github.com/xMasterX/unleashed-extra-pack/archive/refs/heads/main.zip)\n\n[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/'${DRONE_TAG}'/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}')\n\n[-Version without custom animations - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-'${DRONE_TAG}'n.tgz&channel=release-cfw&version='${DRONE_TAG}'n)\n\n[-Version with extra apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e)'
- ./discord.sh --text 'New Unleashed firmware released!\n\nVersion - '${DRONE_TAG}'\n\n[-> Sponsor our project](https://boosty.to/mmxdev)\n\n[[Github - Changelog]](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')\n\n[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)\n\n[-Download latest extra apps pack-](https://github.com/xMasterX/unleashed-extra-pack/archive/refs/heads/main.zip)\n\n[-Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/'${DRONE_TAG}'/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}')\n\n[-Version without custom animations - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-'${DRONE_TAG}'n.tgz&channel=release-cfw&version='${DRONE_TAG}'n)\n\n[-Version with extra apps - Install FW via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e)'

- name: "Send extra pack build to telegram"
image: appleboy/drone-telegram
Expand Down Expand Up @@ -385,6 +388,9 @@ steps:
Commit: {{commit.message}}
[-> Sponsor our project](https://boosty.to/mmxdev)
[-Version with extra apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-${DRONE_BUILD_NUMBER}e.tgz&channel=dev-cfw&version=${DRONE_BUILD_NUMBER}e)
Expand Down Expand Up @@ -413,7 +419,7 @@ steps:
commands:
- wget "https://raw.githubusercontent.com/fieu/discord.sh/e1dc1a7595efad2cad8f072f0b3531c470f5b7c8/discord.sh"
- chmod +x ./discord.sh
- ./discord.sh --text 'Unleashed firmware dev build successful!\n\nBuild - '${DRONE_BUILD_NUMBER}'\n\nSHA - '${DRONE_COMMIT_SHA}'\n\n[-Version with extra apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'e.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}'e)\n\n[-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/dev/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}')'
- ./discord.sh --text 'Unleashed firmware dev build successful!\n\nBuild - '${DRONE_BUILD_NUMBER}'\n\nSHA - '${DRONE_COMMIT_SHA}'\n\n[-> Sponsor our project](https://boosty.to/mmxdev)\n\n[-Version with extra apps - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'e.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}'e)\n\n[-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/dev/flipper-z-f7-update-'${DRONE_BUILD_NUMBER}'.tgz&channel=dev-cfw&version='${DRONE_BUILD_NUMBER}')'

trigger:
branch:
Expand Down
40 changes: 8 additions & 32 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,11 @@
### New changes
* SubGHz: New protocols support: CAME Space, Stilmatic / Schellenberg
* SubGHz: Add Manually - new protocols -> Beninca, Sommer(FSK), IronLogic, DTM Neo, Gibidi, Elmes Electronic (Elmes Poland), CAME Space
* SubGHz: Security+ 2.0 -> Ability to send custom buttons codes (0x80, 0x81, 0xE2)
* SubGHz: Remember last external module setting and power setting, so if you turn off flipper it will remember last external module settings (only for subghz app)
* SubGHz: Fix issues when external module is not found but plugins tries to use it, now they will fallback to internal in that case
* SubGHz: Fixed external CC1101 module power issues, added more checks, fixed issues when launching subghz favourites
* SubGHz: Removed 330MHz from default freq hopper to make it faster, to change freq hopper settings and remove/add your freqs see -> [Instruction](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/SubGHzSettings.md)
* SubGHz: Small UI text fixes
* GUI: Fix submenu elements text size, now we can fit more symbols
* Plugins: Added delay and retries to avoid power issues in plugins -> WiFi Scanner, ESP8266 Deauther
* Plugins: Update for WiFi Marauder companion -> `sniff` saves pcaps in `YourFlippersMicroSD/apps_data/marauder/` -> Only with custom marauder build (It is necessary to uncomment "#define WRITE_PACKETS_SERIAL" in configs.h (in marauder fw) and compile the firmware for the wifi board.) Or download precompiled build -> [Download esp32_marauder_ver_flipper_sd_serial.bin](https://github.com/justcallmekoko/ESP32Marauder/releases/latest) - [(by tcpassos)](https://github.com/0xchocolate/flipperzero-firmware-with-wifi-marauder-companion/pull/7)
* Plugins: Removed `cdefines` from external plugins as it was not used in any way
* Plugins: Updated **TOTP (Authenticator)** [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator) (fixed issue #379)
* Plugins: Update for SubGHz Bruteforcer, added - Holtek HT12X 12bit AM 433.920MHz/315MHz/868MHz/915MHz (TE: 433us)
* OFW: iButton: Add support for Dallas DS1971
* OFW: fbt: explicitly set dist suffix length, not depending on environment settings
* OFW: NFC -> Skip the read when the card is not present
* OFW: NFC -> Mark keys as not found when they couldn't auth successfully
* OFW: Storage -> Require the trailing slash for root paths
* OFW: gh: use shallow clones whenever possible
* OFW: Add new nfc apdu cli command
* OFW: Picopass standard KDF dictionary
* OFW: Nfc: fixes for latest PVS-studio 7.23
* OFW: Dolphin: new spring animation, weight adjust, drop winter animation.
* OFW: fbt, faploader: minimal app module implementation -> **All plugins now should have** `apptype=FlipperAppType.EXTERNAL`
* OFW: Fbt: fix broken resource deployment
* OFW: NFC: Fix 0 block write possibility in Mifare Classic emulation
* OFW: BadUSB: updated parser and added stringln, hold and release
* OFW: Upside down / left handed orientation support
* OFW: Embed assets in elf file
* OFW: Dumb mode menu freeze fix
* iButton: Add support for DS1420 (not fully tested)
* Desktop: Option to set Tertiary favourite app (Hold right arrow on desktop) - **Desktop settings (pin code, favourite app, autolock time) will be resetted!!! Only one time after installing - due to changes in settings structure, after installing of this release desktop settings will not be reset with next release**
* Desktop: Ability to disable favourite app (use last element in a main list `None (disable)`)
* Desktop: Fix issue #387 (Ok button was showing invalid file error in dummy mode)
* OFW PR: SD Driver: reinit sd card on error (by DrZlo13 | OFW PR 2493)
* OFW PR: iButton -> Fix a typo: use right shift instead of greater than (by gsurkov | OFW PR 2506)
* OFW: Optimize trailing slash check

#### [🎲 Download latest extra apps pack](https://github.com/xMasterX/unleashed-extra-pack/archive/refs/heads/main.zip)

Expand All @@ -38,7 +14,7 @@
[-> Download qFlipper (official link)](https://flipperzero.one/update)

## Please support development of the project
* Boosty: https://boosty.to/mmxdev
* **Boosty** (patreon alternative): https://boosty.to/mmxdev
* Ko-Fi: https://ko-fi.com/masterx
* cloudtips (only RU payments accepted): https://pay.cloudtips.ru/p/7b3e9d65
* YooMoney (only RU payments accepted): https://yoomoney.ru/fundraise/XA49mgQLPA0.221209
Expand Down
2 changes: 1 addition & 1 deletion ReadMe.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Our team is small and the guys are working on this project as much as they can s
The amount of work done on this project is huge and we need your support, no matter how large or small. Even if you just say, "Thank you Unleashed firmware developers!" somewhere. Doing so will help us continue our work and will help drive us to make the firmware better every time.
Also, regarding our releases, every build has and always will be free and open-source. There will be no paywall releases or closed-source apps within the firmware. As long as I am working on this project it will never happen.
You can support us by using links or addresses below:
* Boosty: https://boosty.to/mmxdev
* **Boosty** (patreon alternative): https://boosty.to/mmxdev
* Ko-Fi: https://ko-fi.com/masterx
* cloudtips (only RU payments accepted): https://pay.cloudtips.ru/p/7b3e9d65
* YooMoney (only RU payments accepted): https://yoomoney.ru/fundraise/XA49mgQLPA0.221209
Expand Down
2 changes: 1 addition & 1 deletion applications/external/snake_game/application.fam
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
App(
appid="snake_game",
appid="Snake",
name="Snake Game",
apptype=FlipperAppType.EXTERNAL,
entry_point="snake_game_app",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,11 @@ static bool bubble_animation_input_callback(InputEvent* event, void* context) {
bubble_animation_activate(animation_view, false);
}

if(event->key == InputKeyRight) {
if(event->key == InputKeyRight && event->type == InputTypeShort) {
/* Right button reserved for animation activation, so consume */
consumed = true;
if(event->type == InputTypeShort) {
if(animation_view->interact_callback) {
animation_view->interact_callback(animation_view->interact_callback_context);
}
if(animation_view->interact_callback) {
animation_view->interact_callback(animation_view->interact_callback_context);
}
}

Expand Down
3 changes: 2 additions & 1 deletion applications/services/desktop/desktop_settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#include <toolbox/saved_struct.h>
#include <storage/storage.h>

#define DESKTOP_SETTINGS_VER (7)
#define DESKTOP_SETTINGS_VER (8)

#define DESKTOP_SETTINGS_PATH INT_PATH(DESKTOP_SETTINGS_FILE_NAME)
#define DESKTOP_SETTINGS_MAGIC (0x17)
Expand Down Expand Up @@ -58,6 +58,7 @@ typedef struct {
typedef struct {
FavoriteApp favorite_primary;
FavoriteApp favorite_secondary;
FavoriteApp favorite_tertiary;
PinCode pin_code;
uint8_t is_locked;
uint32_t auto_lock_delay_ms;
Expand Down
19 changes: 19 additions & 0 deletions applications/services/desktop/scenes/desktop_scene_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,25 @@ bool desktop_scene_main_on_event(void* context, SceneManagerEvent event) {
}
consumed = true;
break;
case DesktopMainEventOpenFavoriteTertiary:
DESKTOP_SETTINGS_LOAD(&desktop->settings);
if(desktop->settings.favorite_tertiary.is_external) {
LoaderStatus status = loader_start(
desktop->loader,
FAP_LOADER_APP_NAME,
desktop->settings.favorite_tertiary.name_or_path);
if(status != LoaderStatusOk) {
FURI_LOG_E(TAG, "loader_start failed: %d", status);
}
} else {
LoaderStatus status = loader_start(
desktop->loader, desktop->settings.favorite_tertiary.name_or_path, NULL);
if(status != LoaderStatusOk) {
FURI_LOG_E(TAG, "loader_start failed: %d", status);
}
}
consumed = true;
break;
case DesktopAnimationEventCheckAnimation:
animation_manager_check_blocking_process(desktop->animation_manager);
consumed = true;
Expand Down
1 change: 1 addition & 0 deletions applications/services/desktop/views/desktop_events.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ typedef enum {
DesktopMainEventOpenArchive,
DesktopMainEventOpenFavoritePrimary,
DesktopMainEventOpenFavoriteSecondary,
DesktopMainEventOpenFavoriteTertiary,
DesktopMainEventOpenMenu,
DesktopMainEventOpenDebug,
DesktopMainEventOpenPassport,
Expand Down
2 changes: 2 additions & 0 deletions applications/services/desktop/views/desktop_view_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ bool desktop_main_input_callback(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 == InputKeyRight) {
main_view->callback(DesktopMainEventOpenFavoriteTertiary, main_view->context);
} else if(event->key == InputKeyUp) {
main_view->callback(DesktopMainEventLock, main_view->context);
} else if(event->key == InputKeyOk) {
Expand Down
61 changes: 19 additions & 42 deletions applications/services/storage/storage_glue.c
Original file line number Diff line number Diff line change
Expand Up @@ -73,29 +73,34 @@ uint32_t storage_data_get_timestamp(StorageData* storage) {

/****************** storage glue ******************/

bool storage_has_file(const File* file, StorageData* storage_data) {
bool result = false;
static StorageFile* storage_get_file(const File* file, StorageData* storage) {
StorageFile* storage_file_ref = NULL;

StorageFileList_it_t it;
for(StorageFileList_it(it, storage_data->files); !StorageFileList_end_p(it);
for(StorageFileList_it(it, storage->files); !StorageFileList_end_p(it);
StorageFileList_next(it)) {
const StorageFile* storage_file = StorageFileList_cref(it);
StorageFile* storage_file = StorageFileList_ref(it);

if(storage_file->file->file_id == file->file_id) {
result = true;
storage_file_ref = storage_file;
break;
}
}

return result;
return storage_file_ref;
}

bool storage_has_file(const File* file, StorageData* storage) {
return storage_get_file(file, storage) != NULL;
}

bool storage_path_already_open(FuriString* path, StorageFileList_t array) {
bool storage_path_already_open(FuriString* path, StorageData* storage) {
bool open = false;

StorageFileList_it_t it;

for(StorageFileList_it(it, array); !StorageFileList_end_p(it); StorageFileList_next(it)) {
for(StorageFileList_it(it, storage->files); !StorageFileList_end_p(it);
StorageFileList_next(it)) {
const StorageFile* storage_file = StorageFileList_cref(it);

if(furi_string_cmp(storage_file->path, path) == 0) {
Expand All @@ -108,43 +113,15 @@ bool storage_path_already_open(FuriString* path, StorageFileList_t array) {
}

void storage_set_storage_file_data(const File* file, void* file_data, StorageData* storage) {
StorageFile* founded_file = NULL;

StorageFileList_it_t it;

for(StorageFileList_it(it, storage->files); !StorageFileList_end_p(it);
StorageFileList_next(it)) {
StorageFile* storage_file = StorageFileList_ref(it);

if(storage_file->file->file_id == file->file_id) {
founded_file = storage_file;
break;
}
}

furi_check(founded_file != NULL);

founded_file->file_data = file_data;
StorageFile* storage_file_ref = storage_get_file(file, storage);
furi_check(storage_file_ref != NULL);
storage_file_ref->file_data = file_data;
}

void* storage_get_storage_file_data(const File* file, StorageData* storage) {
const StorageFile* founded_file = NULL;

StorageFileList_it_t it;

for(StorageFileList_it(it, storage->files); !StorageFileList_end_p(it);
StorageFileList_next(it)) {
const StorageFile* storage_file = StorageFileList_cref(it);

if(storage_file->file->file_id == file->file_id) {
founded_file = storage_file;
break;
}
}

furi_check(founded_file != NULL);

return founded_file->file_data;
StorageFile* storage_file_ref = storage_get_file(file, storage);
furi_check(storage_file_ref != NULL);
return storage_file_ref->file_data;
}

void storage_push_storage_file(File* file, FuriString* path, StorageData* storage) {
Expand Down
2 changes: 1 addition & 1 deletion applications/services/storage/storage_glue.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct StorageData {
};

bool storage_has_file(const File* file, StorageData* storage_data);
bool storage_path_already_open(FuriString* path, StorageFileList_t files);
bool storage_path_already_open(FuriString* path, StorageData* storage_data);

void storage_set_storage_file_data(const File* file, void* file_data, StorageData* storage);
void* storage_get_storage_file_data(const File* file, StorageData* storage);
Expand Down
Loading

0 comments on commit 56adcf1

Please sign in to comment.