Add TaskListMetadata to backup file

pull/1032/head
Alex Baker 4 years ago
parent 9d7df21deb
commit 906a6618a8

@ -13,6 +13,7 @@ class BackupContainer(
val googleTaskLists: List<GoogleTaskList>?,
val caldavAccounts: List<CaldavAccount>?,
val caldavCalendars: List<CaldavCalendar>?,
val taskListMetadata: List<TaskListMetadata>?,
val intPrefs: Map<String, Int>?,
val longPrefs: Map<String, Long>?,
val stringPrefs: Map<String, String>?,

@ -44,7 +44,8 @@ class TasksJsonExporter @Inject constructor(
private val googleTaskListDao: GoogleTaskListDao,
private val taskAttachmentDao: TaskAttachmentDao,
private val caldavDao: CaldavDao,
private val workManager: WorkManager) {
private val workManager: WorkManager,
private val taskListMetadataDao: TaskListMetadataDao) {
private var context: Context? = null
private var exportCount = 0
@ -136,6 +137,7 @@ class TasksJsonExporter @Inject constructor(
googleTaskListDao.getAllLists(),
caldavDao.getAccounts(),
caldavDao.getCalendars(),
taskListMetadataDao.getAll(),
preferences.getPrefs(Int::class.java),
preferences.getPrefs(Long::class.java),
preferences.getPrefs(String::class.java),

@ -36,7 +36,8 @@ class TasksJsonImporter @Inject constructor(
private val taskAttachmentDao: TaskAttachmentDao,
private val caldavDao: CaldavDao,
private val preferences: Preferences,
private val taskMover: TaskMover) {
private val taskMover: TaskMover,
private val taskListMetadataDao: TaskListMetadataDao) {
private val result = ImportResult()
@ -102,6 +103,12 @@ class TasksJsonImporter @Inject constructor(
caldavDao.insert(calendar)
}
}
backupContainer.taskListMetadata?.forEach { tlm ->
val id = tlm.filter.takeIf { it?.isNotBlank() == true } ?: tlm.tagUuid!!
if (taskListMetadataDao.fetchByTagOrFilter(id) == null) {
taskListMetadataDao.insert(tlm)
}
}
backupContainer.tasks?.forEach { backup ->
result.taskCount++
setProgressMessage(

@ -16,6 +16,7 @@ class TaskListMetadata {
@ColumnInfo(name = "_id")
var id: Long? = null
@Deprecated("not used")
@ColumnInfo(name = "remoteId")
var remoteId: String? = Task.NO_UUID

@ -10,6 +10,9 @@ abstract class TaskListMetadataDao {
@Query("SELECT * from task_list_metadata where tag_uuid = :tagUuid OR filter = :tagUuid LIMIT 1")
abstract fun fetchByTagOrFilter(tagUuid: String): TaskListMetadata?
@Query("SELECT * FROM task_list_metadata")
abstract fun getAll(): List<TaskListMetadata>
@Update
abstract fun update(taskListMetadata: TaskListMetadata)

Loading…
Cancel
Save