[FL-3677, FL-3798] RFID Improvements (#3524)

* Update saved_info and read_success scenes
* Update EM4100 rendering
* Update HIDExt rendering
* Update Gallagher rendering
* Update HidProx rendering
* Update IOProx rendering
* Update H10301 rendering
* Update PAC/Stanley rendering
* Add strcasecmp() to API, better manufacturer/name handling
* Update Viking rendering
* Update FDX-A rendering
* Update Pyramid rendering
* Update Indala26 rendering
* Update Idteck rendering
* Update Keri rendering
* Update Nexwatch rendering
* Update Jablotron rendering
* Update Paradox rendering
* Truncate long Hex string on scene_read_suceess
* Fix formatting
* Update AWID rendering
* Update FDX-B rendering
* Tweak string formatting in various screens
* More read_success view tweaks
* Fix formatting
* Fix Pyramid brief rendering
* Reset saved key menu when going back
* Reset other menus on back where applicable
* Update confirmation scenes
* Update emulation scene
* Update delete scene
* Update raw read info screen
* Update raw read scene, fix crash
* Update raw read success scene
* Update write scene
* Always return to SceneSelectKey after saving
* Update SceneWriteSuccess and SceneDeleteSuccess
* Replace closing parens with dots
* FL-3798: Fix special formatting in text_box
* Simplify SceneReadSuccess
* Fix crash when having a trailing newline in text_box
* Bump API symbols version
* Make PVS happy
* Format sources

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Georgii Surkov
2024-03-29 06:32:43 +03:00
committed by GitHub
parent c353182353
commit 64bd2f9c84
41 changed files with 512 additions and 352 deletions

View File

@@ -212,13 +212,40 @@ LevelDuration protocol_keri_encoder_yield(ProtocolKeri* protocol) {
return level_duration;
};
void protocol_keri_render_data(ProtocolKeri* protocol, FuriString* result) {
static void
protocol_keri_render_data_internal(ProtocolKeri* protocol, FuriString* result, bool brief) {
uint32_t data = bit_lib_get_bits_32(protocol->data, 0, 32);
uint32_t internal_id = data & 0x7FFFFFFF;
uint32_t fc = 0;
uint32_t cn = 0;
protocol_keri_descramble(&fc, &cn, &data);
furi_string_printf(result, "Internal ID: %lu\r\nFC: %lu, Card: %lu\r\n", internal_id, fc, cn);
if(brief) {
furi_string_printf(
result,
"Internal ID: %lu\n"
"FC: %lu; Card: %lu",
internal_id,
fc,
cn);
} else {
furi_string_printf(
result,
"Internal ID: %lu\n"
"FC: %lu\n"
"Card: %lu",
internal_id,
fc,
cn);
}
}
void protocol_keri_render_data(ProtocolKeri* protocol, FuriString* result) {
protocol_keri_render_data_internal(protocol, result, false);
}
void protocol_keri_render_brief_data(ProtocolKeri* protocol, FuriString* result) {
protocol_keri_render_data_internal(protocol, result, true);
}
bool protocol_keri_write_data(ProtocolKeri* protocol, void* data) {
@@ -262,6 +289,6 @@ const ProtocolBase protocol_keri = {
.yield = (ProtocolEncoderYield)protocol_keri_encoder_yield,
},
.render_data = (ProtocolRenderData)protocol_keri_render_data,
.render_brief_data = (ProtocolRenderData)protocol_keri_render_data,
.render_brief_data = (ProtocolRenderData)protocol_keri_render_brief_data,
.write_data = (ProtocolWriteData)protocol_keri_write_data,
};
};