Начат LocalStorage, выкинут мусор из UiState

This commit is contained in:
Roman Pytkov
2024-12-17 23:41:05 +03:00
parent b5462dfd2f
commit 576fc4020c
26 changed files with 284 additions and 35 deletions

View File

@@ -1,3 +1,3 @@
package com.github.nullptroma.wallenc.presentation.screens.main
data class MainScreenState(val value: String)
class MainScreenState

View File

@@ -12,7 +12,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel
@HiltViewModel
class MainViewModel @javax.inject.Inject constructor(savedStateHandle: SavedStateHandle) :
ViewModelBase<MainScreenState>(MainScreenState("default string")) {
ViewModelBase<MainScreenState>(MainScreenState()) {
@OptIn(SavedStateHandleSaveableApi::class)
var routes by savedStateHandle.saveable {

View File

@@ -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())
}
}
}

View File

@@ -1,3 +1,5 @@
package com.github.nullptroma.wallenc.presentation.screens.main.screens.local.vault
data class LocalVaultScreenState(val value: String)
import com.github.nullptroma.wallenc.domain.models.IStorage
data class LocalVaultScreenState(val storagesList: List<IStorage>)

View File

@@ -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>(LocalVaultScreenState("default")) {
class LocalVaultViewModel @Inject constructor(private val getAllRawStoragesUseCase: GetAllRawStoragesUseCase) :
ViewModelBase<LocalVaultScreenState>(LocalVaultScreenState(listOf())) {
init {
viewModelScope.launch {
getAllRawStoragesUseCase.localStorage.storages.collect {
mutableUiState.value = mutableUiState.value.copy(
storagesList = it
)
}
}
}
}

View File

@@ -1,3 +1,3 @@
package com.github.nullptroma.wallenc.presentation.screens.main.screens.remotes
data class RemoteVaultsScreenState(val value: String)
class RemoteVaultsScreenState

View File

@@ -6,6 +6,6 @@ import javax.inject.Inject
@HiltViewModel
class RemoteVaultsViewModel @Inject constructor() :
ViewModelBase<RemoteVaultsScreenState>(RemoteVaultsScreenState("")) {
ViewModelBase<RemoteVaultsScreenState>(RemoteVaultsScreenState()) {
}

View File

@@ -1,3 +1,3 @@
package com.github.nullptroma.wallenc.presentation.screens.settings
data class SettingsScreenState(val value: String)
class SettingsScreenState

View File

@@ -5,5 +5,5 @@ import dagger.hilt.android.lifecycle.HiltViewModel
@HiltViewModel
class SettingsViewModel @javax.inject.Inject constructor() :
ViewModelBase<SettingsScreenState>(SettingsScreenState("default string")) {
ViewModelBase<SettingsScreenState>(SettingsScreenState()) {
}