diff --git a/applications/ibutton/scene/ibutton-scene-add-value.cpp b/applications/ibutton/scene/ibutton-scene-add-value.cpp old mode 100644 new mode 100755 index 5f8e9f66..523af8d2 --- a/applications/ibutton/scene/ibutton-scene-add-value.cpp +++ b/applications/ibutton/scene/ibutton-scene-add-value.cpp @@ -8,14 +8,9 @@ void iButtonSceneAddValue::on_enter(iButtonApp* app) { iButtonAppViewManager* view_manager = app->get_view_manager(); ByteInput* byte_input = view_manager->get_byte_input(); auto callback = cbc::obtain_connector(this, &iButtonSceneAddValue::byte_input_callback); - + memcpy(this->new_key_data, app->get_key()->get_data(), app->get_key()->get_type_data_size()); byte_input_set_result_callback( - byte_input, - callback, - NULL, - app, - app->get_key()->get_data(), - app->get_key()->get_type_data_size()); + byte_input, callback, NULL, app, this->new_key_data, app->get_key()->get_type_data_size()); byte_input_set_header_text(byte_input, "Enter the key"); view_manager->switch_to(iButtonAppViewManager::Type::iButtonAppViewByteInput); @@ -45,6 +40,6 @@ void iButtonSceneAddValue::byte_input_callback(void* context) { iButtonEvent event; event.type = iButtonEvent::Type::EventTypeByteEditResult; - + memcpy(app->get_key()->get_data(), this->new_key_data, app->get_key()->get_type_data_size()); app->get_view_manager()->send_event(&event); } \ No newline at end of file diff --git a/applications/ibutton/scene/ibutton-scene-add-value.h b/applications/ibutton/scene/ibutton-scene-add-value.h index ed9df460..8429e47a 100644 --- a/applications/ibutton/scene/ibutton-scene-add-value.h +++ b/applications/ibutton/scene/ibutton-scene-add-value.h @@ -1,5 +1,6 @@ #pragma once #include "ibutton-scene-generic.h" +#include "../ibutton-key.h" class iButtonSceneAddValue : public iButtonScene { public: @@ -9,4 +10,5 @@ public: private: void byte_input_callback(void* context); + uint8_t new_key_data[IBUTTON_KEY_DATA_SIZE] = {}; }; \ No newline at end of file diff --git a/applications/nfc/nfc_i.h b/applications/nfc/nfc_i.h index 54b68231..53fd6689 100755 --- a/applications/nfc/nfc_i.h +++ b/applications/nfc/nfc_i.h @@ -35,6 +35,7 @@ struct Nfc { NotificationApp* notifications; SceneManager* scene_manager; NfcDevice dev; + NfcDeviceCommonData dev_edit_data; char text_store[NFC_TEXT_STORE_SIZE + 1]; string_t text_box_store; diff --git a/applications/nfc/scenes/nfc_scene_save_name.c b/applications/nfc/scenes/nfc_scene_save_name.c index 4a0041b2..ca239f68 100755 --- a/applications/nfc/scenes/nfc_scene_save_name.c +++ b/applications/nfc/scenes/nfc_scene_save_name.c @@ -40,6 +40,9 @@ const bool nfc_scene_save_name_on_event(void* context, SceneManagerEvent event) if(nfc->dev.dev_name) { nfc_device_delete(&nfc->dev); } + if(scene_manager_has_previous_scene(nfc->scene_manager, NfcSceneSetUid)) { + nfc->dev.dev_data.nfc_data = nfc->dev_edit_data; + } memcpy(&nfc->dev.dev_name, nfc->text_store, strlen(nfc->text_store)); if(nfc_device_save(&nfc->dev, nfc->text_store)) { scene_manager_next_scene(nfc->scene_manager, NfcSceneSaveSuccess); diff --git a/applications/nfc/scenes/nfc_scene_set_uid.c b/applications/nfc/scenes/nfc_scene_set_uid.c index 6e1a8d7c..dd448a78 100755 --- a/applications/nfc/scenes/nfc_scene_set_uid.c +++ b/applications/nfc/scenes/nfc_scene_set_uid.c @@ -14,13 +14,14 @@ const void nfc_scene_set_uid_on_enter(void* context) { // Setup view ByteInput* byte_input = nfc->byte_input; byte_input_set_header_text(byte_input, "Enter uid in hex"); + nfc->dev_edit_data = nfc->dev.dev_data.nfc_data; byte_input_set_result_callback( byte_input, nfc_scene_set_uid_byte_input_callback, NULL, nfc, - nfc->dev.dev_data.nfc_data.uid, - nfc->dev.dev_data.nfc_data.uid_len); + nfc->dev_edit_data.uid, + nfc->dev_edit_data.uid_len); view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewByteInput); }