Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Murphy <57873842+fork-bombed@users.noreply.github.com>2022-08-03 20:00:17 +0300
committerGitHub <noreply@github.com>2022-08-03 20:00:17 +0300
commit284c56718bf808f8346a2e48fd26a9d8ee865e9d (patch)
tree89ace472742cf4a3e1e546631deee34cb2eeb284
parent135fbd294bcc9e67eda18230df7547c1ef347645 (diff)
NFC: Edit UID feature (#1513)
* Added option to edit UID in saved NFC files * Fixed bug with saved filename * Only show for data that can't be read Co-authored-by: あく <alleteam@gmail.com>
-rw-r--r--applications/nfc/scenes/nfc_scene_saved_menu.c12
-rwxr-xr-xapplications/nfc/scenes/nfc_scene_set_uid.c12
2 files changed, 22 insertions, 2 deletions
diff --git a/applications/nfc/scenes/nfc_scene_saved_menu.c b/applications/nfc/scenes/nfc_scene_saved_menu.c
index 7c390f0b..e6b08e71 100644
--- a/applications/nfc/scenes/nfc_scene_saved_menu.c
+++ b/applications/nfc/scenes/nfc_scene_saved_menu.c
@@ -2,6 +2,7 @@
enum SubmenuIndex {
SubmenuIndexEmulate,
+ SubmenuIndexEditUid,
SubmenuIndexRename,
SubmenuIndexDelete,
SubmenuIndexInfo,
@@ -27,6 +28,14 @@ void nfc_scene_saved_menu_on_enter(void* context) {
SubmenuIndexEmulate,
nfc_scene_saved_menu_submenu_callback,
nfc);
+ if(nfc->dev->dev_data.protocol == NfcDeviceProtocolUnknown) {
+ submenu_add_item(
+ submenu,
+ "Edit UID",
+ SubmenuIndexEditUid,
+ nfc_scene_saved_menu_submenu_callback,
+ nfc);
+ }
} else if(
nfc->dev->format == NfcDeviceSaveFormatMifareUl ||
nfc->dev->format == NfcDeviceSaveFormatMifareClassic) {
@@ -71,6 +80,9 @@ bool nfc_scene_saved_menu_on_event(void* context, SceneManagerEvent event) {
} else if(event.event == SubmenuIndexRename) {
scene_manager_next_scene(nfc->scene_manager, NfcSceneSaveName);
consumed = true;
+ } else if(event.event == SubmenuIndexEditUid) {
+ scene_manager_next_scene(nfc->scene_manager, NfcSceneSetUid);
+ consumed = true;
} else if(event.event == SubmenuIndexDelete) {
scene_manager_next_scene(nfc->scene_manager, NfcSceneDelete);
consumed = true;
diff --git a/applications/nfc/scenes/nfc_scene_set_uid.c b/applications/nfc/scenes/nfc_scene_set_uid.c
index 6fe807ce..0ff28971 100755
--- a/applications/nfc/scenes/nfc_scene_set_uid.c
+++ b/applications/nfc/scenes/nfc_scene_set_uid.c
@@ -31,8 +31,16 @@ bool nfc_scene_set_uid_on_event(void* context, SceneManagerEvent event) {
if(event.type == SceneManagerEventTypeCustom) {
if(event.event == NfcCustomEventByteInputDone) {
DOLPHIN_DEED(DolphinDeedNfcAdd);
- scene_manager_next_scene(nfc->scene_manager, NfcSceneSaveName);
- consumed = true;
+ if(scene_manager_has_previous_scene(nfc->scene_manager, NfcSceneSavedMenu)) {
+ nfc->dev->dev_data.nfc_data = nfc->dev_edit_data;
+ if(nfc_device_save(nfc->dev, nfc->dev->dev_name)) {
+ scene_manager_next_scene(nfc->scene_manager, NfcSceneSaveSuccess);
+ consumed = true;
+ }
+ } else {
+ scene_manager_next_scene(nfc->scene_manager, NfcSceneSaveName);
+ consumed = true;
+ }
}
}
return consumed;