Store Android auto-upload cursors per source

This commit is contained in:
Курнат Андрей
2026-06-10 07:35:14 +03:00
parent f1cbf65a3c
commit d79f4b93d0
15 changed files with 1466 additions and 8 deletions
@@ -31,7 +31,7 @@ public class ProviderMeta {
public static final String DB_NAME = "filelist";
public static final String NEW_DB_NAME = "qsfera_database";
public static final int DB_VERSION = 51;
public static final int DB_VERSION = 52;
private ProviderMeta() {
}
@@ -54,6 +54,7 @@ import eu.qsfera.android.data.migrations.MIGRATION_47_48
import eu.qsfera.android.data.migrations.MIGRATION_48_49
import eu.qsfera.android.data.migrations.MIGRATION_49_50
import eu.qsfera.android.data.migrations.MIGRATION_50_51
import eu.qsfera.android.data.migrations.MIGRATION_51_52
import eu.qsfera.android.data.sharing.shares.db.OCShareDao
import eu.qsfera.android.data.sharing.shares.db.OCShareEntity
import eu.qsfera.android.data.spaces.db.SpaceSpecialEntity
@@ -131,7 +132,8 @@ abstract class QSferaDatabase : RoomDatabase() {
MIGRATION_47_48,
MIGRATION_48_49,
MIGRATION_49_50,
MIGRATION_50_51)
MIGRATION_50_51,
MIGRATION_51_52)
.build()
INSTANCE = instance
instance
@@ -75,6 +75,7 @@ class OCLocalFolderBackupDataSource(
chargingOnly = chargingOnly,
name = name,
lastSyncTimestamp = lastSyncTimestamp,
sourcePathSyncTimestamps = sourcePathSyncTimestamps,
spaceId = spaceId,
)
@@ -93,6 +94,7 @@ class OCLocalFolderBackupDataSource(
mobileDataBytesQueuedInPeriod = mobileDataBytesQueuedInPeriod,
chargingOnly = chargingOnly,
lastSyncTimestamp = lastSyncTimestamp,
sourcePathSyncTimestamps = sourcePathSyncTimestamps,
name = name,
spaceId = spaceId,
)
@@ -36,6 +36,7 @@ data class FolderBackUpEntity(
val chargingOnly: Boolean,
val name: String,
val lastSyncTimestamp: Long,
val sourcePathSyncTimestamps: String,
val spaceId: String?,
) {
@PrimaryKey(autoGenerate = true) var id: Int = 0
@@ -54,6 +54,7 @@ class CameraUploadsMigrationToRoom(val sharedPreferencesProvider: SharedPreferen
sourcePath = getSourcePathForPreference(PREF__CAMERA_PICTURE_UPLOADS_SOURCE),
behavior = getBehaviorForPreference(PREF__CAMERA_PICTURE_UPLOADS_BEHAVIOUR),
lastSyncTimestamp = timestamp,
sourcePathSyncTimestamps = "",
name = pictureUploadsName,
allowRoaming = false,
mobileDataLimitBytes = 0,
@@ -74,6 +75,7 @@ class CameraUploadsMigrationToRoom(val sharedPreferencesProvider: SharedPreferen
sourcePath = getSourcePathForPreference(PREF__CAMERA_VIDEO_UPLOADS_SOURCE),
behavior = getBehaviorForPreference(PREF__CAMERA_VIDEO_UPLOADS_BEHAVIOUR),
lastSyncTimestamp = timestamp,
sourcePathSyncTimestamps = "",
name = videoUploadsName,
allowRoaming = false,
mobileDataLimitBytes = 0,
@@ -0,0 +1,11 @@
package eu.qsfera.android.data.migrations
import androidx.room.migration.Migration
import androidx.sqlite.db.SupportSQLiteDatabase
import eu.qsfera.android.data.ProviderMeta.ProviderTableMeta.FOLDER_BACKUP_TABLE_NAME
val MIGRATION_51_52 = object : Migration(51, 52) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("ALTER TABLE $FOLDER_BACKUP_TABLE_NAME ADD COLUMN sourcePathSyncTimestamps TEXT NOT NULL DEFAULT ''")
}
}