Registrate callbacks for _ENABLED vconf keys 11/147211/3
authorPawel Kurowski <p.kurowski2@samsung.com>
Fri, 1 Sep 2017 11:08:42 +0000 (13:08 +0200)
committerLukasz Oleksak <l.oleksak@samsung.com>
Mon, 4 Sep 2017 16:00:42 +0000 (16:00 +0000)
According to settings, data stored in vconf as _VALUE should not be used,
when user set them as disabled.

Change-Id: I002306003266ee9b3e22ef78e001a2149f383df6

src/SwitchInteractionManager.cpp
src/SwitchInteractionManager.hpp
src/VConfKeys.hpp
utils/loadVconfKeys.sh

index 561a7b2..d2a7f43 100644 (file)
@@ -59,24 +59,35 @@ double SwitchInteractionManager::getNotificationRepetitionInterval() const
        return notificationRepetitionInterval;
 }
 
+void SwitchInteractionManager::registerAndGetStateAndValueVconfData(VConfInterface::CallbackHandle &stateHandler, const std::string &stateKey,
+               VConfInterface::CallbackHandle &valueHandler, const std::string &valueKey, double &value)
+{
+       stateHandler = Singleton<VConfInterface>::instance().registerAndGet<bool>(stateKey, false,
+       [&](auto state) {
+               if (state) {
+                       valueHandler = Singleton<VConfInterface>::instance().registerAndGet<double>(valueKey, 0.0,
+                       [&](auto x) {
+                               value = x;
+                       });
+               } else {
+                       valueHandler.reset();
+                       value = 0.0;
+               }
+       });
+}
+
 SwitchInteractionManager::SwitchInteractionManager()
        : minimalSwitchInteractionTime(0.0), switchInteractionInterval(0.0), notificationRepetitionInterval(0.0),
          minimalSwitchInteractionTimer(nullptr), switchInteractionIntervalTimer(nullptr), notificationRepetitionIntervalTimer(nullptr)
 {
-       minimalSwitchInteractionTimeHandler = Singleton<VConfInterface>::instance().registerAndGet<double>(VCONF_KEY_TAP_DURATION_VALUE, 0.0,
-       [this](auto x) {
-               minimalSwitchInteractionTime = x;
-       });
+       registerAndGetStateAndValueVconfData(minimalSwitchInteractionStateHandler, VCONF_KEY_TAP_DURATION_ENABLED,
+                                                                                minimalSwitchInteractionTimeHandler, VCONF_KEY_TAP_DURATION_VALUE, minimalSwitchInteractionTime);
 
-       switchInteractionIntervalHandler = Singleton<VConfInterface>::instance().registerAndGet<double>(VCONF_KEY_SGL_INACTION_INT_VALUE, 0.0,
-       [this](auto x) {
-               switchInteractionInterval = x;
-       });
+       registerAndGetStateAndValueVconfData(switchInteractionStateHandler, VCONF_KEY_SGL_INACTION_INT_ENABLED,
+                                                                                switchInteractionIntervalHandler, VCONF_KEY_SGL_INACTION_INT_VALUE, switchInteractionInterval);
 
-       notificationRepetitionIntervalHandler = Singleton<VConfInterface>::instance().registerAndGet<double>(VCONF_KEY_AUTO_MOVE_INT_VALUE, 0.0,
-       [this](auto x) {
-               notificationRepetitionInterval = x;
-       });
+       registerAndGetStateAndValueVconfData(notificationRepetitionStateHandler, VCONF_KEY_AUTO_MOVE_INT_ENABLED,
+                                                                                notificationRepetitionIntervalHandler, VCONF_KEY_AUTO_MOVE_INT_VALUE, notificationRepetitionInterval);
 }
 
 SwitchInteractionManager::~SwitchInteractionManager()
index 4cef8ab..79d4d57 100644 (file)
@@ -36,6 +36,8 @@ private:
        static Eina_Bool minimalSwitchInteractionTimeCb(void *data);
        static Eina_Bool switchInteractionIntervalCb(void *data);
        static Eina_Bool notificationRepetitionIntervalCb(void *data);
+       static void registerAndGetStateAndValueVconfData(VConfInterface::CallbackHandle &stateHandler, const std::string &stateKey,
+                       VConfInterface::CallbackHandle &valueHandler, const std::string &valueKey, double &value);
 
        void afterMinimalInteractionTime();
        void afterInteractionInterval();
@@ -50,6 +52,9 @@ private:
        Ecore_Timer *switchInteractionIntervalTimer;
        Ecore_Timer *notificationRepetitionIntervalTimer;
 
+       VConfInterface::CallbackHandle minimalSwitchInteractionStateHandler;
+       VConfInterface::CallbackHandle switchInteractionStateHandler;
+       VConfInterface::CallbackHandle notificationRepetitionStateHandler;
        VConfInterface::CallbackHandle minimalSwitchInteractionTimeHandler;
        VConfInterface::CallbackHandle switchInteractionIntervalHandler;
        VConfInterface::CallbackHandle notificationRepetitionIntervalHandler;
