N_SE-44648 : fix window raise on submode
authorYoung Ik Cho <youngik.cho@samsung.com>
Fri, 5 Jul 2013 07:09:51 +0000 (16:09 +0900)
committerYoung Ik Cho <youngik.cho@samsung.com>
Fri, 5 Jul 2013 07:09:51 +0000 (16:09 +0900)
Change-Id: Ie28dacccd07cade20d1c7ca46d5ddbbc8675fcfc
Signed-off-by: Young Ik Cho <youngik.cho@samsung.com>
15 files changed:
src/app/FApp_AppArg.cpp
src/app/FApp_AppControlEvent.cpp
src/app/FApp_AppControlEventArg.cpp
src/app/FApp_AppControlEventArg.h
src/app/FApp_AppControlImpl.cpp
src/app/FApp_AppControlManager.cpp
src/app/FApp_AppControlProviderManagerImpl.cpp
src/app/FApp_AppManagerImpl.cpp
src/app/FApp_Aul.cpp
src/app/FApp_DataControlProviderManagerImpl.cpp
src/app/inc/FApp_AppArg.h
src/app/inc/FApp_AppControlImpl.h
src/app/inc/FApp_AppControlManager.h
src/app/inc/FApp_Aul.h
src/app/inc/FApp_IAppControlSysEventListener.h

index 735f4c8..2d33f5a 100644 (file)
@@ -78,13 +78,6 @@ static const char BUNDLE_KEY_PREFIX_SERVICE[] = "__APP_SVC_";
 static const char BUNDLE_KEY_PREFIX_OSP[] = "__OSP_";
 const char TIZEN_NOTIFICATION_DATA[] = "http://tizen.org/appcontrol/data/notification";
 
-static const char SAMSUNG_ACCOUNT_KEY_CLIENT_ID[] = "client_id";
-static const char SAMSUNG_ACCOUNT_KEY_CLIENT_SECRET[] = "client_secret";
-static const char SAMSUNG_ACCOUNT_KEY_SERVICE_CATEGORY[] = "service_category";
-
-static const char SMS_KEY_SERVICE_CALLER[] = "service_caller";
-static const char SMS_KEY_SERVICE_DATA[] = "service_data";
-
 
 _AppArg::_AppArg(void)
        : __pBundle(null)
@@ -489,47 +482,6 @@ _AppArg::SetArgList(bundle* pBundle, ArrayList* pList)
                SysLog(NID_APP, "argument is %s", p);
        }
 
-       String tmp;
-       p = appsvc_get_data(pBundle, SMS_KEY_SERVICE_CALLER);
-       if (p)
-       {
-               tmp.Format(60, L"%s:%s", SMS_KEY_SERVICE_CALLER, p);
-               pList->Add(*new (std::nothrow) String(tmp));
-               SysLog(NID_APP, "service_caller is %s", p);
-       }
-       
-       p = appsvc_get_data(pBundle, SMS_KEY_SERVICE_DATA);
-       if (p)
-       {
-               tmp.Format(60, L"%s:%s", SMS_KEY_SERVICE_DATA, p);
-               pList->Add(*new (std::nothrow) String(tmp));
-               SysLog(NID_APP, "service_data is set");
-       }
-       
-       p = appsvc_get_data(pBundle, SAMSUNG_ACCOUNT_KEY_CLIENT_ID);
-       if (p)
-       {
-               tmp.Format(60, L"%s:%s", SAMSUNG_ACCOUNT_KEY_CLIENT_ID, p);
-               pList->Add(*new (std::nothrow) String(tmp));
-               SysLog(NID_APP, "client_id is %s", p);
-       }
-       
-       p = appsvc_get_data(pBundle, SAMSUNG_ACCOUNT_KEY_CLIENT_SECRET);
-       if (p)
-       {
-               tmp.Format(60, L"%s:%s", SAMSUNG_ACCOUNT_KEY_CLIENT_SECRET, p);
-               pList->Add(*new (std::nothrow) String(tmp));
-               SysLog(NID_APP, "client_secret is %s", p);
-       }
-
-       p = appsvc_get_data(pBundle, SAMSUNG_ACCOUNT_KEY_SERVICE_CATEGORY);
-       if (p)
-       {
-               tmp.Format(60, L"%s:%s", SAMSUNG_ACCOUNT_KEY_SERVICE_CATEGORY, p);
-               pList->Add(*new (std::nothrow) String(tmp));
-               SysLog(NID_APP, "service_category is %s", p);
-       }
-
        return E_SUCCESS;
 }
 
