Fixed duplicated appcontrol launching & Synchronized the flight mode setting
authorHongryeol Gil <hr.gil@samsung.com>
Sun, 21 Apr 2013 05:36:49 +0000 (14:36 +0900)
committerHongryeol Gil <hr.gil@samsung.com>
Sun, 21 Apr 2013 05:36:49 +0000 (14:36 +0900)
Change-Id: I8dfc1b1a55fb43ca78ee6f19726c20a173f4c041
Signed-off-by: Hongryeol Gil <hr.gil@samsung.com>
inc/StMainMenuForm.h
src/StMainMenuForm.cpp

index 3cad29e..d5867b9 100644 (file)
@@ -40,6 +40,7 @@ private:
 
 class MainMenuForm
        : public BaseForm
+       , public Tizen::Ui::IFocusEventListener
 {
 public:
        MainMenuForm(void);
@@ -72,6 +73,9 @@ public:
        virtual void OnResultReceivedForSetValueAsync(const Tizen::Base::String& key, result r);
        virtual void OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus);
 
+       virtual void OnFocusGained(const Tizen::Ui::Control& source);
+       virtual void OnFocusLost(const Tizen::Ui::Control& source);
+
 private:
        void FindAppControlScene(int itemIndex);
        void SetIFlightModeSetValueAsyncResultListener(void);
@@ -84,7 +88,11 @@ private:
 private:
        int __currentTableViewList;
        bool __isEmulator;
+       bool __isRunningAppControl;
        Tizen::System::ISettingInfoSetValueAsyncResultListener* __pFlightModeSetValueAsyncResultListener;
+
+private:
+       friend class IFlightModeSetValueAsyncResultListener;
 };
 
 #endif // _ST_MAIN_MENU_FORM_H_
\ No newline at end of file
index 00700c4..7c465f5 100644 (file)
@@ -94,11 +94,26 @@ void
 IFlightModeSetValueAsyncResultListener::OnResultReceivedForSetValueAsync(const Tizen::Base::String& key, result r)
 {
        AppLogDebug("key(%ls) r(%s)", key.GetPointer(), GetErrorMessage(r));
+
+       if (IsFailed(r))
+       {
+               MainMenuForm* pMainMenuForm = dynamic_cast<MainMenuForm*>(SceneManager::GetInstance()->GetCurrentScene()->GetForm());
+               if (pMainMenuForm)
+               {
+                       bool flightModeEnableStatus = false;
+                       if (SettingInfo::GetValue(SETTING_INFO_KEY_NETWORK_FLIGHTMODE, flightModeEnableStatus) == E_SUCCESS)
+                       {
+                               pMainMenuForm->__pTableView->SetItemChecked(ID_GROUP_MODE, ID_ITEM_MODE_FLIGHT_MODE, flightModeEnableStatus);
+                               pMainMenuForm->__pTableView->RefreshItem(ID_GROUP_MODE, ID_ITEM_MODE_FLIGHT_MODE, TABLE_VIEW_REFRESH_TYPE_ITEM_MODIFY);
+                       }
+               }
+       }
 }
 
 MainMenuForm::MainMenuForm(void)
        : __currentTableViewList(0)
        , __pFlightModeSetValueAsyncResultListener(null)
+       , __isRunningAppControl(false)
 {
 }
 
@@ -126,6 +141,8 @@ MainMenuForm::OnInitializing(void)
        CreateTableView();
        __isEmulator = IsEmulator();
 
+       AddFocusEventListener(*this);
+
        return E_SUCCESS;
 }
 
@@ -659,23 +676,25 @@ MainMenuForm::OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedTab
        case ID_GROUP_CONNECTIVITY:
                {
                        pSceneName = GroupConnectivitySceneConnect(__currentTableViewList, itemIndex, status);
-                       #if 1 // temp
+
                        if (pSceneName == IDSCN_WIFI)
                        {
                                AppControl* pAppControl = AppManager::GetInstance()->FindAppControlN(L"wifi-efl-ug", L"");
 
-                               HashMap* pExtraData = new (std::nothrow) HashMap(SingleObjectDeleter);
-                               pExtraData->Construct();
+                               if (pAppControl)
+                               {
+                                       HashMap* pExtraData = new (std::nothrow) HashMap(SingleObjectDeleter);
+                                       pExtraData->Construct();
 
-                               pExtraData->Add(new (std::nothrow) String(L"caller"), new (std::nothrow) String(L"osp-setting"));
+                                       pExtraData->Add(new (std::nothrow) String(L"caller"), new (std::nothrow) String(L"osp-setting"));
 
-                               pAppControl->Start(null, null, pExtraData, null);
+                                       pAppControl->Start(null, null, pExtraData, null);
 
-                               delete pAppControl;
-                               delete pExtraData;
-                               return;
+                                       delete pAppControl;
+                                       delete pExtraData;
+                                       return;
+                               }
                        }
-                       #endif
                }
                break;
 
@@ -979,6 +998,8 @@ MainMenuForm::IsEmulator(void)
 void
 MainMenuForm::FindAppControlScene(int itemIndex)
 {
+       if (__isRunningAppControl) return;
+
        String providerId;
        String operationId = APPCONTROL_OPERATION_ID_CONFIGURE;
 
@@ -1012,6 +1033,8 @@ MainMenuForm::FindAppControlScene(int itemIndex)
                {
                        pAppControl->Start(pDataList, null);
                        delete pAppControl;
+
+                       __isRunningAppControl = true;
                }
        }
 
@@ -1067,4 +1090,15 @@ void
 MainMenuForm::OnOrientationChanged(const Tizen::Ui::Control& source, Tizen::Ui::OrientationStatus orientationStatus)
 {
        Invalidate(true);
-}
\ No newline at end of file
+}
+
+void
+MainMenuForm::OnFocusGained(const Tizen::Ui::Control& source)
+{
+       __isRunningAppControl = false;
+}
+
+void
+MainMenuForm::OnFocusLost(const Tizen::Ui::Control& source)
+{
+}