From 1e3b3af5e458accc9b05c71335605efbfb965ed1 Mon Sep 17 00:00:00 2001 From: Stefan Klug Date: Fri, 9 Aug 2024 14:31:59 +0200 Subject: [PATCH] KM-5242: Hide login with purchase receipt button on non-Google builds --- features/login/build.gradle.kts | 3 +++ .../java/com/kape/login/di/LoginModule.kt | 2 +- .../com/kape/login/ui/mobile/LoginScreen.kt | 26 ++++++++++--------- .../com/kape/login/ui/vm/LoginViewModel.kt | 3 +++ 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/features/login/build.gradle.kts b/features/login/build.gradle.kts index 4110ce15..5f3e73d0 100644 --- a/features/login/build.gradle.kts +++ b/features/login/build.gradle.kts @@ -57,10 +57,13 @@ dependencies { coreLibraryDesugaring(desugarJdkLibs) implementAccount() + implementation(project(":core:payments")) implementation(project(":core:router")) implementation(project(":core:utils")) implementation(project(":core:vpnconnect")) + + implementation(project(":capabilities:buildconfig")) implementation(project(":capabilities:ui")) // prefs diff --git a/features/login/src/main/java/com/kape/login/di/LoginModule.kt b/features/login/src/main/java/com/kape/login/di/LoginModule.kt index 6b8aa4ca..1caa3063 100644 --- a/features/login/src/main/java/com/kape/login/di/LoginModule.kt +++ b/features/login/src/main/java/com/kape/login/di/LoginModule.kt @@ -45,6 +45,6 @@ private val localLoginModule = module { single { GetUserLoggedInUseCase(get()) } viewModel { LoginUsernameViewModel(get(), get()) } viewModel { LoginPasswordViewModel(get()) } - viewModel { LoginViewModel(get(), get(), get(), get(), get()) } + viewModel { LoginViewModel(get(), get(), get(), get(), get(), get()) } viewModel { LoginWithEmailViewModel(get(), get()) } } \ No newline at end of file diff --git a/features/login/src/main/java/com/kape/login/ui/mobile/LoginScreen.kt b/features/login/src/main/java/com/kape/login/ui/mobile/LoginScreen.kt index 8ab1782a..6e6fc9f8 100644 --- a/features/login/src/main/java/com/kape/login/ui/mobile/LoginScreen.kt +++ b/features/login/src/main/java/com/kape/login/ui/mobile/LoginScreen.kt @@ -148,18 +148,20 @@ fun LoginScreen(navController: NavController) = Screen { ) } - Text( - text = stringResource(id = com.kape.ui.R.string.login_with_receipt).toUpperCase( - Locale.current, - ), - color = LocalColors.current.primary, - modifier = Modifier - .align(CenterHorizontally) - .padding(16.dp, 16.dp, 16.dp, 8.dp) - .clickable { - viewModel.loginWithReceipt(currentContext.packageName) - }, - ) + if (viewModel.shouldShowLoginWithReceiptButton) { + Text( + text = stringResource(id = com.kape.ui.R.string.login_with_receipt).toUpperCase( + Locale.current, + ), + color = LocalColors.current.primary, + modifier = Modifier + .align(CenterHorizontally) + .padding(16.dp, 16.dp, 16.dp, 8.dp) + .clickable { + viewModel.loginWithReceipt(currentContext.packageName) + }, + ) + } Text( text = stringResource(id = com.kape.ui.R.string.login_with_magic_link).toUpperCase( Locale.current, diff --git a/features/login/src/main/java/com/kape/login/ui/vm/LoginViewModel.kt b/features/login/src/main/java/com/kape/login/ui/vm/LoginViewModel.kt index a2b32744..156f1463 100644 --- a/features/login/src/main/java/com/kape/login/ui/vm/LoginViewModel.kt +++ b/features/login/src/main/java/com/kape/login/ui/vm/LoginViewModel.kt @@ -2,6 +2,7 @@ package com.kape.login.ui.vm import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.kape.buildconfig.data.BuildConfigProvider import com.kape.login.domain.mobile.GetUserLoggedInUseCase import com.kape.login.domain.mobile.LoginUseCase import com.kape.login.utils.FAILED @@ -26,12 +27,14 @@ class LoginViewModel( private val userLoggedInUseCase: GetUserLoggedInUseCase, private val vpnSubscriptionPaymentProvider: VpnSubscriptionPaymentProvider, private val router: Router, + private val buildConfigProvider: BuildConfigProvider, networkConnectionListener: NetworkConnectionListener, ) : ViewModel(), KoinComponent { private val _state = MutableStateFlow(IDLE) val loginState: StateFlow = _state val isConnected = networkConnectionListener.isConnected + val shouldShowLoginWithReceiptButton: Boolean = buildConfigProvider.isGoogleFlavor() private lateinit var packageName: String