From 779b9f4bc520477251728e50c14ed3fc7706bd51 Mon Sep 17 00:00:00 2001 From: "kyeongwoo.lee" Date: Tue, 6 Aug 2013 16:29:47 +0900 Subject: [PATCH] refactoring Change-Id: I5d696ad3c1b92d7bada3da0d37053870b0b83fb0 --- inc/FShell_AppContext.h | 34 ++-- inc/FShell_AppWidgetContext.h | 11 +- inc/FShell_AppWidgetManagerService.h | 12 +- inc/FShell_AppWidgetManagerStub.h | 1 - inc/FShell_AppWidgetPopupContext.h | 2 +- inc/FShell_AppWidgetRemoteBuffer.h | 3 +- src/FShell_AppContext.cpp | 156 ++++++++++++++++-- src/FShell_AppWidgetContext.cpp | 32 +++- src/FShell_AppWidgetManagerService.cpp | 211 +++++++++++++------------ 9 files changed, 317 insertions(+), 145 deletions(-) diff --git a/inc/FShell_AppContext.h b/inc/FShell_AppContext.h index ed3ff78..d888b41 100644 --- a/inc/FShell_AppContext.h +++ b/inc/FShell_AppContext.h @@ -30,6 +30,7 @@ namespace Tizen { namespace Base { namespace Collection { class HashMap; +class IList; }}} namespace Tizen { namespace Shell { namespace App @@ -57,33 +58,47 @@ public: _AppContext(const Tizen::App::AppId& appId); ~_AppContext(void); - _AppWidgetContext* AddAppWidget(const Tizen::Base::String& userInfo, const Tizen::Base::String& providerId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority); - result RemoveAppWidget(const Tizen::Base::String& instanceId, bool isTriggeredByViewer = true); - result RequestUpdate(const Tizen::Base::String& providerName, const Tizen::Base::String& argument) const; - result OnAppWidgetBackgroundAll(void) const; - result OnAppWidgetForegroundAll(void) const; + result AddAppWidget(const Tizen::Base::String& userInfo, const Tizen::Base::String& providerId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority); + result UpdateAppWidget(const Tizen::Base::String& instanceId); + result DestroyAppWidget(const Tizen::Base::String& instanceId, bool isTriggeredByViewer = true); + result ResizeAppWidget(const Tizen::Base::String& instanceId, int width, int height); + result CreateAppWidgetPopup(const Tizen::Base::String& instanceId, double x, double y, int width, int height); + result DestroyAppWidgetPopup(const Tizen::Base::String& instanceId); + + result OnAppWidgetBackground(const Tizen::Base::String& instanceId); + result OnAppWidgetForeground(const Tizen::Base::String& instanceId); + result OnAppWidgetBackgroundAll(void); + result OnAppWidgetForegroundAll(void); + + result RequestUpdate(const Tizen::Base::String& providerName, const Tizen::Base::String& argument); result SendRequestToApp(const Tizen::App::AppId& providerAppId, const Tizen::Base::String& operation, Tizen::Base::Collection::HashMap* pArgs); result SendPendingEvent(void); void OnIpcConnected(int clientId); void OnIpcDisconnected(void); - - Tizen::App::AppId GetAppId(void) const; - int GetClientId(void) const; _ConnectionState GetConnectionState(void) const; bool GetWaitingStatus(void) const; + Tizen::App::AppId GetAppId(void) const; + int GetClientId(void) const; _AppWidgetContext* FindAppWidget(const Tizen::Base::String& instanceId) const; int GetProviderCount(const Tizen::Base::String& appId) const; + result RequestUpdateInstance(const Tizen::Base::String& instanceId, const Tizen::Base::String& argument); + result AcquireRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height, int& bufferId); + result AcquireRemoteBufferForPD(const Tizen::Base::String& instanceId, int width, int height, int& bufferId); + result SyncRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height); + result SyncRemoteBufferForPD(const Tizen::Base::String& instanceId); + result SendAccessStatus(const Tizen::Base::String& instanceId, int accessStatus); + void HandleUserEvent(Tizen::Base::Collection::IList* pArgs); + private: void SetConnectionState(_ConnectionState state); void SetWaitingStatus(bool status); _AppWidgetContext* FindInvalidAppWidget(void) const; private: - struct PendingEvent { PendingEvent(const Tizen::Base::String& operation, Tizen::Base::Collection::HashMap* pHashMap) @@ -101,7 +116,6 @@ private: Tizen::Base::Collection::ArrayListT* __pPendingEventList; }; - }}} // Tizen::Shell::App #endif // _FSHELL_INTERNAL_APP_CONTEXT_H_ diff --git a/inc/FShell_AppWidgetContext.h b/inc/FShell_AppWidgetContext.h index bbadc5b..49a2d48 100644 --- a/inc/FShell_AppWidgetContext.h +++ b/inc/FShell_AppWidgetContext.h @@ -73,9 +73,10 @@ public: // handle dynamic box void OnAdded(void); void OnUpdate(const Tizen::Base::String& argument); - result OnUpdateAsync(const Tizen::Base::String& argument); + result OnUpdateAsync(_AppContext* pAppContext, const Tizen::Base::String& argument); void OnResize(int width, int height); result OnRemoved(bool isTriggeredByViewer = true); + // dynamic box state void OnForeground(void); void OnBackground(void); @@ -88,6 +89,8 @@ public: // handle drop view void OnPopupCreated(double x, double y, int width, int height); void OnPopupDestoyed(void); + int AcquireRemoteBufferForPD(int w, int h) const; + result SyncRemoteBufferForPD(void) const; _AppWidgetPopupContext* GetAppWidgetPopup(void) const; Tizen::Base::Collection::HashMap* CreateRequestArgsN(void) const; @@ -103,11 +106,6 @@ public: int GetHeight(void) const; int GetPriority(void) const; -// void SetUserInfo(const Tizen::Base::String& userInfo); -// void SetProviderId(const Tizen::Base::String& providerId); -// void SetInstanceId(const Tizen::Base::String& instanceId); -// void SetPriority(int priority); - private: result SendAddRequest(int width, int height) const; result SendUpdateRequest(int width, int height, const Tizen::Base::String& argument) const; @@ -165,7 +163,6 @@ private: Tizen::Base::Collection::ArrayListT* __pPendingTouchEventList; }; // class _AppWidgetContext - static const RequestId LOCAL_EVENT_REQUEST_UPDATE = 0; }}} // Tizen::Shell::App diff --git a/inc/FShell_AppWidgetManagerService.h b/inc/FShell_AppWidgetManagerService.h index c6db66e..be4f5ca 100644 --- a/inc/FShell_AppWidgetManagerService.h +++ b/inc/FShell_AppWidgetManagerService.h @@ -38,6 +38,8 @@ class IList; namespace Tizen { namespace Shell { namespace App { +class _AppContext; + /** * @class AppWidgetManagerService * @brief The AppWidgetManagerService class handles request from viewer and provider applications, and manages context of connected application. @@ -50,7 +52,7 @@ class AppWidgetManagerService public: static AppWidgetManagerService* GetInstance(void); static AppWidgetManagerService* CreateInstance(const char* pServiceIdForCoreDaemon); - _AppWidgetContext* AddAppWidget(const Tizen::Base::String& userInfo, const Tizen::Base::String& appId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority); + result AddAppWidget(const Tizen::Base::String& userInfo, const Tizen::Base::String& appId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority); result RequestUpdate(_AppWidgetContext* pAppWidgetContext, const Tizen::Base::String& argument) const; void OnUserEventReceivedN(RequestId reqId, Tizen::Base::Collection::IList* pArgs); @@ -71,9 +73,9 @@ private: static int OnAppWidgetPopupCreate(struct event_arg *arg, void* data); static int OnAppWidgetPopupDestroy(struct event_arg *arg, void* data); static int OnAppWidgetBackground(struct event_arg *arg, void* data); - static int OnAppWidgetForeground(struct event_arg *pArg, void* pData); + static int OnAppWidgetForeground(struct event_arg *arg, void* data); static int OnAppWidgetBackgroundAll(struct event_arg *arg, void* data); - static int OnAppWidgetForegroundAll(struct event_arg *pArg, void* pData); + static int OnAppWidgetForegroundAll(struct event_arg *arg, void* data); static int OnAppWidgetClick(struct event_arg *arg, void* data); static int OnAppWidgetResize(struct event_arg *arg, void* data); static int OnAppWidgetPeriodChanged(struct event_arg *arg, void* data); @@ -104,13 +106,13 @@ private: virtual void OnSettingChanged(Tizen::Base::String & key); // helpers + _AppContext* FindAppContext(const Tizen::App::AppId& appId) const; _AppWidgetContext* FindAppWidget(const Tizen::App::AppId& appId, const Tizen::Base::String& instanceId) const; void StartPingTimer(void); virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer); result RequestUpdateAllSuspened(void) const; private: - static AppWidgetManagerService* __pTheInstance; Tizen::Base::Collection::HashMapT __appContextList; Tizen::Base::Runtime::Timer __pingTimer; @@ -121,7 +123,7 @@ class _AppWidgetHelper public: static Tizen::App::AppId ExtractAppId(const Tizen::Base::String& providerId); static Tizen::Base::String ExtractProviderName(const Tizen::Base::String& providerId); -}; //AppWidgetHelper +}; // class AppWidgetHelper }}} // Tizen::Shell::App diff --git a/inc/FShell_AppWidgetManagerStub.h b/inc/FShell_AppWidgetManagerStub.h index 5523a45..fcd4000 100644 --- a/inc/FShell_AppWidgetManagerStub.h +++ b/inc/FShell_AppWidgetManagerStub.h @@ -91,7 +91,6 @@ private: _AppWidgetManagerStub(const _AppWidgetManagerStub& value); _AppWidgetManagerStub& operator =(const _AppWidgetManagerStub& source); - protected: Tizen::Io::_IpcServer *__pIpcServer; diff --git a/inc/FShell_AppWidgetPopupContext.h b/inc/FShell_AppWidgetPopupContext.h index a013cec..7f981e8 100644 --- a/inc/FShell_AppWidgetPopupContext.h +++ b/inc/FShell_AppWidgetPopupContext.h @@ -34,7 +34,7 @@ class HashMap; namespace Tizen { namespace Shell { namespace App { -class _AppWidgetPopupContext; +class _AppWidgetContext; /** * @class _AppWidgetContext diff --git a/inc/FShell_AppWidgetRemoteBuffer.h b/inc/FShell_AppWidgetRemoteBuffer.h index 749596d..3802ac1 100644 --- a/inc/FShell_AppWidgetRemoteBuffer.h +++ b/inc/FShell_AppWidgetRemoteBuffer.h @@ -30,7 +30,6 @@ namespace Tizen { namespace Shell { namespace App { - class _IAppWidgetRemoteBufferEventListener : virtual public Tizen::Base::Runtime::IEventListener { @@ -42,7 +41,7 @@ public: }; /** - * @class _AppWidgetContext + * @class _AppWidgetRemoteBuffer * @brief This class wraps provider_buffer_xxx of libprovider. */ class _AppWidgetRemoteBuffer diff --git a/src/FShell_AppContext.cpp b/src/FShell_AppContext.cpp index 5948eaa..19d3ad0 100644 --- a/src/FShell_AppContext.cpp +++ b/src/FShell_AppContext.cpp @@ -78,24 +78,57 @@ _AppContext::~_AppContext(void) } } -_AppWidgetContext* +result _AppContext::AddAppWidget(const Tizen::Base::String& userInfo, const Tizen::Base::String& providerId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority) { _AppWidgetContext* pAppWidgetContext = new (std::nothrow)_AppWidgetContext(this, instanceId, providerId, width, height, userInfo, period, priority); - SysTryReturn(NID_SHELL, pAppWidgetContext, 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY]"); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OUT_OF_MEMORY, ""); __appWidgetContextList.Add(pAppWidgetContext->GetInstanceId(), pAppWidgetContext); pAppWidgetContext->OnAdded(); SysSecureLog(NID_SHELL, "%ls, %ls, count(%d)", pAppWidgetContext->GetProviderId().GetPointer(), pAppWidgetContext->GetInstanceId().GetPointer(), __appWidgetContextList.GetCount()); - return pAppWidgetContext; + return E_SUCCESS; } result -_AppContext::RemoveAppWidget(const Tizen::Base::String& instanceId, bool isTriggeredByViewer) +_AppContext::UpdateAppWidget(const Tizen::Base::String& instanceId) { _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); - SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND]"); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + pAppWidgetContext->OnUpdate(L""); + + return E_SUCCESS; +} + +result +_AppContext::ResizeAppWidget(const Tizen::Base::String& instanceId, int width, int height) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + pAppWidgetContext->OnResize(width, height); + + return E_SUCCESS; +} + +result +_AppContext::CreateAppWidgetPopup(const Tizen::Base::String& instanceId, double x, double y, int width, int height) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + pAppWidgetContext->OnPopupCreated(x, y, width, height); + + return E_SUCCESS; +} + +result +_AppContext::DestroyAppWidget(const Tizen::Base::String& instanceId, bool isTriggeredByViewer) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); __appWidgetContextList.Remove(instanceId); @@ -104,7 +137,18 @@ _AppContext::RemoveAppWidget(const Tizen::Base::String& instanceId, bool isTrigg delete pAppWidgetContext; - SysLog(NID_SHELL, "AppWidget(%ls, %ls) is removed. remain count(%d)", pAppWidgetContext->GetProviderId().GetPointer(), instanceId.GetPointer(), __appWidgetContextList.GetCount()); + SysLog(NID_SHELL, "AppWidget(%ls) is removed. remain count(%d)", instanceId.GetPointer(), __appWidgetContextList.GetCount()); + return E_SUCCESS; +} + +result +_AppContext::DestroyAppWidgetPopup(const Tizen::Base::String& instanceId) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + pAppWidgetContext->OnPopupDestoyed(); + return E_SUCCESS; } @@ -224,6 +268,64 @@ _AppContext::SendPendingEvent(void) return E_SUCCESS; } +result +_AppContext::RequestUpdateInstance(const Tizen::Base::String& instanceId, const Tizen::Base::String& argument) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + return pAppWidgetContext->OnUpdateAsync(this, argument); +} + +result +_AppContext::AcquireRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height, int& bufferId) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + bufferId = pAppWidgetContext->AcquireRemoteBuffer(width, height); + + return E_SUCCESS; +} + +result +_AppContext::AcquireRemoteBufferForPD(const Tizen::Base::String& instanceId, int width, int height, int& bufferId) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + bufferId = pAppWidgetContext->AcquireRemoteBufferForPD(width, height); + + return E_SUCCESS; +} + +result +_AppContext::SyncRemoteBuffer(const Tizen::Base::String& instanceId, int width, int height) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + return pAppWidgetContext->SyncRemoteBuffer(width, height); +} + +result +_AppContext::SyncRemoteBufferForPD(const Tizen::Base::String& instanceId) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + return pAppWidgetContext->SyncRemoteBufferForPD(); +} + +result +_AppContext::SendAccessStatus(const Tizen::Base::String& instanceId, int accessStatus) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + return pAppWidgetContext->SendAccessStatus(accessStatus); +} + _AppWidgetContext* _AppContext::FindAppWidget(const String& instanceId) const { @@ -269,7 +371,7 @@ _AppContext::GetProviderCount(const String& appId) const } result -_AppContext::RequestUpdate(const Tizen::Base::String& providerName, const Tizen::Base::String& argument) const +_AppContext::RequestUpdate(const Tizen::Base::String& providerName, const Tizen::Base::String& argument) { bool found = false; bool requestToAll = providerName.IsEmpty(); @@ -284,7 +386,7 @@ _AppContext::RequestUpdate(const Tizen::Base::String& providerName, const Tizen: if (pAppWidgetContext->GetProviderName() == providerName || requestToAll == true) { - pAppWidgetContext->OnUpdateAsync(argument); + pAppWidgetContext->OnUpdateAsync(this, argument); found = true; } } @@ -294,7 +396,18 @@ _AppContext::RequestUpdate(const Tizen::Base::String& providerName, const Tizen: } result -_AppContext::OnAppWidgetBackgroundAll(void) const +_AppContext::OnAppWidgetBackground(const Tizen::Base::String& instanceId) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + pAppWidgetContext->OnBackground(); + + return E_SUCCESS; +} + +result +_AppContext::OnAppWidgetBackgroundAll(void) { unique_ptr< IMapEnumeratorT > pAppWidgetContextEnum(__appWidgetContextList.GetMapEnumeratorN()); SysTryReturnResult(NID_SHELL, pAppWidgetContextEnum, E_SYSTEM, "Failed to invoke GetMapEnumeratorN()"); @@ -313,7 +426,18 @@ _AppContext::OnAppWidgetBackgroundAll(void) const } result -_AppContext::OnAppWidgetForegroundAll(void) const +_AppContext::OnAppWidgetForeground(const Tizen::Base::String& instanceId) +{ + _AppWidgetContext* pAppWidgetContext = FindAppWidget(instanceId); + SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find _AppWidgetContext."); + + pAppWidgetContext->OnForeground(); + + return E_SUCCESS; +} + +result +_AppContext::OnAppWidgetForegroundAll(void) { unique_ptr< IMapEnumeratorT > pAppWidgetContextEnum(__appWidgetContextList.GetMapEnumeratorN()); SysTryReturnResult(NID_SHELL, pAppWidgetContextEnum, E_SYSTEM, "Failed to invoke GetMapEnumeratorN()"); @@ -331,4 +455,16 @@ _AppContext::OnAppWidgetForegroundAll(void) const return E_SUCCESS; } +void +_AppContext::HandleUserEvent(Tizen::Base::Collection::IList* pArgs) +{ + _AppWidgetContext* pAppWidgetContext = dynamic_cast<_AppWidgetContext*>( pArgs->GetAt(1) ); + SysTryReturnVoidResult(NID_SHELL, pAppWidgetContext != null, E_INVALID_STATE, "_AppWidget is null!."); + + String* pArgument = dynamic_cast( pArgs->GetAt(2) ); + SysTryReturnVoidResult(NID_SHELL, pArgument != null, E_INVALID_STATE, "pArgument is null!."); + + pAppWidgetContext->OnUpdate(*pArgument); +} + }}} // Tizen::Shell::App diff --git a/src/FShell_AppWidgetContext.cpp b/src/FShell_AppWidgetContext.cpp index 23baf02..750eb47 100644 --- a/src/FShell_AppWidgetContext.cpp +++ b/src/FShell_AppWidgetContext.cpp @@ -205,12 +205,13 @@ _AppWidgetContext::OnUpdate(const String& argument) } result -_AppWidgetContext::OnUpdateAsync(const String& argument) +_AppWidgetContext::OnUpdateAsync(_AppContext* pAppContext, const String& argument) { ArrayList* pArray = new (std::nothrow) ArrayList(); SysTryReturnResult(NID_SHELL, pArray, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY]"); pArray->Construct(); + pArray->Add(pAppContext); pArray->Add(this); pArray->Add(new String(argument)); @@ -245,17 +246,15 @@ _AppWidgetContext::OnForeground(void) if (__hasPendingRequest == true) { - SysLog(NID_SHELL, "There is pending update request."); -// OnUpdateAsync(__pendingArgument); - OnUpdate(__pendingArgument); + SysLog(NID_SHELL, "There is pending request."); + OnUpdateAsync(__pAppContext, __pendingArgument); } else { if (IsUpdatePeriodExpired() == true) { SysLog(NID_SHELL, "The period is expired."); -// OnUpdateAsync(L""); - OnUpdate(L""); + OnUpdateAsync(__pAppContext, L""); } } } @@ -403,6 +402,15 @@ _AppWidgetContext::SyncRemoteBuffer(int width, int height) return E_SUCCESS; } +result +_AppWidgetContext::SyncRemoteBufferForPD(void) const +{ + _AppWidgetPopupContext* pPopupContext = GetAppWidgetPopup(); + SysSecureTryReturnResult(NID_SHELL, pPopupContext , E_SYSTEM, "pPopupContext is null for (%ls)", GetProviderId().GetPointer()); + + return pPopupContext->SyncRemoteBuffer(); +} + result _AppWidgetContext::SendAccessStatus(int accessStatus) const { @@ -565,4 +573,16 @@ _AppWidgetContext::AcquireRemoteBuffer(int w, int h) const return id; } +int +_AppWidgetContext::AcquireRemoteBufferForPD(int w, int h) const +{ + _AppWidgetPopupContext* pPopupContext = GetAppWidgetPopup(); + SysSecureTryReturnResult(NID_SHELL, pPopupContext , E_SYSTEM, "pPopupContext is null for (%ls)", GetProviderId().GetPointer()); + + int bufferId = pPopupContext->AcquireRemoteBuffer(w, h); + SysSecureTryReturnResult(NID_SHELL, bufferId != -1, E_SYSTEM, "Failed to AcquireRemoteBuffer for (%ls)", GetProviderId().GetPointer()); + + return bufferId; +} + }}} // Tizen::Shell::App diff --git a/src/FShell_AppWidgetManagerService.cpp b/src/FShell_AppWidgetManagerService.cpp index 6ea0997..0b1a999 100644 --- a/src/FShell_AppWidgetManagerService.cpp +++ b/src/FShell_AppWidgetManagerService.cpp @@ -34,7 +34,7 @@ #include #include -#include "FShell_AppWidgetContext.h" +#include "FShell_AppContext.h" #include "FShell_AppWidgetPopupContext.h" #include "FShell_AppWidgetManagerService.h" #include "FShell_TemplateUtil.h" @@ -154,6 +154,16 @@ AppWidgetManagerService::OnTimerExpired(Timer& timer) provider_send_ping(); } +_AppContext* +AppWidgetManagerService::FindAppContext(const Tizen::App::AppId& appId) const +{ + _AppContext* pAppContext = null; + result r = __appContextList.GetValue(appId, pAppContext); + SysTryReturn(NID_SHELL, !IsFailed(r), null, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND]"); + + return pAppContext; +} + _AppWidgetContext* AppWidgetManagerService::FindAppWidget(const AppId& appId, const String& instanceId) const { @@ -210,7 +220,7 @@ AppWidgetManagerService::OnSettingChanged(Tizen::Base::String& key) } } -_AppWidgetContext* +result AppWidgetManagerService::AddAppWidget(const Tizen::Base::String& userInfo, const Tizen::Base::String& providerId, const Tizen::Base::String& instanceId, int width, int height, int period, int priority) { AppId appId; @@ -223,7 +233,7 @@ AppWidgetManagerService::AddAppWidget(const Tizen::Base::String& userInfo, const if( containsKey == false) { pAppContext = new(std::nothrow) _AppContext(appId); - SysTryReturn(NID_SHELL, pAppContext, 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY]"); + SysTryReturnResult(NID_SHELL, pAppContext, E_OUT_OF_MEMORY, ""); __appContextList.Add(appId, pAppContext); } else @@ -240,21 +250,17 @@ AppWidgetManagerService::AddAppWidget(const Tizen::Base::String& userInfo, const int AppWidgetManagerService::OnAppWidgetCreate(struct event_arg *arg, int *width, int *height, double *priority, void* data) { - SysTryReturn(NID_SHELL, arg != null, EINVAL, E_INVALID_ARG, "[E_INVALID_ARG]"); - SysTryReturn(NID_SHELL, arg->pkgname != null, EINVAL, E_INVALID_ARG, "[E_INVALID_ARG]"); - SysTryReturn(NID_SHELL, arg->id != null, EINVAL, E_INVALID_ARG, "[E_INVALID_ARG]"); - SysTryReturn(NID_SHELL, arg->type == event_arg::EVENT_NEW, -EPERM, E_SUCCESS, "invalid argument from master"); + SysAssertf(arg != null && arg->pkgname != null && arg->id != null && arg->type == event_arg::EVENT_NEW, "The status of data-provider-master is invalid."); SysSecureLog(NID_SHELL, "providerId(%s) id(%s) content(%s) cluster(%s) category(%s)", arg->pkgname, arg->id, arg->info.lb_create.content, arg->info.lb_create.cluster, arg->info.lb_create.category); - AppWidgetManagerService* pAppWidgetService = AppWidgetManagerService::GetInstance(); -// SysTryReturn (NID_SHELL, pAppWidgetService->FindAppWidget(ExtractAppId(arg->pkgname), arg->id) == null, -EBUSY, E_SUCCESS,"already exist"); const double default_priority = 1.0f; - _AppWidgetContext* pAppWidgetContext = pAppWidgetService->AddAppWidget(arg->info.lb_create.content, arg->pkgname, arg->id, arg->info.lb_create.width, arg->info.lb_create.height, arg->info.lb_create.period * 1000, default_priority); + result r = AppWidgetManagerService::GetInstance()->AddAppWidget(arg->info.lb_create.content, arg->pkgname, arg->id, arg->info.lb_create.width, arg->info.lb_create.height, arg->info.lb_create.period * 1000, default_priority); + SysTryReturn(NID_SHELL, !IsFailed(r), -1, r, "[%s] Failed to execute AddAppWidget.", GetErrorMessage(r)); - *priority = pAppWidgetContext->GetPriority(); - *height= pAppWidgetContext->GetHeight(); - *width = pAppWidgetContext->GetWidth(); + *priority = default_priority; + *height= arg->info.lb_create.height; + *width = arg->info.lb_create.width; return 0; } @@ -262,6 +268,8 @@ AppWidgetManagerService::OnAppWidgetCreate(struct event_arg *arg, int *width, in int AppWidgetManagerService::OnAppWidgetUpdate(struct event_arg *arg, void* data) { + SysAssertf(arg != null && arg->type == event_arg::EVENT_UPDATE_CONTENT, "The status of data-provider-master is invalid."); + bool isInstanceIdSpecified = (arg->id == null || strlen(arg->id) < 1) ? false : true; if (isInstanceIdSpecified == false) { @@ -273,10 +281,11 @@ AppWidgetManagerService::OnAppWidgetUpdate(struct event_arg *arg, void* data) } else { - _AppWidgetContext* pAppWidgetContext = AppWidgetManagerService::GetInstance()->FindAppWidget(_AppWidgetHelper::ExtractAppId(arg->pkgname), arg->id); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "pAppWidgetContext is null for providerId(%s), instanceId(%s)", arg->pkgname, arg->id); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); - pAppWidgetContext->OnUpdate(L""); + result r = pAppContext->UpdateAppWidget(arg->id); + SysTryReturn(NID_SHELL, !IsFailed(r), -1, E_OBJ_NOT_FOUND, "Failed to update _AppContext."); } return 0; @@ -285,63 +294,66 @@ AppWidgetManagerService::OnAppWidgetUpdate(struct event_arg *arg, void* data) int AppWidgetManagerService::OnAppWidgetDestroy(struct event_arg *arg, void* data) { - SysTryReturn (NID_SHELL, arg->type == event_arg::EVENT_DELETE, -EPERM, E_SUCCESS, "invalid argument from master"); - SysLog(NID_SHELL, "Enter"); + SysAssertf(arg != null && arg->type == event_arg::EVENT_DELETE, "The status of data-provider-master is invalid."); - _AppContext* pAppContext = null; - result r = AppWidgetManagerService::GetInstance()->__appContextList.GetValue(_AppWidgetHelper::ExtractAppId(arg->pkgname), pAppContext); - SysTryReturn(NID_SHELL, !IsFailed(r), null, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND]"); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Failed to find _AppContext."); - pAppContext->RemoveAppWidget(arg->id); + pAppContext->DestroyAppWidget(arg->id); - SysLog(NID_SHELL, "Exit"); - return 0; + return 0; } int AppWidgetManagerService::OnAppWidgetPopupCreate(struct event_arg *arg, void* data) { - SysTryReturn (NID_SHELL, arg->type == event_arg::EVENT_PD_CREATE, -EPERM, E_SUCCESS, "invalid argument from master"); + SysAssertf(arg != null && arg->type == event_arg::EVENT_PD_CREATE, "The status of data-provider-master is invalid."); + SysSecureLog(NID_SHELL, "providerId(%s), id(%s), x(%d), y(%d), width(%f), height(%f), priority(%d)", arg->pkgname, arg->id, arg->info.pd_create.x, arg->info.pd_create.y, arg->info.pd_create.w, arg->info.pd_create.h); - _AppWidgetContext* pAppWidgetContext = AppWidgetManagerService::GetInstance()->FindAppWidget(_AppWidgetHelper::ExtractAppId(arg->pkgname), arg->id); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for providerId(%s), instanceId(%s)", arg->pkgname, arg->id); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Failed to find _AppContext."); - pAppWidgetContext->OnPopupCreated(arg->info.pd_create.x, arg->info.pd_create.y, arg->info.pd_create.w, arg->info.pd_create.h); + pAppContext->CreateAppWidgetPopup(arg->id, arg->info.pd_create.x, arg->info.pd_create.y, arg->info.pd_create.w, arg->info.pd_create.h); - return 0; + return 0; } - int - AppWidgetManagerService::OnAppWidgetPopupDestroy(struct event_arg *arg, void* data) +int +AppWidgetManagerService::OnAppWidgetPopupDestroy(struct event_arg *arg, void* data) { - SysTryReturn (NID_SHELL, arg->type == event_arg::EVENT_PD_DESTROY, -EPERM, E_SUCCESS, "invalid argument from master"); - _AppWidgetContext* pAppWidgetContext = AppWidgetManagerService::GetInstance()->FindAppWidget(_AppWidgetHelper::ExtractAppId(arg->pkgname), arg->id); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for providerId(%s), instanceId(%s)", arg->pkgname, arg->id); + SysAssertf(arg != null && arg->type == event_arg::EVENT_PD_DESTROY, "The status of data-provider-master is invalid."); SysSecureLog(NID_SHELL, "providerId(%s), id(%s)", arg->pkgname, arg->id); - pAppWidgetContext->OnPopupDestoyed(); - return 0; + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Failed to find _AppContext."); + + pAppContext->DestroyAppWidgetPopup(arg->id); + + return 0; } int AppWidgetManagerService::OnAppWidgetBackground(struct event_arg *arg, void* data) { - SysTryReturn(NID_SHELL, arg, 0, E_SUCCESS, "arg is null!"); + SysAssertf(arg != null && arg->type == event_arg::EVENT_LB_PAUSE, "The status of data-provider-master is invalid."); - _AppWidgetContext* pAppWidgetContext = AppWidgetManagerService::GetInstance()->FindAppWidget(_AppWidgetHelper::ExtractAppId(arg->pkgname), arg->id); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , 0, "[E_SYSTEM] pAppWidgetContext is null for providerId(%s), instanceId(%s)", arg->pkgname, arg->id); + SysSecureLog(NID_SHELL, "providerId(%s), id(%s)", arg->pkgname, arg->id); - SysSecureLog(NID_SHELL, "providerId(%s), id(%s)", arg->pkgname, arg->id); - pAppWidgetContext->OnBackground(); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Failed to find _AppContext."); - return 0; + pAppContext->OnAppWidgetBackground(arg->id); + + return 0; } int AppWidgetManagerService::OnAppWidgetBackgroundAll(struct event_arg *arg, void* data) { + SysAssertf(arg != null && arg->type == event_arg::EVENT_PAUSE, "The status of data-provider-master is invalid."); + unique_ptr< IMapEnumeratorT > pAppContextEnum(AppWidgetManagerService::GetInstance()->__appContextList.GetMapEnumeratorN()); SysTryReturnResult(NID_SHELL, pAppContextEnum, E_SYSTEM, "Failed to invoke __appContextList.GetMapEnumeratorN()"); @@ -360,22 +372,26 @@ AppWidgetManagerService::OnAppWidgetBackgroundAll(struct event_arg *arg, void* d } int -AppWidgetManagerService::OnAppWidgetForeground(struct event_arg *pArg, void* pData) +AppWidgetManagerService::OnAppWidgetForeground(struct event_arg *arg, void* data) { - SysTryReturn(NID_SHELL, pArg || pArg->id || pArg->pkgname, 0, E_SUCCESS, "pArg is null!"); - SysSecureLog(NID_SHELL, "providerId(%s), id(%s)", pArg->pkgname, pArg->id); + SysAssertf(arg != null && arg->type == event_arg::EVENT_LB_RESUME, "The status of data-provider-master is invalid."); - _AppWidgetContext* pAppWidgetContext = AppWidgetManagerService::GetInstance()->FindAppWidget(_AppWidgetHelper::ExtractAppId(pArg->pkgname), pArg->id); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for providerId(%s), instanceId(%s)", pArg->pkgname, pArg->id); + SysTryReturn(NID_SHELL, arg || arg->id || arg->pkgname, 0, E_SUCCESS, "arg is null!"); + SysSecureLog(NID_SHELL, "providerId(%s), id(%s)", arg->pkgname, arg->id); + + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Failed to find _AppContext."); - pAppWidgetContext->OnForeground(); + pAppContext->OnAppWidgetForeground(arg->id); return 0; } int -AppWidgetManagerService::OnAppWidgetForegroundAll(struct event_arg *pArg, void* pData) +AppWidgetManagerService::OnAppWidgetForegroundAll(struct event_arg *arg, void* data) { + SysAssertf(arg != null && arg->type == event_arg::EVENT_RESUME, "The status of data-provider-master is invalid."); + unique_ptr< IMapEnumeratorT > pAppContextEnum(AppWidgetManagerService::GetInstance()->__appContextList.GetMapEnumeratorN()); SysTryReturnResult(NID_SHELL, pAppContextEnum, E_SYSTEM, "Failed to invoke __appContextList.GetMapEnumeratorN()"); @@ -396,8 +412,8 @@ AppWidgetManagerService::OnAppWidgetForegroundAll(struct event_arg *pArg, void* int AppWidgetManagerService::OnAppWidgetClick(struct event_arg *arg, void* data) { - SysTryReturn (NID_SHELL, arg->type == event_arg::EVENT_CLICKED, -EPERM, E_SUCCESS, "invalid argument from master"); - SysTryReturn(NID_SHELL, arg != null, -EPERM, E_SUCCESS, "arg is null!"); + SysAssertf(arg != null && arg->type == event_arg::EVENT_CLICKED, "The status of data-provider-master is invalid."); + SysSecureLog(NID_SHELL, "providerId(%s), id(%s), clicked.event(%s), clicked.x(%f), clicked.y(%f)", arg->pkgname, arg->id, arg->info.clicked.event, arg->info.clicked.x, arg->info.clicked.y); return 0; @@ -406,15 +422,14 @@ AppWidgetManagerService::OnAppWidgetClick(struct event_arg *arg, void* data) int AppWidgetManagerService::OnAppWidgetResize(struct event_arg *arg, void* data) { - SysTryReturn(NID_SHELL, arg || arg->id || arg->pkgname, 0, E_SUCCESS, "arg is null!"); - SysTryReturn (NID_SHELL, arg->type == event_arg::EVENT_RESIZE, -EPERM, E_SUCCESS, "invalid argument from master"); + SysAssertf(arg != null && arg->type == event_arg::EVENT_RESIZE, "The status of data-provider-master is invalid."); SysSecureLog(NID_SHELL, "providerId(%s), id(%s), resize.w(%d), resize.h(%d)", arg->pkgname, arg->id, arg->info.resize.w, arg->info.resize.h); - _AppWidgetContext* pAppWidgetContext = AppWidgetManagerService::GetInstance()->FindAppWidget(_AppWidgetHelper::ExtractAppId(arg->pkgname), arg->id); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for providerId(%s), instanceId(%s)", arg->pkgname, arg->id); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(_AppWidgetHelper::ExtractAppId(arg->pkgname)); + SysTryReturn(NID_SHELL, pAppContext != null, -1, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND] Failed to find _AppContext."); - pAppWidgetContext->OnResize(arg->info.resize.w, arg->info.resize.h); + pAppContext->ResizeAppWidget(arg->id, arg->info.resize.w, arg->info.resize.h); return 0; } @@ -422,18 +437,17 @@ AppWidgetManagerService::OnAppWidgetResize(struct event_arg *arg, void* data) int AppWidgetManagerService::OnAppWidgetPeriodChanged(struct event_arg *arg, void* data) { - SysTryReturn(NID_SHELL, arg != null, 0, E_SUCCESS, "arg is null!"); + SysAssertf(arg != null && arg->type == event_arg::EVENT_SET_PERIOD, "The status of data-provider-master is invalid."); + SysSecureLog(NID_SHELL, "providerId(%s), id(%s), width(%d), height(%d), priority(%d)", arg->pkgname, arg->id); + return 0; } int AppWidgetManagerService::OnAppWidgetRecreate(struct event_arg *arg, void* data) { - SysTryReturn(NID_SHELL, arg != null, EINVAL, E_INVALID_ARG, "[E_INVALID_ARG]"); - SysTryReturn(NID_SHELL, arg->pkgname != null, EINVAL, E_INVALID_ARG, "[E_INVALID_ARG]"); - SysTryReturn(NID_SHELL, arg->id != null, EINVAL, E_INVALID_ARG, "[E_INVALID_ARG]"); - SysTryReturn(NID_SHELL, arg->type == event_arg::EVENT_RENEW, -EPERM, E_SUCCESS, "invalid argument from master"); + SysAssertf(arg != null && arg->pkgname != null && arg->id != null && arg->type == event_arg::EVENT_RENEW, "The status of data-provider-master is invalid."); SysSecureLog(NID_SHELL, "providerId(%s) id(%s) content(%s) cluster(%s) category(%s)", arg->pkgname, arg->id, arg->info.lb_recreate.content, arg->info.lb_recreate.cluster, arg->info.lb_recreate.category); @@ -441,8 +455,8 @@ AppWidgetManagerService::OnAppWidgetRecreate(struct event_arg *arg, void* data) SysTryReturn(NID_SHELL, pAppWidgetManagerService != null, -EBUSY, E_SYSTEM, "Failed to get the instance for AppWidgetManagerService."); const double default_priority = 1.0f; - _AppWidgetContext* pAppWidgetContext = pAppWidgetManagerService->AddAppWidget(arg->info.lb_create.content, arg->pkgname, arg->id, arg->info.lb_create.width, arg->info.lb_create.height, arg->info.lb_create.period * 1000, default_priority); - SysTryReturn(NID_SHELL, pAppWidgetContext != null, -EBUSY, E_SYSTEM, "Failed to add the appwidget."); + result r = pAppWidgetManagerService->AddAppWidget(arg->info.lb_create.content, arg->pkgname, arg->id, arg->info.lb_create.width, arg->info.lb_create.height, arg->info.lb_create.period * 1000, default_priority); + SysTryReturn(NID_SHELL, !IsFailed(r), -EBUSY, r, "[%s] Failed to execute AddAppWidget.", GetErrorMessage(r)); return 0; } @@ -489,8 +503,6 @@ AppWidgetManagerService::DeinitializeCoreDaemonEventReceiver(void) /////////////////////////////////////////////////////// // stub implementation /////////////////////////////////////////////////////// - - result AppWidgetManagerService::RequestUpdate(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName, const Tizen::Base::String& argument) const { @@ -516,7 +528,6 @@ AppWidgetManagerService::RequestUpdateAllSuspened(void) const { pAppContext->RequestUpdate(L"", L""); } - } SysLog(NID_SHELL, "Exit."); @@ -528,21 +539,23 @@ AppWidgetManagerService::RequestUpdateInstance(const Tizen::App::AppId& appId, c { SysSecureLog(NID_SHELL, "%ls, %ls", instanceId.GetPointer(), argument.GetPointer() ); - _AppWidgetContext* pAppWidgetContext = FindAppWidget(appId, instanceId); - SysTryReturnResult(NID_SHELL, pAppWidgetContext, E_OBJ_NOT_FOUND, "Failed to find the object(%ls).", instanceId.GetPointer()); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(appId); + SysTryReturnResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); + + result r = pAppContext->RequestUpdateInstance(instanceId, argument); + SysTryReturnResult(NID_SHELL, !IsFailed(r), E_OBJ_NOT_FOUND, "Failed to execute RequestUpdateInstance."); - pAppWidgetContext->OnUpdateAsync(argument); return E_SUCCESS; } result AppWidgetManagerService::AcquireRemoteBuffer(const Tizen::App::AppId& appId, const Tizen::Base::String& instanceId, int width, int height, int& bufferId) { - _AppWidgetContext* pAppWidgetContext = this->FindAppWidget(appId, instanceId); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(appId); + SysTryReturnResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); - bufferId = pAppWidgetContext->AcquireRemoteBuffer(width, height); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , bufferId != -1, "[E_SYSTEM] failed to AcquireRemoteBuffer for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + pAppContext->AcquireRemoteBuffer(instanceId, width, height, bufferId); + SysSecureTryReturnResult(NID_SHELL, bufferId != -1, E_SYSTEM, "Failed to execute AcquireRemoteBuffer for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); return E_SUCCESS; } @@ -550,35 +563,31 @@ AppWidgetManagerService::AcquireRemoteBuffer(const Tizen::App::AppId& appId, con result AppWidgetManagerService::AcquireRemoteBufferForPD(const Tizen::App::AppId& appId, const Tizen::Base::String& instanceId, int width, int height, int& bufferId) { - _AppWidgetContext* pAppWidgetContext = this->FindAppWidget(appId, instanceId); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(appId); + SysTryReturnResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); - _AppWidgetPopupContext* pPopupContext = pAppWidgetContext->GetAppWidgetPopup(); - SysSecureTryReturnResult(NID_SHELL, pPopupContext , E_SYSTEM, "[E_SYSTEM] pPd is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + pAppContext->AcquireRemoteBufferForPD(instanceId, width, height, bufferId); + SysSecureTryReturnResult(NID_SHELL, bufferId != -1, E_SYSTEM, "Failed to execute AcquireRemoteBufferForPD for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); - bufferId = pPopupContext->AcquireRemoteBuffer(width, height); - SysSecureTryReturnResult(NID_SHELL, bufferId != -1, E_SYSTEM, "Failed to AcquireRemoteBuffer for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); - - return E_SUCCESS; + return E_SUCCESS; } result AppWidgetManagerService::SyncRemoteBuffer(const Tizen::App::AppId& appId, const Tizen::Base::String& instanceId, int width, int height) { - _AppWidgetContext* pAppWidgetContext = this->FindAppWidget(appId, instanceId); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(appId); + SysTryReturnResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); - return pAppWidgetContext->SyncRemoteBuffer(width, height); + return pAppContext->SyncRemoteBuffer(instanceId, width, height); } result AppWidgetManagerService::SyncRemoteBufferForPD(const Tizen::App::AppId& appId, const Tizen::Base::String& instanceId) { - _AppWidgetContext* pAppWidgetContext = this->FindAppWidget(appId, instanceId); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext->GetAppWidgetPopup(), E_SYSTEM, "[E_SYSTEM] GetAppWidgetPopup() returns null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(appId); + SysTryReturnResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); - return pAppWidgetContext->GetAppWidgetPopup()->SyncRemoteBuffer(); + return pAppContext->SyncRemoteBufferForPD(instanceId); } result @@ -600,12 +609,12 @@ AppWidgetManagerService::RequestProviderCount(const Tizen::App::AppId& appId, co _AppContext* pAppContext = null; result r = __appContextList.GetValue(appId, pAppContext); - SysTryReturn(NID_SHELL, pAppContext, null, E_OBJ_NOT_FOUND, "[E_OBJ_NOT_FOUND]"); + SysTryReturnResult(NID_SHELL, pAppContext, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); providerCount = pAppContext->GetProviderCount(appId); - r = pAppContext->RemoveAppWidget(instanceId, false); - SysTryReturnResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "Failed to execute RemoveAppWidget."); + r = pAppContext->DestroyAppWidget(instanceId, false); + SysTryReturnResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "Failed to execute DestroyAppWidget."); providerCount--; @@ -619,11 +628,11 @@ AppWidgetManagerService::SendResult(const Tizen::App::AppId& appId, const Tizen: { _AppContext* pAppContext = null; result r = __appContextList.GetValue(appId, pAppContext); - SysTryReturn(NID_SHELL, !IsFailed(r), null, E_OBJ_NOT_FOUND, "appId(%ls) is not found", appId.GetPointer() ); + SysTryReturnResult(NID_SHELL, !IsFailed(r), E_OBJ_NOT_FOUND, "appId(%ls) is not found.", appId.GetPointer()); if (!isSucceeded) { - r = pAppContext->RemoveAppWidget(instanceId, false); + r = pAppContext->DestroyAppWidget(instanceId, false); SysTryReturnResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "Failed to execute RemoveAppWidget."); } else // for pending event excluding touch event. @@ -639,10 +648,10 @@ AppWidgetManagerService::SendResult(const Tizen::App::AppId& appId, const Tizen: result AppWidgetManagerService::SendAccessStatus(const Tizen::App::AppId& appId, const Tizen::Base::String& instanceId, int accessStatus) { - _AppWidgetContext* pAppWidgetContext = this->FindAppWidget(appId, instanceId); - SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext , E_SYSTEM, "[E_SYSTEM] pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer()); + _AppContext* pAppContext = AppWidgetManagerService::GetInstance()->FindAppContext(appId); + SysTryReturnResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, "Failed to find _AppContext."); - return pAppWidgetContext->SendAccessStatus(accessStatus); + return pAppContext->SendAccessStatus(instanceId, accessStatus); } void @@ -656,15 +665,11 @@ AppWidgetManagerService::OnUserEventReceivedN(RequestId reqId, IList* pArgs) { case LOCAL_EVENT_REQUEST_UPDATE: { - _AppWidgetContext* pAppWidgetContext = dynamic_cast<_AppWidgetContext*>( pArgs->GetAt(0) ); - SysTryReturnVoidResult(NID_SHELL, pAppWidgetContext != null, E_INVALID_STATE, "_AppWidget is null!."); - - String* pArgument = dynamic_cast( pArgs->GetAt(1) ); - SysTryReturnVoidResult(NID_SHELL, pArgument != null, E_INVALID_STATE, "pArgument is null!."); + _AppContext* pAppContext = dynamic_cast<_AppContext*>( pArgs->GetAt(0) ); + SysTryReturnVoidResult(NID_SHELL, pAppContext != null, E_OBJ_NOT_FOUND, ""); - pAppWidgetContext->OnUpdate(*pArgument); + pAppContext->HandleUserEvent(pArgs); - delete pArgument; pArgs->RemoveAll(); delete pArgs; } -- 2.34.1