[Release] wrt-installer_0.1.47
[framework/web/wrt-installer.git] / src / jobs / widget_uninstall / task_remove_files.cpp
index 7d501be..2cd9538 100644 (file)
 #include <widget_uninstall/task_remove_files.h>
 #include <widget_uninstall/job_widget_uninstall.h>
 #include <widget_uninstall/uninstaller_context.h>
+#include <widget_uninstall/widget_uninstall_errors.h>
 #include <dpl/wrt-dao-rw/widget_dao.h>
 #include <dpl/wrt-dao-ro/widget_config.h>
 #include <dpl/wrt-dao-ro/vconf_config.h>
 #include <dpl/assert.h>
+#include <dpl/exception.h>
 #include <dpl/utils/wrt_utility.h>
 #include <ail.h>
 #include <pkgmgr/pkgmgr_parser.h>
@@ -61,32 +63,36 @@ TaskRemoveFiles::~TaskRemoveFiles()
 void TaskRemoveFiles::StepRemoveInstallationDirectory()
 {
     LogInfo("StepRemoveInstallationDirectory started");
-    if (APP2EXT_SD_CARD !=
-            app2ext_get_app_location(m_context.tzPkgid.c_str()))
-    {
-        LogDebug("Removing directory");
-        m_context.removeStarted = true;
-        std::string widgetDir =
-            m_context.locations->getPackageInstallationDir();
-        if (!WrtUtilRemove(widgetDir)) {
-            LogWarning("Removing widget installation directory failed");
-        }
-        std::string dataDir = m_context.locations->getUserDataRootDir();
-        if (!WrtUtilRemove(dataDir)) {
-            LogWarning(dataDir + " is already removed");
-        }
-    } else {
-        LogDebug("Removing sdcard directory");
-        Try {
-            WidgetInstallToExtSingleton::Instance().initialize(m_context.tzPkgid);
-            WidgetInstallToExtSingleton::Instance().uninstallation();
-            WidgetInstallToExtSingleton::Instance().deinitialize();
-        }
-        Catch(WidgetInstallToExt::Exception::ErrorInstallToExt)
+    Try {
+        if (APP2EXT_SD_CARD !=
+                app2ext_get_app_location(m_context.tzPkgid.c_str()))
         {
-            Throw(Jobs::WidgetUninstall::TaskRemoveFiles::Exception::
-                    RemoveFilesFailed);
+            LogDebug("Removing directory");
+            m_context.removeStarted = true;
+            if (!WrtUtilRemove(m_context.installedPath)) {
+                LogError("Removing widget installation directory failed : " <<
+                        m_context.installedPath);
+            }
+            std::string dataDir = m_context.locations->getUserDataRootDir();
+            if (!WrtUtilRemove(dataDir)) {
+                LogWarning(dataDir + " is already removed");
+            }
+        } else {
+            LogDebug("Removing sdcard directory");
+            Try {
+                WidgetInstallToExtSingleton::Instance().initialize(m_context.tzPkgid);
+                WidgetInstallToExtSingleton::Instance().uninstallation();
+                WidgetInstallToExtSingleton::Instance().deinitialize();
+            }
+            Catch(WidgetInstallToExt::Exception::ErrorInstallToExt)
+            {
+                Throw(Jobs::WidgetUninstall::TaskRemoveFiles::Exception::
+                        RemoveFilesFailed);
+            }
         }
+    } Catch(Exception::RemoveFilesFailed) {
+        ThrowMsg(Exceptions::RemoveFileFailure, "Cann't remove directory");
+
     }
     m_context.job->UpdateProgress(
         UninstallerContext::UNINSTALL_REMOVE_WIDGETDIR,