Skip to content

Commit d73832a

Browse files
committed
Merge remote-tracking branch 'origin/dev' into electra
2 parents bf721d7 + a27aa03 commit d73832a

30 files changed

+164
-1428
lines changed

CHANGELOG.md

+21-4
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,37 @@
11
## New changes
2+
* NFC: Temp fix for `iso14443_4_layer_decode_block` crash
23
* NFC: CharlieCard parser (by @zacharyweiss)
4+
* SubGHz: FAAC RC XT - add 0xB button code on arrow buttons for programming mode
35
* SubGHz: Add Manually - Sommer FM fixes
46
* SubGHz: Enabled tx-rx state on unused gpio pin by default (**external amp option was removed and is enabled by default now**)
57
* SubGHz: **Status output !TX/RX on the GDO2 CC1101 pin** (by @quen0n | PR #742)
68
* SubGHz: Reworked saved settings (by @xMasterX and @Willy-JL)
79
* Desktop: Fixes for animation unload (by @Willy-JL)
10+
* iButton: Updated DS1420 for latest ibutton changes
11+
* Misc: Allow no prefix usage of name_generator_make_detailed_datetime
12+
* Misc: Allow setting view dispatcher callbacks to NULL
813
* Misc: Added `void` due to `-Wstrict-prototypes`
914
* Misc: Some code cleanup and proper log levels in nfc parsers
1015
* Infrared: Allow external apps to use infrared settings (by @Willy-JL)
1116
* JS & HAL: Various fixes and FURI_HAL_RANDOM_MAX define added (by @Willy-JL)
1217
* JS: **BadUSB layout support** (by @Willy-JL)
13-
* JS: Module `widget` and path globals (by @jamisonderek)
18+
* JS: New Modules `widget`, `vgm` and path globals (by @jamisonderek)
1419
* Apps: NFC Magic - **Gen2 writing support, Gen4 NTAG password and PACK fixes** (by @Astrrra)
15-
* Apps: MFKey - **fixed crashes** (by @noproto)
20+
* Apps: MFKey - **fixed crashes**, add more free ram (by @noproto & @Willy-JL)
1621
* Apps: **Check out Apps updates by following** [this link](https://github.com/xMasterX/all-the-plugins/commits/dev)
22+
* OFW PR 3616: NFC: Mf Desfire fix reading big files (by gornekich)
23+
* OFW: iButton: fix crash when deleting some keys
24+
* OFW: Desktop: cleanup error popups
25+
* OFW: Troika parser visual fixes
26+
* OFW: Fix the retry/exit confirmation prompts in iButton
27+
* OFW: nfc app: add legacy keys for plantain cards
28+
* OFW: GUI: Fix array out of bounds in menu exit
29+
* OFW: add support for S(WTX) request in iso14443_4a_poller
30+
* OFW: Mosgortrans parser output fixes
31+
* OFW: BLE: Add GapPairingNone support
32+
* OFW: iButton new UI
33+
* OFW: FuriHal: add ADC API
34+
* OFW: Mf Desfire multiple file rights support
1735
* OFW: **Felica poller** (NFC-F)
1836
* OFW: Desktop/Loader: Unload animations before loading FAPs
1937
* OFW: JS Documentation
@@ -49,8 +67,7 @@
4967
#### Known NFC post-refactor regressions list:
5068
- Mifare Mini clones reading is broken (original mini working fine) (OFW)
5169
- NFC CLI was removed with refactoring (OFW) (will be back soon)
52-
- Current list of affected apps: https://github.com/xMasterX/all-the-plugins/tree/dev/apps_broken_by_last_refactors
53-
- Also in app **Enhanced Sub-GHz Chat** - NFC part was temporarily removed to make app usable, NFC part of the app requires remaking it with new nfc stack
70+
- Mifare Nested not ported to latest API yet, `unlshd-065` is the latest version on old NFC API that works with "nested app"
5471

5572
----
5673

applications/main/ibutton/scenes/ibutton_scene_delete_confirm.c

+13-6
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,21 @@ void ibutton_scene_delete_confirm_on_enter(void* context) {
1717

1818
ibutton_protocols_render_uid(ibutton->protocols, key, uid);
1919

20-
furi_string_cat_printf(
21-
uid,
22-
"\n%s %s",
23-
ibutton_protocols_get_manufacturer(ibutton->protocols, ibutton_key_get_protocol_id(key)),
24-
ibutton_protocols_get_name(ibutton->protocols, ibutton_key_get_protocol_id(key)));
25-
2620
furi_string_cat(tmp, uid);
2721

22+
furi_string_push_back(tmp, '\n');
23+
24+
const char* protocol =
25+
ibutton_protocols_get_name(ibutton->protocols, ibutton_key_get_protocol_id(key));
26+
const char* manufacturer =
27+
ibutton_protocols_get_manufacturer(ibutton->protocols, ibutton_key_get_protocol_id(key));
28+
29+
if(strcasecmp(protocol, manufacturer) != 0 && strcasecmp(manufacturer, "N/A") != 0) {
30+
furi_string_cat_printf(tmp, "%s ", manufacturer);
31+
}
32+
33+
furi_string_cat(tmp, protocol);
34+
2835
widget_add_text_box_element(
2936
widget, 0, 0, 128, 64, AlignCenter, AlignTop, furi_string_get_cstr(tmp), false);
3037

applications/main/ibutton/scenes/ibutton_scene_emulate.c

+6-9
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,14 @@ void ibutton_scene_emulate_on_enter(void* context) {
2121

2222
widget_add_icon_element(widget, 3, 10, &I_iButtonKey_49x44);
2323

24-
if(furi_string_empty(ibutton->file_path)) {
25-
furi_string_printf(
26-
tmp,
27-
"Unsaved\n%s",
28-
ibutton_protocols_get_name(ibutton->protocols, ibutton_key_get_protocol_id(key)));
29-
} else {
30-
furi_string_printf(tmp, "%s", ibutton->key_name);
31-
}
24+
furi_string_printf(
25+
tmp,
26+
"[%s]\n%s",
27+
ibutton_protocols_get_name(ibutton->protocols, ibutton_key_get_protocol_id(key)),
28+
furi_string_empty(ibutton->file_path) ? "Unsaved Key" : ibutton->key_name);
3229

3330
widget_add_text_box_element(
34-
widget, 52, 23, 75, 26, AlignCenter, AlignTop, furi_string_get_cstr(tmp), false);
31+
widget, 52, 24, 75, 40, AlignCenter, AlignTop, furi_string_get_cstr(tmp), true);
3532

3633
widget_add_string_multiline_element(
3734
widget, 88, 10, AlignCenter, AlignTop, FontPrimary, "Emulating");

applications/main/ibutton/scenes/ibutton_scene_info.c

+17-6
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,23 @@ void ibutton_scene_info_on_enter(void* context) {
1010
FuriString* tmp = furi_string_alloc();
1111
FuriString* brief_data = furi_string_alloc();
1212

13-
furi_string_printf(
14-
tmp,
15-
"Name:%s\n\e#%s %s\e#\n",
16-
ibutton->key_name,
17-
ibutton_protocols_get_manufacturer(ibutton->protocols, protocol_id),
18-
ibutton_protocols_get_name(ibutton->protocols, protocol_id));
13+
if((strcmp(
14+
ibutton_protocols_get_manufacturer(ibutton->protocols, protocol_id),
15+
ibutton_protocols_get_name(ibutton->protocols, protocol_id)) != 0) &&
16+
(strcmp(ibutton_protocols_get_manufacturer(ibutton->protocols, protocol_id), "N/A") != 0)) {
17+
furi_string_printf(
18+
tmp,
19+
"Name:%s\n\e#%s %s\e#\n",
20+
ibutton->key_name,
21+
ibutton_protocols_get_manufacturer(ibutton->protocols, protocol_id),
22+
ibutton_protocols_get_name(ibutton->protocols, protocol_id));
23+
} else {
24+
furi_string_printf(
25+
tmp,
26+
"Name:%s\n\e#%s\e#\n",
27+
ibutton->key_name,
28+
ibutton_protocols_get_name(ibutton->protocols, protocol_id));
29+
}
1930

2031
ibutton_protocols_render_brief_data(ibutton->protocols, key, brief_data);
2132

applications/main/ibutton/scenes/ibutton_scene_write.c

+6-7
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,14 @@ void ibutton_scene_write_on_enter(void* context) {
4040

4141
widget_add_icon_element(widget, 3, 10, &I_iButtonKey_49x44);
4242

43-
if(furi_string_empty(ibutton->file_path)) {
44-
furi_string_printf(
45-
tmp, "Unsaved\n%s", ibutton_protocols_get_name(ibutton->protocols, protocol_id));
46-
} else {
47-
furi_string_printf(tmp, "%s", ibutton->key_name);
48-
}
43+
furi_string_printf(
44+
tmp,
45+
"[%s]\n%s",
46+
ibutton_protocols_get_name(ibutton->protocols, protocol_id),
47+
furi_string_empty(ibutton->file_path) ? "Unsaved Key" : ibutton->key_name);
4948

5049
widget_add_text_box_element(
51-
widget, 52, 23, 75, 26, AlignCenter, AlignTop, furi_string_get_cstr(tmp), false);
50+
widget, 52, 24, 75, 40, AlignCenter, AlignTop, furi_string_get_cstr(tmp), true);
5251

5352
ibutton_worker_write_set_callback(worker, ibutton_scene_write_callback, ibutton);
5453

applications/main/lfrfid/scenes/lfrfid_scene_emulate.c

+6-7
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ void lfrfid_scene_emulate_on_enter(void* context) {
66

77
FuriString* display_text = furi_string_alloc_set("\e#Emulating\e#\n");
88

9-
if(furi_string_empty(app->file_name)) {
10-
furi_string_cat(display_text, "Unsaved\n");
11-
furi_string_cat(display_text, protocol_dict_get_name(app->dict, app->protocol_id));
12-
} else {
13-
furi_string_cat(display_text, app->file_name);
14-
}
9+
furi_string_cat_printf(
10+
display_text,
11+
"[%s]\n%s",
12+
protocol_dict_get_name(app->dict, app->protocol_id),
13+
furi_string_empty(app->file_name) ? "Unsaved Tag" : furi_string_get_cstr(app->file_name));
1514

1615
widget_add_icon_element(widget, 0, 0, &I_NFC_dolphin_emulation_51x64);
1716
widget_add_text_box_element(
18-
widget, 55, 16, 67, 48, AlignCenter, AlignTop, furi_string_get_cstr(display_text), true);
17+
widget, 51, 6, 79, 50, AlignCenter, AlignTop, furi_string_get_cstr(display_text), false);
1918

2019
furi_string_free(display_text);
2120

applications/main/lfrfid/scenes/lfrfid_scene_write.c

+8-2
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,18 @@ void lfrfid_scene_write_on_enter(void* context) {
2525
popup_set_header(popup, "Writing", 94, 16, AlignCenter, AlignTop);
2626

2727
if(!furi_string_empty(app->file_name)) {
28-
popup_set_text(popup, furi_string_get_cstr(app->file_name), 94, 29, AlignCenter, AlignTop);
28+
snprintf(
29+
app->text_store,
30+
LFRFID_TEXT_STORE_SIZE,
31+
"[%s]\n%s",
32+
protocol_dict_get_name(app->dict, app->protocol_id),
33+
furi_string_get_cstr(app->file_name));
34+
popup_set_text(popup, app->text_store, 94, 29, AlignCenter, AlignTop);
2935
} else {
3036
snprintf(
3137
app->text_store,
3238
LFRFID_TEXT_STORE_SIZE,
33-
"Unsaved\n%s",
39+
"[%s]\nUnsaved Tag",
3440
protocol_dict_get_name(app->dict, app->protocol_id));
3541
popup_set_text(popup, app->text_store, 94, 29, AlignCenter, AlignTop);
3642
}

applications/main/lfrfid/scenes/lfrfid_scene_write_and_set_pass.c

+8-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,14 @@ void lfrfid_scene_write_and_set_pass_on_enter(void* context) {
2222
LfRfid* app = context;
2323
Popup* popup = app->popup;
2424

25-
popup_set_header(popup, "Writing\nwith password", 89, 30, AlignCenter, AlignTop);
26-
popup_set_icon(popup, 0, 3, &I_RFIDDolphinSend_97x61);
25+
popup_set_header(popup, "Writing\nwith\npassword", 94, 8, AlignCenter, AlignTop);
26+
popup_set_icon(popup, 0, 8, &I_NFC_manual_60x50);
27+
snprintf(
28+
app->text_store,
29+
LFRFID_TEXT_STORE_SIZE,
30+
"[%s]",
31+
protocol_dict_get_name(app->dict, app->protocol_id));
32+
popup_set_text(popup, app->text_store, 94, 45, AlignCenter, AlignTop);
2733

2834
view_dispatcher_switch_to_view(app->view_dispatcher, LfRfidViewPopup);
2935

applications/main/nfc/helpers/protocol_support/mf_plus/mf_plus.c

-121
This file was deleted.

applications/main/nfc/helpers/protocol_support/mf_plus/mf_plus.h

-5
This file was deleted.

0 commit comments

Comments
 (0)