Update to handle the FG/BG on AppControl response callback
[platform/framework/native/appfw.git] / src / app / FApp_AppArg.cpp
index 9109aad..a85fdeb 100644 (file)
 #include <FBaseInteger.h>
 #include <FBaseColArrayList.h>
 #include <FBaseColHashMap.h>
+#include <FBaseByteBuffer.h>
 #include <FBaseUtilStringTokenizer.h>
-
 #include <FBaseSysLog.h>
+
 #include <FBase_StringConverter.h>
 
 #include "FApp_MapDataControlImpl.h"
@@ -70,12 +71,13 @@ static const char OSP_V_REQUEST_TYPE_MAP_INSERT[] = "map_insert";
 static const char OSP_V_REQUEST_TYPE_MAP_UPDATE[] = "map_update";
 static const char OSP_V_REQUEST_TYPE_MAP_DELETE[] = "map_delete";
 static const char OSP_V_VERSION_2_1_0_3[] = "ver_2.1.0.3";
+
 static const char BUNDLE_KEY_PREFIX_AUL[] = "__AUL_";
 static const char BUNDLE_KEY_PREFIX_SERVICE[] = "__APP_SVC_";
 static const char BUNDLE_KEY_PREFIX_OSP[] = "__OSP_";
 static const char BUNDLE_KEY_PREFIX_UG[] = "__UG_";
-const char TIZEN_NOTIFICATION_DATA[] = "http://tizen.org/appcontrol/data/notification";
-const wchar_t LEGACY_OPERATION_MAIN[] = L"osp.operation.MAIN";
+
+static const char OSP_K_RAISE_MODE[] = "__OSP_RAISE_MODE__";
 
 
 _AppArg::_AppArg(void)
@@ -114,36 +116,6 @@ _AppArg::Construct(const IList* pList)
 
 
 result
