Temporal reincarnation of removed API
authorYong Song <yong.song@samsung.com>
Tue, 10 Sep 2013 03:03:27 +0000 (12:03 +0900)
committerYong Song <yong.song@samsung.com>
Tue, 10 Sep 2013 03:03:27 +0000 (12:03 +0900)
Change-Id: Ic11bf95b1df3e87ddc985c4859947059bbb78adb

src/app/inc/FAppPkg_PackageManagerImpl.h
src/app/package/FAppPkg_PackageManagerImpl.cpp

index 0882913..b3efe2a 100755 (executable)
@@ -167,6 +167,8 @@ public:
        Tizen::Base::Collection::IMap* GetUiThemeListN(const PackageId& packageId) const;
 
        Tizen::Base::Collection::ArrayList* GetPackageAppInfoImplListN(const PackageId& packageId) const;
+       Tizen::Base::Collection::ArrayList* GetPackageAppFeatureListN(const PackageId& packageId, const Tizen::Base::String& executableName) const;
+       Tizen::Base::Collection::HashMapT<Tizen::Base::String, _AppFeatureInfoImpl*>* GetPackageAppFeatureMapN(const PackageId& packageId, const Tizen::Base::String& executableName) const;
        Tizen::Base::Collection::ArrayList* GetAppLaunchConditionListN(const Tizen::Base::String& packageName) const;
 
        result GetPackageName(const PackageId& packageId, const Tizen::Base::String* pName, char* pPackageName, int bufferSize);
index df7abb1..59064c0 100755 (executable)
@@ -2002,6 +2002,67 @@ CATCH:
        return pList;
 }
 
+ArrayList*
+_PackageManagerImpl::GetPackageAppFeatureListN(const PackageId& packageId, const Tizen::Base::String& appExecutableName) const
+{
+       ArrayList* pAppInfoList = GetPackageAppInfoImplListN(packageId);
+       SysTryReturn(NID_APP, pAppInfoList != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] AppInfo list instance must not be null.");
+
+       ArrayList* pResult = null;
+
+       for (int i = 0; i < pAppInfoList->GetCount(); i++)
+       {
+               const _PackageAppInfoImpl* pAppInfoImpl = static_cast<const _PackageAppInfoImpl*>(pAppInfoList->GetAt(i));
+               if (pAppInfoImpl == null)
+               {
+                       continue;
+               }
+
+               if (pAppInfoImpl->GetName() == appExecutableName)
+               {
+                       pResult = pAppInfoImpl->GetAppFeatureListN();
+                       goto OUT;
+               }
+       }
+
+OUT:
+       pAppInfoList->RemoveAll(true);
+       delete pAppInfoList;
+
+       return pResult;
+}
+
+HashMapT<String, _AppFeatureInfoImpl*>*
+_PackageManagerImpl::GetPackageAppFeatureMapN(const PackageId& packageId, const Tizen::Base::String& appExecutableName) const
+{
+       ArrayList* pAppInfoList = GetPackageAppInfoImplListN(packageId);
+       SysTryReturn(NID_APP, pAppInfoList != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] AppInfo list instance must not be null.");
+
+       HashMapT<String, _AppFeatureInfoImpl*>* pResult = null;
+
+       std::auto_ptr<IEnumerator> pEnum(pAppInfoList->GetEnumeratorN());
+
+       while (pEnum->MoveNext() == E_SUCCESS)
+       {
+               const _PackageAppInfoImpl* pAppInfoImpl = static_cast<const _PackageAppInfoImpl*>(pEnum->GetCurrent());
+               if (pAppInfoImpl == null)
+               {
+                       continue;
+               }
+
+               if (pAppInfoImpl->GetName() == appExecutableName)
+               {
+                       pResult = pAppInfoImpl->GetAppFeatureMapN();
+                       goto OUT;
+               }
+       }
+
+OUT:
+       pAppInfoList->RemoveAll(true);
+       delete pAppInfoList;
+
+       return pResult;
+}
 
 ArrayList*
 _PackageManagerImpl::GetAppLaunchConditionListN(const String& packageName) const