N_SE-44648 : fix window raise on submode
[platform/framework/native/appfw.git] / src / app / FApp_AppControlManager.cpp
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;