_AppWidgetManagerProxy::~_AppWidgetManagerProxy()
{
- delete __pIpcClient;
+ if (__pIpcClient)
+ {
+ delete __pIpcClient;
+ }
}
_AppWidgetManagerProxy*
_AppWidgetManagerProxy::GetInstance()
{
static std::unique_ptr<_AppWidgetManagerProxy> __pAppWidgetProxy(null);
- if( __pAppWidgetProxy.get() == null)
+ if (__pAppWidgetProxy.get() == null)
{
std::unique_ptr<_AppWidgetManagerProxy> pAppWidgetProxy(new (std::nothrow)_AppWidgetManagerProxy);
SysTryReturn(NID_SHELL, pAppWidgetProxy.get(), null, E_OUT_OF_MEMORY, "Allocating new _AppWidgetManagerProxy failed!");
__pAppWidgetProxy = std::move(pAppWidgetProxy);
}
+ else
+ {
+ if (!__pAppWidgetProxy->IsConnected())
+ {
+ result r = __pAppWidgetProxy->Construct();
+ SysTryReturn(NID_SHELL, !IsFailed(r), null, r, "[%s] Propagating.", GetErrorMessage(r));
+ }
+ }
return __pAppWidgetProxy.get();
}
SysTryReturnResult(NID_SHELL, __pIpcClient != null, E_OUT_OF_MEMORY, "_IpcClient creation failed.");
result r = __pIpcClient->Construct(IPC_SERVER_NAME, this);
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "_IpcClient constructing faliied [%s].", GetErrorMessage(r));
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "_IpcClient constructing failed [%s].", GetErrorMessage(r));
SysLog(NID_SHELL, "Exit.");
return E_SUCCESS;
result ret = E_SUCCESS;
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestUpdate(appId, providerName, argument, &ret));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
return ret;
}
result ret = E_SUCCESS;
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestUpdateInstance(instanceId, argument, &ret));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
return ret;
}
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestSharedMemoryId(instanceId, width, height, &shmId));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
SysLog(NID_SHELL, "shmId(%d) is retrieved from appwidget-service", shmId);
return E_SUCCESS;
result ret = E_FAILURE;
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestSyncSharedMemory(instanceId, width, height, &ret));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
return E_SUCCESS;
}
result ret = E_FAILURE;
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestSyncSharedMemoryForPD(instanceId, &ret));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
return E_SUCCESS;
}
result ret = E_FAILURE;
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestReleaseSharedMemory(instanceId, &ret));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
return E_SUCCESS;
}
result ret = E_FAILURE;
std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_RequestReleaseSharedMemoryForPD(instanceId, &ret));
result r = __pIpcClient->SendRequest(*pMsg.get());
- SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest is failed.");
+ SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "SendRequest failed.");
return E_SUCCESS;
}
+result
+_AppWidgetManagerProxy::SendResult(const Tizen::Base::String& instanceId, bool isSucceeded)
+{
+ SysTryReturnResult(NID_SHELL, __pIpcClient != null, E_INVALID_STATE, "__pIpcClient instance must not be null.");
+ SysLog(NID_SHELL, "");
+
+ std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_SendResult(instanceId, isSucceeded));
+ result r = __pIpcClient->SendRequest(*pMsg.get());
+ SysTryReturnResult(NID_SHELL, !IsFailed(r), r, "SendResult failed.");
+
+ return E_SUCCESS;
+}
result
_AppWidgetManagerProxy::OnTouchEventReceived(const Tizen::Base::String& instanceId, int eventType, double timeStamp, double x, double y )
SysLog(NID_SHELL, "Exit.");
}
+bool
+_AppWidgetManagerProxy::IsConnected(void) const
+{
+ return (__pIpcClient != null);
+}
+
+void
+_AppWidgetManagerProxy::OnIpcServerDisconnected(_IpcClient& client)
+{
+ SysLog(NID_SHELL, "IPC Server[%ls] is disconnected.", client.GetName().GetPointer());
+
+ delete __pIpcClient;
+ __pIpcClient = null;
+}
+
}} // Tizen::Shell
__appwidgetProviders.Construct();
__touchEventListeners.Construct();
- Tizen::App::_AppImpl::GetInstance()->SetAppControlProviderInternalEventListener(this);
+ _AppImpl::GetInstance()->SetAppControlProviderInternalEventListener(this);
_ServiceAppImpl* pServiceAppImpl = _ServiceAppImpl::GetInstance();
if( pServiceAppImpl)
{
const String& lifeDurationValue = pFeature->GetValue();
int lifeDuration = 0;
- r = Tizen::Base::Integer::Parse(lifeDurationValue, lifeDuration);
+ r = Integer::Parse(lifeDurationValue, lifeDuration);
SysTryReturnResult(NID_SHELL, !IsFailed(r), E_INVALID_OPERATION, "Failed to parse %ls attribute for the ServiceApp in package information.", LIFE_DURATION_KEY );
// SysTryReturnResult(NID_SHELL, lifeDuration <= LIFE_DURATION_MIN, E_INVALID_OPERATION, "%ls attribute value should be less than '%d' to be an application that providing AppWidget, but value is %d", LIFE_DURATION_KEY, LIFE_DURATION_MIN, lifeDuration );
bool
-_AppWidgetProviderManagerImpl::IsPackagedWithTPK(const Tizen::App::AppId& appId)
+_AppWidgetProviderManagerImpl::IsPackagedWithTPK(const AppId& appId)
{
String packageId = _PackageManagerImpl::GetPackageIdByAppId(appId);
PackageInfo* pInfo = _PackageManagerImpl::GetInstance()->GetPackageInfoN(packageId);
}
result
-_AppWidgetProviderManagerImpl::RequestUpdate(const Tizen::App::AppId& appId, const Tizen::Base::String& providerName, const Tizen::Base::String& argument)
+_AppWidgetProviderManagerImpl::RequestUpdate(const AppId& appId, const String& providerName, const String& argument)
{
SysLog(NID_SHELL, "Enter.");
}
result
-_AppWidgetProviderManagerImpl::RequestUpdateInstance(const Tizen::Base::String& instanceId, const Tizen::Base::String& argument)
+_AppWidgetProviderManagerImpl::RequestUpdateInstance(const String& instanceId, const String& argument)
{
if(ContainsAppWidget(instanceId))
{
AppWidgetFrame* pAppWidgetFrame = pAppWidgetProvider->GetAppWidgetFrame();
SysTryReturnResult(NID_SHELL, pAppWidgetFrame, E_SYSTEM, "Failed to GetAppWidgetFrame");
- pAppWidgetProvider->OnAppWidgetProviderUpdating(argument);
+ bool isUpdated = pAppWidgetProvider->OnAppWidgetProviderUpdating(argument);
+ if (!isUpdated)
+ {
+ SysLog(NID_SHELL, "Failed to update.");
+
+ result r = SendResult(instanceId, false);
+ SysTryLog(NID_SHELL, !IsFailed(r), "Failed to send the result.");
+
+ return E_SYSTEM;
+ }
}
else
{
}
bool
-_AppWidgetProviderManagerImpl::IsSamePackage(const Tizen::App::AppId& appId1, const Tizen::App::AppId& appId2)
+_AppWidgetProviderManagerImpl::IsSamePackage(const AppId& appId1, const AppId& appId2)
{
String PackageId1 = _PackageManagerImpl::GetPackageIdByAppId(appId1);
String PackageId2 = _PackageManagerImpl::GetPackageIdByAppId(appId2);
}
result
-_AppWidgetProviderManagerImpl::CheckCertificate(const Tizen::App::AppId& localAppId, const Tizen::App::AppId& remoteAppId)
+_AppWidgetProviderManagerImpl::CheckCertificate(const AppId& localAppId, const AppId& remoteAppId)
{
if( IsSamePackage( localAppId, remoteAppId))
{
}
result
-_AppWidgetProviderManagerImpl::AddAppWidget(const Tizen::App::AppId& providerAppId, const Tizen::Base::String& providerName, const Tizen::Base::String& text, const Tizen::Base::String& userInfo)
+_AppWidgetProviderManagerImpl::AddAppWidget(const AppId& providerAppId, const String& providerName, const String& text, const String& userInfo)
{
result r = _AccessController::CheckUserPrivilege(_PRV_APPWIDGETPROVIDER_INSTALL);
SysTryReturnResult(NID_SHELL, !IsFailed(r), E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
SysTryReturnResult(NID_SHELL, providerAppId.IsEmpty()==false, E_INVALID_ARG, "The providerAppId is empty.");
SysTryReturnResult(NID_SHELL, providerAppId.GetLength() < NATIVE_APP_MAX_APPID_LENGTH, E_INVALID_ARG, "The providerAppId is too long (Maximum %d bytes).", NATIVE_APP_MAX_APPID_LENGTH);
- SysTryReturnResult(NID_SHELL, Tizen::App::_Aul::IsInstalled(providerAppId) == true, E_APP_NOT_INSTALLED, "The application(%ls) is not installed.", providerAppId.GetPointer());
+ SysTryReturnResult(NID_SHELL, _Aul::IsInstalled(providerAppId) == true, E_APP_NOT_INSTALLED, "The application(%ls) is not installed.", providerAppId.GetPointer());
r = CheckCertificate(Tizen::App::App::GetInstance()->GetAppId(), providerAppId);
SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "[%s] VerifyCertification is failed.", GetErrorMessage(r));
const String* pParam = dynamic_cast<const String*>(pArgs->GetValue(ARG_KEY_USER_INFO));
SysTryReturnVoidResult(NID_SHELL, pParam, E_FAILURE, "Failed to GetValue(%ls)", ARG_KEY_USER_INFO.GetPointer() );
- SysLog(NID_SHELL, "id(%ls), name(%ls), param(%ls)", pInstanceId->GetPointer(), pName->GetPointer(), pParam->GetPointer());
+ SysSecureLog(NID_SHELL, "id(%ls), name(%ls), param(%ls)", pInstanceId->GetPointer(), pName->GetPointer(), pParam->GetPointer());
if(this->ContainsAppWidget(*pInstanceId) == false)
{
}
result
-_AppWidgetProviderManagerImpl::HandleAppWidgetRequest(const Tizen::Base::String& operationId, const Tizen::Base::Collection::IMap* pArgs)
+_AppWidgetProviderManagerImpl::HandleAppWidgetRequest(const String& operationId, const IMap* pArgs)
{
if( pArgs == null || pArgs->GetCount() < 3)
{
}
result
-_AppWidgetProviderManagerImpl::HandleAppWidgetPopupRequest(const Tizen::Base::String& operationId, const Tizen::Base::Collection::IMap* pArgs)
+_AppWidgetProviderManagerImpl::HandleAppWidgetPopupRequest(const String& operationId, const IMap* pArgs)
{
SysTryReturnResult(NID_SHELL, __pAppWidgetPopupProviderFactory, E_FAILURE, "[E_FAILURE] __pAppWidgetPopupProviderFactory is null");
if( pArgs == null || pArgs->GetCount() < 3)
_AppWidgetProviderManagerImpl::CreateAppWidget(const String& name, const String& instanceId, int width, int height, const String& userInfo)
{
SysLog(NID_SHELL, "instanceId(%ls), w:%d, h:%d, userInfo:%ls", instanceId.GetPointer(), width, height, userInfo.GetPointer());
- SysTryReturnResult(NID_SHELL, __pAppWidgetFactory, E_FAILURE, "[E_INVALID_OPERATION] __pAppWidgetFactory should not be null");
+ SysTryReturnResult(NID_SHELL, __pAppWidgetFactory, E_FAILURE, "__pAppWidgetFactory should not be null");
if( ContainsAppWidget(instanceId))
{
}
AppWidgetProvider* pAppWidget = __pAppWidgetFactory->CreateInstance(name, width, height, userInfo);
- SysTryReturnResult(NID_SHELL, pAppWidget, E_INVALID_OPERATION, "[E_INVALID_OPERATION]");
+ SysTryReturnResult(NID_SHELL, pAppWidget, E_INVALID_OPERATION, "Failed to create an instance for AppWidgetProvider.");
pAppWidget->Construct(instanceId);
__appwidgetProviders.Add(instanceId, pAppWidget);
- pAppWidget->OnAppWidgetProviderInitializing(width, height, userInfo);
+ bool isCreated = pAppWidget->OnAppWidgetProviderInitializing(width, height, userInfo);
+ if (!isCreated)
+ {
+ SysLog(NID_SHELL, "Failed to initialize the instance.");
- SysTryReturnResult(NID_SHELL, pAppWidget->GetAppWidgetFrame(), E_INVALID_OPERATION, "[E_INVALID_OPERATION]");
+ result r = SendResult(instanceId, false);
+ SysTryLog(NID_SHELL, !IsFailed(r), "Failed to send the result.");
+
+ return E_SYSTEM;
+ }
+
+ SysTryReturnResult(NID_SHELL, pAppWidget->GetAppWidgetFrame(), E_INVALID_OPERATION, "Failed to get the frame.");
return E_SUCCESS;
}
__appwidgetProviders.GetValue(instanceId, pAppWidget);
SysTryReturnResult(NID_SHELL, pAppWidget, E_SYSTEM, "Can't find the AppWidget provider");
- pAppWidget->OnAppWidgetProviderUpdating(argument);
+ bool isUpdated = pAppWidget->OnAppWidgetProviderUpdating(argument);
+ if (!isUpdated)
+ {
+ SysLog(NID_SHELL, "Failed to update.");
+
+ result r = SendResult(instanceId, false);
+ SysTryLog(NID_SHELL, !IsFailed(r), "Failed to send the result.");
+
+ return E_SYSTEM;
+ }
return E_SUCCESS;
}
//////////////////////////////////////////////////////////////////////////
result
-_AppWidgetProviderManagerImpl::RequestSharedMemoryId(const Tizen::Base::String& instanceId, int width, int height, int& shmId)
+_AppWidgetProviderManagerImpl::RequestSharedMemoryId(const String& instanceId, int width, int height, int& shmId)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
}
result
-_AppWidgetProviderManagerImpl::RequestSharedMemoryIdForPD(const Tizen::Base::String& instanceId, int width, int height, int& shmId)
+_AppWidgetProviderManagerImpl::RequestSharedMemoryIdForPD(const String& instanceId, int width, int height, int& shmId)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
}
result
-_AppWidgetProviderManagerImpl::RequestReleaseSharedMemory(const Tizen::Base::String& instanceId)
+_AppWidgetProviderManagerImpl::RequestReleaseSharedMemory(const String& instanceId)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
}
result
-_AppWidgetProviderManagerImpl::RequestReleaseSharedMemoryForPD(const Tizen::Base::String& instanceId)
+_AppWidgetProviderManagerImpl::RequestReleaseSharedMemoryForPD(const String& instanceId)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
}
result
-_AppWidgetProviderManagerImpl::RequestSyncSharedMemory(const Tizen::Base::String& instanceId, int width, int height)
+_AppWidgetProviderManagerImpl::RequestSyncSharedMemory(const String& instanceId, int width, int height)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
}
result
-_AppWidgetProviderManagerImpl::RequestSyncSharedMemoryForPD(const Tizen::Base::String& instanceId)
+_AppWidgetProviderManagerImpl::RequestSyncSharedMemoryForPD(const String& instanceId)
{
_AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
return pProxy->RequestSyncSharedMemoryForPD(instanceId);
}
+result
+_AppWidgetProviderManagerImpl::SendResult(const String& instanceId, bool isSucceeded)
+{
+ _AppWidgetManagerProxy* pProxy = _AppWidgetManagerProxy::GetInstance();
+ SysTryReturnResult(NID_SHELL, pProxy, E_SYSTEM, "Failed to get proxy instance!");
+
+ return pProxy->SendResult(instanceId, isSucceeded);
+}
+
void
_AppWidgetProviderManagerImpl::OnApplicationTerminated(const AppId& appId, int pid)
{
///////////////////////////////////////////////
AppWidgetProvider* pAppWidgetProvider;
- unique_ptr<IMapEnumeratorT< Tizen::Base::String, Tizen::Shell::AppWidgetProvider*> > pMapEnum(__appwidgetProviders.GetMapEnumeratorN() );
+ unique_ptr<IMapEnumeratorT< String, Tizen::Shell::AppWidgetProvider*> > pMapEnum(__appwidgetProviders.GetMapEnumeratorN() );
while (pMapEnum->MoveNext() == E_SUCCESS)
{
pAppWidgetProvider = null;