BIT-973 Get the vault URL from the repo. (#911)

This commit is contained in:
Oleg Semenenko 2024-01-31 19:27:44 -06:00 committed by Álison Fernandes
parent 88a74d75ef
commit ca0a38d3fa
4 changed files with 30 additions and 17 deletions

View file

@ -62,10 +62,12 @@ fun AboutScreen(
intentManager: IntentManager = LocalIntentManager.current,
) {
val state by viewModel.stateFlow.collectAsStateWithLifecycle()
val context = LocalContext.current
val resources = context.resources
EventsEffect(viewModel = viewModel) { event ->
when (event) {
is AboutEvent.NavigateToWebVault -> {
intentManager.launchUri(event.vaultUrl.toUri())
}
AboutEvent.NavigateBack -> onNavigateBack.invoke()
AboutEvent.NavigateToHelpCenter -> {
@ -76,10 +78,6 @@ fun AboutScreen(
intentManager.launchUri("https://bitwarden.com/help/about-organizations".toUri())
}
AboutEvent.NavigateToWebVault -> {
intentManager.launchUri("https://vault.bitwarden.com".toUri())
}
AboutEvent.NavigateToRateApp -> {
intentManager.launchUri(
uri =
@ -181,7 +179,7 @@ private fun ContentColumn(
BitwardenExternalLinkRow(
text = stringResource(id = R.string.learn_org),
onConfirmClick = onLearnAboutOrgsClick,
dialogTitle = stringResource(id = R.string.continue_to_web_app),
dialogTitle = stringResource(id = R.string.continue_to_x, "bitwarden.com"),
dialogMessage = stringResource(
id = R.string.learn_about_organizations_description_long,
),

View file

@ -7,7 +7,8 @@ import com.x8bit.bitwarden.BuildConfig
import com.x8bit.bitwarden.R
import com.x8bit.bitwarden.data.platform.manager.CrashLogsManager
import com.x8bit.bitwarden.data.platform.manager.clipboard.BitwardenClipboardManager
import com.x8bit.bitwarden.data.platform.repository.SettingsRepository
import com.x8bit.bitwarden.data.platform.repository.EnvironmentRepository
import com.x8bit.bitwarden.data.platform.repository.util.baseWebVaultUrlOrDefault
import com.x8bit.bitwarden.data.platform.util.isFdroid
import com.x8bit.bitwarden.ui.platform.base.BaseViewModel
import com.x8bit.bitwarden.ui.platform.base.util.Text
@ -32,8 +33,8 @@ class AboutViewModel @Inject constructor(
private val savedStateHandle: SavedStateHandle,
private val clipboardManager: BitwardenClipboardManager,
private val clock: Clock,
private val settingsRepository: SettingsRepository,
private val crashLogsManager: CrashLogsManager,
private val environmentRepository: EnvironmentRepository,
) : BaseViewModel<AboutState, AboutEvent, AboutAction>(
initialState = savedStateHandle[KEY_STATE] ?: createInitialState(
clock = clock,
@ -86,7 +87,11 @@ class AboutViewModel @Inject constructor(
}
private fun handleWebVaultClick() {
sendEvent(AboutEvent.NavigateToWebVault)
sendEvent(
AboutEvent.NavigateToWebVault(
environmentRepository.environment.environmentUrlData.baseWebVaultUrlOrDefault,
),
)
}
companion object {
@ -142,7 +147,7 @@ sealed class AboutEvent {
/**
* Navigates to the web vault.
*/
data object NavigateToWebVault : AboutEvent()
data class NavigateToWebVault(val vaultUrl: String) : AboutEvent()
/**
* Navigates to rate the app.

View file

@ -144,9 +144,10 @@ class AboutScreenTest : BaseComposeTest() {
@Test
fun `on NavigateToWebVault should call launchUri on IntentManager`() {
mutableEventFlow.tryEmit(AboutEvent.NavigateToWebVault)
val testUrl = "www.testUrl.com"
mutableEventFlow.tryEmit(AboutEvent.NavigateToWebVault(testUrl))
verify {
intentManager.launchUri("https://vault.bitwarden.com".toUri())
intentManager.launchUri(testUrl.toUri())
}
}

View file

@ -5,7 +5,8 @@ import app.cash.turbine.test
import com.x8bit.bitwarden.BuildConfig
import com.x8bit.bitwarden.data.platform.manager.CrashLogsManager
import com.x8bit.bitwarden.data.platform.manager.clipboard.BitwardenClipboardManager
import com.x8bit.bitwarden.data.platform.repository.SettingsRepository
import com.x8bit.bitwarden.data.platform.repository.util.FakeEnvironmentRepository
import com.x8bit.bitwarden.data.platform.repository.util.baseWebVaultUrlOrDefault
import com.x8bit.bitwarden.ui.platform.base.BaseViewModelTest
import com.x8bit.bitwarden.ui.platform.base.util.asText
import com.x8bit.bitwarden.ui.platform.base.util.concat
@ -27,8 +28,8 @@ import java.time.ZoneId
class AboutViewModelTest : BaseViewModelTest() {
private val environmentRepository = FakeEnvironmentRepository()
private val clipboardManager: BitwardenClipboardManager = mockk()
private val settingsRepository: SettingsRepository = mockk()
private val crashLogsManager: CrashLogsManager = mockk {
every { isEnabled } returns false
every { isEnabled = any() } just runs
@ -115,7 +116,15 @@ class AboutViewModelTest : BaseViewModelTest() {
val viewModel = createViewModel(DEFAULT_ABOUT_STATE)
viewModel.eventFlow.test {
viewModel.trySendAction(AboutAction.WebVaultClick)
assertEquals(AboutEvent.NavigateToWebVault, awaitItem())
assertEquals(
AboutEvent.NavigateToWebVault(
vaultUrl = environmentRepository
.environment
.environmentUrlData
.baseWebVaultUrlOrDefault,
),
awaitItem(),
)
}
}
@ -125,7 +134,7 @@ class AboutViewModelTest : BaseViewModelTest() {
savedStateHandle = SavedStateHandle().apply { set("state", state) },
clipboardManager = clipboardManager,
clock = fixedClock,
settingsRepository = settingsRepository,
environmentRepository = environmentRepository,
crashLogsManager = crashLogsManager,
)
}