Создана база данных
This commit is contained in:
@@ -38,9 +38,6 @@ dependencies {
|
||||
implementation(libs.jackson.module.kotlin)
|
||||
implementation(libs.jackson.datatype.jsr310)
|
||||
|
||||
// Timber
|
||||
implementation(libs.timber)
|
||||
|
||||
// Room
|
||||
implementation(libs.room.ktx)
|
||||
implementation(libs.room.runtime)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
@@ -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 {
|
||||
}
|
||||
@@ -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
|
||||
)
|
||||
@@ -1,7 +0,0 @@
|
||||
package com.github.nullptroma.wallenc.data.vaults
|
||||
|
||||
interface IStorageCallbackHandler {
|
||||
fun changeSize(delta: Int)
|
||||
fun changeNumOfFiles(delta: Int)
|
||||
|
||||
}
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user