#include <dpl/wrt-dao-ro/feature_model.h>
#include <dpl/wrt-dao-ro/common_dao_types.h>
+#include <dpl/localization/w3c_file_localization.h>
+
#include "WidgetFeature.h"
-namespace { // anonymous
- const int INVALID_WIDGET_HANDLE = -1;
-} // namespace
namespace WrtDeviceApis {
namespace WidgetDB {
Try
{
WrtDB::WidgetDAOReadOnly dao(getWidgetId());
- std::string language = getLanguage();
- WrtDB::WidgetLocalizedInfo widgetInfo = dao.getLocalizedInfo(
- DPL::FromUTF8String(language));
+ WrtDB::WidgetLocalizedInfo widgetInfo =
+ W3CFileLocalization::getLocalizedInfo(getWidgetId());
std::ostringstream out;
const WrtDB::WidgetGUID w_guid =
WrtDB::WidgetGUID(DPL::FromUTF8String(gid));
- WrtDB::DbWidgetHandle widgetHandle = INVALID_WIDGET_HANDLE;
-
- WrtDB::DbWidgetHandleList widgetList = WrtDB::WidgetDAOReadOnly
- ::getHandleList();
+ try {
+ WrtDB::DbWidgetHandle widgetHandle =
+ WrtDB::WidgetDAOReadOnly::getHandle(w_guid);
- FOREACH(iterator, widgetList) {
- WrtDB::WidgetDAOReadOnly dao(*iterator);
- WrtDB::WidgetGUID d_guid = dao.getGUID();
- if (w_guid == d_guid) {
- widgetHandle = *iterator;
- }
- }
-
- // TODO check name
- if (INVALID_WIDGET_HANDLE == widgetHandle) {
- outStatus = Api::InstallationStatus::STATUS_UNINSTALLED;
- } else {
WrtDB::WidgetDAOReadOnly dao(widgetHandle);
DPL::OptionalString ver = dao.getVersion();
if (!ver || version > DPL::ToUTF8String(*ver)) {
} else {
outStatus = Api::InstallationStatus::STATUS_LATEST;
}
+ }catch (WrtDB::WidgetDAOReadOnly::Exception::WidgetNotExist) {
+ outStatus = Api::InstallationStatus::STATUS_UNINSTALLED;
}
}
Catch(DPL::Exception)
Try
{
WrtDB::WidgetDAOReadOnly dao(getWidgetId());
- return WrtDB::WidgetConfig::GetWidgetPersistentStoragePath(*dao.getPkgname());
+ return WrtDB::WidgetConfig::GetWidgetPersistentStoragePath(dao.getPkgName());
}
Catch(DPL::Exception)
{
Try
{
WrtDB::WidgetDAOReadOnly dao(getWidgetId());
- return WrtDB::WidgetConfig::GetWidgetTemporaryStoragePath(*dao.getPkgname());
+ return WrtDB::WidgetConfig::GetWidgetTemporaryStoragePath(dao.getPkgName());
}
Catch(DPL::Exception)
{