Open advanced setting menu
authorJihoon Chung <jihoon.chung@samsung.com>
Thu, 27 Dec 2012 23:11:54 +0000 (08:11 +0900)
committerJihoon Chung <jihoon.chung@samsung.com>
Fri, 28 Dec 2012 07:29:24 +0000 (16:29 +0900)
[Issue#] N/A
[Problem] N/A
[Cause] N/A
[Solution] Open advacned setting menu
Also, source code for security settings is changed to use
vconf
[SCMRequest] N/A

Change-Id: I3190df3a16538a0e8af0f76d5c3d5a626bc7bff3

webapp-detail/advancedview.cpp
webapp-detail/detailview.cpp

index 700ed93..bac5ede 100644 (file)
@@ -21,6 +21,7 @@
 #include <string>
 #include <cstring>
 #include <Elementary.h>
+#include <vconf.h>
 
 #include <dpl/foreach.h>
 #include <dpl/assert.h>
@@ -42,6 +43,14 @@ const char* const ELM_GENLIST_ITEM_CLASS_STYLE_GROUPINDEX = "groupindex";
 const char* const ELM_GENLIST_ITEM_CLASS_STYLE_1TEXT = "1text";
 const char* const ELM_GENLIST_ITEM_CLASS_STYLE_1TEXT_1ICON_6 = "1text.1icon.6";
 const char* const TEXT_NAVIFRAME_TITLE = "Advanced Settings";
+
+const char * const VCONF_KEY_PREFIX = "file/private/";
+const char * const VCONF_KEY_GROUP = "/security";
+const char * const VCONF_KEY_POPUP_USAGE = "/popup_usage";
+const char * const VCONF_KEY_GEOLOCATION_USAGE = "/geolocation_usage";
+const char * const VCONF_KEY_WEB_NOTIFICATION_USAGE = "/web_notification_usage";
+const char * const VCONF_KEY_WEB_DATABASE_USAGE = "/web_database_usage";
+const char * const VCONF_KEY_FILESYSTEM_USAGE = "/filesystem_usage";
 }
 
 AdvancedView::AdvancedView(Evas_Object *navi, int appID) :
@@ -140,8 +149,7 @@ void AdvancedView::securitySettingSelectedCallback(void* data,
                                          settingsData->m_iconPart.c_str());
     Assert(check);
     bool state = !elm_check_state_get(check);
-    // TODO: current setting doesn't have write permission
-    //settingsData->saveChange(state);
+    settingsData->saveChange(state);
     elm_check_state_set(check, state);
 }
 
