[PM-19624] Migrate DataState to core module (#4930)

This commit is contained in:
Patrick Honkonen
2025-03-28 09:29:39 -04:00
committed by GitHub
parent 6340c2dd04
commit d62e3164dc
51 changed files with 68 additions and 111 deletions

View File

@@ -10,7 +10,7 @@ import com.bitwarden.authenticator.data.authenticator.repository.model.SharedVer
import com.bitwarden.authenticator.data.authenticator.repository.model.TotpCodeResult
import com.bitwarden.authenticator.data.platform.manager.imports.model.ImportDataResult
import com.bitwarden.authenticator.data.platform.manager.imports.model.ImportFileFormat
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.ui.platform.feature.settings.export.model.ExportVaultFormat
import com.bitwarden.authenticator.ui.platform.manager.intent.IntentManager
import kotlinx.coroutines.flow.Flow

View File

@@ -23,7 +23,7 @@ import com.bitwarden.authenticator.data.platform.manager.imports.model.ImportDat
import com.bitwarden.authenticator.data.platform.manager.imports.model.ImportFileFormat
import com.bitwarden.authenticator.data.platform.manager.model.FlagKey
import com.bitwarden.authenticator.data.platform.repository.SettingsRepository
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.data.platform.repository.util.bufferedMutableSharedFlow
import com.bitwarden.authenticator.data.platform.repository.util.map
import com.bitwarden.authenticator.ui.platform.feature.settings.export.model.ExportVaultFormat

View File

@@ -1,48 +0,0 @@
package com.bitwarden.authenticator.data.platform.repository.model
/**
* A data state that can be used as a template for data in the repository layer.
*/
sealed class DataState<out T> {
/**
* Data that is being wrapped by [DataState].
*/
abstract val data: T?
/**
* Loading state that has no data is available.
*/
data object Loading : DataState<Nothing>() {
override val data: Nothing? get() = null
}
/**
* Loaded state that has data available.
*/
data class Loaded<T>(
override val data: T,
) : DataState<T>()
/**
* Pending state that has data available.
*/
data class Pending<T>(
override val data: T,
) : DataState<T>()
/**
* Error state that may have data available.
*/
data class Error<T>(
val error: Throwable,
override val data: T? = null,
) : DataState<T>()
/**
* No network state that may have data is available.
*/
data class NoNetwork<T>(
override val data: T? = null,
) : DataState<T>()
}

View File

@@ -1,6 +1,6 @@
package com.bitwarden.authenticator.data.platform.repository.util
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.transformWhile

View File

@@ -11,7 +11,7 @@ import com.bitwarden.authenticator.data.authenticator.datasource.disk.entity.Aut
import com.bitwarden.authenticator.data.authenticator.datasource.disk.entity.AuthenticatorItemType
import com.bitwarden.authenticator.data.authenticator.repository.AuthenticatorRepository
import com.bitwarden.authenticator.data.authenticator.repository.model.CreateItemResult
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.data.platform.repository.util.takeUntilLoaded
import com.bitwarden.authenticator.ui.authenticator.feature.edititem.AuthenticatorRefreshPeriodOption.entries
import com.bitwarden.authenticator.ui.authenticator.feature.edititem.EditItemState.Companion.MAX_ALLOWED_CODE_DIGITS

View File

@@ -19,7 +19,7 @@ import com.bitwarden.authenticator.data.platform.manager.BitwardenEncodingManage
import com.bitwarden.authenticator.data.platform.manager.clipboard.BitwardenClipboardManager
import com.bitwarden.authenticator.data.platform.manager.imports.model.GoogleAuthenticatorProtos
import com.bitwarden.authenticator.data.platform.repository.SettingsRepository
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.SharedCodesDisplayState
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.VaultDropdownMenuAction
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.VerificationCodeDisplayItem

View File

@@ -9,7 +9,7 @@ import com.bitwarden.authenticator.data.authenticator.repository.AuthenticatorRe
import com.bitwarden.authenticator.data.authenticator.repository.model.SharedVerificationCodesState
import com.bitwarden.authenticator.data.authenticator.repository.util.itemsOrEmpty
import com.bitwarden.authenticator.data.platform.manager.clipboard.BitwardenClipboardManager
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.data.platform.util.SpecialCharWithPrecedenceComparator
import com.bitwarden.authenticator.ui.platform.base.BaseViewModel
import com.bitwarden.authenticator.ui.platform.base.util.Text

View File

@@ -14,7 +14,7 @@ import com.bitwarden.authenticator.data.platform.manager.FeatureFlagManager
import com.bitwarden.authenticator.data.platform.manager.imports.ImportManager
import com.bitwarden.authenticator.data.platform.manager.model.FlagKey
import com.bitwarden.authenticator.data.platform.repository.SettingsRepository
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticatorbridge.manager.AuthenticatorBridgeManager
import com.bitwarden.authenticatorbridge.manager.model.AccountSyncState
import com.bitwarden.authenticatorbridge.model.SharedAccountData

View File

@@ -10,7 +10,7 @@ import com.bitwarden.authenticator.data.authenticator.repository.model.SharedVer
import com.bitwarden.authenticator.data.platform.manager.BitwardenEncodingManager
import com.bitwarden.authenticator.data.platform.manager.clipboard.BitwardenClipboardManager
import com.bitwarden.authenticator.data.platform.repository.SettingsRepository
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.SharedCodesDisplayState
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.VaultDropdownMenuAction
import com.bitwarden.authenticator.ui.authenticator.feature.itemlisting.model.VerificationCodeDisplayItem

View File

@@ -9,7 +9,7 @@ import com.bitwarden.authenticator.data.authenticator.repository.model.Authentic
import com.bitwarden.authenticator.data.authenticator.repository.model.SharedVerificationCodesState
import com.bitwarden.authenticator.data.authenticator.repository.util.itemsOrEmpty
import com.bitwarden.authenticator.data.platform.manager.clipboard.BitwardenClipboardManager
import com.bitwarden.authenticator.data.platform.repository.model.DataState
import com.bitwarden.core.data.repository.model.DataState
import com.bitwarden.authenticator.ui.platform.base.BaseViewModelTest
import com.bitwarden.authenticator.ui.platform.components.model.IconData
import io.mockk.every