result r = resArg.ConstructResult(arg, pResultList);
if (IsFailed(r))
{
+ // erase _AppArg after sending the result back to the caller
+ pAppMgr->__resultManager.RemoveItem(reqId);
+
SysPropagate(NID_APP, r);
return r;
}
- const bool isService = _AppInfo::GetAppType() & _APP_TYPE_SERVICE_APP;
-
- //resArg.Print();
- r = _Aul::SendResult(resArg.GetBundle(), static_cast<appsvc_result_val>(0), _AppInfo::IsSubMode(), isService);
- SysLog(NID_APP, "Sent AppControl event for %d.", reqId);
+ r = SendAppControlResultPrimitive(reqId, resArg, 0);
// erase _AppArg after sending the result back to the caller
pAppMgr->__resultManager.RemoveItem(reqId);
result r = resArg.ConstructResult(arg, pResultMap);
if (IsFailed(r))
{
+ // erase _AppArg after sending the result back to the caller
+ pAppMgr->__resultManager.RemoveItem(reqId);
+
SysPropagate(NID_APP, r);
return r;
}
break;
}
- const bool isService = _AppInfo::GetAppType() & _APP_TYPE_SERVICE_APP;
-
- //resArg.Print();
- r = _Aul::SendResult(resArg.GetBundle(), static_cast<appsvc_result_val>(res), _AppInfo::IsSubMode(), isService);
- SysLog(NID_APP, "Sent AppControl event for %d.", reqId);
+ r = SendAppControlResultPrimitive(reqId, resArg, res);
// erase _AppArg after sending the result back to the caller
pAppMgr->__resultManager.RemoveItem(reqId);
return r;
}
+
+result
+_AppControlProviderManagerImpl::SendAppControlResultPrimitive(RequestId reqId, _AppArg& arg, int ret)
+{
+ static bool firstRequestSent = false;
+
+ if (reqId == 0 && firstRequestSent)
+ {
+ SysLog(NID_APP, "Sent main AppControl request already.");
+
+ return E_SUCCESS;
+ }
+ else
+ {
+ if (reqId == 0)
+ {
+ firstRequestSent = true;
+ }
+
+ const bool isService = _AppInfo::GetAppType() & _APP_TYPE_SERVICE_APP;
+
+ //resArg.Print();
+ result r = _Aul::SendResult(arg.GetBundle(), static_cast<appsvc_result_val>(ret), _AppInfo::IsSubMode(), isService);
+ SysLog(NID_APP, "Sent AppControl event for %d.", reqId);
+
+ return r;
+ }
+}
+
+
AppId
_AppControlProviderManagerImpl::GetClientAppId(RequestId reqId) const
{
#include <FOspConfig.h>
#include <FBaseObject.h>
#include <FBaseDataType.h>
-#include <FBaseColIListT.h>
namespace Tizen { namespace Base
{
}}
namespace Tizen { namespace Base { namespace Collection { class IList; } } }
+namespace Tizen { namespace Base { namespace Collection { class IMap; } } }
namespace Tizen { namespace App
{
class AppControlProviderManager;
class IAppControlProviderEventListener;
+class _AppArg;
/**
* @class _AppControlProviderManagerImpl
* The %_AppControlProviderManagerImpl class manages all the application controls.
*/
class _AppControlProviderManagerImpl
- : public Tizen::Base::Object
{
public:
/**
* This is the destructor for this class.
*/
- virtual ~_AppControlProviderManagerImpl(void);
+ ~_AppControlProviderManagerImpl(void);
/**
* This is the default copy constructor for this class.
*/
_AppControlProviderManagerImpl& operator =(const _AppControlProviderManagerImpl& rhs);
+ result SendAppControlResultPrimitive(RequestId reqId, _AppArg& arg, int ret);
+
friend class AppControlProviderManager;
};