@@ -1199,6 +1151,27 @@ _AppArg::UpdateKeyValue(bundle* pBundle, const char* pKey, const String& value)
        }
 }
 
+
+void
+_AppArg::UpdateSubMode(bundle* pBundle)
+{
+       appsvc_add_data(pBundle, OSP_K_SUBMODE_CALLEE, "1");
+}
+
+
+bool
+_AppArg::IsSubMode(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;
+}
+
+
 int
 _AppArg::GetRequestIdFromBundle(bundle* pBundle)
 {
index af6a75c..a1f5e4b 100644 (file)
@@ -51,7 +51,7 @@ _AppControlEvent::FireImpl(IEventListener& listener, const IEventArg& arg)
 
                if (pNativeArg != null)
                {
-                       pListener->OnAppControlEventReceivedN(pNativeArg->GetRequestId(), pNativeArg->GetResult(), pNativeArg->GetArgs());
+                       pListener->OnAppControlEventReceivedN(pNativeArg->GetRequestId(), pNativeArg->GetResult(), pNativeArg->GetArgs(), pNativeArg->GetProperty());
 
                        return;
                }
index 48e0e4d..12404f0 100644 (file)
@@ -41,10 +41,11 @@ _AppControlEventArg::~_AppControlEventArg(void)
        delete __pArg;
 }
 
-_NativeAppControlEventArg::_NativeAppControlEventArg(int reqId, int res, IMap* pArg)
+_NativeAppControlEventArg::_NativeAppControlEventArg(int reqId, int res, IMap* pArg, int prop)
        : __reqId(reqId)
        , __result(res)
        , __pArgs(null)
