Fixed Nabi Issues
[apps/osp/Internet.git] / src / IntInternetApp.cpp
index 0798b46..be34a5b 100644 (file)
@@ -40,10 +40,15 @@ 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)
 {
-
 }
 
 InternetApp::~InternetApp(void)
@@ -100,6 +105,20 @@ InternetApp::OnAppInitialized(void)
 {
        result r = E_SUCCESS;
 
+       long long mem = GetAvailableMemory();
+       AppLogDebug("%lld",mem);
+       if(mem < MIN_MEMORY_NEEDED)
+       {
+               MessageBox LowMemory;
+               String msg = L"";
+               LowMemory.Construct(CommonUtil::GetString(L"IDS_LOW_MEMORY_MSG_TITLE"), CommonUtil::GetString(L"IDS_LOW_MEMORY_MSG"), MSGBOX_STYLE_NONE,1000);
+               int modalResult = 0;
+               // Calls ShowAndWait() : Draws and Shows itself and processes events
+               LowMemory.ShowAndWait(modalResult);
+
+               return false;
+
+       }
        String title1 = L"URL1";
        String title2 = L"URL2";
        String folder1 = L"Folder 1";
@@ -116,18 +135,22 @@ InternetApp::OnAppInitialized(void)
        __pMultiWindowManager = MultipleWindowPresentationModel::GetInstance();
        AppLogDebug("window count %d",__pMultiWindowManager->GetAllWindowArrayList()->GetCount());
 
+
+
+       // Create a Frame
+       pSceneManagementFrame = new(std::nothrow) MainFrame();
+       pSceneManagementFrame->Construct();
+       pSceneManagementFrame->SetName(L"SceneManagement");
+       AddFrame(*pSceneManagementFrame);
+       pSceneManagementFrame->Show();
        // Goto the first scene.
+
        SceneManager* pSceneManager = SceneManager::GetInstance();
        if (pSceneManager == null)
        {
                AppLogDebug("pSceneManager is null returning");
                return false;
        }
-       // Create a Frame
-       MainFrame* pSceneManagementFrame = new(std::nothrow) MainFrame();
-       pSceneManagementFrame->Construct();
-       pSceneManagementFrame->SetName(L"SceneManagement");
-       AddFrame(*pSceneManagementFrame);
 
        String homePage = SettingPresentationModel::GetInstance()->GetHomepage();
        if (homePage == (L"IDS_BR_BODY_MOST_VISITED_SITES") || homePage == (L"IDS_BR_BODY_BLANK_PAGE"))
@@ -143,7 +166,7 @@ InternetApp::OnAppInitialized(void)
 
        if (__pNewWindowInfo == null)//if the application is launched normally
        {
-               __pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewScene(homePage);
+               __pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN(homePage);
        }
 
        if (__pNewWindowInfo == null)
@@ -195,8 +218,26 @@ InternetApp::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
 void
 InternetApp::OnForeground(void)
 {
+       AppLog("InternetApp::OnForeground");
+
+       AppRegistry* pAppRegistry = App::GetInstance()->GetAppRegistry();
+       String sliderKey("SliderValue");
+
+       int sliderValue = 0;
+
 
+       result r = pAppRegistry->Get(sliderKey, sliderValue);
+       r = PowerManager::SetScreenBrightness(sliderValue);
+//     r = PowerManager::RestoreScreenBrightness();
 
+       AppLog("Settingscreenbrightness to %d result %s",sliderValue , GetErrorMessage(r));
+
+
+       Form* pCurrentForm = (SceneManager::GetInstance()->GetCurrentScene()->GetForm());
+       if (pCurrentForm)
+       {
+               pCurrentForm->SendUserEvent(FORE_GROUND_APP_EVENT, NULL);
+       }
 }
 
 void
@@ -242,7 +283,7 @@ 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();
        }
@@ -283,17 +324,19 @@ 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()->CreateNewMainViewScene(urlData, true);
+                       __pNewWindowInfo = MultipleWindowPresentationModel::GetInstance()->CreateNewMainViewSceneN(urlData, true);
                }
                if (__pNewWindowInfo == null)
                {
                        if (MultipleWindowPresentationModel::GetInstance()->GetAllWindowArrayList()->GetCount() >= 9)
                        {
-                               String strTitle = L"Maximum Limit Reached";
-                               String strText = L"cannot open more than 9 windows";
+                               String strTitle = L"";//CommonUtil::GetString(L"IDS_COM_SK_MAX_LIMIT_REACHED");
+                               String strText = CommonUtil::GetString(L"IDS_BR_BODY_COULD_NOT_OPEN_NEW_WINDOW_BECAUSE_YOU_HAVE_ALREADY_OPENED_MAXIMUM_NUMBER");
                                ShowPopup(strTitle, strText);
                        }
                        return;
@@ -325,7 +368,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"));
+                       if (pVal && pVal->GetLength() > 0)
+                       {
+                               HashMap extraData;
+                               extraData.Construct();
+                               String typeKey = APPCONTROL_SELECT_KEY_IMAGE;
+                               String typeVal = APPCONTROL_SELECT_VALUE_IMAGE;
+                               extraData.Add(&typeKey, &typeVal);
+
+                               AppControl* pAc = AppManager::FindAppControlN(APPCONTROL_PROVIDER_ID_IMAGE_VIEWER,
+                                               APPCONTROL_OPERATION_ID_IMAGE_VIEWER);
+                               if (pAc)
+                               {
+                                       if (pAc->Start(pVal, null, null, null) == E_SUCCESS)
+                                       {
+                                               delete pAc;
+                                       }
+                               }
+                       }
+               }
+       }
+
        AppLogDebug("ABC::Internet::OnAppControlRequestReceivedN Exit");
        return;
 }
 
+
+long long
+InternetApp::GetAvailableMemory(void)
+{
+    result r = E_SUCCESS;
+
+    String key(L"http://tizen.org/runtime/storage.available.internal");
+    long long allocatedMemory = 0;
+
+    r = RuntimeInfo::GetValue(key, allocatedMemory);
+    TryCatch(r == E_SUCCESS, , "MyRuntimeInfo: Failed to get value");
+
+    return allocatedMemory;
+
+   CATCH:
+    return 0;
+}
+