From 8dd87b98785712c7831ae7b8d002250895dc0166 Mon Sep 17 00:00:00 2001 From: Taejeong Lee Date: Wed, 6 Mar 2013 16:02:21 +0900 Subject: [PATCH] Fix App-control Supports * wrt-commons : Registration routine was added. [Issue#] N/A [Bug] Tizen app-control service doesn't works peroperly on wrt. [Cause] App-control info DB registeration routine was omitted. [Solution] Registration routine was added. Change-Id: Idd0202f4664a0c4fc952a30526e716986a348b17 --- modules/widget_dao/dao/widget_dao.cpp | 72 ++++++++++++++++++++++ .../widget_dao/include/dpl/wrt-dao-rw/widget_dao.h | 6 ++ 2 files changed, 78 insertions(+) diff --git a/modules/widget_dao/dao/widget_dao.cpp b/modules/widget_dao/dao/widget_dao.cpp index a58c478..51c4627 100644 --- a/modules/widget_dao/dao/widget_dao.cpp +++ b/modules/widget_dao/dao/widget_dao.cpp @@ -695,6 +695,26 @@ void WidgetDAO::registerWidgetSettings(DbWidgetHandle widgetHandle, } } +void WidgetDAO::insertApplicationServiceInfo(DbWidgetHandle handle, + DPL::String src, + DPL::String operation, + DPL::String scheme, + DPL::String mime) +{ + using namespace DPL::DB::ORM; + using namespace DPL::DB::ORM::wrt; + + ApplicationServiceInfo::Row row; + + row.Set_app_id(handle); + row.Set_src(src); + row.Set_operation(operation); + row.Set_scheme(scheme); + row.Set_mime(mime); + + DO_INSERT(row, ApplicationServiceInfo); +} + void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle, const WidgetRegisterInfo ®Info) { @@ -702,6 +722,7 @@ void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle, using namespace DPL::DB::ORM::wrt; const ConfigParserData& widgetConfigurationInfo = regInfo.configInfo; + // appServiceList FOREACH(ASIt, widgetConfigurationInfo.appServiceList) { ApplicationServiceInfo::Row row; @@ -714,6 +735,57 @@ void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle, DO_INSERT(row, ApplicationServiceInfo) } + + // appControlList + FOREACH(appControl_it, widgetConfigurationInfo.appControlList) + { + DPL::String src = appControl_it->m_src; + DPL::String operation = appControl_it->m_operation; + + if (!appControl_it->m_uriList.empty()) + { + FOREACH(uri_it, appControl_it->m_uriList) + { + DPL::String scheme = *uri_it; + + if (!appControl_it->m_mimeList.empty()) + { + FOREACH(mime_it, appControl_it->m_mimeList) + { + DPL::String mime = *mime_it; + + insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime); + } + } + else + { + DPL::String mime = L""; + + insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime); + } + } + } + else + { + DPL::String scheme = L""; + + if (!appControl_it->m_mimeList.empty()) + { + FOREACH(mime_it, appControl_it->m_mimeList) + { + DPL::String mime = *mime_it; + + insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime); + } + } + else + { + DPL::String mime = L""; + + insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime); + } + } + } } void WidgetDAO::registerEncryptedResouceInfo(DbWidgetHandle widgetHandle, diff --git a/modules/widget_dao/include/dpl/wrt-dao-rw/widget_dao.h b/modules/widget_dao/include/dpl/wrt-dao-rw/widget_dao.h index 5f059db..0c37d51 100644 --- a/modules/widget_dao/include/dpl/wrt-dao-rw/widget_dao.h +++ b/modules/widget_dao/include/dpl/wrt-dao-rw/widget_dao.h @@ -221,6 +221,12 @@ class WidgetDAO : public WidgetDAOReadOnly DPL::Optional()); static void unregisterWidgetInternal( const TizenAppId & tzAppId); + + static void insertApplicationServiceInfo(DbWidgetHandle handle, + DPL::String src, + DPL::String operation, + DPL::String scheme, + DPL::String mime); }; } // namespace WrtDB -- 2.7.4