Просмотр исходного кода

App iButton: fix cli delete command bug, use RAII records (#523)

Co-authored-by: あく <alleteam@gmail.com>
SG 4 лет назад
Родитель
Сommit
2084f83eb5
2 измененных файлов с 10 добавлено и 16 удалено
  1. 4 11
      applications/ibutton/ibutton-app.cpp
  2. 6 5
      applications/ibutton/ibutton-app.h

+ 4 - 11
applications/ibutton/ibutton-app.cpp

@@ -28,25 +28,18 @@ void iButtonApp::run(void) {
     scenes[current_scene]->on_exit(this);
 }
 
-iButtonApp::iButtonApp() {
+iButtonApp::iButtonApp()
+    : fs_api{"sdcard"}
+    , sd_ex_api{"sdcard-ex"}
+    , notification{"notification"} {
     api_hal_power_insomnia_enter();
-
     key_worker = new KeyWorker(&ibutton_gpio);
-    sd_ex_api = static_cast<SdCard_Api*>(furi_record_open("sdcard-ex"));
-    fs_api = static_cast<FS_Api*>(furi_record_open("sdcard"));
-    notification = static_cast<NotificationApp*>(furi_record_open("notification"));
 
     // we need random
     srand(DWT->CYCCNT);
 }
 
 iButtonApp::~iButtonApp() {
-    cli_delete_command(cli, "tm");
-
-    furi_record_close("sdcard-ex");
-    furi_record_close("sdcard");
-    furi_record_close("notification");
-
     for(std::map<Scene, iButtonScene*>::iterator it = scenes.begin(); it != scenes.end(); ++it) {
         delete it->second;
         scenes.erase(it);

+ 6 - 5
applications/ibutton/ibutton-app.h

@@ -35,6 +35,8 @@
 
 #include <notification/notification-messages.h>
 
+#include <record-controller.hpp>
+
 class iButtonApp {
 public:
     void run(void);
@@ -130,17 +132,16 @@ private:
 
     iButtonKey key;
 
-    SdCard_Api* sd_ex_api;
-    FS_Api* fs_api;
-    Cli* cli;
+    RecordController<FS_Api> fs_api;
+    RecordController<SdCard_Api> sd_ex_api;
+    RecordController<NotificationApp> notification;
+
     static const uint8_t file_name_size = 100;
     char file_name[file_name_size];
 
     static const uint8_t text_store_size = 128;
     char text_store[text_store_size + 1];
 
-    NotificationApp* notification;
-
     static const char* app_folder;
     static const char* app_extension;