Создана база данных

This commit is contained in:
Roman Pytkov
2025-01-04 22:42:04 +03:00
parent c653e3620b
commit f0f0c0f195
14 changed files with 393 additions and 103 deletions

View File

@@ -0,0 +1,14 @@
package com.github.nullptroma.wallenc.data.db
import android.content.Context
import androidx.room.Room
import com.github.nullptroma.wallenc.data.db.app.AppDb
class RoomFactory(private val context: Context) {
fun buildAppDb(): AppDb {
val room = Room.databaseBuilder(
context, AppDb::class.java, "app-db"
).fallbackToDestructiveMigration().build()
return room
}
}

View File

@@ -0,0 +1,15 @@
package com.github.nullptroma.wallenc.data.db.app
import androidx.room.Database
import androidx.room.RoomDatabase
import com.github.nullptroma.wallenc.data.db.app.dao.StorageKeyDao
import com.github.nullptroma.wallenc.data.db.app.model.DbStorageKey
interface IAppDb {
val storageKeyDao: StorageKeyDao
}
@Database(entities = [DbStorageKey::class], version = 1, exportSchema = false)
abstract class AppDb : IAppDb, RoomDatabase() {
abstract override val storageKeyDao: StorageKeyDao
}

View File

@@ -0,0 +1,9 @@
package com.github.nullptroma.wallenc.data.db.app.dao
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
@Dao
interface StorageKeyDao {
}

View File

@@ -0,0 +1,11 @@
package com.github.nullptroma.wallenc.data.db.app.model
import androidx.room.ColumnInfo
import androidx.room.Entity
@Entity(tableName = "storage_keys", primaryKeys = [ "source_uuid", "dest_uuid" ])
data class DbStorageKey(
@ColumnInfo(name = "source_uuid") val sourceUuid: String,
@ColumnInfo(name = "dest_uuid") val destUuid: String,
@ColumnInfo(name = "key") val key: String
)

View File

@@ -1,7 +0,0 @@
package com.github.nullptroma.wallenc.data.vaults
interface IStorageCallbackHandler {
fun changeSize(delta: Int)
fun changeNumOfFiles(delta: Int)
}

View File

@@ -0,0 +1,25 @@
package com.github.nullptroma.wallenc.data.vaults
import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey
import com.github.nullptroma.wallenc.domain.interfaces.IStorage
import com.github.nullptroma.wallenc.domain.interfaces.IUnlockManager
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import java.util.UUID
class UnlockManager: IUnlockManager {
private val _openedStorages = MutableStateFlow<Map<UUID, IStorage>>(mapOf())
override val openedStorages: StateFlow<Map<UUID, IStorage>>
get() = _openedStorages
override fun open(
storage: IStorage,
key: EncryptKey
) {
TODO("Not yet implemented")
}
override fun close(storage: IStorage) {
TODO("Not yet implemented")
}
}

View File

@@ -1,11 +1,15 @@
package com.github.nullptroma.wallenc.data.vaults
import android.content.Context
import com.github.nullptroma.wallenc.data.vaults.local.LocalVault
import com.github.nullptroma.wallenc.domain.interfaces.IVault
import com.github.nullptroma.wallenc.domain.interfaces.IVaultsManager
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.StateFlow
class VaultsManager(override val localVault: LocalVault) : IVaultsManager {
class VaultsManager(ioDispatcher: CoroutineDispatcher, context: Context) : IVaultsManager {
override val localVault = LocalVault(ioDispatcher, context)
override val remoteVaults: StateFlow<List<IVault>>
get() = TODO("Not yet implemented")

View File

@@ -22,7 +22,6 @@ import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import timber.log.Timber
import java.io.File
import java.io.InputStream
import java.io.OutputStream
@@ -59,7 +58,6 @@ class LocalStorageAccessor(
init {
// запускам сканирование хранилища
CoroutineScope(ioDispatcher).launch {
Timber.d("Local storage path: $_filesystemBasePath")
scanSizeAndNumOfFiles()
}
}