Implemented Home screen menu & Lock screen menu
authorHongryeol Gil <hr.gil@samsung.com>
Thu, 18 Apr 2013 12:54:09 +0000 (21:54 +0900)
committerGerrit Code Review <gerrit2@kim11>
Thu, 18 Apr 2013 12:54:46 +0000 (21:54 +0900)
Change-Id: I624c6087446744bf7ce316931877ec13cf6294b9
Signed-off-by: Hongryeol Gil <hr.gil@samsung.com>
src/StHomeAndLockScreenForm.cpp
src/StScreenTypeForm.cpp

index 0b8f45a..d9ccca9 100644 (file)
@@ -453,24 +453,29 @@ HomeAndLockScreenForm::GetGroupItemSelectedText(void)
        }
 
        result r = SettingInfo::GetValue(screenType, applicationId);
-       if (IsFailed(r))
-       {
-               AppLogDebug("GetValue(screenType , ..) fail [%s]", GetErrorMessage(r));
-       }
-       AppLogDebug("app[%ls]", applicationId.GetPointer());
+       AppLogDebug("GetValue(%ls, ..) result=[%s]", screenType.GetPointer(), GetErrorMessage(r));
 
-       itemText = applicationId;
-
-       if (applicationId.Equals(L"org.tizen.menu-screen", false))
+       if (!IsFailed(r))
        {
-               if (GetWallpaperIndex() == 0)
+               AppLog("AppId=[%ls]", applicationId.GetPointer());
+
+               if (applicationId.Equals(L"org.tizen.menu-screen", false))
                {
+                       // Preloaded home
                        itemText = L"Default HomeScreen";
                }
-       }
-       else
-       {
-               itemText = L"Default LockScreen";
+               else if (applicationId.Equals(L"org.tizen.lockscreen", false))
+               {
+                       // Preloaded lock
+                       itemText = L"Default LockScreen";
+               }
+               else
+               {
+                       // Downloaded home/lock
+                       PackageManager* pMgr = PackageManager::GetInstance();
+                       PackageAppInfo* pPackageAppInfo = pMgr->GetPackageAppInfoN(applicationId);
+                       itemText = pPackageAppInfo->GetAppDisplayName();
+               }
        }
 
        return itemText;
index 8564cd8..44d4f01 100644 (file)
@@ -65,12 +65,6 @@ ScreenTypeForm::CreateFooter(void)
 result
 ScreenTypeForm::OnInitializing(void)
 {
-       result r = InitPackageInfoList();
-       if (IsFailed(r))
-       {
-               AppLogDebug("InitPackageInfoList fail");
-               return r;
-       }
        return E_SUCCESS;
 }
 