@@ -153,8 +161,7 @@ void AdvancedView::securitySettingChangedCallback(void* data,
     SecuritySettingsData* settingsData =
         static_cast<SecuritySettingsData*>(data);
     Assert(obj);
-    // TODO: current setting doesn't have write permission
-    //settingsData->saveChange(elm_check_state_get(obj));
+    settingsData->saveChange(elm_check_state_get(obj));
 }
 
 char* AdvancedView::getSecurityExceptionsSettingsText(void *data,
@@ -265,24 +272,34 @@ SecuritySettingsData::SecuritySettingsData(int appID, int index, std::string men
 
 bool SecuritySettingsData::isEnabled()
 {
-    WrtDB::SettingsType result = WrtDB::SETTINGS_TYPE_UNKNOWN;
+    using namespace WrtDB;
+    SettingsType result = SETTINGS_TYPE_UNKNOWN;
+
+    std::string key =
+        VCONF_KEY_PREFIX
+        + DPL::ToUTF8String(m_dao->getPkgName())
+        + VCONF_KEY_GROUP;
 
     if (m_index == SECURITY_MENU_INDEX_SECURITY_POPUP_USAGE) {
-        result = m_dao->getSecurityPopupUsage();
+        key += VCONF_KEY_POPUP_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_GEOLOCATION_USAGE) {
-        result = m_dao->getGeolocationUsage();
+        key += VCONF_KEY_GEOLOCATION_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_WEB_NOTIFICATION_USAGE) {
-        result = m_dao->getWebNotificationUsage();
+        key += VCONF_KEY_WEB_NOTIFICATION_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_WEB_DATABASE_USAGE) {
-        result = m_dao->getWebDatabaseUsage();
+        key += VCONF_KEY_WEB_DATABASE_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_FILE_SYSTEM_USAGE) {
-        result = m_dao->getFileSystemUsage();
+        key += VCONF_KEY_FILESYSTEM_USAGE;
     } else {
         Assert("Wrong security settings menu index");
     }
-    if (result == WrtDB::SETTINGS_TYPE_ON) {
+
+    int ret = 0;
+    vconf_get_int(key.c_str(), &ret);
+
+    if (static_cast<SettingsType>(ret) == SETTINGS_TYPE_ON) {
         return true;
-    } else if (result == WrtDB::SETTINGS_TYPE_OFF) {
+    } else if (static_cast<SettingsType>(ret) == SETTINGS_TYPE_OFF) {
         return false;
     }
 
@@ -293,22 +310,29 @@ bool SecuritySettingsData::isEnabled()
 
 void SecuritySettingsData::saveChange(bool state)
 {
-    WrtDB::SettingsType result =
-        state ? WrtDB::SETTINGS_TYPE_ON : WrtDB::SETTINGS_TYPE_OFF;
+    using namespace WrtDB;
+    SettingsType result = state ? SETTINGS_TYPE_ON : SETTINGS_TYPE_OFF;
+
+    std::string key =
+        VCONF_KEY_PREFIX
+        + DPL::ToUTF8String(m_dao->getPkgName())
+        + VCONF_KEY_GROUP;
 
     if (m_index == SECURITY_MENU_INDEX_SECURITY_POPUP_USAGE) {
-        m_dao->setSecurityPopupUsage(result);
+        key += VCONF_KEY_POPUP_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_GEOLOCATION_USAGE) {
-        m_dao->setGeolocationUsage(result);
+        key += VCONF_KEY_GEOLOCATION_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_WEB_NOTIFICATION_USAGE) {
-        m_dao->setWebNotificationUsage(result);
+        key += VCONF_KEY_WEB_NOTIFICATION_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_WEB_DATABASE_USAGE) {
-        m_dao->setWebDatabaseUsage(result);
+        key += VCONF_KEY_WEB_DATABASE_USAGE;
     } else if (m_index == SECURITY_MENU_INDEX_FILE_SYSTEM_USAGE) {
-        m_dao->setFileSystemUsage(result);
+        key += VCONF_KEY_FILESYSTEM_USAGE;
     } else {
         Assert("Wrong security settings menu index");
     }
+
+    vconf_set_int(key.c_str(), static_cast<int>(result));
 }
 
 } /* WebAppDetailSetting */
index b7fd0a9..c3df569 100644 (file)
@@ -921,24 +921,22 @@ void DetailView::addAdvancedSetting(Evas_Object *gl, const char* title)
 
     Assert(gl);
     try {
-    detailData = new DetailData(this,
-                              title,
-                              title);
-    itc.item_style = "dialogue/1text";
-    itc.func.text_get =getTitle ;
-    itc.func.content_get = NULL;
-    itc.func.state_get = NULL;
-    itc.func.del = NULL;
-    it = elm_genlist_item_append(gl,
-                            &itc,
-                            static_cast<void *>(detailData),
-                            NULL,
-                            ELM_GENLIST_ITEM_NONE,
-                            advancedSettingsCallback,
-                            static_cast<void *>(detailData));
-    elm_object_item_disabled_set(it, EINA_TRUE);
-    //elm_genlist_item_select_mode_set(it,
-    //    ELM_OBJECT_SELECT_MODE_ALWAYS);
+        detailData = new DetailData(this,
+                                  title,
+                                  title);
+        itc.item_style = "dialogue/1text";
+        itc.func.text_get =getTitle ;
+        itc.func.content_get = NULL;
+        itc.func.state_get = NULL;
+        itc.func.del = NULL;
+        it = elm_genlist_item_append(gl,
+                                &itc,
+                                static_cast<void *>(detailData),
+                                NULL,
+                                ELM_GENLIST_ITEM_NONE,
+                                advancedSettingsCallback,
+                                static_cast<void *>(detailData));
+        elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_ALWAYS);
     } catch (const std::bad_alloc &) {
     }
 }