Fixed Nabi Issues 52332,54256,54601,54130,54264,54471
[apps/osp/Internet.git] / src / IntInternetApp.cpp
index 6932a3d..147cb41 100644 (file)
@@ -40,10 +40,14 @@ using namespace Tizen::Ui;
 using namespace Tizen::Ui::Controls;
 using namespace Tizen::Ui::Scenes;
 
+static const wchar_t* APPCONTROL_SELECT_KEY_IMAGE = L"http://tizen.org/appcontrol/data/image/crop_mode";
+static const wchar_t* APPCONTROL_SELECT_VALUE_IMAGE = L"fit_to_screen";
+static const wchar_t* APPCONTROL_PROVIDER_ID_IMAGE_VIEWER = L"tizen.imageviewer";
+static const wchar_t* APPCONTROL_OPERATION_ID_IMAGE_VIEWER = L"http://tizen.org/appcontrol/operation/view";
 const int MIN_MEMORY_NEEDED = 1048576;
 
 InternetApp::InternetApp(void)
-: __pMultiWindowManager(NULL),__pNewWindowInfo(null)
+: __pMultiWindowManager(NULL),__pNewWindowInfo(null),pSceneManagementFrame(null),__value(null),__isShowMsg(false),__pAc(null)
 {
 }
 
@@ -134,10 +138,11 @@ InternetApp::OnAppInitialized(void)
 
 
        // Create a Frame
-       MainFrame* pSceneManagementFrame = new(std::nothrow) MainFrame();
+       pSceneManagementFrame = new(std::nothrow) MainFrame();
        pSceneManagementFrame->Construct();
        pSceneManagementFrame->SetName(L"SceneManagement");
        AddFrame(*pSceneManagementFrame);
+       pSceneManagementFrame->Show();
        // Goto the first scene.
 
        SceneManager* pSceneManager = SceneManager::GetInstance();
@@ -169,6 +174,29 @@ InternetApp::OnAppInitialized(void)
                return false;
        }
 
+       if (__operationId.CompareTo(L"http://tizen.org/appcontrol/operation/main") == 0)
+       {
+               if(__pAc)
+               {
+                       r =__pAc->Stop();
+                       AppLog("AppControl Stop Result %s",GetErrorMessage(r));
+                       delete __pAc;
+                       __pAc = null;
+               }
+               __pAc = AppManager::FindAppControlN(APPCONTROL_PROVIDER_ID_IMAGE_VIEWER,
+                               APPCONTROL_OPERATION_ID_IMAGE_VIEWER);
+               if (__pAc && __value && __value->GetLength() > 0)
+               {
+                       AppLog("17jul __value is %S", __value->GetPointer());
+                       if (__pAc->Start(__value, null, null, null) == E_SUCCESS)
+                       {
+//                             delete pAc;
+                       }
+                       delete __value;
+                       __value = null;
+               }
+       }
+
        ArrayList* pArgList = new(std::nothrow) ArrayList();
        pArgList->Construct();
        pArgList->Add(*__pNewWindowInfo);
@@ -186,17 +214,6 @@ InternetApp::OnAppInitialized(void)
                return false;
        }
 
-       AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
-       String sliderKey("SliderValue");
-
-       int sliderValue = 0;
-
-
-       r = pAppRegistry->Get(sliderKey, sliderValue);
-       r = PowerManager::SetScreenBrightness(sliderValue);
-
-       AppLog("Settingscreenbrightness to %d result %s",sliderValue , GetErrorMessage(r));
-
        delete pArgList;
        pArgList = null;
        __pNewWindowInfo = null;
