Fixed recovery widget during preinstallation
[platform/framework/web/wrt-installer.git] / src / wrt-installer / wrt_installer.cpp
index da38798..27d75f3 100644 (file)
@@ -63,6 +63,7 @@ const double BASE_LAYOUT_W = 720.0f;
 const double BASE_LAYOUT_H = 1280.0f;
 
 const char * const CONFIG_XML = "config.xml";
+const char * const HYBRID_CONFIG_XML = "res/wgt/config.xml";
 
 struct free_deleter
 {
@@ -503,10 +504,17 @@ void WrtInstaller::unistallWgtFileStep()
         // Open zip file
         std::unique_ptr<DPL::ZipInput> zipFile(
             new DPL::ZipInput(m_packagePath));
+        std::unique_ptr<DPL::ZipInput::File> configFile;
 
-        // Open config.xml file
-        std::unique_ptr<DPL::ZipInput::File> configFile(
-            zipFile->OpenFile(CONFIG_XML));
+        Try {
+            // Open config.xml file
+            configFile.reset(zipFile->OpenFile(CONFIG_XML));
+        }
+        Catch(DPL::ZipInput::Exception::OpenFileFailed)
+        {
+            // Open config.xml file for hybrid
+            configFile.reset(zipFile->OpenFile(HYBRID_CONFIG_XML));
+        }
 
         // Extract config
         DPL::BinaryQueue buffer;
@@ -519,16 +527,11 @@ void WrtInstaller::unistallWgtFileStep()
                                                       DPL::FromUTF32String(
                                                           L"widget"))));
 
-        DPL::OptionalString widgetGUID = configInfo.widget_id;
-
-        std::string guid = DPL::ToUTF8String(*widgetGUID);
-
-        std::string appid;
-        WrtErrStatus status = wrt_get_widget_by_guid(appid, guid);
-        if (status == WRT_SUCCESS) {
-            LogDebug("Appid from packagePath : " << appid);
+        DPL::OptionalString pkgId = configInfo.tizenPkgId;
+        if (!pkgId.IsNull()) {
+            LogDebug("Pkgid from packagePath : " << pkgId);
             wrt_uninstall_widget(
-                appid.c_str(), this, &staticWrtStatusCallback,
+                DPL::ToUTF8String(*pkgId).c_str(), this, &staticWrtStatusCallback,
                 !m_quiet ? &staticWrtUninstallProgressCallback
                 : NULL,
                 pkgmgrSignalInterface);