[Backup&reset] SD card state check 23/156523/3
authorRadek Kintop <r.kintop@samsung.com>
Wed, 18 Oct 2017 15:40:45 +0000 (17:40 +0200)
committerRadek Kintop <r.kintop@samsung.com>
Thu, 19 Oct 2017 11:15:07 +0000 (11:15 +0000)
Checking if it is mounted or not.

Change-Id: I9660a88a7642c53893151c13d5a7fb1c2dd59010
Signed-off-by: Radek Kintop <r.kintop@samsung.com>
setting-backup-and-reset/CMakeLists.txt
setting-backup-and-reset/src/setting-backup-and-reset-main-view.c
setting-backup-and-reset/src/setting-backup-and-reset.c

index 1c11ab47b123366b3d9c814c5bbc341bf37d0cdd..5f27f0dab2526f1e52dc6c2c5935ddab71efc29d 100755 (executable)
@@ -13,6 +13,7 @@ pkg_check_modules(pkgs_setting_backup_and_reset REQUIRED
        efl-extension
        elementary
        libtzplatform-config
+       storage
 )
 
 FOREACH(flag ${pkgs_setting_backup_and_reset_CFLAGS})
index a8cb6c317e33b5d8ce78ac422a28cffecbf9fff1..3c0c2bd7b56510f448586eb6506c1ff1f987516e 100755 (executable)
@@ -135,9 +135,6 @@ static int _create(void *data)
        setting_view_node_table_register(&setting_backup_reset_usb_view,
                                                                        ad->main_view);
 
-       ad->sd_card_encrypted = true;
-       ad->sd_inserted = false;
-
        return SETTING_RETURN_SUCCESS;
 }
 
index 5c493c88c2479d4f105e509c33cf1311c0430af7..4be1f3b6f35f4b71eb70e60dd92b7c3e9fb57af4 100644 (file)
 
 #include <app.h>
 #include <efl_extension.h>
+#include <storage.h>
 
 static bool _app_create(void *data);
 static void _app_control_cb(app_control_h app_control, void *data);
 static void _app_on_pause(void *data);
 static void _app_on_resume(void *data);
 static void _app_terminate(void *data);
+static void _storage_changed_cb(int storage_id, storage_dev_e dev,
+                               storage_state_e state, const char *fstype,
+                               const char *fsuuid, const char *mountpath,
+                               bool primary, int flags, void *user_data);
+static bool _storage_device_supported_cb(int storage_id, storage_type_e type,
+                                       storage_state_e state, const char *path, void *user_data);
 
 int main(int argc, char *argv[])
 {
@@ -64,6 +71,9 @@ static bool _app_create(void *data)
                return false;
        }
 
+       storage_set_changed_cb(STORAGE_TYPE_EXTERNAL, _storage_changed_cb, ad);
+       storage_foreach_device_supported(_storage_device_supported_cb, ad);
+
        main_view_init(ad);
        setting_view_node_table_intialize();
        setting_view_node_table_register(ad->main_view, NULL);
@@ -84,6 +94,8 @@ static void _app_terminate(void *data)
        SettingBackupReset *ad = data;
        retm_if(!ad, "Null data on terminate");
 
+       storage_unset_changed_cb(STORAGE_TYPE_EXTERNAL, _storage_changed_cb);
+
        setting_view_destroy(ad->main_view, ad);
 
        evas_object_del(ad->md.window);
@@ -100,6 +112,36 @@ static void _app_on_pause(void *data)
 static void _app_on_resume(void *data)
 {
        SETTING_TRACE_BEGIN;
+       storage_foreach_device_supported(_storage_device_supported_cb, data);
        SETTING_TRACE_END;
 }
 
+static void _storage_changed_cb(int storage_id, storage_dev_e dev,
+                               storage_state_e state, const char *fstype,
+                               const char *fsuuid, const char *mountpath,
+                               bool primary, int flags, void *user_data)
+{
+       SettingBackupReset *ad = user_data;
+       ret_if(!ad);
+
+       if (dev != STORAGE_DEV_EXT_SDCARD)
+               return;
+
+       ad->sd_inserted = (STORAGE_STATE_MOUNTED  == state);
+
+       SETTING_TRACE_DEBUG("_storage_changed_cb: state == %d", state);
+}
+
+static bool _storage_device_supported_cb(int storage_id, storage_type_e type,
+                                       storage_state_e state, const char *path, void *user_data)
+{
+       SettingBackupReset *ad = user_data;
+       retv_if(!ad, false);
+
+       if (type != STORAGE_TYPE_EXTERNAL)
+               return true;
+
+       ad->sd_inserted = (STORAGE_STATE_MOUNTED  == state);
+
+       return false;
+}