Skip to content

Commit

Permalink
feat(wallet): Added link to charge up money
Browse files Browse the repository at this point in the history
  • Loading branch information
Lastaapps committed Jan 20, 2024
1 parent e6138f9 commit a610daf
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023, Petr Laštovička as Lasta apps, All rights reserved
* Copyright 2024, Petr Laštovička as Lasta apps, All rights reserved
*
* This file is part of Menza.
*
Expand Down Expand Up @@ -36,13 +36,15 @@ import cz.lastaapps.core.ui.vm.StateViewModel
import cz.lastaapps.core.ui.vm.VMContext
import cz.lastaapps.core.ui.vm.VMState
import cz.lastaapps.core.util.extensions.localLogger
import cz.lastaapps.core.util.providers.LinkOpener
import kotlinx.coroutines.flow.mapLatest

internal class AgataWalletViewModel(
vmContext: VMContext,
private val walletGetBalanceUC: WalletGetBalanceUC,
private val walletRefreshUC: WalletRefreshUC,
private val walletLogoutUC: WalletLogoutUC,
private val openLink: LinkOpener,
) : StateViewModel<AgataWalletState>(AgataWalletState(), vmContext),
Appearing, ErrorHolder {
override var hasAppeared: Boolean = false
Expand Down Expand Up @@ -90,6 +92,11 @@ internal class AgataWalletViewModel(
}
}

fun onOpenWeb() {
openLink.openLink("https://agata.suz.cvut.cz/jidelnicky/stravnik.php")
.onLeft { updateState { copy(error = it) } }
}

@Composable
override fun getError(): DomainError? = flowState.value.error

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.Logout
import androidx.compose.material.icons.outlined.Money
import androidx.compose.material.icons.rounded.Warning
import androidx.compose.material3.Button
import androidx.compose.material3.CircularProgressIndicator
Expand Down Expand Up @@ -76,6 +77,7 @@ internal fun AgataWalletButton(
isWarning = state.isWarning,
onShowLoginDialog = onShowLoginDialog,
onReload = viewModel::refresh,
onOpenWeb = viewModel::onOpenWeb,
onLogout = viewModel::logout,
modifier = modifier,
)
Expand All @@ -88,6 +90,7 @@ internal fun AgataWalletButton(
isWarning: Boolean,
onShowLoginDialog: () -> Unit,
onReload: () -> Unit,
onOpenWeb: () -> Unit,
onLogout: () -> Unit,
modifier: Modifier = Modifier,
) = Column(
Expand Down Expand Up @@ -123,6 +126,7 @@ internal fun AgataWalletButton(
isLoading = isLoading,
isWarning = isWarning,
onReload = onReload,
onOpenWeb = onOpenWeb,
onLogout = onLogout,
)
}
Expand All @@ -138,6 +142,7 @@ private fun ColumnScope.ButtonContent(
isLoading: Boolean,
isWarning: Boolean,
onReload: () -> Unit,
onOpenWeb: () -> Unit,
onLogout: () -> Unit,
modifier: Modifier = Modifier,
) {
Expand Down Expand Up @@ -178,6 +183,23 @@ private fun ColumnScope.ButtonContent(
}
}

TooltipBox(
positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(),
tooltip = {
PlainTooltip {
Text(text = stringResource(id = R.string.wallet_web))
}
},
state = rememberTooltipState(isPersistent = true),
) {
IconButton(onClick = onOpenWeb) {
Icon(
Icons.Outlined.Money,
contentDescription = stringResource(id = R.string.wallet_web),
)
}
}

TooltipBox(
positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(),
tooltip = {
Expand Down Expand Up @@ -211,6 +233,7 @@ private fun AgataWalletButtonLogInPreview() = PreviewWrapper {
isWarning = false,
onShowLoginDialog = {},
onReload = {},
onOpenWeb = {},
onLogout = {},
)
}
Expand All @@ -224,6 +247,7 @@ private fun AgataWalletButtonPreview() = PreviewWrapper {
isWarning = true,
onShowLoginDialog = {},
onReload = {},
onOpenWeb = {},
onLogout = {},
)
}
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,7 @@
<string name="wallet_login">Přihlásit</string>
<string name="wallet_logged_in_as">Přihlášen jako: %s</string>
<string name="wallet_logout">Odhlásit</string>
<string name="wallet_web">Otevřít web</string>
<string name="wallet_update_error">Něco se nám pokakalo 💩</string>
<string name="wallet_login_title">Přihlášení do Agáty</string>
<string name="wallet_login_subtitle">Použij svoje ČVUT údaje</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,7 @@
<string name="wallet_login">Login</string>
<string name="wallet_logged_in_as">Logged in as: %s</string>
<string name="wallet_logout">Logout</string>
<string name="wallet_web">Open web</string>
<string name="wallet_update_error">Failed to update balance 💀</string>
<string name="wallet_login_title">Login to Agata</string>
<string name="wallet_login_subtitle">Use your CTU credentials</string>
Expand Down

0 comments on commit a610daf

Please sign in to comment.