summaryrefslogtreecommitdiffhomepage
path: root/android/app
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2025-03-21 13:17:16 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-03-21 13:17:16 +0100
commit0f58351bed614746d2d326007e8255d23b1f0893 (patch)
tree6ff93224c9d7ebd80c6df42180bcb10d093d9ded /android/app
parentcb13f3a9e30bc3c321b2710ebe5299723c51cea6 (diff)
parent10b3a631a691d5565e6d43ed5210f8fed3a2427b (diff)
downloadmullvadvpn-0f58351bed614746d2d326007e8255d23b1f0893.tar.xz
mullvadvpn-0f58351bed614746d2d326007e8255d23b1f0893.zip
Merge branch 'remove-see-full-changelog-button-from-whats-new-view-droid-1816'
Diffstat (limited to 'android/app')
-rw-r--r--android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreenTest.kt14
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/extensions/UriHandlerExtensions.kt6
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/ChangelogScreen.kt43
-rw-r--r--android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/ChangelogViewModel.kt11
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