Try {
int ret = app2ext_get_app_location(m_context.tzPkgid.c_str());
- if (APP2EXT_INTERNAL_MEM == ret) {
+ if (APP2EXT_SD_CARD == ret) {
+ _D("Remove external directory");
+ Try {
+ WidgetInstallToExtSingleton::Instance().initialize(m_context.tzPkgid);
+ WidgetInstallToExtSingleton::Instance().uninstallation();
+ WidgetInstallToExtSingleton::Instance().deinitialize();
+ }
+ Catch(WidgetInstallToExt::Exception::ErrorInstallToExt)
+ {
+ // Continue uninstall even fail to remove external directory.
+ // i.e.) SD card isn't inserted or unmounted.
+ // This behavior is recommended by platform(app2sd maintainer).
+ _E("Fail to remove external directory");
+ }
+ }
+ if (APP2EXT_INTERNAL_MEM == ret || APP2EXT_SD_CARD == ret) {
_D("Removing directory");
m_context.removeStarted = true;
DPL::Utils::Path widgetDir= m_context.installedPath;
} Catch(DPL::Utils::Path::BaseException){
_W("%s is already removed", dataDir.Fullpath().c_str());
}
- } else if (APP2EXT_SD_CARD == ret) {
- _D("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);
- }
} else {
_E("app is not installed");
ThrowMsg(Exceptions::WidgetNotExist, "failed to get app location");