class _AppWidgetContext;
class _AppWidgetPopupContext;
+enum _ConnectionState
+{
+ CONNECTION_STATE_NONE = 0,
+ CONNECTION_STATE_CONNECTING,
+ CONNECTION_STATE_CONNECTED,
+ CONNECTION_STATE_DISCONNECTED
+};
+
////////////////////////////////////////////////
// _AppContext
////////////////////////////////////////////////
{
public:
- enum ConnectionState
- {
- NONE = 0,
- CONNECTING,
- CONNECTED,
- DISCONNECTED,
- };
-
-public:
- _AppContext(void):__isWaitingResult(false), __connectionState(NONE){}
- ~_AppContext(void){}
- ConnectionState GetConnectionState(void) const { return __connectionState; }
- void SetConnectionState(ConnectionState state) { __connectionState = state; }
- int GetClientId(void) const { return __ipcClientId; }
- void SetClientId(int clientId) { __ipcClientId = clientId; }
+ _AppContext(void);
+ ~_AppContext(void);
-public:
- bool __isWaitingResult;
- //Tizen::Base::Collection::ArrayListT<_AppWidgetContext*> __appWidetContextList;
+ _ConnectionState GetConnectionState(void) const;
+ void SetConnectionState(_ConnectionState state);
+ int GetClientId(void) const;
+ void SetClientId(int clientId);
+ void SetWaitingStatus(bool status);
+ bool GetWaitingStatus(void) const;
private:
- ConnectionState __connectionState;
- int __ipcClientId;
+ bool __isWaitingResult;
+ int __ipcClientId;
+ _ConnectionState __connectionState;
+ Tizen::Base::Collection::ArrayListT<_AppWidgetContext*> __appWidetContextList;
};
////////////////////////////////////////////////
const int UPDATE_PERIOD_MSEC_MIN = 1800000; // 30min
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// _AppContext class
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+_AppContext::_AppContext(void)
+ :__isWaitingResult(false)
+ ,__ipcClientId(0)
+ ,__connectionState(CONNECTION_STATE_NONE)
+{
+
+}
+
+_AppContext::~_AppContext(void)
+{
+
+}
+
+_ConnectionState
+_AppContext::GetConnectionState(void) const
+{
+ return __connectionState;
+}
+
+void
+_AppContext::SetConnectionState(_ConnectionState state)
+{
+ __connectionState = state;
+}
+
+int
+_AppContext::GetClientId(void) const
+{
+ return __ipcClientId;
+}
+
+void
+_AppContext::SetClientId(int clientId)
+{
+ __ipcClientId = clientId;
+}
+
+void
+_AppContext::SetWaitingStatus(bool status)
+{
+ __isWaitingResult = status;
+}
+
+bool
+_AppContext::GetWaitingStatus(void) const
+{
+ return __isWaitingResult;
+}
+
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+// _AppWidgetContext class
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
_AppWidgetContext::_AppWidgetContext(_AppContext* pAppContext, const String& userInfo, const String& providerId, const String& instanceId, int width, int height, int period, int priority)
:__isTouchAvailable(false)
,__hasPendingRequest(false)
SystemTime::GetTicks(this->__lastUpdatedTime);
- __updateTimer.Construct(*this);
- __updateTimer.StartAsRepeatable(__updateMillis);
+ result r = __updateTimer.Construct(*this);
+ SysTryReturnVoidResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "");
+
+ r = __updateTimer.StartAsRepeatable(__updateMillis);
+ SysTryReturnVoidResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "");
}
__pPendingTouchEventList = new (nothrow) ArrayListT<PendingTouchEvent*>();
if (pEvent == null)
{
SysLog(NID_SHELL, "SendPendingEvent by IPC [0 existed.]");
- GetAppContext()->__isWaitingResult = false;
+ GetAppContext()->SetWaitingStatus(false);
return E_SYSTEM;
}
SysLog(NID_SHELL, "SendPendingEvent by IPC [%d existed.]", __pPendingEventList->GetCount());
__pPendingEventList->RemoveAt(0);
result r = _AppWidgetRequestHelper::SendIpcRequest(GetClientId(), pEvent->operation, pEvent->pArg);
- GetAppContext()->__isWaitingResult = false;
+ GetAppContext()->SetWaitingStatus(false);
delete pEvent;
SysTryReturnResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "SendIpcRequest failed.");
void
_AppWidgetContext::OnTouchEventReceived(buffer_event event, double timestamp, double x, double y)
{
- if (__pAppContext->GetConnectionState() == _AppContext::CONNECTED && __isTouchAvailable)
+ if (__pAppContext->GetConnectionState() == CONNECTION_STATE_CONNECTED && __isTouchAvailable)
{
SysLog(NID_SHELL, "%d, %f, %f", event, x, y);
AppWidgetManagerService::GetInstance()->SendTouchEvent(GetClientId(), GetInstanceId(), event, timestamp, x, y);
{
result r = E_SUCCESS;
- if ( __pAppContext->GetConnectionState() == _AppContext::NONE || __pAppContext->GetConnectionState() == _AppContext::DISCONNECTED)
+ if ( __pAppContext->GetConnectionState() == CONNECTION_STATE_NONE || __pAppContext->GetConnectionState() == CONNECTION_STATE_DISCONNECTED)
{
SysLog(NID_SHELL, "The application is not running.");
result r = _AppWidgetRequestHelper::SendAppControlRequest(appId, operation, pArgs);
SysTryReturn(NID_SHELL, !IsFailed(r), r, r, "[%s] Failed to SendRequestToApp", GetErrorMessage(r));
- __pAppContext->__isWaitingResult = true;
- __pAppContext->SetConnectionState(_AppContext::CONNECTING);
+ __pAppContext->SetWaitingStatus(true);
+ __pAppContext->SetConnectionState(CONNECTION_STATE_CONNECTING);
}
else
{
- if ( __pAppContext->GetConnectionState() == _AppContext::CONNECTING || __pAppContext->__isWaitingResult == true)
+ if ( __pAppContext->GetConnectionState() == CONNECTION_STATE_CONNECTING || __pAppContext->GetWaitingStatus() == true)
{
SysLog(NID_SHELL, "The application is running but IPC is not connected yet.");
__pPendingEventList->Add(new (nothrow) PendingEvent(operation, pArgs));
pArgs->RemoveAll(true);
delete pArgs;
- __pAppContext->__isWaitingResult = true;
+ __pAppContext->SetWaitingStatus(true);
}
}
void
AppWidgetManagerService::StartPingTimer(void)
{
- __pingTimer.Construct(*this);
- __pingTimer.StartAsRepeatable(TIMER_DURATION_PING);
+ result r = E_SUCCESS;
+
+ r = __pingTimer.Construct(*this);
+ SysTryReturnVoidResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "");
+
+ r = __pingTimer.StartAsRepeatable(TIMER_DURATION_PING);
+ SysTryReturnVoidResult(NID_SHELL, !IsFailed(r), E_SYSTEM, "");
}
void
if (pAppContext)
{
pAppContext->SetClientId(clientId);
- pAppContext->SetConnectionState(_AppContext::CONNECTED);
+ pAppContext->SetConnectionState(CONNECTION_STATE_CONNECTED);
}
}
if (pAppContext)
{
pAppContext->SetClientId(-1);
- pAppContext->SetConnectionState(_AppContext::DISCONNECTED);
+ pAppContext->SetConnectionState(CONNECTION_STATE_DISCONNECTED);
}
unique_ptr< IMapEnumeratorT<String, _AppWidgetContext*> > pAppWidgetContextEnum(__appWidgetContextList.GetMapEnumeratorN());
pAppWidgetContextEnum->GetValue(pAppWidgetContext);
SysSecureTryReturnResult(NID_SHELL, pAppWidgetContext, E_SYSTEM, "pAppWidgetContext is null for (%ls) (%ls)", appId.GetPointer(), instanceId.GetPointer());
- if (pAppWidgetContext->GetAppContext()->GetConnectionState() == _AppContext::NONE)
+ if (pAppWidgetContext->GetAppContext()->GetConnectionState() == CONNECTION_STATE_NONE)
{
break;
}
r = pContext->SendPendingEvent();
if (r == E_SUCCESS)
{
- (pContext->GetAppContext())->__isWaitingResult = false;
SysLog(NID_SHELL, "Found pending event.");
break;
}
- else
- {
- if (E_DATA_NOT_FOUND)
- {
- (pContext->GetAppContext())->__isWaitingResult = false;
- }
- }
}
return E_SUCCESS;