{
}
+WidgetDAOReadOnly::WidgetDAOReadOnly(DPL::OptionalString widgetGUID) :
+ m_widgetHandle(WidgetDAOReadOnly::getHandle(widgetGUID))
+{
+}
+
WidgetDAOReadOnly::~WidgetDAOReadOnly()
{
}
SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to get widdget install time")
}
+DPL::OptionalString WidgetDAOReadOnly::getSplashImgSrc() const
+{
+ SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
+ {
+ using namespace DPL::DB::ORM;
+ using namespace DPL::DB::ORM::wrt;
+ WRT_DB_SELECT(select, WidgetExtendedInfo, &WrtDatabase::interface())
+ select->Where(Equals<WidgetExtendedInfo::app_id>(m_widgetHandle));
+
+ WidgetExtendedInfo::Select::RowList rows = select->GetRowList();
+ if (rows.empty()) {
+ ThrowMsg(WidgetDAOReadOnly::Exception::WidgetNotExist,
+ "Cannot find widget. Handle: " << m_widgetHandle);
+ }
+
+ DPL::OptionalString value = rows.front().Get_splash_img_src();
+ if (value.IsNull()) {
+ return DPL::OptionalString::Null;
+ }
+
+ return DPL::OptionalString(getPath() + *value);
+ }
+ SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to get splash image path")
+}
+
WidgetDAOReadOnly::WidgetLocalizedIconList WidgetDAOReadOnly::getLocalizedIconList() const
{
//TODO check widget existance??
FingerPrintList keys;
FOREACH(it, rows)
{
- DPL::Optional<DPL::String> md5 = it->Get_md5_fingerprint();
- keys.push_back(md5.IsNull() ? "" : DPL::ToUTF8String(*md5));
DPL::Optional<DPL::String> sha1 = it->Get_sha1_fingerprint();
- keys.push_back(sha1.IsNull() ? "" : DPL::ToUTF8String(*sha1));
+ if (!sha1.IsNull()) {
+ keys.push_back(DPL::ToUTF8String(*sha1));
+ }
+ DPL::Optional<DPL::String> md5 = it->Get_md5_fingerprint();
+ if (!md5.IsNull()) {
+ keys.push_back(DPL::ToUTF8String(*md5));
+ }
}
return keys;
}
SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to get access host list")
}
+PkgType WidgetDAOReadOnly::getPkgType() const
+{
+ WidgetInfoRow row = getWidgetInfoRow(m_widgetHandle);
+ DPL::OptionalInt result = row.Get_pkg_type();
+ return PkgType(static_cast<PackagingType>(*result));
+}
+
+void WidgetDAOReadOnly::getEncryptedFileList(EncryptedFileList& filesList) const
+{
+ //TODO check widget existance
+ using namespace DPL::DB::ORM;
+ using namespace DPL::DB::ORM::wrt;
+ WRT_DB_SELECT(select, EncryptedResourceList, &WrtDatabase::interface())
+ select->Where(Equals<EncryptedResourceList::app_id>(m_widgetHandle));
+
+ typedef std::list<DPL::DB::ORM::wrt::EncryptedResourceList::Row> RowList;
+ RowList list = select->GetRowList();
+
+ FOREACH(it, list) {
+ EncryptedFileInfo info;
+ info.fileName = it->Get_resource();
+ info.fileSize = it->Get_size();
+ filesList.insert(info);
+ }
+}
+
#undef SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
#undef SQL_CONNECTION_EXCEPTION_HANDLER_END
#undef CHECK_WIDGET_EXISTENCE