Update PowerManager Implementation
authorJoohyun Kim <joohyune.kim@samsung.com>
Mon, 25 Mar 2013 05:02:43 +0000 (14:02 +0900)
committerJoohyun Kim <joohyune.kim@samsung.com>
Mon, 25 Mar 2013 05:02:43 +0000 (14:02 +0900)
Change-Id: I2cff3e948cf4c60093aa46eef9a65279a5d41af4
Signed-off-by: Joohyun Kim <joohyune.kim@samsung.com>
src/system/FSys_PowerManagerImpl.cpp

index 7807259..82da699 100644 (file)
@@ -117,55 +117,52 @@ _ActiveEventListener::OnActiveAppChanged(const Tizen::App::AppId& appId)
                {
                        ret = power_lock_state(POWER_STATE_SCREEN_OFF, 0);
                        SysTryReturnVoidResult(NID_SYS, ret == 0, E_SYSTEM, "[E_SYSTEM] It failed to lock the power state");
-               }               
+               }
        }
 }
 
  _ActiveEventListener* pActiveEventListener = null;
 
 void
-DeviceBatteryWarnCallback(device_battery_warn_e status, void* userData)
+BatteryLevelVConfCallback(keynode_t* node, void* userData)
 {
-       SysLog(NID_SYS, "Battery Warn Level is called %d", status);
+       SysLog(NID_SYS, "Battery Warn Level is changed");
        BatteryLevel    batteryLevel;
 
-       switch(status)
-       {
-       case DEVICE_BATTERY_WARN_EMPTY:
-       {
-               batteryLevel = BATTERY_EMPTY;
-               break;
-       }
-       case DEVICE_BATTERY_WARN_CRITICAL:
-       {
-               batteryLevel = BATTERY_CRITICAL;
-               break;
-       }
-       case DEVICE_BATTERY_WARN_LOW:
-       {
-               batteryLevel = BATTERY_LOW;
-               break;
-       }
-       case DEVICE_BATTERY_WARN_NORMAL:
-       {
-               batteryLevel = BATTERY_HIGH;
-               break;
-       }
-       case DEVICE_BATTERY_WARN_FULL:
-       {
-               batteryLevel = BATTERY_FULL;
-               break;
-       }
-       default:
-               return;
-       }
-       _AppImpl* pAppImpl = _AppImpl::GetInstance();
-       if(pAppImpl != null)
+       if (strcmp(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS, vconf_keynode_get_name(node)) == 0)
        {
-               SysLog(NID_SYS, "Battery Level event is forwarded");
-               pAppImpl->OnBatteryLevelChanged(batteryLevel);
+               int level = 0;
+               if(vconf_get_int(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS, &level) >= 0)
+               {
+                       switch(level)
+                       {
+                       case VCONFKEY_SYSMAN_BAT_LEVEL_EMPTY:
+                               batteryLevel = BATTERY_EMPTY;
+                               break;
+                       case VCONFKEY_SYSMAN_BAT_LEVEL_CRITICAL:
+                               batteryLevel = BATTERY_CRITICAL;
+                               break;
+                       case VCONFKEY_SYSMAN_BAT_LEVEL_LOW:
+                               batteryLevel = BATTERY_EMPTY;
+                               break;
+                       case VCONFKEY_SYSMAN_BAT_LEVEL_HIGH:
+                               batteryLevel = BATTERY_EMPTY;
+                               break;
+                       case VCONFKEY_SYSMAN_BAT_LEVEL_FULL:
+                               batteryLevel = BATTERY_EMPTY;
+                               break;
+                       default:
+                               SysLogException(NID_SYS, E_SYSTEM, "Unavailable battery level is required.");
+                               return;
+                       }
+                       _AppImpl* pAppImpl = _AppImpl::GetInstance();
+                       if(pAppImpl != null)
+                       {
+                               SysLog(NID_SYS, "Battery Level event is forwarded");
+                               pAppImpl->OnBatteryLevelChanged(batteryLevel);
+                       }
+               }
        }
-
 }
 
 void
@@ -235,7 +232,7 @@ PowerChangedCallback(power_state_e state, void* userData)
                        {
                                while(pEnumerator->MoveNext() == E_SUCCESS)
                                {
-                                       
+
                                        pEnumerator->GetCurrent(pIPowerManagerEventListener);
                                        if(pIPowerManagerEventListener != null)
                                        {
@@ -443,9 +440,7 @@ _PowerManagerImpl::KeepCpuAwake(bool enable)
 result
 _PowerManagerImpl::InitBatteryEvent(void)
 {
-       int ret = 0;
-       ret = device_battery_warning_set_cb(DeviceBatteryWarnCallback, null);
-
+       int ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS, BatteryLevelVConfCallback, null); 
        SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It failed to set the battery event");
 
        return E_SUCCESS;
@@ -730,7 +725,7 @@ _PowerManagerImpl::AddChargingEventListener(IChargingEventListener& listener, bo
 
        if (isSet == false || __pChargingEventList->GetCount() == 0)
        {
-               r = __pChargingEventList->Add(&listener);       
+               r = __pChargingEventList->Add(&listener);
        }
        else
        {
@@ -834,41 +829,34 @@ _PowerManagerImpl::GetCurrentBatteryLevelInPercentage(void)
 BatteryLevel
 _PowerManagerImpl::GetCurrentBatteryLevel(void)
 {
-       int ret = 0;
-       //int batteryLevel = 0;
-       BatteryLevel level = BATTERY_FULL;
-       device_battery_warn_e batteryStatus = DEVICE_BATTERY_WARN_EMPTY;
-
-       ret = device_battery_get_warning_status(&batteryStatus);
+       int batteryLevel = 0;
+       BatteryLevel level = BATTERY_EMPTY;
+       int ret = vconf_get_int(VCONFKEY_SYSMAN_BATTERY_LEVEL_STATUS, &batteryLevel);
        if(ret != 0)
        {
-               SetLastResult(E_SYSTEM);
+               SysLogException(NID_SYS, E_SYSTEM, "It is failed to get battery level.");
                return level;
        }
 
-       switch (batteryStatus)
+       switch(batteryLevel)
        {
-       case DEVICE_BATTERY_WARN_FULL:
+       case VCONFKEY_SYSMAN_BAT_LEVEL_FULL:
                level = BATTERY_LEVEL_FULL;
                break;
-       case DEVICE_BATTERY_WARN_NORMAL:
+       case VCONFKEY_SYSMAN_BAT_LEVEL_HIGH:
                level = BATTERY_LEVEL_HIGH;
                break;
-       case DEVICE_BATTERY_WARN_LOW:
+       case VCONFKEY_SYSMAN_BAT_LEVEL_LOW:
                level = BATTERY_LEVEL_LOW;
                break;
-       case DEVICE_BATTERY_WARN_CRITICAL:
+       case VCONFKEY_SYSMAN_BAT_LEVEL_CRITICAL:
                level = BATTERY_LEVEL_CRITICAL;
                break;
-       case DEVICE_BATTERY_WARN_EMPTY:
+       default:
                level = BATTERY_LEVEL_EMPTY;
                break;
-       default:
-               SysLogException(NID_SYS, E_SYSTEM, "There is a system error occured.");
-               SetLastResult(E_SYSTEM);
-               return level;
        }
-       SetLastResult(E_SUCCESS);
+
        return level;
 }