Fixed prevent issues
authorkyeongwoo.lee <kyeongwoo.lee@samsung.com>
Fri, 12 Jul 2013 07:17:24 +0000 (16:17 +0900)
committerkyeongwoo.lee <kyeongwoo.lee@samsung.com>
Fri, 12 Jul 2013 07:17:24 +0000 (16:17 +0900)
Change-Id: I3428232c15910e23813c7a7925a30e11d326d29c

inc/FShell_AppWidgetContext.h
src/FShell_AppWidgetContext.cpp
src/FShell_AppWidgetManagerService.cpp

index 412f2f5..2d8ef01 100644 (file)
@@ -55,6 +55,14 @@ extern const int UPDATE_PERIOD_MSEC_MIN;
 class _AppWidgetContext;
 class _AppWidgetPopupContext;
 
+enum _ConnectionState
+{
+       CONNECTION_STATE_NONE = 0,
+       CONNECTION_STATE_CONNECTING,
+       CONNECTION_STATE_CONNECTED,
+       CONNECTION_STATE_DISCONNECTED
+};
+
 ////////////////////////////////////////////////
 // _AppContext
 ////////////////////////////////////////////////
@@ -63,29 +71,21 @@ class _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;
 };
 
 ////////////////////////////////////////////////
index dcd7445..4e7495e 100644 (file)
@@ -68,6 +68,61 @@ const wchar_t APPWIDGET_ON_TOUCH[] = L"http://tizen.org/appcontrol/appwidget/tou
 
 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)
@@ -98,8 +153,11 @@ _AppWidgetContext::_AppWidgetContext(_AppContext* pAppContext, const String& use
 
                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*>();
@@ -353,14 +411,14 @@ _AppWidgetContext::SendPendingEvent(void)
        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.");
 
@@ -383,7 +441,7 @@ _AppWidgetContext::SendPendingTouchEvent(void)
 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);
@@ -413,18 +471,18 @@ _AppWidgetContext::SendRequestToApp(const AppId& appId, const String& operation,
 {
        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));
@@ -436,7 +494,7 @@ _AppWidgetContext::SendRequestToApp(const AppId& appId, const String& operation,
 
                        pArgs->RemoveAll(true);
                        delete pArgs;
-                       __pAppContext->__isWaitingResult = true;
+                       __pAppContext->SetWaitingStatus(true);
                }
        }
 
index 009484c..b35982e 100644 (file)
@@ -151,8 +151,13 @@ AppWidgetManagerService::AppWidgetDisconnected(struct event_arg *arg, void* data
 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
@@ -205,7 +210,7 @@ AppWidgetManagerService::OnIpcClientConnected(const _IpcServer& server, int clie
        if (pAppContext)
        {
                pAppContext->SetClientId(clientId);
-               pAppContext->SetConnectionState(_AppContext::CONNECTED);
+               pAppContext->SetConnectionState(CONNECTION_STATE_CONNECTED);
        }
 }
 
@@ -220,7 +225,7 @@ AppWidgetManagerService::OnIpcClientDisconnected(const _IpcServer& server, int c
        if (pAppContext)
        {
                pAppContext->SetClientId(-1);
-               pAppContext->SetConnectionState(_AppContext::DISCONNECTED);
+               pAppContext->SetConnectionState(CONNECTION_STATE_DISCONNECTED);
        }
 
        unique_ptr< IMapEnumeratorT<String, _AppWidgetContext*> > pAppWidgetContextEnum(__appWidgetContextList.GetMapEnumeratorN());
@@ -744,7 +749,7 @@ AppWidgetManagerService::SendResult(const Tizen::App::AppId& appId, const Tizen:
                                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;
                                }
@@ -804,17 +809,9 @@ AppWidgetManagerService::RequestPendingEvent(void)
                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;