N_SE-38636 : proper exception code
[platform/framework/native/appfw.git] / src / app / FApp_AppControlImpl.cpp
index c6b2d16..f7fac9d 100755 (executable)
@@ -1,5 +1,4 @@
 //
-// Open Service Platform
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
 // Licensed under the Apache License, Version 2.0 (the License);
@@ -503,7 +502,7 @@ _AppControlImpl::AppControlCbLegacy(void* data, _AppArg* pArg, _AppArg* pResArg,
                        provider = pEntry->provider;
                        oId = pEntry->operation;
 
-                       SysLog(NID_APP, "Legacy AppControl name (%ls, %ls).", provider.GetPointer(), oId.GetPointer());
+                       SysLog(NID_APP, "Legacy AppControl(%ls, %ls).", provider.GetPointer(), oId.GetPointer());
                }
        }
 
@@ -512,7 +511,7 @@ _AppControlImpl::AppControlCbLegacy(void* data, _AppArg* pArg, _AppArg* pResArg,
                String tmp = _AppControlRegistry::GetInstance()->GetReverseAliasAppId(provider);
                if (!tmp.IsEmpty())
                {
-                       SysLog(NID_APP, "AppId change (%ls -> %ls).", provider.GetPointer(), tmp.GetPointer());
+                       SysLog(NID_APP, "App change (%ls -> %ls).", provider.GetPointer(), tmp.GetPointer());
 
                        provider = tmp;
                }
@@ -532,7 +531,7 @@ _AppControlImpl::AppControlCbLegacy(void* data, _AppArg* pArg, _AppArg* pResArg,
 result
 _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, service_result_e res, int prop, int reqId)
 {
-       SysLog(NID_APP, "Result value %d", res);
+       SysLog(NID_APP, "Result value : %d, property : 0x%x", res, prop);
 
        SysTryReturnResult(NID_APP, data && pResArg && pArg, E_SYSTEM, "Invalid result (callback, result, arg) = (0x%x, 0x%x, 0x%x).",
                                          data, pResArg,
@@ -562,13 +561,13 @@ _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, servi
        if (prop & _APPCONTROL_PROPERTY_ALIAS)
        {
                const _AppControlRegistry::_AppControlAliasEntry* pEntry = null;
-               pEntry = _AppControlRegistry::GetInstance()->GetReverseAppControlAliasEntry(provider, oId);
+               pEntry = _AppControlRegistry::GetInstance()->GetReverseRuntimeAliasEntry(provider, oId);
                if (pEntry)
                {
                        provider = pEntry->provider;
                        oId = pEntry->operation;
 
-                       SysLog(NID_APP, "Legacy AppControl name (%ls, %ls).", provider.GetPointer(), oId.GetPointer());
+                       SysLog(NID_APP, "Original AppControl(%ls, %ls).", provider.GetPointer(), oId.GetPointer());
                }
        }
 
@@ -577,7 +576,7 @@ _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, servi
                String tmp = _AppControlRegistry::GetInstance()->GetReverseAliasAppId(provider);
                if (!tmp.IsEmpty())
                {
-                       SysLog(NID_APP, "AppId change (%ls -> %ls).", provider.GetPointer(), tmp.GetPointer());
+                       SysLog(NID_APP, "App change (%ls -> %ls).", provider.GetPointer(), tmp.GetPointer());
 
                        provider = tmp;
                }
@@ -585,30 +584,7 @@ _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, servi
 
        std::unique_ptr<HashMap> pMap(pResArg->GetArgMapN());
 
-       AppCtrlResult ret = APP_CTRL_RESULT_FAILED;
-       // to prevent enum overflow;
-       int resCode = res;
-       switch(resCode)
-       {
-       case SERVICE_RESULT_SUCCEEDED:
-               ret = APP_CTRL_RESULT_SUCCEEDED;
-               break;
-       case SERVICE_RESULT_FAILED:
-               ret = APP_CTRL_RESULT_CANCELED;
-               break;
-       case SERVICE_RESULT_CANCELED:
-               ret = APP_CTRL_RESULT_ABORTED;
-               break;
-       case APPSVC_OSP_RES_FAIL:
-               ret = APP_CTRL_RESULT_FAILED;
-               break;
-       case APPSVC_OSP_RES_TERMINATE:
-               ret = APP_CTRL_RESULT_TERMINATED;
-               break;
-       default:
-               ret = APP_CTRL_RESULT_FAILED;
-               break;
-       }
+       AppCtrlResult ret = _AppControlManager::ConvertAppControlResultCode(res);
 
        SysLog(NID_APP, "Result code : 0x%x.", ret);
 
@@ -618,7 +594,7 @@ _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, servi
 
        if (pResponseEvent != null)
        {
-               _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, provider, oId, E_SUCCESS, ret, pMap.get(), reqId);
+               _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, provider, oId, E_SUCCESS, ret, pMap.release(), reqId);
                pResponseEvent->Fire(*pResponseEventArg);
                SysLog(NID_APP, "OnAppControlCompleteResponseReceived, pResponseEvent is Fired");
        }
@@ -668,11 +644,10 @@ _AppControlImpl::StartNative(const IList* pDataList, IAppControlEventListener* p
        // after acquring request number, pLib should be managed from the list, not CATCH
        if (IsFailed(r))
        {
-               SetLastResult(E_SYSTEM);
                _AppControlManager::GetInstance()->__inAppManager.RemoveItem(req);
-               SysLog(NID_APP, "[E_SYSTEM] A system error has occurred with %s.", GetErrorMessage(r));
+               SysLog(NID_APP, "[%s] A system error has occurred.", GetErrorMessage(r));
 
-               return E_SYSTEM;
+               return r;
        }
 
        _reqId = req;
@@ -757,11 +732,10 @@ _AppControlImpl::StartNative(const String* pUriData, const String* pMimeType, co
        // after acquring request number, pLib should be managed from the list, not CATCH
        if (IsFailed(r))
        {
-               SetLastResult(E_SYSTEM);
                _AppControlManager::GetInstance()->__inAppManager.RemoveItem(req);
-               SysLog(NID_APP, "[E_SYSTEM] A system error has occurred with %s.", GetErrorMessage(r));
+               SysLog(NID_APP, "[%s] A system error has occurred.", GetErrorMessage(r));
 
-               return E_SYSTEM;
+               return r;
        }
 
        _reqId = req;
@@ -843,7 +817,7 @@ IsValidAppControl(const String& appcontrolID)
                || (appcontrolID == L"tizen.memo")
                || (appcontrolID == L"tizen.contacts")
                || (appcontrolID == L"tizen.calendar")
-               || (appcontrolID == L"tizen.events")
+               || (appcontrolID == L"tizen.todo")
                || (appcontrolID == L"tizen.email")
                || (appcontrolID == L"tizen.settings")
                || (appcontrolID == L"tizen.messages")
@@ -899,14 +873,19 @@ _AppControlImpl::Stop(void)
 String
 _AppControlImpl::GetAppName(void)
 {
-       if ((_property & _APPCONTROL_PROPERTY_OSP) && _appName.IsEmpty())
+       if (_appName.IsEmpty())
        {
-               const AppId& appId = _path;
+               AppId appId = GetAppId();
+               AppId aliasAppId = _AppControlRegistry::GetInstance()->GetAliasAppId(appId);
+               if (!aliasAppId.IsEmpty())
+               {
+                       appId = aliasAppId;
+               }
 
                std::unique_ptr<PackageAppInfo> pInfo(_PackageManagerImpl::GetInstance()->GetPackageAppInfoN(appId));
-
                if (pInfo.get())
                {
+                       SysLog(NID_APP, "PackageInfo of appId(%ls) exists", appId.GetPointer());
                        const String& name = pInfo->GetAppName();
                        if (name == L"_AppControl")
                        {
@@ -920,7 +899,7 @@ _AppControlImpl::GetAppName(void)
 
                                if (pNewInfo.get())
                                {
-                                       _appName = pNewInfo->GetAppName();
+                                       _appName = pNewInfo->GetAppDisplayName();
                                }
                                else
                                {
@@ -929,9 +908,12 @@ _AppControlImpl::GetAppName(void)
                        }
                        else
                        {
-                               _appName = pInfo->GetAppName();
+                               _appName = pInfo->GetAppDisplayName();
                        }
-                       SysLog(NID_APP, "Initializing AppName(%ls) for %ls.", _appName.GetPointer(), appId.GetPointer());
+               }
+               else
+               {
+                       SysLog(NID_APP, "PackageInfo of appId(%ls) does not exist", appId.GetPointer());
                }
        }
 
@@ -959,10 +941,16 @@ _AppControlImpl::GetOperationId(void) const
 IList*
 _AppControlImpl::GetCategoryListN(void) const
 {
-       const AppId& appId = GetAppId();
+       AppId appId = GetAppId();
        SysTryReturn(NID_APP, !appId.IsEmpty(), null, E_SYSTEM, "[E_SYSTEM] Empty appId.");
 
-       SysLog(NID_APP, "Acquiring category for appId %ls.", appId.GetPointer());
+       AppId aliasAppId = _AppControlRegistry::GetInstance()->GetAliasAppId(appId);
+       if (!aliasAppId.IsEmpty())
+       {
+               appId = aliasAppId;
+       }
+
+       SysLog(NID_APP, "Acquiring category for app %ls.", appId.GetPointer());
 
        std::unique_ptr<PackageAppInfo> pAppInfo(_PackageManagerImpl::GetInstance()->GetPackageAppInfoN(appId));
        SysTryReturn(NID_APP, pAppInfo.get() != null, null, E_SYSTEM, "[E_SYSTEM] Getting PackageAppInfo failed.");