diff options
| author | David Göransson <david.goransson@mullvad.net> | 2025-03-21 13:17:16 +0100 |
|---|---|---|
| committer | David Göransson <david.goransson@mullvad.net> | 2025-03-21 13:17:16 +0100 |
| commit | 0f58351bed614746d2d326007e8255d23b1f0893 (patch) | |
| tree | 6ff93224c9d7ebd80c6df42180bcb10d093d9ded /android/app/src | |
| parent | cb13f3a9e30bc3c321b2710ebe5299723c51cea6 (diff) | |
| parent | 10b3a631a691d5565e6d43ed5210f8fed3a2427b (diff) | |
| download | mullvadvpn-0f58351bed614746d2d326007e8255d23b1f0893.tar.xz mullvadvpn-0f58351bed614746d2d326007e8255d23b1f0893.zip | |
Merge branch 'remove-see-full-changelog-button-from-whats-new-view-droid-1816'
Diffstat (limited to 'android/app/src')
4 files changed, 4 insertions, 70 deletions
diff --git a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt index 968f16eb29..4494dadeb9 100644 --- a/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt +++ b/android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt @@ -24,18 +24,8 @@ class ChangelogScreenTest { MockKAnnotations.init(this) } - private fun ComposeContext.initScreen( - state: ChangelogUiState, - onSeeFullChangelog: () -> Unit = {}, - onBackClick: () -> Unit = {}, - ) { - setContentWithTheme { - ChangelogScreen( - state = state, - onSeeFullChangelog = onSeeFullChangelog, - onBackClick = onBackClick, - ) - } + private fun ComposeContext.initScreen(state: ChangelogUiState, onBackClick: () -> Unit = {}) { + setContentWithTheme { ChangelogScreen(state = state, onBackClick = onBackClick) } } @Test diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/UriHandlerExtensions.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/UriHandlerExtensions.kt index 3e0ae8f898..a642dc72fe 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/UriHandlerExtensions.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/UriHandlerExtensions.kt @@ -17,12 +17,6 @@ fun UriHandler.createOpenAccountPageHook(): (WebsiteAuthToken?) -> Unit { } } -@Composable -fun UriHandler.createOpenFullChangeLogHook(): () -> Unit { - val changelogUrl = stringResource(id = R.string.changelog_url) - return { safeOpenUri(changelogUrl) } -} - fun UriHandler.createUriHook(uri: String): () -> Unit = { safeOpenUri(uri) } private fun UriHandler.safeOpenUri(uri: String) { diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreen.kt index 53bf2113a6..61ef8f8611 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreen.kt @@ -1,7 +1,6 @@ package net.mullvad.mullvadvpn.compose.screen import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth @@ -9,15 +8,11 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.automirrored.filled.OpenInNew -import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -26,18 +21,14 @@ import androidx.navigation.NavController import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import net.mullvad.mullvadvpn.R -import net.mullvad.mullvadvpn.compose.button.PrimaryButton import net.mullvad.mullvadvpn.compose.component.NavigateBackIconButton import net.mullvad.mullvadvpn.compose.component.NavigateCloseIconButton import net.mullvad.mullvadvpn.compose.component.ScaffoldWithMediumTopBar import net.mullvad.mullvadvpn.compose.component.drawVerticalScrollbar -import net.mullvad.mullvadvpn.compose.extensions.createOpenFullChangeLogHook import net.mullvad.mullvadvpn.compose.transitions.SlideInFromRightTransition -import net.mullvad.mullvadvpn.compose.util.CollectSideEffectWithLifecycle import net.mullvad.mullvadvpn.lib.theme.AppTheme import net.mullvad.mullvadvpn.lib.theme.Dimens import net.mullvad.mullvadvpn.lib.theme.color.AlphaScrollbar -import net.mullvad.mullvadvpn.viewmodel.ChangeLogSideEffect import net.mullvad.mullvadvpn.viewmodel.ChangelogUiState import net.mullvad.mullvadvpn.viewmodel.ChangelogViewModel import org.koin.androidx.compose.koinViewModel @@ -52,29 +43,15 @@ fun Changelog(navController: NavController) { val uiState = viewModel.uiState.collectAsStateWithLifecycle() - val openAccountPage = LocalUriHandler.current.createOpenFullChangeLogHook() - CollectSideEffectWithLifecycle(viewModel.uiSideEffect) { - when (it) { - is ChangeLogSideEffect.OpenFullChangelog -> openAccountPage() - } - } LaunchedEffect(Unit) { viewModel.dismissChangelogNotification() } - ChangelogScreen( - uiState.value, - onBackClick = navController::navigateUp, - onSeeFullChangelog = viewModel::onSeeFullChangelog, - ) + ChangelogScreen(uiState.value, onBackClick = navController::navigateUp) } data class ChangelogNavArgs(val isModal: Boolean = false) @Composable -fun ChangelogScreen( - state: ChangelogUiState, - onBackClick: () -> Unit, - onSeeFullChangelog: () -> Unit, -) { +fun ChangelogScreen(state: ChangelogUiState, onBackClick: () -> Unit) { ScaffoldWithMediumTopBar( appBarTitle = stringResource(id = R.string.changelog_title), @@ -114,19 +91,6 @@ fun ChangelogScreen( state.changes.forEach { changeItem -> ChangeListItem(text = changeItem) } } } - Box(modifier = Modifier.padding(Dimens.mediumPadding).fillMaxWidth()) { - PrimaryButton( - onClick = onSeeFullChangelog, - text = stringResource(R.string.see_full_changelog), - trailingIcon = { - Icon( - imageVector = Icons.AutoMirrored.Default.OpenInNew, - contentDescription = null, - tint = MaterialTheme.colorScheme.onSurface, - ) - }, - ) - } } } } @@ -158,7 +122,6 @@ private fun PreviewChangelogDialogWithSingleShortItem() { ChangelogScreen( ChangelogUiState(changes = listOf("Item 1"), version = "1111.1"), onBackClick = {}, - onSeeFullChangelog = {}, ) } } @@ -178,7 +141,6 @@ private fun PreviewChangelogDialogWithTwoLongItems() { version = "1111.1", ), onBackClick = {}, - onSeeFullChangelog = {}, ) } } @@ -205,7 +167,6 @@ private fun PreviewChangelogDialogWithTenShortItems() { version = "1111.1", ), onBackClick = {}, - onSeeFullChangelog = {}, ) } } diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt index 0feb6ecbd3..e6289399f7 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt @@ -5,10 +5,8 @@ import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.ramcosta.composedestinations.generated.destinations.ChangelogDestination -import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.launch import kotlinx.parcelize.Parcelize import net.mullvad.mullvadvpn.lib.model.BuildVersion @@ -20,8 +18,6 @@ class ChangelogViewModel( buildVersion: BuildVersion, ) : ViewModel() { private val navArgs = ChangelogDestination.argsFrom(savedStateHandle) - private val _uiSideEffect = Channel<ChangeLogSideEffect>() - val uiSideEffect = _uiSideEffect.receiveAsFlow() val uiState: StateFlow<ChangelogUiState> = MutableStateFlow( @@ -34,13 +30,6 @@ class ChangelogViewModel( fun dismissChangelogNotification() = viewModelScope.launch { changelogRepository.setDismissNewChangelogNotification() } - - fun onSeeFullChangelog() = - viewModelScope.launch { _uiSideEffect.send(ChangeLogSideEffect.OpenFullChangelog) } -} - -sealed interface ChangeLogSideEffect { - object OpenFullChangelog : ChangeLogSideEffect } @Parcelize |