-_AppArg::Construct(const _AppControlImpl& ac, const IList* pList)
-{
-       __pBundle = bundle_create();
-       SysTryReturnResult(NID_APP, __pBundle != null, E_OUT_OF_MEMORY, "Bundle creation failure.");
-
-       return CreateAppControlArg(__pBundle, ac, pList);
-}
-
-
-result
-_AppArg::Construct(const _AppControlImpl& ac, const String* pUri, const String* pMime, const IMap* pList)
-{
-       __pBundle = bundle_create();
-       SysTryReturnResult(NID_APP, __pBundle != null, E_OUT_OF_MEMORY, "Bundle creation failure.");
-
-       return CreateAppControlArg(__pBundle, ac, pUri, pMime, pList);
-}
-
-
-result
-_AppArg::Construct(const _AppMessageImpl& msg, const String& oId, const String* pUri, const String* pMime)
-{
-       __pBundle = bundle_dup(const_cast<bundle*>(msg.GetBundle()));
-       SysTryReturnResult(NID_APP, __pBundle != null, E_OUT_OF_MEMORY, "Bundle creation failure.");
-
-       return CreateAppControlArg(__pBundle, oId, pUri, pMime, null);
-}
-
-
-result
 _AppArg::Construct(const _SqlDataControlImpl& dc, _DataControlRequestType requestType, const IList* pList)
 {
        __pBundle = bundle_create();
@@ -184,9 +156,9 @@ _AppArg::ConstructResult(const _AppArg& arg, const IMap* pMap)
 
 
 result
-_AppArg::Construct(bundle* b)
+_AppArg::Construct(const bundle* b)
 {
-       __pBundle = bundle_dup(b);
+       __pBundle = bundle_dup(const_cast<bundle*>(b));
        SysTryReturnResult(NID_APP, __pBundle != null, E_INVALID_STATE, "Bundle creatioin from service handle failure.");
 
        return E_SUCCESS;
@@ -567,9 +539,9 @@ _AppArg::GetCallerAppId(void) const
 
 
 AppId
-_AppArg::GetCalleeAppId(void) const
+_AppArg::GetCalleeAppId(bundle* pBundle)
 {
-       const char* pBundleValue = bundle_get_val(__pBundle, AUL_K_CALLEE_APPID);
+       const char* pBundleValue = bundle_get_val(pBundle, AUL_K_CALLEE_APPID);
 
        const AppId retVal = pBundleValue;
 
@@ -883,73 +855,6 @@ _AppArg::CreateAppLaunchConditionArg(bundle* b, const String& condition, const I
 }
 
 
-result
-_AppArg::CreateAppControlArg(bundle* b, const _AppControlImpl& ac, const IList* pList)
-{
-       SysAssertf(b != null, "Valid bundle should be supplied");
-
-       bundle* pb = b;
-
-       AddStrArray(pb, OSP_K_ARG, pList);
-
-       std::unique_ptr<char[]> pOperation(_StringConverter::CopyToCharArrayN(ac._opId));
-       if (pOperation)
-       {
-               appsvc_set_operation(pb, pOperation.get());
-       }
-
-       bundle_add(pb, OSP_K_LAUNCH_TYPE, OSP_V_LAUNCH_TYPE_APPCONTROL);
-
-       return E_SUCCESS;
-}
-
-
-result
-_AppArg::CreateAppControlArg(bundle* b, const _AppControlImpl& ac, const String* pUriData, const String* pMimeType, const IMap* pMap)
-{
-       return CreateAppControlArg(b, ac._opId, pUriData, pMimeType, pMap);
-}
-
-
-result
-_AppArg::CreateAppControlArg(bundle* b, const String& oId, const String* pUriData, const String* pMimeType, const IMap* pMap)
-{
-       SysAssertf(b != null, "Valid bundle should be supplied");
-
-       bundle* pb = b;
-
-       std::unique_ptr<char[]> pOperation(_StringConverter::CopyToCharArrayN(oId));
-       if (pOperation.get())
-       {
-               appsvc_set_operation(pb, pOperation.get());
-       }
-
-       if (pUriData)
-       {
-               std::unique_ptr<char[]> pUri(_StringConverter::CopyToCharArrayN(*pUriData));
-               if (pUri.get())
-               {
-                       appsvc_set_uri(pb, pUri.get());
-               }
-       }
-
-       if (pMimeType)
-       {
-               std::unique_ptr<char[]> pMime(_StringConverter::CopyToCharArrayN(*pMimeType));
-               if (pMime.get())
-               {
-                       appsvc_set_mime(pb, pMime.get());
-               }
-       }
-
-       AddStrMap(pb, pMap);
-
-       bundle_add(pb, OSP_K_LAUNCH_TYPE, OSP_V_LAUNCH_TYPE_APPCONTROL);
-
-       return E_SUCCESS;
-}
-
-
 namespace
 {
 const int MAX_LEN_DATA_CONTROL_REQ_TYPE = 8;
@@ -1050,21 +955,10 @@ _AppArg::CreateBundleFromSvc(void* svc)
 bundle*
 _AppArg::GetBundleFromSvc(void* svc)
 {
-       struct DummyS
-       {
-               int dummy1;
-               int dummy2;
-               bundle* pData;
-       };
+       bundle* pBundle = NULL;
+       int ret = service_to_bundle(static_cast<service_h>(svc), &pBundle);
 
-       DummyS* pDummy = static_cast<DummyS*>(svc);
-
-       if (pDummy && pDummy->pData)
-       {
-               return pDummy->pData;
-       }
-
-       return NULL;
+       return (ret == SERVICE_ERROR_NONE) ? pBundle : NULL;
 }
 
 
@@ -1150,25 +1044,19 @@ _AppArg::UpdateKeyValue(bundle* pBundle, const char* pKey, const String& value)
 
 
 void
-_AppArg::UpdateSubMode(bundle* pBundle)
+_AppArg::UpdateRaiseMode(bundle* pBundle)
 {
-       appsvc_add_data(pBundle, OSP_K_SUBMODE_CALLEE, "1");
+       appsvc_add_data(pBundle, OSP_K_RAISE_MODE, "1");
 }
 
 
 bool
-_AppArg::IsSubMode(bundle* pBundle)
+_AppArg::IsRaiseMode(bundle* pBundle)
 {
-       const char* p = appsvc_get_data(pBundle, OSP_K_SUBMODE_CALLEE);
-       if (p && (strncmp(p, "1", sizeof(char)) == 0))
-       {
-               return true;
-       }
-
-       return false;
+       const char* p = appsvc_get_data(pBundle, OSP_K_RAISE_MODE);
+       return (p && (strncmp(p, "1", sizeof(char)) == 0));
 }
 
-
 int
 _AppArg::GetRequestIdFromBundle(bundle* pBundle)
 {