diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8e34666..08963e3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -53,6 +53,9 @@ android { } dependencies { + // Timber + implementation(libs.timber) + // Yandex implementation(libs.yandex.oauth) @@ -76,6 +79,6 @@ dependencies { //androidTestImplementation(libs.androidx.ui.test.junit4) implementation(project(":domain")) + implementation(project(":data")) implementation(project(":presentation")) - runtimeOnly(project(":data")) } \ No newline at end of file diff --git a/app/release/baselineProfiles/0/app-release.dm b/app/release/baselineProfiles/0/app-release.dm new file mode 100644 index 0000000..9811576 Binary files /dev/null and b/app/release/baselineProfiles/0/app-release.dm differ diff --git a/app/release/baselineProfiles/1/app-release.dm b/app/release/baselineProfiles/1/app-release.dm new file mode 100644 index 0000000..a9809b3 Binary files /dev/null and b/app/release/baselineProfiles/1/app-release.dm differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json new file mode 100644 index 0000000..54665c7 --- /dev/null +++ b/app/release/output-metadata.json @@ -0,0 +1,37 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.github.nullptroma.wallenc.app", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "1.0", + "outputFile": "app-release.apk" + } + ], + "elementType": "File", + "baselineProfiles": [ + { + "minApi": 28, + "maxApi": 30, + "baselineProfiles": [ + "baselineProfiles/1/app-release.dm" + ] + }, + { + "minApi": 31, + "maxApi": 2147483647, + "baselineProfiles": [ + "baselineProfiles/0/app-release.dm" + ] + } + ], + "minSdkVersionForDexing": 24 +} \ No newline at end of file diff --git a/app/src/main/java/com/github/nullptroma/wallenc/app/MainActivity.kt b/app/src/main/java/com/github/nullptroma/wallenc/app/MainActivity.kt index ada67d6..c74bbc6 100644 --- a/app/src/main/java/com/github/nullptroma/wallenc/app/MainActivity.kt +++ b/app/src/main/java/com/github/nullptroma/wallenc/app/MainActivity.kt @@ -6,8 +6,8 @@ import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import com.github.nullptroma.wallenc.presentation.WallencUi import dagger.hilt.android.AndroidEntryPoint +import timber.log.Timber -class Container(val value: T) @AndroidEntryPoint class MainActivity : ComponentActivity() { @@ -15,12 +15,13 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() + + Timber.plant(Timber.DebugTree()) // val sdk = YandexAuthSdk.create(YandexAuthOptions(applicationContext, true)) // val launcher = // registerForActivityResult(sdk.contract) { result -> handleResult(result) } // val loginOptions = YandexAuthLoginOptions(LoginType.CHROME_TAB) - val cont1 = Container(true) - var cont2 = Container(true) + setContent { WallencUi() } diff --git a/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/app/DispatchersModule.kt b/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/app/DispatchersModule.kt new file mode 100644 index 0000000..34a187f --- /dev/null +++ b/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/app/DispatchersModule.kt @@ -0,0 +1,29 @@ +package com.github.nullptroma.wallenc.app.di.modules.app + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.Dispatchers +import javax.inject.Qualifier + +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class MainDispatcher + +@Qualifier +@Retention(AnnotationRetention.BINARY) +annotation class IoDispatcher + +@Module +@InstallIn(SingletonComponent::class) +class DispatchersModule { + @MainDispatcher + @Provides + fun providesMainDispatcher(): CoroutineDispatcher = Dispatchers.Main + + @IoDispatcher + @Provides + fun providesIoDispatcher(): CoroutineDispatcher = Dispatchers.IO +} \ No newline at end of file diff --git a/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/data/SingletonModule.kt b/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/data/SingletonModule.kt new file mode 100644 index 0000000..46fcf31 --- /dev/null +++ b/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/data/SingletonModule.kt @@ -0,0 +1,31 @@ +package com.github.nullptroma.wallenc.app.di.modules.data + +import android.content.Context +import com.github.nullptroma.wallenc.app.di.modules.app.IoDispatcher +import com.github.nullptroma.wallenc.data.vaults.local.LocalVault +import com.github.nullptroma.wallenc.data.vaults.VaultsManager +import com.github.nullptroma.wallenc.domain.models.IVaultsManager +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import kotlinx.coroutines.CoroutineDispatcher +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +class SingletonModule { + @Provides + @Singleton + fun provideLocalVault(@IoDispatcher ioDispatcher: CoroutineDispatcher, + @ApplicationContext context: Context): LocalVault { + return LocalVault(ioDispatcher, context) + } + + @Provides + @Singleton + fun provideVaultsManager(localVault: LocalVault): IVaultsManager { + return VaultsManager(localVault) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/domain/UseCasesModule.kt b/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/domain/UseCasesModule.kt index 2bea31f..d3e21ff 100644 --- a/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/domain/UseCasesModule.kt +++ b/app/src/main/java/com/github/nullptroma/wallenc/app/di/modules/domain/UseCasesModule.kt @@ -1,7 +1,7 @@ package com.github.nullptroma.wallenc.app.di.modules.domain -import com.github.nullptroma.wallenc.domain.models.IMetaInfo -import com.github.nullptroma.wallenc.domain.usecases.TestUseCase +import com.github.nullptroma.wallenc.domain.models.IVaultsManager +import com.github.nullptroma.wallenc.domain.usecases.GetAllRawStoragesUseCase import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -11,11 +11,9 @@ import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) class UseCasesModule { - var count = 0 - @Provides @Singleton - fun provideTestUseCase(meta: IMetaInfo): TestUseCase { - return TestUseCase(meta, count++) + fun provideGetAllRawStoragesUseCase(vaultsManager: IVaultsManager): GetAllRawStoragesUseCase { + return GetAllRawStoragesUseCase(vaultsManager) } } \ No newline at end of file diff --git a/data/build.gradle.kts b/data/build.gradle.kts index e42304b..1b70c8d 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -34,6 +34,9 @@ android { } dependencies { + // Timber + implementation(libs.timber) + // Room implementation(libs.room.ktx) implementation(libs.room.runtime) diff --git a/data/src/main/java/com/github/nullptroma/wallenc/data/MockStorage.kt b/data/src/main/java/com/github/nullptroma/wallenc/data/MockStorage.kt new file mode 100644 index 0000000..ee54b41 --- /dev/null +++ b/data/src/main/java/com/github/nullptroma/wallenc/data/MockStorage.kt @@ -0,0 +1,23 @@ +package com.github.nullptroma.wallenc.data + +import com.github.nullptroma.wallenc.domain.models.IStorage +import com.github.nullptroma.wallenc.domain.models.IStorageAccessor +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import java.util.UUID + +class MockStorage( + override val size: StateFlow = MutableStateFlow(null), + override val numberOfFiles: StateFlow = MutableStateFlow(null), + override val uuid: UUID, + override val name: StateFlow = MutableStateFlow(""), + override val totalSpace: StateFlow = MutableStateFlow(null), + override val availableSpace: StateFlow = MutableStateFlow(null), + override val isAvailable: StateFlow = MutableStateFlow(false), + override val accessor: IStorageAccessor +) : IStorage { + + override suspend fun rename(newName: String) { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/VaultsManager.kt b/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/VaultsManager.kt index 260d2e6..857b27d 100644 --- a/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/VaultsManager.kt +++ b/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/VaultsManager.kt @@ -1,5 +1,16 @@ package com.github.nullptroma.wallenc.data.vaults -class VaultsManager { +import com.github.nullptroma.wallenc.data.vaults.local.LocalVault +import com.github.nullptroma.wallenc.domain.models.IVault +import com.github.nullptroma.wallenc.domain.models.IVaultsManager +import kotlinx.coroutines.flow.StateFlow + +class VaultsManager(override val localVault: LocalVault) : IVaultsManager { + override val remoteVaults: StateFlow> + get() = TODO("Not yet implemented") + + override fun addYandexVault(email: String, token: String) { + TODO("Not yet implemented") + } } \ No newline at end of file diff --git a/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/local/LocalStorageAccessor.kt b/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/local/LocalStorageAccessor.kt new file mode 100644 index 0000000..7199324 --- /dev/null +++ b/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/local/LocalStorageAccessor.kt @@ -0,0 +1,77 @@ +package com.github.nullptroma.wallenc.data.vaults.local + +import com.github.nullptroma.wallenc.domain.datatypes.DataPackage +import com.github.nullptroma.wallenc.domain.models.IDirectory +import com.github.nullptroma.wallenc.domain.models.IFile +import com.github.nullptroma.wallenc.domain.models.IStorageAccessor +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow +import java.io.InputStream +import java.io.OutputStream +import java.net.URI + +class LocalStorageAccessor : IStorageAccessor { + override val isAvailable: StateFlow + get() = TODO("Not yet implemented") + override val filesUpdates: SharedFlow> + get() = TODO("Not yet implemented") + override val dirsUpdates: SharedFlow> + get() = TODO("Not yet implemented") + + override suspend fun getAllFiles(): List { + TODO("Not yet implemented") + } + + override suspend fun getFiles(path: URI): List { + TODO("Not yet implemented") + } + + override fun getFilesFlow(path: URI): Flow> { + TODO("Not yet implemented") + } + + override suspend fun getAllDirs(): List { + TODO("Not yet implemented") + } + + override suspend fun getDirs(path: URI): List { + TODO("Not yet implemented") + } + + override fun getDirsFlow(path: URI): Flow> { + TODO("Not yet implemented") + } + + override suspend fun touchFile(path: URI) { + TODO("Not yet implemented") + } + + override suspend fun touchDir(path: URI) { + TODO("Not yet implemented") + } + + override suspend fun delete(path: URI) { + TODO("Not yet implemented") + } + + override suspend fun getFileInfo(path: URI) { + TODO("Not yet implemented") + } + + override suspend fun getDirInfo(path: URI) { + TODO("Not yet implemented") + } + + override suspend fun openWrite(path: URI): InputStream { + TODO("Not yet implemented") + } + + override suspend fun openRead(path: URI): OutputStream { + TODO("Not yet implemented") + } + + override suspend fun moveToTrash(path: URI) { + TODO("Not yet implemented") + } +} \ No newline at end of file diff --git a/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/LocalVault.kt b/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/local/LocalVault.kt similarity index 66% rename from data/src/main/java/com/github/nullptroma/wallenc/data/vaults/LocalVault.kt rename to data/src/main/java/com/github/nullptroma/wallenc/data/vaults/local/LocalVault.kt index e1a5aaf..98b9c85 100644 --- a/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/LocalVault.kt +++ b/data/src/main/java/com/github/nullptroma/wallenc/data/vaults/local/LocalVault.kt @@ -1,21 +1,37 @@ -package com.github.nullptroma.wallenc.data.vaults +package com.github.nullptroma.wallenc.data.vaults.local import android.content.Context +import com.github.nullptroma.wallenc.data.MockStorage import com.github.nullptroma.wallenc.domain.datatypes.EncryptKey import com.github.nullptroma.wallenc.domain.enums.VaultType import com.github.nullptroma.wallenc.domain.models.IStorage import com.github.nullptroma.wallenc.domain.models.IVault import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.util.UUID +import kotlin.io.path.Path +import kotlin.io.path.createDirectory class LocalVault(private val ioDispatcher: CoroutineDispatcher, context: Context) : IVault { + private val path = context.getExternalFilesDir("LocalVault") + private val _storages = MutableStateFlow(listOf()) + init { CoroutineScope(ioDispatcher).launch { + if(path == null) + return@launch + val dirs = path.listFiles()?.filter { it.isDirectory } + if(dirs != null) + _storages.value = dirs.map { + MockStorage(uuid = UUID.fromString(it.name), accessor = LocalStorageAccessor()) + } + val next = Path(path.path, UUID.randomUUID().toString()) + next.createDirectory() } } @@ -46,7 +62,7 @@ class LocalVault(private val ioDispatcher: CoroutineDispatcher, context: Context override val uuid: UUID get() = TODO("Not yet implemented") override val storages: StateFlow> - get() = TODO("Not yet implemented") + get() = _storages override val isAvailable: StateFlow get() = TODO("Not yet implemented") diff --git a/domain/src/main/java/com/github/nullptroma/wallenc/domain/models/IVaultsManager.kt b/domain/src/main/java/com/github/nullptroma/wallenc/domain/models/IVaultsManager.kt index 3232e15..950f2bb 100644 --- a/domain/src/main/java/com/github/nullptroma/wallenc/domain/models/IVaultsManager.kt +++ b/domain/src/main/java/com/github/nullptroma/wallenc/domain/models/IVaultsManager.kt @@ -3,7 +3,7 @@ package com.github.nullptroma.wallenc.domain.models import kotlinx.coroutines.flow.StateFlow interface IVaultsManager { - val localVault: StateFlow + val localVault: IVault val remoteVaults: StateFlow> fun addYandexVault(email: String, token: String) diff --git a/domain/src/main/java/com/github/nullptroma/wallenc/domain/usecases/GetAllRawStoragesUseCase.kt b/domain/src/main/java/com/github/nullptroma/wallenc/domain/usecases/GetAllRawStoragesUseCase.kt index c90aa9d..c82552f 100644 --- a/domain/src/main/java/com/github/nullptroma/wallenc/domain/usecases/GetAllRawStoragesUseCase.kt +++ b/domain/src/main/java/com/github/nullptroma/wallenc/domain/usecases/GetAllRawStoragesUseCase.kt @@ -1,14 +1,14 @@ package com.github.nullptroma.wallenc.domain.usecases -import com.github.nullptroma.wallenc.domain.models.IVault import com.github.nullptroma.wallenc.domain.models.IVaultsManager -import kotlinx.coroutines.flow.combine -class GetAllRawStoragesUseCase(val manager: IVaultsManager) { - fun getStoragesFlow() = manager.remoteVaults.combine(manager.localVault) { remote, local -> - mutableListOf().apply { - addAll(remote) - add(local) - } - } +class GetAllRawStoragesUseCase(private val manager: IVaultsManager) { + // fun getStoragesFlow() = manager.remoteVaults.combine(manager.localVault) { remote, local -> +// mutableListOf().apply { +// addAll(remote) +// add(local) +// } +// } + val localStorage + get() = manager.localVault } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d2782bb..835efd9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,6 +13,7 @@ activityCompose = "1.9.3" composeBom = "2024.10.01" navigation = "2.8.3" hiltNavigation = "1.2.0" +timber = "5.0.1" yandexAuthSdk = "3.1.2" daggerHilt = "2.52" ksp = "2.0.10-1.0.24" @@ -29,6 +30,7 @@ kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-c kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } navigation = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigation" } navigation-hilt-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigation" } +timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } # Yandex yandex-oauth = { group = "com.yandex.android", name = "authsdk", version.ref = "yandexAuthSdk" } diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainScreenState.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainScreenState.kt index 8e4e246..b51acdb 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainScreenState.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainScreenState.kt @@ -1,3 +1,3 @@ package com.github.nullptroma.wallenc.presentation.screens.main -data class MainScreenState(val value: String) \ No newline at end of file +class MainScreenState \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainViewModel.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainViewModel.kt index 40a82df..e76f001 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainViewModel.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/MainViewModel.kt @@ -12,7 +12,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel @HiltViewModel class MainViewModel @javax.inject.Inject constructor(savedStateHandle: SavedStateHandle) : - ViewModelBase(MainScreenState("default string")) { + ViewModelBase(MainScreenState()) { @OptIn(SavedStateHandleSaveableApi::class) var routes by savedStateHandle.saveable { diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreen.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreen.kt index cc12692..1dfc394 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreen.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreen.kt @@ -1,5 +1,6 @@ package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault +import androidx.compose.foundation.layout.Column import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -15,5 +16,9 @@ fun LocalVaultScreen(modifier: Modifier = Modifier, viewModel: LocalVaultViewModel = hiltViewModel()) { val uiState by viewModel.uiState.collectAsStateWithLifecycle() - Text(uiState.value) + Column { + for(storage in uiState.storagesList) { + Text(storage.uuid.toString()) + } + } } \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreenState.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreenState.kt index 6bd8433..cabc6c8 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreenState.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultScreenState.kt @@ -1,3 +1,5 @@ package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault -data class LocalVaultScreenState(val value: String) \ No newline at end of file +import com.github.nullptroma.wallenc.domain.models.IStorage + +data class LocalVaultScreenState(val storagesList: List) \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultViewModel.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultViewModel.kt index d8f7c1b..61f2510 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultViewModel.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/local/vault/LocalVaultViewModel.kt @@ -1,11 +1,22 @@ package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault +import androidx.lifecycle.viewModelScope +import com.github.nullptroma.wallenc.domain.usecases.GetAllRawStoragesUseCase import com.github.nullptroma.wallenc.presentation.viewmodel.ViewModelBase import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.launch import javax.inject.Inject @HiltViewModel -class LocalVaultViewModel @Inject constructor() - : ViewModelBase(LocalVaultScreenState("default")) { - +class LocalVaultViewModel @Inject constructor(private val getAllRawStoragesUseCase: GetAllRawStoragesUseCase) : + ViewModelBase(LocalVaultScreenState(listOf())) { + init { + viewModelScope.launch { + getAllRawStoragesUseCase.localStorage.storages.collect { + mutableUiState.value = mutableUiState.value.copy( + storagesList = it + ) + } + } + } } \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsScreenState.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsScreenState.kt index 77ca567..3794eb6 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsScreenState.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsScreenState.kt @@ -1,3 +1,3 @@ package com.github.nullptroma.wallenc.presentation.screens.main.screens.remotes -data class RemoteVaultsScreenState(val value: String) \ No newline at end of file +class RemoteVaultsScreenState \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsViewModel.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsViewModel.kt index abbe5bf..e556f69 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsViewModel.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/main/screens/remotes/RemoteVaultsViewModel.kt @@ -6,6 +6,6 @@ import javax.inject.Inject @HiltViewModel class RemoteVaultsViewModel @Inject constructor() : - ViewModelBase(RemoteVaultsScreenState("")) { + ViewModelBase(RemoteVaultsScreenState()) { } \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsScreenState.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsScreenState.kt index 38832d1..8c4b244 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsScreenState.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsScreenState.kt @@ -1,3 +1,3 @@ package com.github.nullptroma.wallenc.presentation.screens.settings -data class SettingsScreenState(val value: String) \ No newline at end of file +class SettingsScreenState \ No newline at end of file diff --git a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsViewModel.kt b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsViewModel.kt index 0cdc3bb..658e01c 100644 --- a/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsViewModel.kt +++ b/presentation/src/main/java/com/github/nullptroma/wallenc/presentation/screens/settings/SettingsViewModel.kt @@ -5,5 +5,5 @@ import dagger.hilt.android.lifecycle.HiltViewModel @HiltViewModel class SettingsViewModel @javax.inject.Inject constructor() : - ViewModelBase(SettingsScreenState("default string")) { + ViewModelBase(SettingsScreenState()) { } \ No newline at end of file diff --git a/wallenc-uml.gaphor b/wallenc-uml.gaphor index 1d955c1..d76cc4b 100644 --- a/wallenc-uml.gaphor +++ b/wallenc-uml.gaphor @@ -2492,7 +2492,7 @@ existing classes or even new classes with specific responsibilities. localVault -StateFlow<IVault> +IVault