From: jungmin76.park Date: Wed, 12 Jun 2013 04:15:11 +0000 (+0900) Subject: modify max life duration for platform privilege level app X-Git-Tag: submit/tizen_2.2/20130714.152805~116^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=754b1c3173c549d607ad9744c962770620c44c83;p=framework%2Fosp%2Fappfw.git modify max life duration for platform privilege level app Change-Id: I598b7aba1578c2df2bb0504dd594d02aa7fcae89 Signed-off-by: jungmin76.park --- diff --git a/src/app/FApp_ServiceAppImpl.cpp b/src/app/FApp_ServiceAppImpl.cpp index 567a2a3..9dcafdd 100644 --- a/src/app/FApp_ServiceAppImpl.cpp +++ b/src/app/FApp_ServiceAppImpl.cpp @@ -32,6 +32,7 @@ #include "FApp_AppImpl.h" #include "FApp_ServiceAppImpl.h" #include "FAppPkg_PackageManagerImpl.h" +#include "FAppPkg_PackageInfoImpl.h" #include "FApp_AppManagerImpl.h" #include "FApp_TemplateUtil.h" #include "FApp_IAppEventListener.h" @@ -46,6 +47,7 @@ const wchar_t USE_UI_KEY[] = L"UseUi"; const wchar_t USE_UI_VAL_TRUE[] = L"True"; const wchar_t LIFE_DURATION_KEY[] = L"LifeDuration"; const int LIFE_DURATION_MSEC_MAX = 30000; +const int LIFE_DURATION_MSEC_MAX_PLATFORM = 60000*3; static const RequestId HANDLER_REQUEST_ALARMID = 2; @@ -99,57 +101,62 @@ _ServiceAppImpl::OnService(service_s* service, bool initial) SysLog(NID_APP, "Service requested."); char* pOperation = NULL; int errVal = service_get_operation(service, &pOperation); - result r = E_SUCCESS; if ( (errVal == SERVICE_ERROR_NONE) && (!strcmp(pOperation, "osp.appsvc.operation.ALARM")) ) { - char* pAlarmId = NULL; + OnAlarmOperation(service); + } - errVal = service_get_extra_data(service, SERVICE_DATA_ALARM_ID, &pAlarmId); - if (errVal == SERVICE_ERROR_NONE) - { - int alarmId = atoi(pAlarmId); + if (pOperation) + { + free(pOperation); + } + + if( __lifeDuration > 0 && __pauseLifeDurationTimer == false) + { + SetLifeDurationTimer(__lifeDuration); + } +} + +void +_ServiceAppImpl::OnAlarmOperation(service_s* service) +{ + char* pAlarmId = NULL; - SysLog(NID_SYS, "Start to load external lib"); - Library lib; - OnAlarmForLaunch pOnAlarmForLaunch = null; - r = lib.Construct(ALARM_PLUGIN_LIBRARY_PATH); + int errVal = service_get_extra_data(service, SERVICE_DATA_ALARM_ID, &pAlarmId); + if (errVal == SERVICE_ERROR_NONE) + { + int alarmId = atoi(pAlarmId); + + SysLog(NID_SYS, "Start to load external lib"); + Library lib; + OnAlarmForLaunch pOnAlarmForLaunch = null; + result r = lib.Construct(ALARM_PLUGIN_LIBRARY_PATH); - if(r == E_SUCCESS) + if(r == E_SUCCESS) + { + SysLog(NID_SYS, "Open alarm condition library"); + pOnAlarmForLaunch = (OnAlarmForLaunch)lib.GetProcAddress(L"OnAlarmForLaunch"); + if(pOnAlarmForLaunch != null) { - SysLog(NID_SYS, "Open alarm condition library"); - pOnAlarmForLaunch = (OnAlarmForLaunch)lib.GetProcAddress(L"OnAlarmForLaunch"); - if(pOnAlarmForLaunch != null) - { - SysLog(NID_SYS, "Function is found"); - pOnAlarmForLaunch(alarmId); - SysLog(NID_SYS, "Requested to check current alarm id to AlarmConditionHandler %d", alarmId); - } - else - { - SysLog(NID_SYS, "Fail to find alarm function"); - } + SysLog(NID_SYS, "Function is found"); + pOnAlarmForLaunch(alarmId); + SysLog(NID_SYS, "Requested to check current alarm id to AlarmConditionHandler %d", alarmId); } else { - SysLog(NID_SYS, "Fail to open alarm condition library"); + SysLog(NID_SYS, "Fail to find alarm function"); } } - - if (pAlarmId) + else { - free(pAlarmId); + SysLog(NID_SYS, "Fail to open alarm condition library"); } } - if (pOperation) - { - free(pOperation); - } - - if( __lifeDuration > 0 && __pauseLifeDurationTimer == false) + if (pAlarmId) { - SetLifeDurationTimer(__lifeDuration); + free(pAlarmId); } } @@ -308,7 +315,10 @@ _ServiceAppImpl::SetLifeDurationTimer(int lifeDuration) if( __pauseLifeDurationTimer == false) { - int timeout = ( __lifeDuration > LIFE_DURATION_MSEC_MAX ) ? LIFE_DURATION_MSEC_MAX : __lifeDuration; + bool isPlatformPrivilege = (GetPrivilegeLevel() == _API_VISIBILITY_PARTNER_MANUFACTURER)? true : false; + const int maxTimeOut = (isPlatformPrivilege == true)? LIFE_DURATION_MSEC_MAX_PLATFORM : LIFE_DURATION_MSEC_MAX; + + const int timeout = (__lifeDuration > maxTimeOut) ? maxTimeOut : __lifeDuration; __pLifeDurationTimer->Start(timeout); SysLog(NID_APP, "Life duration timer is started (%d millis)", timeout ); } @@ -359,4 +369,24 @@ _ServiceAppImpl::ResetLifeDurationTimer(void) SetLifeDurationTimer(__lifeDuration); } +int +_ServiceAppImpl::GetPrivilegeLevel(void) +{ + const AppId appId = _AppInfo::GetApplicationId(); + + _PackageManagerImpl* pPkg = _PackageManagerImpl::GetInstance(); + SysTryReturn(NID_APP, pPkg != null, _API_VISIBILITY_PUBLIC, E_INVALID_STATE, "Invalid PackageManager instance."); + + String pkgId = _PackageManagerImpl::GetPackageIdByAppId(appId); + SysTryReturn(NID_APP, !pkgId.IsEmpty(), _API_VISIBILITY_PUBLIC, E_INVALID_STATE, "Invalid appId(%ls).", appId.GetPointer() ); + + PackageInfo* pInfo = pPkg->GetPackageInfoN(pkgId); + SysTryReturn(NID_APP, pInfo != null, _API_VISIBILITY_PUBLIC, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult())); + + const _PackageInfoImpl* pPkgInfo = _PackageInfoImpl::GetInstance(pInfo); + SysTryReturn(NID_APP, pPkgInfo != null, _API_VISIBILITY_PUBLIC, E_INVALID_STATE, "Invalid PackageInfo instance."); + + return pPkgInfo->GetApiVisibility(); +} + } } //Tizen::App diff --git a/src/app/inc/FApp_ServiceAppImpl.h b/src/app/inc/FApp_ServiceAppImpl.h index 8982715..e628b9d 100644 --- a/src/app/inc/FApp_ServiceAppImpl.h +++ b/src/app/inc/FApp_ServiceAppImpl.h @@ -223,6 +223,10 @@ private: void SetLifeDurationTimer(int lifeDuration); + void OnAlarmOperation(service_s* service); + + static int GetPrivilegeLevel(void); + private: static _ServiceAppImpl* __pServiceAppImpl;