index c9ac1e4..4240268 100644 (file)
@@ -9,6 +9,7 @@
 
 
 #define VCONF_KEY_AUTO_MOVE_INT_VALUE                          VCONF_PROJECT_PREFIX "AUTO_MOVE_INT_VALUE"
+#define VCONF_KEY_AUTO_MOVE_INT_ENABLED                                VCONF_PROJECT_PREFIX "AUTO_MOVE_INT_ENABLED"
 
 #define VCONF_KEY_AUTO_SCAN_ENABLED                                    VCONF_PROJECT_PREFIX "AUTO_SCAN_ENABLED"
 #define VCONF_KEY_AUTO_SCAN_INTERVAL                           VCONF_PROJECT_PREFIX "AUTO_SCAN_INTERVAL"
@@ -36,6 +37,7 @@
 #define VCONF_KEY_SCAN_PT_SPEED                                                VCONF_PROJECT_PREFIX "SCAN_PT_SPEED"
 
 #define VCONF_KEY_SGL_INACTION_INT_VALUE                       VCONF_PROJECT_PREFIX "SGL_INACTION_INT_VALUE"
+#define VCONF_KEY_SGL_INACTION_INT_ENABLED                     VCONF_PROJECT_PREFIX "SGL_INACTION_INT_ENABLED"
 
 #define VCONF_KEY_SHOW_ACTIONS_MENU_ITEM                       VCONF_PROJECT_PREFIX "SHOW_ACTIONS_MENU_ITEM"
 #define VCONF_KEY_SHOW_BACK_MENU_ITEM                          VCONF_PROJECT_PREFIX "SHOW_BACK_MENU_ITEM"
@@ -47,6 +49,7 @@
 #define VCONF_KEY_SHOW_SETTINGS_MENU_ITEM                      VCONF_PROJECT_PREFIX "SHOW_SETTINGS_MENU_ITEM"
 
 #define VCONF_KEY_TAP_DURATION_VALUE                           VCONF_PROJECT_PREFIX "TAP_DURATION_VALUE"
+#define VCONF_KEY_TAP_DURATION_ENABLED                         VCONF_PROJECT_PREFIX "TAP_DURATION_ENABLED"
 
 
 #define VCONF_KEY_SCANNING                                                     VCONF_ACCESSIBILITY_PREFIX "universal-switch/scanning"
index ea608a3..350278e 100755 (executable)
@@ -12,6 +12,7 @@ VCONF_ACCESSIBILITY_PREFIX="db/setting/accessibility/"
 
 
 $VCONFTOOL double "${VCONF_PROJECT_PREFIX}AUTO_MOVE_INT_VALUE" 0.0
+$VCONFTOOL bool "${VCONF_PROJECT_PREFIX}AUTO_MOVE_INT_ENABLED" 0
 
 $VCONFTOOL bool   "${VCONF_PROJECT_PREFIX}AUTO_SCAN_ENABLED" 1
 $VCONFTOOL double "${VCONF_PROJECT_PREFIX}AUTO_SCAN_INTERVAL" 1.0                      #time between jumps in row scanning
@@ -39,6 +40,7 @@ $VCONFTOOL int "${VCONF_PROJECT_PREFIX}SCAN_METHOD" 1                                         # 1 = POINT, 2 = ROW
 $VCONFTOOL int "${VCONF_PROJECT_PREFIX}SCAN_PT_SPEED" 30                                       # speed for PointScanner, jump time for RowScanner
 
 $VCONFTOOL double "${VCONF_PROJECT_PREFIX}SGL_INACTION_INT_VALUE" 0.0
+$VCONFTOOL bool "${VCONF_PROJECT_PREFIX}SGL_INACTION_INT_ENABLED" 0
 
 $VCONFTOOL bool "${VCONF_PROJECT_PREFIX}SHOW_ACTIONS_MENU_ITEM" 1
 $VCONFTOOL bool "${VCONF_PROJECT_PREFIX}SHOW_BACK_MENU_ITEM" 1
@@ -50,6 +52,7 @@ $VCONFTOOL bool "${VCONF_PROJECT_PREFIX}SHOW_RECENT_APPS_MENU_ITEM" 1
 $VCONFTOOL bool "${VCONF_PROJECT_PREFIX}SHOW_SETTINGS_MENU_ITEM" 1
 
 $VCONFTOOL double "${VCONF_PROJECT_PREFIX}TAP_DURATION_VALUE" 0.0
+$VCONFTOOL bool "${VCONF_PROJECT_PREFIX}TAP_DURATION_ENABLED" 0
 
 $VCONFTOOL bool "${VCONF_ACCESSIBILITY_PREFIX}universal-switch"   1
 $VCONFTOOL bool "${VCONF_ACCESSIBILITY_PREFIX}universal-switch/scanning" 1