#include "ApplicationContext.h"
#include "ApplicationControlData.h"
#include "ApplicationControl.h"
-#include "ApplicationCert.h"
#include "Application.h"
#include <app.h>
return true;
}
+
+ static int app_meta_data_cb(const char *meta_key, const char *meta_value, void *user_data)
+ {
+ if ((meta_key == NULL) || (meta_value == NULL)) {
+ LoggerE("meta_key or meta_value is null");
+ return 0;
+ }
+
+ ApplicationMetaDataPtr metaData(new ApplicationMetaData());
+
+ metaData->setKey(meta_key);
+ metaData->setValue(meta_value);
+
+ ApplicationMetaDataArray *metaDataArray = (ApplicationMetaDataArray *)user_data;
+ metaDataArray->push_back(metaData);
+
+ return 0;
+ }
}
ApplicationManager::ApplicationManager() :
return certArray;
}
+std::string ApplicationManager::getAppSharedURI(const std::string id)
+{
#define TIZENAPIS_APP_FILE_SCHEME "file://"
#define TIZENAPIS_APP_SLASH "/"
#define TIZENAPIS_APP_SHARED "shared"
-
-std::string ApplicationManager::getAppSharedURI(const std::string id)
-{
std::string appId;
if (id.empty()) {
return sharedURI;
}
+ApplicationMetaDataArrayPtr ApplicationManager::getAppMetaData(const std::string id)
+{
+ std::string appId = id;
+
+ // in case of no argument, get application information of current.
+ if (appId.empty())
+ {
+ appId = get_current_app_id();
+ }
+
+ int ret = 0;
+ pkgmgrinfo_appinfo_h handle;
+
+ TIME_TRACER_ITEM_BEGIN("(getAppMetaData)pkgmgrinfo_appinfo_get_appinfo", 0);
+ ret = pkgmgrinfo_appinfo_get_appinfo(appId.c_str(), &handle);
+ TIME_TRACER_ITEM_END("(getAppMetaData)pkgmgrinfo_appinfo_get_appinfo", 0);
+
+ if (ret != PMINFO_R_OK) {
+ ThrowMsg(NotFoundException, "Cannot found application with given appId");
+ }
+
+ ApplicationMetaDataArrayPtr metaDataArray(new ApplicationMetaDataArray());
+
+ TIME_TRACER_ITEM_BEGIN("(getAppMetaData)pkgmgrinfo_appinfo_foreach_metadata", 0);
+ ret = pkgmgrinfo_appinfo_foreach_metadata(handle, app_meta_data_cb, (void*)metaDataArray.Get());
+ TIME_TRACER_ITEM_END("(getAppMetaData)pkgmgrinfo_appinfo_foreach_metadata", 0);
+
+ if (ret != PMINFO_R_OK) {
+ LoggerE("pkgmgrinfo_appinfo_metadata_filter_foreach() failed");
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
+ ThrowMsg(UnknownException, "fail to get custom tag");
+ }
+
+ pkgmgrinfo_appinfo_destroy_appinfo(handle);
+
+ return metaDataArray;
+}
void ApplicationManager::OnRequestReceived(const EventApplicationLaunchPtr& event)
{