@@ -224,17 +241,57 @@ InternetApp::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
 void
 InternetApp::OnForeground(void)
 {
-       Form* pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
+       UiApp* pApp = null;
+       pApp = UiApp::GetInstance();
+       if (pApp != null && pSceneManagementFrame != null && pApp->GetFrameAt(0)->GetShowMode() != FRAME_SHOW_MODE_FULL_SCREEN)
+       {
+               pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_FULL_SCREEN);
+       }
+       AppLog("InternetApp::OnForeground called");
+
+       AppLog("InternetApp::OnForeground");
+
+       AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
+       String sliderKey("SliderValue");
+
+       int sliderValue = 10;
+
+
+       result r = pAppRegistry->Get(sliderKey, sliderValue);
+       r = PowerManager::SetScreenBrightness(sliderValue);
+//     r = PowerManager::RestoreScreenBrightness();
+
+       AppLog("Settingscreenbrightness to %d result %s",sliderValue , GetErrorMessage(r));
+
+       Form* pCurrentForm = null;
+       if(SceneManager::GetInstance()->GetCurrentScene() != null)
+               pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
        if (pCurrentForm)
        {
                pCurrentForm->SendUserEvent(FORE_GROUND_APP_EVENT, NULL);
        }
+       Frame* pCurrentFrame = null;
+       pCurrentFrame = Application::GetInstance()->GetAppFrame()->GetFrame();
+
+       if (pCurrentFrame != null)
+       {
+               pCurrentFrame->SetEnabled(true);
+               pCurrentFrame->Invalidate(true);
+       }
+
+       if ( __isShowMsg == true )
+       {
+               __isShowMsg = false;
+               SendUserEvent(FORE_GROUND_APP_EVENT, NULL);
+       }
 }
 
 void
 InternetApp::OnBackground(void)
 {
-       Form* pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
+       Form* pCurrentForm = null;
+       if(SceneManager::GetInstance()->GetCurrentScene() != null)
+               pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
        if(pCurrentForm)
        {
                pCurrentForm->SendUserEvent(BACK_GROUND_APP_EVENT, NULL);
@@ -274,17 +331,42 @@ void
 InternetApp::OnSettingChanged(Tizen::Base::String& key)
 {
        AppLog("InternetApp::OnSettingChanged: %ls", key.GetPointer());
-       if (key == L"http://tizen.org/setting/locale.language")
+       if (key == L"http://tizen.org/setting/locale.language" || key == L"http://tizen.org/setting/font.size")
        {
                Terminate();
        }
+       else if (key == L"http://tizen.org/setting/screen.brightness" )
+       {
+               AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
+               String sliderKey("SliderValue");
+
+               int sliderValue = 10;
+
+
+               result r = pAppRegistry->Get(sliderKey, sliderValue);
+               r = PowerManager::SetScreenBrightness(sliderValue);
+               //      r = PowerManager::RestoreScreenBrightness();
+
+       }
+
 }
 
 void
 InternetApp::OnAppControlRequestReceived(RequestId reqId, const String &operationId, const String* pUriScheme, const String *pDataType, const IMap *pArgs)
 {
-       AppLogDebug("ABC::Internet::OnAppControlRequestReceivedN entered %ls",operationId.GetPointer());
+       UiApp* pApp = null;
+       pApp = UiApp::GetInstance();
+       if (pApp != null &&  pSceneManagementFrame != null)
+       {
+               pApp->GetFrameAt(0)->SetShowMode(FRAME_SHOW_MODE_FULL_SCREEN);
+
+       }
+
+       __isShowMsg = false;
 
+       AppLogDebug("ABC::Internet::OnAppControlRequestReceivedN entered %ls",operationId.GetPointer());
+       __operationId.Clear();
+       __operationId.Append(operationId);
        if (operationId.CompareTo(L"http://tizen.org/appcontrol/operation/view") == 0)
        {
                String urlData;
@@ -315,21 +397,24 @@ InternetApp::OnAppControlRequestReceived(RequestId reqId, const String &operatio
                        urlData = *pUrl;
                }
                AppLog("URL received %ls", urlData.GetPointer());
+               if(pSceneManagementFrame)
+                       pSceneManagementFrame->Show();
+
 
-               if (__pNewWindowInfo == null)
-               {
-                       __pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN(urlData, true);
-               }
                if (__pNewWindowInfo == null)
                {
                        if (MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount() >= 9)
                        {
-                               String strTitle = CommonUtil::GetString(L"IDS_COM_SK_MAX_LIMIT_REACHED");
-                               String strText = CommonUtil::GetString(L"IDS_COM_SK_CREATE_WINDOWS_BNO");
-                               ShowPopup(strTitle, strText);
+                               __isShowMsg = true;
+                               return;
                        }
-                       return;
                }
+
+               if (__pNewWindowInfo == null)
+               {
+                       __pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN(urlData, true);
+               }
+
                if (__pMultiWindowManager != null && __pMultiWindowManager->GetAllWindowArrayList()->GetCount() != 0)
                {
                        //if the application is running in background and it receives an appcontrol request it will launch a new(std::nothrow) window here,
@@ -357,6 +442,51 @@ InternetApp::OnAppControlRequestReceived(RequestId reqId, const String &operatio
                        __pNewWindowInfo = null;
                }
        }
+       else if (operationId.CompareTo(L"http://tizen.org/appcontrol/operation/main") == 0)
+       {
+               if (pArgs)
+               {
+                       //const String* pVal = (String *) pArgs->GetValue(String(L"http://tizen.org/appcontrol/data/notification"));
+                       String *data = (String *) pArgs->GetValue(String(L"http://tizen.org/appcontrol/data/notification"));
+                       if(data != NULL)
+                               __value = new String(*data);
+                       if (__value && __value->GetLength() > 0)
+                       {
+                               AppLog("17jul rahul __value is %S", __value->GetPointer());
+                       }
+                       if (__value && __value->GetLength() > 0 && pSceneManagementFrame != null)
+                       {
+                               AppLog("17jul OnAppControlRequestReceived notification");
+                               HashMap extraData;
+                               extraData.Construct();
+                               String typeKey = APPCONTROL_SELECT_KEY_IMAGE;
+                               String typeVal = APPCONTROL_SELECT_VALUE_IMAGE;
+                               extraData.Add(&typeKey, &typeVal);
+
+                               if(__pAc)
+                               {
+                                       result r = __pAc->Stop();
+                                       AppLog("AppControl Stop Result %s",GetErrorMessage(r));
+                                       delete __pAc;
+                                       __pAc = null;
+                               }
+                               __pAc = AppManager::FindAppControlN(APPCONTROL_PROVIDER_ID_IMAGE_VIEWER,
+                                               APPCONTROL_OPERATION_ID_IMAGE_VIEWER);
+                               if (__pAc)
+                               {
+                                       AppLog("17jul __value is %S", __value->GetPointer());
+                                       if (__pAc->Start(__value, null, null, null) == E_SUCCESS)
+                                       {
+//                                             delete pAc;
+                                       }
+                               }
+                               delete __value;
+                               __value = null;
+
+                       }
+               }
+       }
+
        AppLogDebug("ABC::Internet::OnAppControlRequestReceivedN Exit");
        return;
 }
@@ -378,3 +508,33 @@ InternetApp::GetAvailableMemory(void)
    CATCH:
     return 0;
 }
+
+
+void
+InternetApp::OnUserEventReceivedN (RequestId requestId, Tizen::Base::Collection::IList *pArgs)
+{
+       Form* pCurrentForm = null;
+       if(SceneManager::GetInstance()->GetCurrentScene() != null)
+               pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
+       if (pCurrentForm)
+       {
+               AppLog("sending userevent for appcontrol");
+               pCurrentForm->SendUserEvent(APPCONTROL_LAUNCH_MAX_LIMIT_REACHED, NULL);
+       }
+
+       if(requestId == FORE_GROUND_APP_EVENT)
+       {
+               if( MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount() >= 9)
+                {
+                        String strText = CommonUtil::GetString(L"IDS_BR_BODY_COULD_NOT_OPEN_NEW_WINDOW_BECAUSE_YOU_HAVE_ALREADY_OPENED_MAXIMUM_NUMBER");
+                        MessageBox messageBox;
+                        messageBox.Construct(L"", strText, MSGBOX_STYLE_OK, 3000);
+                        int modalResult = 0;
+
+                        messageBox.ShowAndWait(modalResult);
+                }
+       }
+
+}
+
+