+       , __property(prop)
 {
        if (pArg == null)
        {
index a993d8f..621fcf3 100644 (file)
@@ -86,9 +86,9 @@ private:
        _AppControlEventArg& operator =(const _AppControlEventArg& rhs);
 
 private:
-       int __reqId;
+       const int __reqId;
        _AppArg* __pArg;
-       int __result;
+       const int __result;
 }; // _AppControlEventArg
 
 /**
@@ -100,7 +100,7 @@ class _NativeAppControlEventArg
        , public Tizen::Base::Runtime::IEventArg
 {
 public:
-       _NativeAppControlEventArg(int reqId, int res, Tizen::Base::Collection::IMap* pArgs);
+       _NativeAppControlEventArg(int reqId, int res, Tizen::Base::Collection::IMap* pArgs, int prop);
 
        virtual ~_NativeAppControlEventArg(void);
 
@@ -119,10 +119,16 @@ public:
                return __pArgs;
        }
 
+       int GetProperty(void) const
+       {
+               return __property;
+       }
+
 private:
-       int __reqId;
-       int __result;
+       const int __reqId;
+       const int __result;
        Tizen::Base::Collection::IMap* __pArgs;
+       const int __property;
 }; // _NativeAppControlEventArg
 
 /**
@@ -180,7 +186,7 @@ class _AppControlResponseEventArg
        , public Tizen::Base::Runtime::IEventArg
 {
 public:
-       _AppControlResponseEventArg(IAppControlResponseListener* pResponseListener, _AppControlResponseType type, const AppId& appId, const Tizen::Base::String& operationId, result res, AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData, int reqId)
+       _AppControlResponseEventArg(IAppControlResponseListener* pResponseListener, _AppControlResponseType type, const AppId& appId, const Tizen::Base::String& operationId, result res, AppCtrlResult appControlResult, const Tizen::Base::Collection::IMap* pExtraData, int reqId, bool isSubMode)
                : __pResponseListener(pResponseListener)
                , __type(type)
                , __appId(appId.GetPointer())
@@ -189,6 +195,7 @@ public:
                , __appControlResult(appControlResult)
                , __pExtraData(pExtraData)
                , __reqId(reqId)
+               , __isSubMode(isSubMode)
        {
        }
 
@@ -237,6 +244,11 @@ public:
                return __reqId;
        }
 
+       bool IsSubMode(void) const
+       {
+               return __isSubMode;
+       }
+
 private:
        _AppControlResponseEventArg(const _AppControlResponseEventArg& rhs);
 
@@ -244,13 +256,14 @@ private:
 
 private:
        IAppControlResponseListener* __pResponseListener;
-       _AppControlResponseType __type;
+       const _AppControlResponseType __type;
        const AppId __appId;
        const Tizen::Base::String __operationId;
-       result __res;
-       AppCtrlResult __appControlResult;
+       const result __res;
+       const AppCtrlResult __appControlResult;
        const Tizen::Base::Collection::IMap* __pExtraData;
-       int __reqId;
+       const int __reqId;
+       const bool __isSubMode;
 }; // _AppControlEventArg
 
 } } // Tizen::App
index 34f81ce..496370c 100644 (file)
@@ -516,12 +516,14 @@ _AppControlImpl::AppControlCbLegacy(void* data, _AppArg* pArg, _AppArg* pResArg,
                }
        }
 
+       const bool isSubMode = _AppArg::IsSubMode(b);
+
        std::unique_ptr<HashMap> pMap(pResArg->GetArgMapN());
 
        ArrayList list(SingleObjectDeleter);
        _AppArg::FillLegacyAppControlResult(list, res, pMap.get(), provider);
 
-       _AppControlManager::InvokeLegacyAppControlCompleteListener(*pListener, provider, oId, &list);
+       _AppControlManager::InvokeLegacyAppControlCompleteListener(*pListener, provider, oId, &list, isSubMode);
 
        return E_SUCCESS;
 }
@@ -580,6 +582,8 @@ _AppControlImpl::AppControlCb(void* data, _AppArg* pArg, _AppArg* pResArg, servi
                }
        }
 
+       const bool isSubMode = _AppArg::IsSubMode(b);
+
        std::unique_ptr<HashMap> pMap(pResArg->GetArgMapN());
 
        AppCtrlResult ret = _AppControlManager::ConvertAppControlResultCode(res);
@@ -592,13 +596,13 @@ _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.release(), reqId);
+               _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, provider, oId, E_SUCCESS, ret, pMap.release(), reqId, isSubMode);
                pResponseEvent->Fire(*pResponseEventArg);
                SysLog(NID_APP, "OnAppControlCompleteResponseReceived, pResponseEvent is Fired");
        }
        else
        {
-               _AppControlManager::InvokeAppControlCompleteListener(*pListener, provider, oId, ret, pMap.get());
+               _AppControlManager::InvokeAppControlCompleteListener(*pListener, provider, oId, ret, pMap.get(), isSubMode);
        }
 
        return E_SUCCESS;
@@ -974,7 +978,7 @@ _AppControlImpl::OnAppControlResponseEventReceivedN(const Tizen::Base::Runtime::
                {
                        if(pEventArg->GetType() == _APPCONTROL_RESPONSETYPE_COMPLETE)
                        {
-                               _AppControlManager::InvokeAppControlCompleteListener(*pResponseListener, pEventArg->GetAppId(), pEventArg->GetOperationId(), pEventArg->GetAppControlResult(), pEventArg->GetExtraData());
+                               _AppControlManager::InvokeAppControlCompleteListener(*pResponseListener, pEventArg->GetAppId(), pEventArg->GetOperationId(), pEventArg->GetAppControlResult(), pEventArg->GetExtraData(), pEventArg->IsSubMode());
 
                                _AppControlResponseEvent* pResponseEvent = null;
                                _AppControlManager::GetInstance()->GetAppControlResponseEventContainer()->GetValue(pEventArg->GetRequestId(), pResponseEvent);
index c811dd8..df4f4cc 100644 (file)
@@ -224,7 +224,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, const AppId& appId, co
                if (pResponseEvent != null)
                {
                        String oId(operationId);
-                       _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_START, actualAppId, oId, r, APP_CTRL_RESULT_SUCCEEDED, null, reqId);
+                       _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_START, actualAppId, oId, r, APP_CTRL_RESULT_SUCCEEDED, null, reqId, false);
 
                        if (pResponseEventArg != null)
                        {
@@ -246,24 +246,28 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, const AppId& appId, co
 
 
 void
-_AppControlManager::InvokeAppControlCompleteListener(IAppControlResponseListener& listener, const AppId& appId, const String& op, AppCtrlResult res, const IMap* pExtraData)
+_AppControlManager::InvokeAppControlCompleteListener(IAppControlResponseListener& listener, const AppId& appId, const String& op, AppCtrlResult res, const IMap* pExtraData, bool isSubMode)
 {
        listener.OnAppControlCompleteResponseReceived(appId, op, res, pExtraData);
 
-       //_AppImpl::GetInstance()->RaiseWindow();
-       _AppImpl::GetInstance()->SendUserEvent(_APP_EVENT_RAISE, null, false);
+       if (!isSubMode)
+       {
+               _AppImpl::GetInstance()->SendUserEvent(_APP_EVENT_RAISE, null, false);
+       }
 
        SysLog(NID_APP, "AppControl response finished.");
 }
 
 
 void
-_AppControlManager::InvokeLegacyAppControlCompleteListener(IAppControlEventListener& listener, const AppId& appId, const String& op, const IList* pList)
+_AppControlManager::InvokeLegacyAppControlCompleteListener(IAppControlEventListener& listener, const AppId& appId, const String& op, const IList* pList, bool isSubMode)
 {
        listener.OnAppControlCompleted(appId, op, pList);
 
-       //_AppImpl::GetInstance()->RaiseWindow();
-       _AppImpl::GetInstance()->SendUserEvent(_APP_EVENT_RAISE, null, false);
+       if (!isSubMode)
+       {
+               _AppImpl::GetInstance()->SendUserEvent(_APP_EVENT_RAISE, null, false);
+       }
 
        SysLog(NID_APP, "Legacy AppControl response finished.");
 }
@@ -271,7 +275,7 @@ _AppControlManager::InvokeLegacyAppControlCompleteListener(IAppControlEventListe
 
 // callback for in-process event handling
 void
-_AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* pArgs)
+_AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* pArgs, int property)
 {
        SysLog(NID_APP, "Received request Id %d, res %d, args 0x%x", reqId, res, pArgs);
 
@@ -300,6 +304,8 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
                        }
                }
 
+               const bool isSubMode = (property & _APPCONTROL_PROPERTY_SUBMODE);
+
                if (pInfo->isLegacy)
                {
                        IAppControlEventListener* pListener = dynamic_cast<IAppControlEventListener*>(pInfo->pListener);
@@ -308,7 +314,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
                                ArrayList list(SingleObjectDeleter);
                                _AppArg::FillLegacyAppControlResult(list, res, pArgs, aId);
 
-                               InvokeLegacyAppControlCompleteListener(*pListener, aId, oId, &list);
+                               InvokeLegacyAppControlCompleteListener(*pListener, aId, oId, &list, isSubMode);
                        }
                        else
                        {
@@ -326,7 +332,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
 
                                if (pResponseEvent != null)
                                {
-                                       _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, aId, oId, E_SUCCESS, static_cast<AppCtrlResult>(res), const_cast<IMap*> (pArgs), responseEventRequestId);
+                                       _AppControlResponseEventArg* pResponseEventArg = new (std::nothrow) _AppControlResponseEventArg(pListener, _APPCONTROL_RESPONSETYPE_COMPLETE, aId, oId, E_SUCCESS, static_cast<AppCtrlResult>(res), const_cast<IMap*> (pArgs), responseEventRequestId, isSubMode);
                                        if (pResponseEventArg != null)
                                        {
                                                pResponseEvent->Fire(*pResponseEventArg);
@@ -335,7 +341,7 @@ _AppControlManager::OnAppControlEventReceivedN(int reqId, int res, const IMap* p
                                }
                                else
                                {
-                                       InvokeAppControlCompleteListener(*pListener, aId, oId, ConvertAppControlResultCode(res), pArgs);
+                                       InvokeAppControlCompleteListener(*pListener, aId, oId, ConvertAppControlResultCode(res), pArgs, isSubMode);
                                        SysLog(NID_APP, "Listener called directly");
                                        delete pArgs;
                                }
@@ -899,7 +905,7 @@ void
 _AppControlManager::FinishAppControl(int reqId, int res, IMap* pMap)
 {
        SysLog(NID_APP, "req %d, res %d.", reqId, res);
-       _NativeAppControlEventArg* pArg = new (std::nothrow) _NativeAppControlEventArg(reqId, res, pMap);
+       _NativeAppControlEventArg* pArg = new (std::nothrow) _NativeAppControlEventArg(reqId, res, pMap, _APPCONTROL_PROPERTY_SUBMODE);
        SysTryReturnVoidResult(NID_APP, pArg != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Return argument allocation failure.");
 
        SendAppControlEvent(*pArg);
@@ -1026,7 +1032,7 @@ _AppControlManager::OnAppControlResponseEventReceivedN(const Tizen::Base::Runtim
                        }
                        else
                        {
-                               InvokeAppControlCompleteListener(*pResponseListener, pEventArg->GetAppId(), pEventArg->GetOperationId(), pEventArg->GetAppControlResult(), pEventArg->GetExtraData());
+                               InvokeAppControlCompleteListener(*pResponseListener, pEventArg->GetAppId(), pEventArg->GetOperationId(), pEventArg->GetAppControlResult(), pEventArg->GetExtraData(), pEventArg->IsSubMode());
                                SysLog(NID_APP, "Listener called");
 
                                _AppControlResponseEvent* pResponseEvent = null;
index cf5482d..9e40660 100644 (file)
@@ -34,6 +34,7 @@
 #include "FApp_Aul.h"
 #include "FApp_AppArg.h"
 #include "FApp_AppImpl.h"
+#include "FApp_AppInfo.h"
 #include "FApp_AppControlManager.h"
 #include "FApp_AppControlProviderManagerImpl.h"
 
@@ -78,7 +79,7 @@ _AppControlProviderManagerImpl::SendAppControlResult(RequestId reqId, const ILis
        SysTryReturn(NID_APP, !IsFailed(r), r, r, "[%s] Propagating.", GetErrorMessage(r));
 
        //resArg.Print();
-       r = _Aul::SendResult(resArg.GetBundle(), static_cast<appsvc_result_val>(0));
+       r = _Aul::SendResult(resArg.GetBundle(), static_cast<appsvc_result_val>(0), _AppInfo::IsSubMode());
        SysLog(NID_APP, "Sent AppControl event for %d.", reqId);
 
        // erase _AppArg after sending the result back to the caller
@@ -128,7 +129,7 @@ _AppControlProviderManagerImpl::SendAppControlResult(RequestId reqId, AppCtrlRes
        }
 
        //resArg.Print();
-       r = _Aul::SendResult(resArg.GetBundle(), static_cast<appsvc_result_val>(res));
+       r = _Aul::SendResult(resArg.GetBundle(), static_cast<appsvc_result_val>(res), _AppInfo::IsSubMode());
        SysLog(NID_APP, "Sent AppControl event for %d.", reqId);
 
        // erase _AppArg after sending the result back to the caller
index 99f3f56..6b08626 100755 (executable)
@@ -1242,6 +1242,8 @@ _AppManagerImpl::GetActiveApp(AppId& appId)
        aul_app_get_pkgname_bypid(processId, pkgname, 255);
        
        appId = _Aul::GetRealAppId(String(pkgname));
+
+       SysLog(NID_APP, "ActiveApp is %ls.", appId.GetPointer());
        return E_SUCCESS;
 }
 
index a94d145..98bc8fb 100644 (file)
@@ -44,6 +44,7 @@
 #include "FAppPkg_PackageManagerImpl.h"
 #include "FApp_Types.h"
 #include "FApp_Aul.h"
+#include "FApp_AppArg.h"
 #include "FApp_TemplateUtil.h"
 
 
@@ -114,7 +115,7 @@ _Aul::GetConvertedResult(const int aul_ret, const char* pFunctionName)
 }
 
 result
-_Aul::SendResult(bundle* b, appsvc_result_val res)
+_Aul::SendResult(bundle* b, appsvc_result_val res, bool isSubMode)
 {
        // to skip error handling, of appsvc_send_result, use aul_send_service_result() directly.
        //int ret = appsvc_send_result(b, res);
@@ -123,6 +124,11 @@ _Aul::SendResult(bundle* b, appsvc_result_val res)
        snprintf(tmp, 32, "%d", static_cast<int>(res));
        appsvc_add_data(b, APP_SVC_K_RES_VAL, tmp);
 
+       if (isSubMode)
+       {
+               _AppArg::UpdateSubMode(b);
+       }
+
        const int aul_ret = aul_send_service_result(b);
 
        result r = GetConvertedResult(aul_ret, "SendResult");
index 6f4a231..bcc5ba6 100644 (file)
@@ -110,7 +110,7 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon
        _AppArg resultArg;
        String* pDataId = null;
        result r = E_SUCCESS;
-       int ret = -1;
+       //int ret = -1;
 
        _AppControlManager* pAppMgr = _AppControlManager::GetInstance();
        SysTryReturnResult(NID_APP, pAppMgr, E_SYSTEM, "Failed to get instance.");
@@ -364,7 +364,7 @@ _DataControlProviderManagerImpl::SendDataControlResult(RequestId reqId, _DataCon
        resultArg.UpdateKeyValue(OSP_K_DATACONTROL_PROTOCOL_VERSION, version);
 
        //resultArg.Print();
-       r = _Aul::SendResult(resultArg.GetBundle(), static_cast< appsvc_result_val >(0));
+       r = _Aul::SendResult(resultArg.GetBundle(), static_cast< appsvc_result_val >(0), false);
        SysTryCatch(NID_APP, !IsFailed(r), , r, "[%s] Failed to send result.", GetErrorMessage(r));
 
        // Erases _AppArg after sending the result back to the caller
index 2429ddc..444fb5e 100644 (file)
@@ -63,6 +63,7 @@ enum _DataControlRequestType
 #define OSP_K_COND          "__OSP_COND_NAME__"
 #define OSP_K_APPID         "__OSP_APPID__"
 #define OSP_K_REQUEST_ID    "__OSP_REQUEST_ID__"
+#define OSP_K_SUBMODE_CALLEE   "__OSP_SUB_CALLEE__"
 #define OSP_K_APPCONTROL_INTERNAL_OPERATION "__OSP_APPCONTROL_INTERNAL_INTERNAL_OPERATION__"
 #define OSP_K_DATACONTROL_PROVIDER             "__OSP_DATACONTROL_PROVIDER__"
 #define OSP_K_DATACONTROL_DATA                 "__OSP_DATACONTROL_DATA__"
@@ -179,6 +180,10 @@ public:
 
        static void UpdateKeyValue(bundle* b, const char* pKey, const Tizen::Base::String& value);
 
+       static void UpdateSubMode(bundle* b);
+
+       static bool IsSubMode(bundle* b);
+
        static result UpdateWindowHandle(bundle* b, long handle);
 
        static Tizen::Base::Collection::ArrayList* GetListN(bundle* b, const char* key);
index 27a76fe..58627c5 100644 (file)
@@ -56,6 +56,7 @@ enum _AppControlProperty
        _APPCONTROL_PROPERTY_OSP = 0x200,
        _APPCONTROL_PROPERTY_ALIAS = 0x400,
        _APPCONTROL_PROPERTY_APPID_CHANGE = 0x800,
+       _APPCONTROL_PROPERTY_SUBMODE = 0x1000,
 };
 
 class _OSP_EXPORT_ _AppControlImpl
index 2b2c254..b02d6af 100644 (file)
@@ -109,7 +109,7 @@ public:
        _AppArg* pArg;
        const LaunchCbType launchCb;
        void* pUserData;
-       const int property;
+       int property;
 }; // _LaunchInfo
 
 
@@ -231,7 +231,7 @@ public:
 
        virtual void OnAppControlEventReceivedN(int reqId, _AppArg* pAppArg, int res);
 
-       virtual void OnAppControlEventReceivedN(int reqId, int res, const Tizen::Base::Collection::IMap* pArgs);
+       virtual void OnAppControlEventReceivedN(int reqId, int res, const Tizen::Base::Collection::IMap* pArgs, int prop);
 
        virtual void OnAppControlEventReceivedN(int reqId, const AppId& appId, const Tizen::Base::String& operationId);
 
@@ -283,9 +283,9 @@ public:
 
        static AppCtrlResult ConvertAppControlResultCode(int res);
 
-       static void InvokeAppControlCompleteListener(IAppControlResponseListener& listener, const AppId& appId, const Tizen::Base::String& op, AppCtrlResult res, const Tizen::Base::Collection::IMap* pExtraData);
+       static void InvokeAppControlCompleteListener(IAppControlResponseListener& listener, const AppId& appId, const Tizen::Base::String& op, AppCtrlResult res, const Tizen::Base::Collection::IMap* pExtraData, bool isSubMode);
 
-       static void InvokeLegacyAppControlCompleteListener(IAppControlEventListener& listener, const AppId& appId, const Tizen::Base::String& op, const Tizen::Base::Collection::IList* pList);
+       static void InvokeLegacyAppControlCompleteListener(IAppControlEventListener& listener, const AppId& appId, const Tizen::Base::String& op, const Tizen::Base::Collection::IList* pList, bool isSubMode);
 
 private:
        _OSP_LOCAL_ _AppControlManager(void);
index 8c36d62..7774bb6 100644 (file)
@@ -48,7 +48,7 @@ public:
 
        static result TerminateApplicationByPid(int pid);
 
-       static result SendResult(bundle* b, appsvc_result_val res);
+       static result SendResult(bundle* b, appsvc_result_val res, bool isSubMode);
 
        static bool IsRunning(const Tizen::Base::String& appId);
 
index bee1959..5165a2a 100644 (file)
@@ -46,7 +46,7 @@ public:
 
        virtual void OnAppControlEventReceivedN(int reqId, _AppArg* pArg, int res) = 0;
 
-       virtual void OnAppControlEventReceivedN(int reqId, int res, const Tizen::Base::Collection::IMap* pArgs) = 0;
+       virtual void OnAppControlEventReceivedN(int reqId, int res, const Tizen::Base::Collection::IMap* pArgs, int prop) = 0;
 
        virtual void OnAppControlEventReceivedN(int reqId, const AppId& appId, const Tizen::Base::String& operationId) = 0;
 }; // _IAppControlSysEventListener