Update wrt-plugins-common_0.3.54
[framework/web/wrt-plugins-common.git] / src / modules / tizen / WidgetDB / WidgetDB.cpp
index cb4d644..560aabd 100644 (file)
@@ -41,9 +41,6 @@
 
 #include "WidgetFeature.h"
 
-namespace { // anonymous
-    const int INVALID_WIDGET_HANDLE = -1;
-} // namespace
 
 namespace WrtDeviceApis {
 namespace WidgetDB {
@@ -222,23 +219,10 @@ Api::InstallationStatus WidgetDB::checkInstallationStatus(
         const WrtDB::WidgetGUID w_guid =
             WrtDB::WidgetGUID(DPL::FromUTF8String(gid));
 
-        WrtDB::DbWidgetHandle widgetHandle = INVALID_WIDGET_HANDLE;
+        try {
+            WrtDB::DbWidgetHandle widgetHandle =
+                    WrtDB::WidgetDAOReadOnly::getHandle(w_guid);
 
-        WrtDB::DbWidgetHandleList widgetList = WrtDB::WidgetDAOReadOnly
-            ::getHandleList();
-
-        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)) {
@@ -248,6 +232,8 @@ Api::InstallationStatus WidgetDB::checkInstallationStatus(
             } else {
                 outStatus = Api::InstallationStatus::STATUS_LATEST;
             }
+        }catch (WrtDB::WidgetDAOReadOnly::Exception::WidgetNotExist) {
+            outStatus = Api::InstallationStatus::STATUS_UNINSTALLED;
         }
     }
     Catch(DPL::Exception)