diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt index 99c5bd05f9..d769c0a3d3 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreen.kt @@ -1,6 +1,5 @@ package com.x8bit.bitwarden.ui.platform.feature.settings.about -import android.widget.Toast import androidx.compose.foundation.clickable import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement @@ -81,8 +80,11 @@ fun AboutScreen( intentManager.launchUri("https://vault.bitwarden.com".toUri()) } - is AboutEvent.ShowToast -> { - Toast.makeText(context, event.text(resources), Toast.LENGTH_SHORT).show() + AboutEvent.NavigateToRateApp -> { + intentManager.launchUri( + uri = + "https://play.google.com/store/apps/details?id=com.x8bit.bitwarden".toUri(), + ) } } } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModel.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModel.kt index c2c08ef344..127ef32e96 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModel.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModel.kt @@ -58,8 +58,7 @@ class AboutViewModel @Inject constructor( } private fun handleRateAppClick() { - // TODO: BIT-748 Launch the rate your app UI. - sendEvent(AboutEvent.ShowToast(text = "Navigate to rate the app.".asText())) + sendEvent(AboutEvent.NavigateToRateApp) } private fun handleSubmitCrashLogsClick(action: AboutAction.SubmitCrashLogsClick) { @@ -120,11 +119,9 @@ sealed class AboutEvent { data object NavigateToWebVault : AboutEvent() /** - * Displays a toast with the given [Text]. + * Navigates to rate the app. */ - data class ShowToast( - val text: Text, - ) : AboutEvent() + data object NavigateToRateApp : AboutEvent() } /** diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt index 02fccda593..b8e80c21b3 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutScreenTest.kt @@ -142,6 +142,16 @@ class AboutScreenTest : BaseComposeTest() { } } + @Test + fun `on NavigateToAboutSend should call launchUri on intentManager`() { + mutableEventFlow.tryEmit(AboutEvent.NavigateToRateApp) + verify { + intentManager.launchUri( + "https://play.google.com/store/apps/details?id=com.x8bit.bitwarden".toUri(), + ) + } + } + @Suppress("MaxLineLength") @Test fun `on rate the app click should display confirmation dialog and confirm click should emit RateAppClick`() { diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModelTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModelTest.kt index 3bd5b40981..fb12bd41f8 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModelTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/about/AboutViewModelTest.kt @@ -49,11 +49,11 @@ class AboutViewModelTest : BaseViewModelTest() { } @Test - fun `on RateAppClick should emit ShowToast`() = runTest { + fun `on RateAppClick should emit NavigateToRateApp`() = runTest { val viewModel = createViewModel(DEFAULT_ABOUT_STATE) viewModel.eventFlow.test { viewModel.trySendAction(AboutAction.RateAppClick) - assertEquals(AboutEvent.ShowToast("Navigate to rate the app.".asText()), awaitItem()) + assertEquals(AboutEvent.NavigateToRateApp, awaitItem()) } }