feat(sync): перевёл группы синхронизации на Room и добавил контроль совместимости

This commit is contained in:
2026-05-17 18:03:14 +03:00
parent 15f13577c8
commit e562e4d9e9
28 changed files with 518 additions and 159 deletions

View File

@@ -13,6 +13,7 @@ interface IUnlockManager {
* Хранилища, для которых есть ключ шифрования
*/
val openedStorages: StateFlow<Map<UUID, IStorage>>
fun getOpenedStorageKey(uuid: UUID): EncryptKey?
suspend fun open(storage: IStorage, key: EncryptKey, rememberPassword: Boolean = true): IStorage
suspend fun close(storage: IStorage)

View File

@@ -2,9 +2,18 @@ package com.github.nullptroma.wallenc.domain.interfaces
import java.util.UUID
enum class StorageSyncGroupEncryptionKind {
UNSET,
NONE,
PASSWORD,
}
data class StorageSyncGroup(
val id: String,
val storageUuids: Set<UUID>,
val encryptionKind: StorageSyncGroupEncryptionKind = StorageSyncGroupEncryptionKind.UNSET,
/** Локально сохранённый секрет группы для сопоставления совместимости (не уходит наружу). */
val encryptionSecret: String? = null,
)
interface IStorageSyncGroupStore {