X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fjobs%2Fwidget_install%2Ftask_database.cpp;h=a7b405bee8fbaaf8e31f1789ade3f1202f160cda;hb=bb6a49cba8cf075304d971b519809b1816bc53ad;hp=0258359353a39d4e2070c158a32557fcc993c833;hpb=4c3a03cc7892389de60114e3ef3afff627fe919a;p=framework%2Fweb%2Fwrt-installer.git diff --git a/src/jobs/widget_install/task_database.cpp b/src/jobs/widget_install/task_database.cpp index 0258359..a7b405b 100644 --- a/src/jobs/widget_install/task_database.cpp +++ b/src/jobs/widget_install/task_database.cpp @@ -65,6 +65,7 @@ TaskDatabase::TaskDatabase(InstallerContext& context) : AddStep(&TaskDatabase::StepLiveboxDBInsert); AddAbortStep(&TaskDatabase::StepAbortDBInsert); + AddAbortStep(&TaskDatabase::StepAbortAceDBInsert); } void TaskDatabase::StepWrtDBInsert() @@ -80,6 +81,11 @@ void TaskDatabase::StepWrtDBInsert() { m_handleToRemove = WidgetDAOReadOnly::getHandle( m_context.widgetConfig.tzAppid); + + std::string makeAppid = + DPL::ToUTF8String(m_context.widgetConfig.tzAppid) + "." + + "backup"; + m_backAppId = DPL::FromUTF8String(makeAppid); } Catch(WidgetDAOReadOnly::Exception::WidgetNotExist) { @@ -88,7 +94,9 @@ void TaskDatabase::StepWrtDBInsert() ThrowMsg(Exceptions::DatabaseFailure, "Given tizenId not found for update installation"); } - WidgetDAO::registerOrUpdateWidget( + + WidgetDAO::backupAndUpdateWidget( + m_backAppId, m_context.widgetConfig.tzAppid, m_context.widgetConfig, m_context.wacSecurity); @@ -255,6 +263,9 @@ void TaskDatabase::StepCreateVconf() WrtDB::VconfConfig::GetVconfKeyWebNotificationUsage( m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_ON; vconfData[ + WrtDB::VconfConfig::GetVconfKeyWebDatabaseUsage( + m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_ON; + vconfData[ WrtDB::VconfConfig::GetVconfKeyMemorySavingMode( m_context.widgetConfig.tzAppid)] = WrtDB::SETTINGS_TYPE_OFF; @@ -280,13 +291,19 @@ void TaskDatabase::StepAbortDBInsert() LogWarning("[DB Update Task] Aborting... (DB Clean)"); Try { - WidgetDAO::unregisterWidget(m_context.widgetConfig.tzAppid); + WidgetDAO::restoreUpdateWidget(m_backAppId, + m_context.widgetConfig.tzAppid); LogDebug("Cleaning DB successful!"); } Catch(DPL::DB::SqlConnection::Exception::Base) { LogError("Failed to handle StepAbortDBClean!"); } +} + +void TaskDatabase::StepAbortAceDBInsert() +{ + LogWarning("[DB Update Task] ACE DB Aborting... (DB Clean)"); ace_unregister_widget(static_cast(m_handle)); // Remove also old one. If it was already updated nothing wrong will happen, @@ -294,6 +311,12 @@ void TaskDatabase::StepAbortDBInsert() if (INVALID_WIDGET_HANDLE != m_handleToRemove) { ace_unregister_widget(static_cast(m_handle)); } + + if (!AceApi::registerAceWidgetFromDB(m_handleToRemove)) + { + LogError("ace database restore failed"); + } + LogDebug("Ace data inserted"); } void TaskDatabase::StepLiveboxDBInsert()