@@ -93,6 +87,8 @@ ScreenTypeForm::OnSceneActivatedN(const Tizen::Ui::Scenes::SceneId& previousScen
                delete pArgs;
                AppLogDebug("Screen Mode[%d] ( home::0 / Lock::1 )", GetWallpaperIndex());
 
+               InitPackageInfoList();
+
                CreateHeader(GetTitleText());
                CreateFooter();
                CreateTableView();
@@ -269,6 +265,22 @@ ScreenTypeForm::OnGroupedTableViewItemStateChanged(Tizen::Ui::Controls::GroupedT
        SceneManager* pSceneManager = SceneManager::GetInstance();
        AppAssert(pSceneManager);
 
+       PackageAppInfo* pPackageAppInfo = dynamic_cast <PackageAppInfo*>(__pPackageAppInfoList->GetAt(groupIndex));
+       AppLog("AppId [%ls]", pPackageAppInfo->GetAppId().GetPointer());
+
+       String screenType;
+       if (GetWallpaperIndex() == 0)
+       {
+               screenType = SETTING_INFO_KEY_SCREEN_TYPE_HOME;
+       }
+       else
+       {
+               screenType = SETTING_INFO_KEY_SCREEN_TYPE_LOCK;
+       }
+
+       result r = SettingInfo::SetValue(screenType, pPackageAppInfo->GetAppId());
+       AppLogDebug("SetValue(%ls, ..) result=[%s]", screenType.GetPointer(), GetErrorMessage(r));
+
        pSceneManager->GoBackward(BackwardSceneTransition(SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), null);
 }
 
@@ -343,30 +355,57 @@ ScreenTypeForm::OnGroupedTableViewGroupItemStateChanged(Tizen::Ui::Controls::Gro
 result
 ScreenTypeForm::InitPackageInfoList(void)
 {
-       String screenType;
-       String applicationId;
+       PackageManager* pPackageManager = PackageManager::GetInstance();
+       if (pPackageManager == null)
+       {
+               return E_FAILURE;
+       }
 
-       screenType = GetScreenType();
+       result r;
+       HashMap packageAppFilterMap;
+       packageAppFilterMap.Construct();
 
-       result r = SettingInfo::GetValue(screenType, applicationId);
-       if (IsFailed(r))
+       String* pKey = null;
+       if (GetWallpaperIndex() == ID_INDEX_HOME_SCREEN_WALLPAPER)
        {
-               return r;
+               pKey = new String("http://tizen.org/category/homeapp");
        }
-
-       PackageManager* pPackageManager = PackageManager::GetInstance();
-       if (pPackageManager == null)
+       else
        {
-               return E_FAILURE;
+               pKey = new String("http://tizen.org/category/lockapp");
        }
 
-       PackageInfo* pPackageInfo = pPackageManager->GetPackageInfoN(applicationId);
-       if (pPackageInfo == null)
+       Boolean* pValue = new Boolean(true);
+       r = packageAppFilterMap.Add(pKey, pValue);
+
+       __pPackageAppInfoList = pPackageManager->GetPackageAppInfoListN(packageAppFilterMap);
+
+#if 1 // temp for debugging
+       AppLog("Package app filter = [%ls]", pKey->GetPointer());
+
+       if (__pPackageAppInfoList)
        {
-               return E_FAILURE;
+               for (int i = 0; i < __pPackageAppInfoList->GetCount(); i++)
+               {
+                       PackageAppInfo* pPackageAppInfo = dynamic_cast <PackageAppInfo*>(__pPackageAppInfoList->GetAt(i));
+                       if (pPackageAppInfo)
+                       {
+                               AppLog("[%d]-------------------------------------------------------", i+1);
+                               AppLog("AppId [%ls]", pPackageAppInfo->GetAppId().GetPointer());
+                               AppLog("Name [%ls]", pPackageAppInfo->GetAppName().GetPointer());
+                       }
+                       else
+                       {
+                               AppLog("pPackageAppInfo is null.");
+                       }
+               }
+       }
+       else
+       {
+               AppLog("pList is null.");
        }
+#endif
 
-       __pPackageAppInfoList = pPackageInfo->GetPackageAppInfoListN();
        if (__pPackageAppInfoList == null)
        {
                return E_FAILURE;
@@ -384,7 +423,10 @@ ScreenTypeForm::RemovePackageInfoList(void)
 int
 ScreenTypeForm::GetPackageAppInfoListCount(void)
 {
-       return __pPackageAppInfoList->GetCount();
+       if(__pPackageAppInfoList)
+               return __pPackageAppInfoList->GetCount();
+
+       return 0;
 }
 
 Tizen::Base::String
@@ -419,30 +461,40 @@ Tizen::Base::String
 ScreenTypeForm::GetItemString(int itemIndex)
 {
        String displayName;
+       String applicationId;
        String returnValue;
 
        PackageAppInfo* pPackageAppInfo = static_cast<PackageAppInfo*>(__pPackageAppInfoList->GetAt(itemIndex));
        if (pPackageAppInfo)
        {
-               displayName = pPackageAppInfo->GetAppDisplayName();
+               applicationId = pPackageAppInfo->GetAppId();
 
-               if (displayName.IsEmpty() == false)
+               if (applicationId.IsEmpty() == false)
                {
-                       if (displayName.Equals(L"Menu-screen", false))
+                       if (applicationId.Equals(L"org.tizen.menu-screen", false))
+                       {
+                               // Preloaded home
+                               returnValue = L"Default HomeScreen";
+                       }
+                       else if (applicationId.Equals(L"org.tizen.lockscreen", false))
+                       {
+                               // Preloaded lock
+                               returnValue = L"Default LockScreen";
+                       }
+                       else
                        {
-                               if (GetWallpaperIndex() == 0)
+                               // Downloaded home/lock
+                               displayName = pPackageAppInfo->GetAppDisplayName();
+
+                               if (displayName.IsEmpty() == false)
                                {
-                                       returnValue = L"Default home screen";
+                                       returnValue = displayName;
                                }
                                else
                                {
-                                       returnValue = L"Default lock screen";
+                                       returnValue = applicationId;
                                }
                        }
-                       else
-                       {
-                               returnValue = displayName;
-                       }
                }
        }