removed redundant code
[platform/framework/native/appfw.git] / src / app / FApp_Aul.cpp
index 98bc8fb..6abde09 100644 (file)
@@ -29,8 +29,8 @@
 #include <aul.h>
 #include <bundle.h>
 #include <appsvc/appsvc.h>
-#include <app_manager.h>
-#include <heynoti.h>
+#include <vconf.h>
+#include <pkgmgr-info.h>
 
 #include <FBaseObject.h>
 #include <FBaseString.h>
@@ -115,7 +115,7 @@ _Aul::GetConvertedResult(const int aul_ret, const char* pFunctionName)
 }
 
 result
-_Aul::SendResult(bundle* b, appsvc_result_val res, bool isSubMode)
+_Aul::SendResult(bundle* b, appsvc_result_val res, bool isSubMode, bool isServiceApp)
 {
        // to skip error handling, of appsvc_send_result, use aul_send_service_result() directly.
        //int ret = appsvc_send_result(b, res);
@@ -129,6 +129,11 @@ _Aul::SendResult(bundle* b, appsvc_result_val res, bool isSubMode)
                _AppArg::UpdateSubMode(b);
        }
 
+       if (isServiceApp)
+       {
+               _AppArg::UpdateServiceApp(b);
+       }
+
        const int aul_ret = aul_send_service_result(b);
 
        result r = GetConvertedResult(aul_ret, "SendResult");
@@ -144,10 +149,9 @@ _Aul::SendResult(bundle* b, appsvc_result_val res, bool isSubMode)
 bool
 _Aul::IsRunning(const String& appId)
 {
-       bool isRunning = false;
-       std::unique_ptr<char[]> pSlpPackageName(_StringConverter::CopyToCharArrayN(appId));
+       std::unique_ptr<char[]> pPackageId(_StringConverter::CopyToCharArrayN(appId));
 
-       app_manager_is_running(pSlpPackageName.get(), &isRunning);
+       const bool isRunning = (aul_app_is_running(pPackageId.get()) > 0);
 
        SysLog(NID_APP, "'%ls' %s running now.", appId.GetPointer(), (isRunning) ? "is" : "is NOT");
        return isRunning;
@@ -157,7 +161,7 @@ _Aul::IsRunning(const String& appId)
 result
 _Aul::TerminateApplicationByPid(int pid)
 {
-       int ret_aul = aul_terminate_pid(pid);
+       int ret_aul = aul_subapp_terminate_request_pid(pid);
 
        return GetConvertedResult(ret_aul, "TerminateApplicationByPid");
 }
@@ -205,9 +209,16 @@ _Aul::SetOomAdj(int pid, int adj)
        return r;
 }
 
+typedef void (* cbForVconf)(keynode_t* node, void *pData);
+
 result
-_Aul::SetPowerOffNotiListener( void (*powerOffCb)(void *pData), void *pData)
+_Aul::SetPowerOffNotiListener( void (*powerOffCb)(void* node, void *pData), void *pData)
 {
+
+#if 1
+       int ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_POWER_OFF_STATUS, (cbForVconf)powerOffCb, pData);
+       SysTryReturnResult(NID_SYS, ret == 0, E_SYSTEM, "It failed to set power off");
+#else
        int heyFd = heynoti_init();
        SysTryReturnResult(NID_APP, heyFd >= 0, E_SYSTEM, "heynoti_init failed.");
 
@@ -216,6 +227,7 @@ _Aul::SetPowerOffNotiListener( void (*powerOffCb)(void *pData), void *pData)
 
        ret = heynoti_attach_handler(heyFd);
        SysTryReturnResult(NID_APP, ret >= 0, E_SYSTEM, "heynoti_attach_handler failed.");
+#endif
 
        return E_SUCCESS;
 }
@@ -271,27 +283,43 @@ _Aul::IsInstalled(const AppId& appId)
 }
 
 
+String
+_Aul::GetMainAppId(const char* appid)
+{
+       pkgmgrinfo_appinfo_h handle = NULL;
+       int ret = pkgmgrinfo_appinfo_get_appinfo(appid, &handle);
+       if (ret != PMINFO_R_OK)
+       {
+               return String();
+       }
+
+       char* mainid = NULL;
+       ret = pkgmgrinfo_appinfo_get_submode_mainid(handle, &mainid);
+       SysTryLog(NID_APP, ret == PMINFO_R_OK, "Cannot get main id for %s.", appid);
+
+       const String tmp = String(mainid);
+       pkgmgrinfo_appinfo_destroy_appinfo(handle);
+       return tmp;
+}
+
+
 AppId
 _Aul::GetRealAppId(const AppId& appId)
 {
        String temp;
-       // [INFO] ugly code for submode callee
        appId.SubString(11, temp);
-       if (temp == L"_AppControl")
-       {
-               String id;
-               appId.SubString(0, 10, id);
-               const String& name = _PackageManagerImpl::GetInstance()->GetDefaultAppExecutableName(id);
-
-               const String retVal = id + L'.' + name;
-               SysLog(NID_APP, "Converted caller Id is %ls", retVal.GetPointer());
-
-               return retVal;
-       }
-       else
+       if (temp == String(SUBMODE_NAME))
        {
-               return appId;
+               std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
+               const String& main = GetMainAppId(pAppId.get());
+               if (!main.IsEmpty())
+               {
+                       SysLog(NID_APP, "main Id is %ls", main.GetPointer());
+                       return main;
+               }
        }
+
+       return appId;
 }
 
 } } // Tizen::App