*/
#include <widget_uninstall/task_smack.h>
+#include <widget_uninstall/job_widget_uninstall.h>
#include <widget_uninstall/uninstaller_context.h>
#include <dpl/log/log.h>
#include <dpl/optional_typedefs.h>
DPL::TaskDecl<TaskSmack>(this),
m_context(context)
{
+ AddStep(&TaskSmack::StartStep);
AddStep(&TaskSmack::Step);
+ AddStep(&TaskSmack::EndStep);
}
void TaskSmack::Step()
{
- LogInfo("------------------------> SMACK: Jobs::WidgetUninstall::TaskSmack::Step()");
+ LogDebug(
+ "------------------------> SMACK: Jobs::WidgetUninstall::TaskSmack::Step()");
#ifdef WRT_SMACK_ENABLED
- try {
- WrtDB::WidgetDAOReadOnly dao(m_context.locations->getPkgname());
- DPL::OptionalString pkgName = dao.getPkgname();
- Assert(!pkgName.IsNull() && "widget doesn't have a pkg name");
- const char *devCap = "";
- int result = handle_access_control_conf_forWAC(
- DPL::ToUTF8String(*pkgName).c_str(),
- NULL,
- OPERATION_UNINSTALL);
- Assert(result==PC_OPERATION_SUCCESS && "access control setup failed");
- } catch (WrtDB::WidgetDAOReadOnly::Exception) {
- Assert(false && "can't access widget data");
+ const char* pkgId = m_context.tzPkgid.c_str();
+ if (PC_OPERATION_SUCCESS != app_revoke_permissions(pkgId)) {
+ LogError("failure in revoking smack permissions");
}
- m_context.job->UpdateProgress(
- UninstallerContext::INSTALL_SMACK_ENABLE,
- "Widget SMACK Enabled");
+ if (PC_OPERATION_SUCCESS != app_uninstall(pkgId)) {
+ LogError("failure in removing smack rules file");
+ }
#endif
}
+void TaskSmack::StartStep()
+{
+ LogDebug("--------- <TaskSmack> : START ----------");
+}
+
+void TaskSmack::EndStep()
+{
+ m_context.job->UpdateProgress(
+ UninstallerContext::UNINSTALL_SMACK_DISABLE,
+ "Widget SMACK Disabled");
+
+ LogDebug("--------- <TaskSmack> : END ----------");
+}
} //namespace WidgetUninstall
} //namespace Jobs