From f9b7d54a10ed248e978991b325865457bd107180 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 00:12:50 +0300 Subject: [PATCH 1/9] WIP: Donations --- .../ivy/wallet/android/billing/IvyBilling.kt | 14 +++++- .../com/ivy/wallet/ui/donate/DonateEvent.kt | 10 ++++ .../com/ivy/wallet/ui/donate/DonateScreen.kt | 2 + .../com/ivy/wallet/ui/donate/DonateState.kt | 19 +++++++ .../ivy/wallet/ui/donate/DonateViewModel.kt | 49 +++++++++++++++++++ .../ivy/wallet/ui/donate/data/DonateOption.kt | 9 ++++ 6 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt create mode 100644 app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt create mode 100644 app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt create mode 100644 app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt create mode 100644 app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt diff --git a/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt b/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt index 054c483cc8..62053d7d75 100644 --- a/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt +++ b/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt @@ -16,6 +16,12 @@ class IvyBilling( private const val LIFETIME_V1 = "ivy_wallet_lifetime_v1" + const val DONATE_5 = "donate_5" + const val DONATE_10 = "donate_10" + const val DONATE_15 = "donate_15" + const val DONATE_25 = "donate_25" + const val DONATE_50 = "donate_50" + val SUBSCRIPTIONS = listOf( MONTHLY_V1, SIX_MONTH_V1, @@ -23,7 +29,11 @@ class IvyBilling( ) val ONE_TIME_PLANS = listOf( - LIFETIME_V1 + DONATE_5, + DONATE_10, + DONATE_15, + DONATE_25, + DONATE_50 ) } @@ -129,7 +139,7 @@ class IvyBilling( .filterNotNull() } - private suspend fun fetchOneTimePlans(): List { + suspend fun fetchOneTimePlans(): List { val params = SkuDetailsParams.newBuilder() .setSkusList(ONE_TIME_PLANS) .setType(BillingClient.SkuType.INAPP) diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt new file mode 100644 index 0000000000..5021a70509 --- /dev/null +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt @@ -0,0 +1,10 @@ +package com.ivy.wallet.ui.donate + +import com.ivy.wallet.android.billing.Plan +import com.ivy.wallet.ui.RootActivity + +sealed class DonateEvent { + data class Load(val activity: RootActivity) : DonateEvent() + + data class Buy(val plan: Plan) : DonateEvent() +} \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt new file mode 100644 index 0000000000..2596e07018 --- /dev/null +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt @@ -0,0 +1,2 @@ +package com.ivy.wallet.ui.donate + diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt new file mode 100644 index 0000000000..76791a615d --- /dev/null +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt @@ -0,0 +1,19 @@ +package com.ivy.wallet.ui.donate + +import com.ivy.wallet.android.billing.Plan + +sealed class DonateState { + object Loading : DonateState() + + data class Success( + val donate5: Pair, + val donate10: Pair, + val donate15: Pair, + val donate25: Pair, + val donate50: Pair + ) + + data class Error( + val errMsg: String + ) : DonateState() +} \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt new file mode 100644 index 0000000000..9e4d1722e5 --- /dev/null +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt @@ -0,0 +1,49 @@ +package com.ivy.wallet.ui.donate + +import androidx.lifecycle.viewModelScope +import com.ivy.frp.viewmodel.FRPViewModel +import com.ivy.wallet.android.billing.IvyBilling +import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.launch +import javax.inject.Inject + +@HiltViewModel +class DonateViewModel @Inject constructor( + private val ivyBilling: IvyBilling +) : FRPViewModel() { + override val _state: MutableStateFlow = MutableStateFlow(DonateState.Loading) + + override suspend fun handleEvent(event: DonateEvent): suspend () -> DonateState = when (event) { + is DonateEvent.Buy -> TODO() + is DonateEvent.Load -> TODO() + } + + private fun load(event: DonateEvent.Load) = suspend { + ivyBilling.init( + activity = event.activity, + onReady = { + viewModelScope.launch { + val plans = ivyBilling.fetchOneTimePlans() + .mapNotNull { + when (it.sku) { + IvyBilling.DONATE_5 -> "Donate 5" to "Show support" + IvyBilling.DONATE_10 -> "Donate 10" to "Give us hope!" + IvyBilling.DONATE_15 -> "Donate 15" to "" + IvyBilling.DONATE_25 -> "Donate 25" to "Pay our servers for 1 month." + IvyBilling.DONATE_50 -> "Donate 50" to "Pay our accountant for 1 month." + else -> null + } + } + } + }, + onError = { code, msg -> + updateStateNonBlocking { + DonateState.Error(errMsg = "Google Play Billing error: $code - $msg") + } + }, + onPurchases = {} + ) + stateVal() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt b/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt new file mode 100644 index 0000000000..1fc5581395 --- /dev/null +++ b/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt @@ -0,0 +1,9 @@ +package com.ivy.wallet.ui.donate.data + +import com.ivy.wallet.android.billing.Plan + +data class DonateOption( + val title: String, + val desc: String, + val plan: Plan +) \ No newline at end of file From bed24013c777acd19ab1c8c2157c0c011e588725 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 15:04:11 +0300 Subject: [PATCH 2/9] Implement DonateScreen.kt --- .../ivy/wallet/android/billing/IvyBilling.kt | 6 +- .../java/com/ivy/wallet/ui/RootActivity.kt | 2 + .../com/ivy/wallet/ui/donate/DonateEvent.kt | 7 +- .../com/ivy/wallet/ui/donate/DonateScreen.kt | 289 ++++++++++++++++++ .../com/ivy/wallet/ui/donate/DonateState.kt | 10 +- .../ivy/wallet/ui/donate/DonateViewModel.kt | 46 ++- .../ivy/wallet/ui/donate/data/DonateOption.kt | 10 +- .../ivy/wallet/ui/settings/SettingsScreen.kt | 13 + .../drawable-nodpi/donate_illustration.png | Bin 0 -> 165674 bytes app/src/main/res/drawable/ic_back_android.xml | 20 ++ app/src/main/res/drawable/ic_donate_crown.xml | 27 ++ app/src/main/res/drawable/ic_donate_minus.xml | 29 ++ app/src/main/res/drawable/ic_donate_plus.xml | 51 ++++ .../ivy/design/api/systems/IvyWalletDesign.kt | 2 + .../com/ivy/design/l0_system/IvyColors.kt | 1 + .../ivy/design/l5_concept/SettingsScreen.kt | 3 - 16 files changed, 481 insertions(+), 35 deletions(-) create mode 100644 app/src/main/res/drawable-nodpi/donate_illustration.png create mode 100644 app/src/main/res/drawable/ic_back_android.xml create mode 100644 app/src/main/res/drawable/ic_donate_crown.xml create mode 100644 app/src/main/res/drawable/ic_donate_minus.xml create mode 100644 app/src/main/res/drawable/ic_donate_plus.xml delete mode 100644 ivy-design/src/main/java/com/ivy/design/l5_concept/SettingsScreen.kt diff --git a/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt b/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt index 62053d7d75..7d69127f8a 100644 --- a/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt +++ b/app/src/main/java/com/ivy/wallet/android/billing/IvyBilling.kt @@ -16,11 +16,13 @@ class IvyBilling( private const val LIFETIME_V1 = "ivy_wallet_lifetime_v1" + const val DONATE_2 = "donate_2" const val DONATE_5 = "donate_5" const val DONATE_10 = "donate_10" const val DONATE_15 = "donate_15" const val DONATE_25 = "donate_25" const val DONATE_50 = "donate_50" + const val DONATE_100 = "donate_100" val SUBSCRIPTIONS = listOf( MONTHLY_V1, @@ -29,11 +31,13 @@ class IvyBilling( ) val ONE_TIME_PLANS = listOf( + DONATE_2, DONATE_5, DONATE_10, DONATE_15, DONATE_25, - DONATE_50 + DONATE_50, + DONATE_100 ) } diff --git a/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt b/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt index 2f50d7dd7e..a8054b073d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt +++ b/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt @@ -55,6 +55,7 @@ import com.ivy.wallet.ui.budget.BudgetScreen import com.ivy.wallet.ui.category.CategoriesScreen import com.ivy.wallet.ui.charts.ChartsScreen import com.ivy.wallet.ui.csvimport.ImportCSVScreen +import com.ivy.wallet.ui.donate.DonateScreen import com.ivy.wallet.ui.edit.EditTransactionScreen import com.ivy.wallet.ui.experiment.images.ImagesScreen import com.ivy.wallet.ui.loan.LoansScreen @@ -212,6 +213,7 @@ class RootActivity : AppCompatActivity() { is IvyWebView -> WebViewScreen(screen = screen) is ImagesScreen -> ImagesScreen(screen = screen) is ExperimentalScreen -> ExperimentalScreen(screen = screen) + is DonateScreen -> DonateScreen(screen = screen) null -> { } } diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt index 5021a70509..a15cb407c5 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateEvent.kt @@ -1,10 +1,13 @@ package com.ivy.wallet.ui.donate -import com.ivy.wallet.android.billing.Plan import com.ivy.wallet.ui.RootActivity +import com.ivy.wallet.ui.donate.data.DonateOption sealed class DonateEvent { data class Load(val activity: RootActivity) : DonateEvent() - data class Buy(val plan: Plan) : DonateEvent() + data class Donate( + val activity: RootActivity, + val option: DonateOption + ) : DonateEvent() } \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt index 2596e07018..d11e4d1936 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateScreen.kt @@ -1,2 +1,291 @@ package com.ivy.wallet.ui.donate +import androidx.annotation.DrawableRes +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Text +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.google.accompanist.insets.navigationBarsPadding +import com.ivy.design.l0_system.Black +import com.ivy.design.l0_system.UI +import com.ivy.design.l0_system.White +import com.ivy.design.l0_system.style +import com.ivy.design.l1_buildingBlocks.ColumnRoot +import com.ivy.design.l1_buildingBlocks.IvyText +import com.ivy.design.l1_buildingBlocks.SpacerHor +import com.ivy.design.l1_buildingBlocks.SpacerVer +import com.ivy.design.l1_buildingBlocks.data.Background +import com.ivy.design.l2_components.IconButton +import com.ivy.design.utils.padding +import com.ivy.frp.view.FRP +import com.ivy.frp.view.navigation.Screen +import com.ivy.frp.view.navigation.navigation +import com.ivy.wallet.R +import com.ivy.wallet.ui.IvyWalletPreview +import com.ivy.wallet.ui.RootActivity +import com.ivy.wallet.ui.donate.data.DonateOption +import com.ivy.wallet.ui.rootActivity +import com.ivy.wallet.ui.theme.Gradient +import com.ivy.wallet.ui.theme.components.IvyButton + +object DonateScreen : Screen + +@Composable +fun BoxWithConstraintsScope.DonateScreen(screen: DonateScreen) { + FRP( + initialEvent = DonateEvent.Load(rootActivity()) + ) { state, onEvent -> + UI(state, onEvent) + } +} + +@Composable +private fun BoxWithConstraintsScope.UI( + state: DonateState, + onEvent: (DonateEvent) -> Unit +) { + var donateOption by remember { + mutableStateOf(DonateOption.DONATE_5) + } + + Column { + Image( + modifier = Modifier.fillMaxWidth(), + painter = painterResource(id = R.drawable.donate_illustration), + contentDescription = "rocket illustration", + contentScale = ContentScale.FillWidth + ) + + ScreenContent() + } + + ColumnRoot { + SpacerVer(height = 16.dp) + + val nav = navigation() + IconButton( + modifier = Modifier.padding(start = 16.dp), + icon = R.drawable.ic_back_android, + background = Background.Outlined( + width = 2.dp, + color = White, + shape = CircleShape, + padding = padding(all = 12.dp) + ) + ) { + nav.back() + } + + SpacerVer(height = 16.dp) + + IvyText( + modifier = Modifier.padding(start = 24.dp), + text = "Donate", + typo = UI.typo.h2.style( + fontWeight = FontWeight.Bold, + color = White + ) + ) + + SpacerVer(height = 4.dp) + + DonateOptionPicker(option = donateOption) { + donateOption = it + } + } + + val context = LocalView.current.context + DonateButton { + onEvent(DonateEvent.Donate(context as RootActivity, donateOption)) + } +} + +@Composable +private fun DonateOptionPicker( + option: DonateOption, + onSelect: (DonateOption) -> Unit +) { + Row( + verticalAlignment = Alignment.CenterVertically + ) { + SpacerHor(width = 16.dp) + + if (option != DonateOption.DONATE_2) + OptionPickerButton( + icon = R.drawable.ic_donate_minus, + contentDescription = "btn_minus" + ) { + val newOption = when (option) { + DonateOption.DONATE_2 -> DonateOption.DONATE_2 + DonateOption.DONATE_5 -> DonateOption.DONATE_2 + DonateOption.DONATE_10 -> DonateOption.DONATE_5 + DonateOption.DONATE_15 -> DonateOption.DONATE_10 + DonateOption.DONATE_25 -> DonateOption.DONATE_15 + DonateOption.DONATE_50 -> DonateOption.DONATE_25 + DonateOption.DONATE_100 -> DonateOption.DONATE_50 + } + onSelect(newOption) + } + + SpacerHor(width = 12.dp) + + IvyText( + text = "$${ + when (option) { + DonateOption.DONATE_2 -> 2 + DonateOption.DONATE_5 -> 5 + DonateOption.DONATE_10 -> 10 + DonateOption.DONATE_15 -> 15 + DonateOption.DONATE_25 -> 25 + DonateOption.DONATE_50 -> 50 + DonateOption.DONATE_100 -> 100 + } + }", + typo = UI.typo.nH1.style( + fontWeight = FontWeight.Bold, + color = White + ) + ) + + SpacerHor(width = 12.dp) + + if (option != DonateOption.DONATE_100) + OptionPickerButton( + icon = R.drawable.ic_donate_plus, + contentDescription = "btn_plus" + ) { + val newOption = when (option) { + DonateOption.DONATE_2 -> DonateOption.DONATE_5 + DonateOption.DONATE_5 -> DonateOption.DONATE_10 + DonateOption.DONATE_10 -> DonateOption.DONATE_15 + DonateOption.DONATE_15 -> DonateOption.DONATE_25 + DonateOption.DONATE_25 -> DonateOption.DONATE_50 + DonateOption.DONATE_50 -> DonateOption.DONATE_100 + DonateOption.DONATE_100 -> DonateOption.DONATE_100 + } + onSelect(newOption) + } + } +} + +@Composable +private fun OptionPickerButton( + @DrawableRes icon: Int, + contentDescription: String, + onClick: () -> Unit +) { + Image( + modifier = Modifier + .clip(UI.shapes.r4) + .background(Black) + .clickable { onClick() } + .padding(horizontal = 8.dp, vertical = 4.dp), + painter = painterResource(icon), + contentDescription = contentDescription, + ) +} + +@Composable +private fun ScreenContent() { + LazyColumn { + item { + SpacerVer(height = 32.dp) + + IvyText( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp), + text = "It seems like you enjoy free and open-source software. We too!", + typo = UI.typo.b1.style( + color = UI.colors.pureInverse, + fontWeight = FontWeight.Bold + ) + ) + } + + item { + SpacerVer(height = 12.dp) + + IvyText( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 32.dp), + text = "BIG THANKS to all Ivy contributors who made Ivy Wallet possible! That's why we opened a donations channel to sustain and improve our small project.", + typo = UI.typo.b2.style( + color = UI.colors.gray, + fontWeight = FontWeight.Medium + ) + ) + } + + item { + SpacerVer(height = 24.dp) + + Text( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 20.dp) + .background(UI.colors.medium, UI.shapes.r4) + .padding(horizontal = 24.dp, vertical = 16.dp), + text = "If you want to support us feel free to donate whatever amount you're comfortable with - it all helps! (local taxes may apply)".uppercase(), + style = UI.typo.c.style( + fontWeight = FontWeight.Bold, + color = UI.colors.red1Inverse + ) + ) + } + + item { + SpacerVer(height = 120.dp) //scroll hack + } + } +} + +@Composable +private fun BoxWithConstraintsScope.DonateButton( + onClick: () -> Unit +) { + IvyButton( + modifier = Modifier + .align(Alignment.BottomCenter) + .fillMaxWidth() + .navigationBarsPadding( + bottom = true, start = false, end = false + ) + .padding(horizontal = 20.dp) + .padding(bottom = 16.dp), + iconStart = R.drawable.ic_donate_crown, + wrapContentMode = false, + iconTint = UI.colors.pure, + iconEdgePadding = 16.dp, + text = "Donate", + backgroundGradient = Gradient.solid(UI.colors.pureInverse), + textStyle = UI.typo.b1.style( + fontWeight = FontWeight.Bold, + color = UI.colors.pure + ) + ) { + onClick() + } +} + +@Preview +@Composable +private fun Preview() { + IvyWalletPreview { + UI(state = DonateState.Success, onEvent = {}) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt index 76791a615d..2f135cc90e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateState.kt @@ -1,17 +1,9 @@ package com.ivy.wallet.ui.donate -import com.ivy.wallet.android.billing.Plan - sealed class DonateState { object Loading : DonateState() - data class Success( - val donate5: Pair, - val donate10: Pair, - val donate15: Pair, - val donate25: Pair, - val donate50: Pair - ) + object Success : DonateState() data class Error( val errMsg: String diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt index 9e4d1722e5..1b0931b7d9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt @@ -1,8 +1,11 @@ package com.ivy.wallet.ui.donate import androidx.lifecycle.viewModelScope +import com.ivy.frp.then import com.ivy.frp.viewmodel.FRPViewModel import com.ivy.wallet.android.billing.IvyBilling +import com.ivy.wallet.android.billing.Plan +import com.ivy.wallet.ui.donate.data.DonateOption import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch @@ -14,9 +17,11 @@ class DonateViewModel @Inject constructor( ) : FRPViewModel() { override val _state: MutableStateFlow = MutableStateFlow(DonateState.Loading) + val plans = mutableListOf() + override suspend fun handleEvent(event: DonateEvent): suspend () -> DonateState = when (event) { - is DonateEvent.Buy -> TODO() - is DonateEvent.Load -> TODO() + is DonateEvent.Load -> load(event) + is DonateEvent.Donate -> donate(event) } private fun load(event: DonateEvent.Load) = suspend { @@ -24,17 +29,9 @@ class DonateViewModel @Inject constructor( activity = event.activity, onReady = { viewModelScope.launch { - val plans = ivyBilling.fetchOneTimePlans() - .mapNotNull { - when (it.sku) { - IvyBilling.DONATE_5 -> "Donate 5" to "Show support" - IvyBilling.DONATE_10 -> "Donate 10" to "Give us hope!" - IvyBilling.DONATE_15 -> "Donate 15" to "" - IvyBilling.DONATE_25 -> "Donate 25" to "Pay our servers for 1 month." - IvyBilling.DONATE_50 -> "Donate 50" to "Pay our accountant for 1 month." - else -> null - } - } + plans.clear() + plans.addAll(ivyBilling.fetchOneTimePlans()) + updateStateNonBlocking { DonateState.Success } } }, onError = { code, msg -> @@ -46,4 +43,27 @@ class DonateViewModel @Inject constructor( ) stateVal() } + + private fun donate(event: DonateEvent.Donate) = suspend { + when (event.option) { + DonateOption.DONATE_2 -> IvyBilling.DONATE_2 + DonateOption.DONATE_5 -> IvyBilling.DONATE_5 + DonateOption.DONATE_10 -> IvyBilling.DONATE_10 + DonateOption.DONATE_15 -> IvyBilling.DONATE_15 + DonateOption.DONATE_25 -> IvyBilling.DONATE_25 + DonateOption.DONATE_50 -> IvyBilling.DONATE_50 + DonateOption.DONATE_100 -> IvyBilling.DONATE_100 + } + } then { targetSku -> + plans.find { it.sku == targetSku } + } then { plan -> + if (plan != null) { + ivyBilling.buy( + activity = event.activity, + skuToBuy = plan.skuDetails, + oldSubscriptionPurchaseToken = null + ) + } + stateVal() + } } \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt b/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt index 1fc5581395..06bb421daa 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/data/DonateOption.kt @@ -1,9 +1,5 @@ package com.ivy.wallet.ui.donate.data -import com.ivy.wallet.android.billing.Plan - -data class DonateOption( - val title: String, - val desc: String, - val plan: Plan -) \ No newline at end of file +enum class DonateOption { + DONATE_2, DONATE_5, DONATE_10, DONATE_15, DONATE_25, DONATE_50, DONATE_100 +} \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt index 412bac75d1..3ccb7c33c1 100644 --- a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt @@ -43,6 +43,7 @@ import com.ivy.wallet.domain.data.AuthProviderType import com.ivy.wallet.domain.data.IvyCurrency import com.ivy.wallet.domain.data.core.User import com.ivy.wallet.ui.* +import com.ivy.wallet.ui.donate.DonateScreen import com.ivy.wallet.ui.settings.experimental.ExperimentalScreen import com.ivy.wallet.ui.theme.* import com.ivy.wallet.ui.theme.components.IvyButton @@ -347,6 +348,18 @@ private fun BoxWithConstraintsScope.UI( ) { ivyActivity.shareIvyWallet() } + + Spacer(Modifier.height(12.dp)) + + val nav = navigation() + SettingsPrimaryButton( + icon = R.drawable.ic_donate_crown, + text = "Donate", + iconPadding = 8.dp, + backgroundGradient = Gradient.solid(Orange2) + ) { + nav.navigateTo(DonateScreen) + } } item { diff --git a/app/src/main/res/drawable-nodpi/donate_illustration.png b/app/src/main/res/drawable-nodpi/donate_illustration.png new file mode 100644 index 0000000000000000000000000000000000000000..b89131be8c280b039d80b0fe7522a7b49b4a0b51 GIT binary patch literal 165674 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]#yKI4cP1BC+N$!63x zE2a{>@gx3kWrwDG>>b8jC3IHaJalaBRsRXC6K08LF-x@ZiNsR4Q?63jUjF@XW;%1Z z=J4-(uDRp(*Sz?5-tn3re*f=%-AXVkDHSUl>rA6@8HQlI;;|M`IQBf&v#5nauA(~T@Y=gry zIkxl!y3o#zHe$SCBibHo>ls&un`4*2t*-dt*wL4@VzsKVj zUuwJOz0CJ-{s%!@$;hVA-W$mP(@RzCnzQ=)fJ}wcs?U1tqt4i&^=$;pn+OsN=pxYr zq^Zy+coxwS>Sk=njp)!fu9GKET zqx`?k2*7?@ri1j{{gEUcl;5#++U@qQKakHqJ&@0n{^_6j>iD`#FC%yN__7lX)x{9J zUPog&5#FXcV*L2Xf+>4O5S2)c`UTTWgU&+ThWsU#ENcW2HZncNx`3u=>$e4r^EiYR-&Q)ZqmTVRW>k z`nDs4Q)4e+;*Al94<)~L&;j#EaYdXWn00*idk~3iT~Q9e)K*&*S@uvv~b91ptfE@D!}(Teh~9J{%>ahSGO$@nLYi< zPdyOFQ>=~CQV!Y8AKvtdQ7bfgZybo`e7oqp^M~y;Qkh9+YO=*GhyFd`KQaH}uk-lb zw-u>a1#JbJP8ag#ylJ|aqEb}JSP^gASdLzF&ROfLcCNdTJeBr4#Wvg}L$;mmz^a1qseGms)LZZ%C>D zw;02aitzlCX)t8fFKK+0>fzW(aDU6&4*#BfAfFdM=c-@+$cx|gPQT{V?dTpAw_Z7% z877;+D^cng**YKUAUPWH+8*OsEGQOQy3eVmC5=Foaj1~c0ea;KNk;2Bg{Hov0c33{ z0j3C!JTp|iaKNi6u+`bp2~wCGaM(5}6mrD49{5ZP&8|ZJaeJa5+jjPxgu}?ysK+MZ z@YHq!ea1!GLeR%Qq@ziXA*rZ5g8=g`v&ex>mvMa-Vk>Za4k`#LhI@fD%jSuh*V1vz zJeD7GJALQ+Yn#W)vmSFvCt2gNfmNcL?L&u9Wos5pHO7R1%=3rCU;AzDmpsPKSWcW} zalttjk2=rdqVvqoJ<(dQvv$kN(9AA8kje$;+2^0U+&=#aPq5Gb{QP(F33kz?pLaNa z-gUh8 zh&8K#%ev07a`MrSwtH{Ap{lg8?n{(PpH}~`;c(aXvHVC#0~SR2|7@E95HmQqKtO~% zvf*uZ7aUVv4f+f}L+Tsgu*o~k8! zn#p&JMVK)Rl?Me&NGD0+pcPrVUMjBToq%b8VI)ccZiGM^BZ$1t>-hpl`lJr)=Fv=i z2+?68N@Z65yaGV=QC!CBUzE&YQ*hx@S%nv4iZux@YxdGE`PggRNk4;+_&+0z7sJ^9 zzr8n)w(P9#1NT1ny;q~8S5iqrLPHf`jKm-bff;O23EVbzH&Yzj={UBrJ6>+D)rrAL zujG$*5G?mfukLh$oWIhUfUMQaP8=IZx*Y~X$sOBZ8;~$!20bxIps7kjjqlyF`+VQG z$M2kT?|r2bDoJ-sukO9)eCHeY-oL%~HynQ|HDdr|BRZP0@-O}@#jLNL)N0Ht1%Pe9kM4{s8^GHnj!gFX?W*{Sjm zj@dwd#yXa(k=MMD*iUMD!BD~cKGzE6l~7E@L8V_XI>PANRBEDqW&Do@Y@p?e4ce1` z76faa2xt+Ra{+XO(h)m1ci{8B*Zt`q!TY~`SE*!(VMS&wC~qemND^`ihjnx1DIuD2 zR!bs3)A*4C(Qy1t<9Md@gWPle76OoLNSC@g52S2x3uVbS@j5`chw-5(HRE#Tb5KPf z!e+JPda4BuUiM|lv2mgyRSof~h^z3eP0FH#_MEdOK;s!5qJWYChU1tr`-eo4G>5BHOJvj|uLX=&3#-+?O!UT<*i z1@^uhoBwnDE7n0_S=TGxo%6%yCVRCPIr{e_Z&mpSl$v_pjt&?`j)GZffG*ryz$U0s z{?U0q)BzPGklNXShUUWsrDgjGe0Ho3l+7PIcf{*Ec7SNp=DI@wdoQ#lUJxZkjWRL| zUcm=ZK^VasR^F;J`G4WQT~yW3&Rsk4h%tm#-V7Nf^@IU!%*dFP>syX!VrC+6SOw*> zGPoF9PX1e$A5;TQRTE71kZNmzjW@wgX%#=`wJ!4xqJ^@{y#{@>-{fEZwEzQYZOrmLy6cv@yU*-bz}9mNd(b6@W^+=BiDacu7~S zRmv~Dj4gRRUhm1*t*w~$^rk(Z8k**IfFC7_OKv$%#WDe5zQ=hW%75OCs1!IAJOML&*mx0dC4KRS@3yvvNyHk&AeHtwIFZ>_Zi}^1<&(&P zY?OaczH%Lp$g6mPRKTDw|5g{{Pb7EJj5H#4Mz0^W;{nboPsh^+;yiKg59PJO;NXtnNdLN52vi=7gd{8j=Te9MDK$6G$Uq$J z*bOnMJmco?wikz$sg9Af3p8U8MGOOm0g&dSJt8G*M_IUwj3EF_5Y58_Hvo)>+^ag8 zq)I_-H^!OhPep#R=erCZdk8Mr+Yhf@d;V_CQt}XklbM}N?-&b!a0rK$ya8m^7Fp7( zu90RsrO#covtCO?macK?A%n|+F4>w!Vc6=w{ZmOoZc@Cc#RrcR;7R$MJPDYVY1_y` z^ZXwI+_BT-pG^J%O#YD-sdkx^puJbdqgZpGZcw>{`8C$p?u(m5)46MTQz!)f0n40k zNn0%DTz&^}qVSaP3{~UB25}f)_1U=!IzsR5{?dHUyI%LFAIJB6<0~LDU-_|;fg3?0eanT#%A{M3K5&;CxBlm^e73C-yBe4|7nbTG}qG`Qhl0Ye0 z*g&li0KW|mtck3B9a@0#n_B+lP>hthxCH*!KhHR55XZ`}@<2sn`cAHm^Oyuf5DUU{ zRadEoA-k?YMvn}p-20`X?QbIY9Jjg{#>9h2r2WmU4&DYyr%1~m{PwV?v;RB@{6x0T zl_NkFf`ka1HG5NKsS-Iw_#=N!Thi4?ff@BhT#|cnJoR9?ZZf+Rs3iZG})YfpNF?B$)h5 z`oZ_>Bu}SrfJzQgfU$xVu5+%ZI?XKqAnvfrt}aLbv^`1CE7W^J6smwx^$0J5$iFUs zl+4W1GN)a-2BZ9wJwmYu$k&}^mpxFj#Z>a#xehu)x1^BUZ+!mKhoAGY|AgIla9rzE ztOy~?ZX>F2pu=EDr3vGTiY}SAt&6bOL<;Ly8*m;p0TeY!Sb?ApCQp1KqGtik15IIQ zO+{Uz9uecd3vY{TRjpFyFl8zj=-W;`C@pD3EDQFMEX58dX=9xkcZ`%zh@SQOV<4_R zS56I9tt{2gMKCR`)5?o=rRl2>Xlyu{@Pmucq4h#(6JS+m={S`0z(9M;<==TaS6v$C zbke3!;UTLuKQD?!ua(tOesEmd*fwHzRkUKIcInlC>u$vw!hA|Vgo`BPEYlf(r?&t% zrw~{OT@BZ|`JTOdy7{9HXfN6abisM-Jwa$x%-DTB@M2CDjUXTTBq#r({4}YlNskE@ zX61YJiPKl@&z_DCC5d(^#k0Y$kPjis#y%>7lT+>xan1VjpFW&v4OU=bh%x!M1rl{X zqNMN&0D=MHo)uYE?~4;O2JYx?(m=mL-)OcWd8&X;qK)qF<`i;!?#Di~@f&x38jj}I z+X^}(R`?S-ReVpDa|H>$3y$$X(VDFQT__J__zT#SVU!3+F0yUITt&3@9Tvz~72OJP z-v^lhdO`6D9;DEIs8E!arR5bR?5zPtdE~Cr`2%T}EOA4>8VgW2!pbVQ!1PY9v-U)* zD~O%Rb5T)$6z7QZ!phHKFGR)zYp>pkr=bj{4ZyY7aKXmp>Q8PsLCahdMD> zIV}FxW|{Of-gcNIBGg^2mrbYeTKnjIXr3#|Kyl%&U(*T81X0h3R}$onM@-|sh`!FM z=7kS&SpGHOflhf*?fFmuR-5=m-`6Vt+Fej=%Lb$Tm(*xaRq{{1k!bQyZWx|Qpd<9& z?(gPXzy6i?-FWy9p$okMqLU~aU4wG2jgk5p^ns`N!(ArRq|U4GDwx7!Z4ga!JAt-%5do1CB=WW6QAYrs_b&*g-fw!Y zDRuBK7u2YG7;C2j(8-eI<>go{_|aQrxN(irxCxO=NzOg#cP8@@+rXuBp@1p zLH-5!()Fhz=p@>JvdZnPzx>%xZT!+_KZV~s{+PLqAnq)>h8Hr$z*Y#U(%1bdAi6}y zGZX7a?nLJ$iS@5VxzQBx(M+fWb|w7gEfUuL!gjL^w@pk^@15u=qrf;263KHp8+XK#@u-V zzQ)4Yys5KSjbUwi(}xa`yw?PDFz zl9F}^*t%#&<@s`V(yrZz>z52Psj&;G>rR{oICg5N*`0^e&DWgV3_~$WIPiOxU7N?W zsh)L%K`}Et?;=f``NZ2`l8Wc_|E7-1F@5XHNRE6peArVYe z(55!^$PpF~s4PG+U_`dTV!j4MQWW~tmORQtgJUAH(+>f2Z6$wpUc@hU{<_*{vArzw zmGl-KH~A-*iO4^KEyRMSXn3urqut-z(?Wyn^?W8RuRf+7T#_KKi#O91e3%MFiF$W3 zrxV>@EPXOVH1kI=pPYVVJxy3G%|*xHwZ#mfN~)_pX=N*hh^$8txYlu}yIeA8jK4y- zO{^BORW?8ZP*po&*rK!=dus}UrN&-@saVQ~l?DMP2qvwdNU5G$U;w@GEY^N+eFKb; zVjfx#ig1#}V{L7Sx9KY6kUk?HHF@+QeVJQcDh&o4G*B6G!!1o3t2gPNdcK93F4(Uu zpMfQLE1hSPR+~Z9D|m9NyWXWawN<>Iv@qcKW?mpL3^+9ZQp$I83q~nb_tfeBwG@&| zb6{Sfr?2Pj1G7(%z$v!!sHN4FR}9CQeMJt)%fIrT#-sgWf^I%1tm1M*Qvn{=fq%&B z(*!iM4dSv^@=vw=_j2~Xl?f{#aH-WK;z)thJx&JE*w@K5nmlq5Bmm{qms*svYR&Wj zI2^UPY|$4_2hb7P=>87A?^}1h`*nZvap=4sLjtvs{RUCxG0~i*pZK2mzt&+yHjkj# zMK-8vsK~qnNI~E-_7i#3SJ7GF#?6(^1_6gK4k@*`%;selxKX6xD1VR;Rk7t2-d^t! znAL)6Q=+xni;6LS`1Ey0OUm61itGGG)g-1xfUAs=eR>=^g+gQ3 zI1(CQ#apNePkD&XX3^O16HeGpfd2O|vEX~zM1qrDEe-$<7b&Bv<@n!w8 zTAAN){IbJMiYG1j=qbR*PUUc!5!q+j3q9@f+3LKTEv?50;hanSV>%t*yOUPEojhrE zNT(a@zo`7B_v_??LtXvWc7xMv=w%69h!e#qB=DYh)aV!(IX^0b|F!3N6Cfb z-8HdQfofZ!4;bE&AkX3uFr?zCAhGJ#$~>b7W?iu>+JR-J=sQ;hHY|b2Z@bWD0nZT; z5kw?JRg^j(X7vYW23ESuvUoayj!;@&ee*AW=2IKL@%h{F=;mfn+9;TU-Vu_`R8EJo z!qkCCHye3KLpFNm6MzFUQ8hfEd^7Chkh);7c0iXON!cLLFm*K?;AtG%g9dxf%&!?& zvi@Q%6*LI}g^pmR(aJ=9hcQ3_wU31qFXe38-~yso@miPxDSFHhS3z9(Tw=?kp&3B@ z#=s!4eQ)IrEh!BKf?B?%owA@p!w}#?TL3m!r_$V@Hp;7=?)mo7hjdQol^5;R?ljm0 z1vF5lDhpQ7fuRixIX(%7MKz{cj{%^_=cZl22Yfc$Q3tf({jUDUPn1&zJnNl4T{eL> zjW&t)>~<#_Kt7KxP};9U3hI_Wg8{dYlnEObsxC=&k&LQw5et*JypZ6EJnvN&7HAqY z`3IYXb1NjB$S?<^k1_~kl?LcuJ!co8p6&slhJ|=$K88`|fO#I;hpZ)HA$1{Ps{+i? zwI;?chvcYr5AshMi1t12zgzJ{t^q`Tsek_ZbOfD5hr7QUZvFa~Z@uvo{{?S<_$Yva zg9)P=DL%I3`m7PlLLUG%1M+p}me%evu%#>=FC8wNAPUS|K9!La#G1gE%T};?(*=Sq zm&*nG*nGw^C#=?*>j$nfdbT1JC}CucSHuScG=WWQ`6+hO)?}zEn(>5|Vpdk|#byUNL20 zfyA!36ndyg>F;#Xz@v`=JoZ@k`DpQQT8hc)z)Ju@$L?yKlkW;LK^m$C@?o~gefDF08ri{s^q`l zW;JL0p}s0pT3N$6@T!4bqGG^thE4+@^%wYXCZrtX1h!l__s(8Bnk zDQk*Zfb+)6PYArlZLV5l;GsYv4i^Q~RdpclfFAQ+)TN+`>kSa~uUbRgcnlIC5`%2m z>1D=JYY&L0iZNp~Oi47iED|(vL)UKt$ljyTwgJlXGODrDtLlqhld`T@zW`p?&F7q# z4$+KwWxxv{$A$p&Uoa@L=V(Eml1AqoB7eil>aCxqgbLM1;G`TTUXjMzdO3mAj@5iZ zLHgeATGQv}QQAmqo+0EAo8CK7y)L=~sF3ODn%=lt3PXJ(^p=(>APawy{^y@GAcM%|qJ~>D z{lG9rm5{5mLWJ)_IgqrBs?FV$0RwWwWEDsK>NIIlb>`oeOfES22wZdiE>KNKWJZJO z`P{$!`aDwgBASZ%DPZfsxBPkXM1&1jPNwZ{_7ti&k2YtbMyl~o)P>;i{s%j->A>=# zhl*zePBc%SD2k3e2bc__YDEesQfP9t6(LSW$ZcBFzDx5uX=5myIO+{0gy0ydu-UOT zL1qDBSWYXOZn^I0QtU?XmMIoCV}T&jsR>Xf z=PzMili5tBnOUZ|2Dt&x1kg#e0cBs$J8t~=hmZdD*T1SaN*AJ6NEimyky-A>tm2-q zX7B-}kV95tdhjNHm{vvgRszR(vxjSdE?CQ$XGMU93!NH5uOP(-3Ah9S$AIgUKhWY2 zZZ|i&BVj68f|#*pj;Jy!3N!Rk4jHIUs1^)K4_4iyRV9AqieA$B8y5(%Nqa34G*pvC z*#W+es=$!cj{qy_5Smnk_dZ!B`L6R%SE{HGa!QUMqCJ% zi|dz?=_3!siUp?bzMrgCmZjM1)(jw$$EQ`Atwr|m3<%U#+rKuQ0;Uk$>HZr$shbxQ zE1)nw`CgWCkeyQS<1PFto#mek%Q88{oK~=%KYa`+Zwv+SUPJoeFd2#YQh0?u3Nr2N z%~%GlATx4F<{-T(;SJT?9F{%hLv-`W;wH1Ws%~+iVXy}35x(Zzj5%cIyz zs=b``!clJJYij! zU1wtltaG5^QFKT$&>sH)x=*KROU@)slwK}#oVxyk+a(VxaPk;=wJV)sP+=g6t|Eej z80(A>x?3z}96%Rsjq75OOzX>>_o z`dyb67qsngx`Axk&)o)i^n0dEr5A)H)H1J2k_9th^AO%xV;KP(&-{5B*WlXo+-fjI z3$>uoH^&|)2_sd{*e8c+Z4N(@N$((3S{6z;Ng0&2 zERk_`QS7G8LiQx9Xhdz6e5F5h^pSfU=X<@ z@QO$~UHg;A5={vC1Ox(bnB|_6u%e3Zj?QY%ClP=^3!+t{#LOE&GYff`2;+$Q?@}RT zVAb-a@Jp_Sbm*rPYW&9l$)^oq=dI*E;P>YYl4rST+da2go*M<4S=2pqvfiWPzxUaM z{`~*Rul^3F7Kc7G<;FRHGrn}}DI$}eR-tuZUb%Ab4%kr+oHO|klI4scvTBo;fAxhl z+mcRD2lXTrb9Ssd2w1M-5m@RpvBE%zh9hFsB-%a{aqRUu+O;_;k0s0e;P9DX&mH7tX*u#J?|8a<;5`X4bQt#af&{_774!cZm5?yKH`uT;a z&fI0tq*q(-%7=XBlc)FW2HL$Vdsn!5+H+s#=Ep~@OvwTchS z!%C4CL>5GKD!;PP;1oO0zhfiHRZ-8$KaV!gfRG8Fs0!ua!bslK)GBNERag^yy^UU0 zO@IS9p)g^Te+5~u??UZGoTxHD`JYBP9!*TZaWW_XqM4oaOb4ArDctrizWmsu_`xpR zcIe_u@zNbT*+ME*1X^^C&HSpR?<_2*O-<2yRSr&@gUW(@C&&D%6sb0t_)^Hn7olUU z5@W4JQ-~PFJk-HGAPpo|&c@&zU&JC7vhvFbfLNmxDvE-I=-68)#1S#DuN@;JfO*C1YSaj2J40-W=A+PiIpb<*$7<3aIAhG-!`;>LA=)27XzE7daX zwDN6j4QR&>z!S$ubD=-|1AxaK@{9>08qTCaQ>3W8SO#1}#r&*v84n?Gd>POu&~i|& zk*r{LI9C& zz{J6{vK5{Aej^W{Yn*fg8G|lC$0&u{?)VpXeeIQ9$E@Fc@g?3NMHX>1Eosc8h5|Z| zCI6$&sBWS{XNow$^7RmYCe8wZ$DZBc^2Jui!)jRX+BB~T=rN=qdh3?6)nOwZZw2oD+)nE zZdxY#V!_4QZ5aGDP>%&gs7>>b?|L&aH2?gs_kJV~31{Z7Iv6VV7W&+^w+peoI4~I( z)d9|~IEO=8-*SC|`B)-7mk}y?YD5l+~4ez)EvTsotkf^)v25Ywe%@zMHG+ z7q2pa?q2{k*L)9iJ()MjGOGCA6=8x7o{h{T$SlBX4oGhlth zx+%pd|DJWk5DcvVk#)Z`QoSwLS0c~C!!CiJixNA{S0)ZJ8*`!v+5Xh| zUxFNNyYDR<$B*y3VSOL0ua@I5n27}PxidNZM$VwpZ0f~Do4FkvQPRWU?!zeV;Cf7o<0x_nO zuBOA&i*=B_mR zu%`~SzT~RMMvrBOprIR?Z1Y|v_hwn@`rtj-y!7>*m$AyXIZXc4Ha?%~oxGbJTsHOX45iNF!Mq_fQrmessSPG`W>LBBun{64lK>q8IZ|1y!w@o3 znKXHH(8WV-$Ki?8XlSbF)>00-)|vdX2#T1fsDYo~(SKDYwSi8|ocs%~TZ!5}@P>>7 z3*%HUZ6q)Ia_R=9&yZQxh2t%6ulK-dKB=Q01g2-oKAr8*M)!B{eRtpWuGjtX$05BM zTQm_1zG_6>*MU{P@@VopdKslWa5`vI;=&>bs3NK=4?|wYSfrcd$W6$5mU5a$J$!;N zh1`-c7J#e@Bbl$%GPO`EPF$3PYL&B+S7!_8qW9v(6t-Ei;i{RK4x8Bz(v?!$K0$Q z8|-Rqsd`tF*f1*49*E+z+Fsc;m+LF53j*84u$eKXZfX*+N&m?!sD*+38)`-VMUK=7 zlWOWsC;!xIH9%B7OHXG8<<)Kf?(U64J60w;U%BrhQ8c2d&5EMn5rB8*gNqv`-c@5n zi^cJe8M$h-+wo^65Pd0Eiw@Lak#aN%+LB9&0}%#`NzE$o1rC%Zd1x}OE0`sTmU5`h zHlJeMWfPF@nI1n&zlk5GOE0i8bcTTD zgsvaR02Q6lOR@O?px&82ga%FW<_!TKbbZv_y6>BSFMS za2)%gbu-!u8Yt{#h+#wJ$ZH8OBcgX#6q)m|g6O!(OBJB7S&V`nhp5<%5dk1DILC=) zS_c75*vb{>qnU7UH9TBcIFdkxmqih!5!yBt6HZAMEfzuH<(%5rDB&qBnsjtn<$yIF z6r@UC6ctJwF%=~Q%MBPbuqZ>Xf)Er?r2m6E>5x&g9Rz1V8taX!V^BJ`E-x#lto)Odt*Sqh>PnBnOti^jHMWvIcamptpJkrhO zeB%G6@Pz8HFinbM`ErEOm>tTZAaejJK;krYPUsB?g@xE)GV>5XjXfUIxR8NiFMzxo zPXMUyqpKsD{)zJM>&|tx%KMz04eAw*8bR7Mz7Nc4Qi+8^N#*cpl?ml)*{YYkg4mSn%L9Dn*ECDg0dm*Qaf`_c$t1*vSGUTE+q}G!B zEK1KpPox`KB^JST%Jm|s-*f;{R=H0W8ZZl7bGPHq%`GY$XL?pruz)~>#PvyisG{VY z-T$VkK-)ix+Goh2Fkd48@0-|#k~xbx@$o-0Yz(#pPPoLfCKs+KaSzW4q~(De&R8Z# zTHzV8m|m^~pC6aU#Ib;kGJyEohZ5jHhfw*2PM zbmP<_ZxD4IE9p<3>fam6CLMv}77|Q9^w0A{(FeWwkvBFUKHEcV^S-W6qHAbqDP&q4PA?jE1U#OV$D4x1D^oc zZDUFzsG&^i=(7%CRAuD>O<)y5tA_Nqwv{yUs5#)EbfK%X6%LjBb4oWOicq7F@E3?I zxaKwB=2} z?$QwxbuY*OLD!n1BB~U))Pt3CVI%@4pla!`&UQc}W|C(%u8!j{UTA@;BfPvM5>W$^ zYwR>xI9&24>pl#AO3r|EZ;osT6o{<_4b`j^r4fYFkYHf32B?Oxx#Vzy+|LVMb|-%u?__gh3&NV$&%F^zZ|K&%aT7FQ1`yYO9;bFY`CJxn=gLZ)kdt z&Ym4{Q31d0GaUq)DS=H2t%1`?=~oJ~o!;b2DYUnhLvMKGC^R_)*QI;lJJ5dgy)T@i&=7-Ya_5GN!mWBo1KlHW9%`_%>nKvs!1=%osM$zokpy=9)d_QHVt zyOGL@q!9yTK>oQuaR3w$yzD9OqRA7*{z1u1SjJtgdr)vmp|;v7LICyrwHFgt$>rwI zGo*Bi!TUb-&_gfy;Jx=;^W&F3OZW3+atve!lXvwU$Aw`O-LDMg;Q>VDH2{?-;~7a5 zDBJH|YcpR4y$EJo_ms1XW!D_Ua^gchUYyZVdF$WwD@JRv$b8Vw6orEw`KVOHqfuq; zKmh!gD4+wni*fAX3qe#=yJ?;$omTzk%ddcatE;j@*solZfi`9j6}HR;>3*a8w~jU~r~tWf|F3ugC}^>}ZX=qLtXXKkO9zcLN28>Xl*`!_rDm)r!|v z%9ttXq`1-f59>K_8(vM$WdVft4%k+LXursOd?Gr0%?)3~Gtf@ML*O3FJ@Z)9a&dz^^+S}VK6&9ePSjD_eK zc4%;;go1lsREE|AoM7`aEWmz4tVyYlccd?E0qrH|JbudaJpbMFpFs2&!Y_f|Zsl=`9X0&IMa@S0bk zomdd+7k{S30BLTf2A#C%V3U_R%N&tBt9^mKKeV^n&wT>u@b3~#x46D$n}BC7=3%JZ zG1M;zy?Gtae<*z`74qKnz|iD=ZqO-rsf0czq6HXkx*9>)k&IR!bYmslt1RhkvaSk^ zo_+#yUA1|T_^J^k*PQHOFF}yUh^gR}g76nhFgvJ3)kaoTF(QlnJh2QdLFX*dmvlc* zeoex~>i#-cUi1SvXI?FRa7ra8a`Yyw-N?))Tq@+yA?Jc-;sNM6h?ZRPFF6P1amrc4 zV<^eJtF5LxVh{i#lN~XaB6Av8LdEb3)`(6y*&aFIP@Djf)=U?1kw3k=fJ$vKoA;J8 z2rm;slNZ+3f+Jj43aZBd2X%xI(Zwb!LALK?BLLquNk~fK_y*&wZwAz&Ca8MQwq%`65f!fni)&c4~ z96J0vg<0}R<3!j47GNz+dTO{w0(AY46?m|+LtBH0R+k_<`H~%sQi86AWSv2kK|v-HI%=|C&Um^HoJDRG0eTjNJyb6~Lf1@%5tVX% z$5SzCX`p`OJWdRJz671KM`@ntgSXwEUX$?fWj}uDWwdiLVMVKhChSX2Iw~~;rs(Q4 zJg_2R)wA9;)^hl9oAejU-qf4}4-ruC8K6{$FyNH4upG957(d!1#M+{?m1blKObK9C zS?={Dto+dwgLI}HrpUes$lOd$K-L~#9+=8ubwysCYY0SpLI=Sa37l0JBT@s9FPp%6 zg@71)UF(X@TVnu1r`Vw1r|9}DEbcCUu1yTQrp#OdDvJxIn~2YOapWq_Tq$`pr?<*k zYKig!gwqB%d@a5awAOe0< z#?Y*PsT7+UT*I;voc-wV7EmXgY6LcFrhrbO%J>LS5=5XXSy=^~(IqWYiMAVL6?Qcu z=*_>Xu7D`6J`adx218Kl_*aps{S6Loj$7>$WIx_ZU%_qi(4LZxESik5qbjyTfWf#Pi4&-bz z)Q~{cehov3)gPcn1x_oas-&`%u)NJhk2yh#rAVe2#Dwa&qp2#cvX>qUMe%TehNiKq zwLay99{a6#%>n3{l?dQh2*vT06;ryI)87Mk$~1_Qg{Tf>y9SyK%}NK=($v9o74kK| z=NkZ*T#0z$WvX2g(bOySjyEOgXe++Q^VSyTh66VjIU9PG8 zg=!pqnaWeb2c&P{G~pBUKfIy3&O2LCbZPEcmcreYz}N3b%j$g7_O280a)#d?XP8)Y82#!`cxmLyNU;dB%VXtfai#TM7{2X5^w!X6}Cr zi&%eHKdJDM*t`{ZQLRzUs1s!xREs`nuQ<+IxFt9jU`_y}?828($yJtXoP&&64$X-9 zz_x)@k)%s~O}SucSNn(mrVEw1_u53$U;)Af?sYZ#i~qMA=IMn2%tdN=2 z{CSTQW6|nr3Wx*P0lmKO-4IfoYvztJ_spTSaJW$6B_SyO< zu%rc`4FKpQuDi2QJWnbs-BprEp+0K(CZzx6!g70jXi)EjRdZ*-XpIp z1UAqsH4euqs+OYi8EunQz^ks&)~P8`+E6m_rx?UW7Efndh1Wbi{1CMN^*;ifKAv4m z2h&BhIZrr!C9^;DxGw-_jt>-}?L}SXMuVv;iykp3QOntqp~{3ltO`|)7%;)r`A2{O z`A?+tiJ^w*qYm_s3sRJ5d|SZD1UXPD({ zOHb#Cr4Jn0+`Qp8?zny9U3cCoXOrppi5XO6niUbT?a{ZN(cbFD6ouY-K@{)HoCT>1 zz(OLtnbXP{a$wSAWr@u~T1C=l1iW$r-moY&WCe_2d39BHzk^81FyBML&^e=AmN*(u)Ek&MQ?13Piz_z5#A0HY$vA4xWi-G%T1U{BZpZO^CKt?NrJ>DE98u-pUbkA2iFXutwAFTw5 z!$4l6i&taVrz+a|t5lujOhKzUi7X9tNj4VL(<9EJ;**jvJf)erfpM6?P-n6yG6M=Y z##8pVFz;~hGA~-AO^m@Z77tFUhuThaVElumjUbC2*y{~KGfn>4feUi2T!M|fdcw~i zhSj7?(0Sr%qx-x0-CwwK<2P==WO z!Q5i0N-@wZWJ4YsBttQlTVlIM6&No)xR^m3S}$hD*q z2~bsU0x!^^`Rg?)L%KCT>#S4*84tbG3!$ml5_b?rug=n;h5$)5AgK22PaLx#8+NI# zLdzPpq|gSlMzuR+A|V(jC<;c0OZAy_W_th5x4vvm8dQVx2uHrBJvo2IML7j*W&i@# z))UCsm-@6sV)&?0Qtlb!v*#w^ISRetS;&F38)xNRaA=|2i+;Wd{m^O?9Pk%}XKwbO zrR^qJP8>3dtBsJrTL7#_XfS#pKvHyz10u8{eeJ;Hg}rvKqJ&>8ye{@LQNM5}|73#C z{h6~|g3kAcHoCtXe*3FmdEbp6{RrHB{5XoDm5~%{$gC4KVfEBuQqACCK@}#5@SvVx z4B}E3ZG>us`7m%%!ct9CRm*C+)Pjs@$W*gLJxIVTSear0iJmo6M-(lnr$PY!v~FGP zCSe5;8dPBq))fXM0Yr4Al{$IR1?D0T4yWf}ZZ3(tHIu)G1n!J$N_9AQnMUm{?l_#WCgxSm_$*O}3MCv2ZWy4i;t;8tc{;@0X7Mt-^s%`jUPErKL!r=C&O|js5#$0&s3Acxo)GvE zTa@oQgT*!1%RfY`QLdos2Zlz~O*Q+JaO0A`Pn1@+z3q;pNAm)M4F(>tc&jS7lvq`J zFjLEj4l7IkM#^3wRxees&hsTfO6ZR%#HN5ue&>Hp85YHYyr|%tU$#p4Pd|{A zLJ34eH@h+)_*ThAyf8rHLlXfTF))qT>JIz?o*14MDD!U8Rt zY=H(S3X=p{!5^?#(vdIIuntADd1Z>cD1`eDt25;ud9dG`?qi@M27Y7z_5T%-gb%0JM6{GRlO#NvEU*P{+jx)#Lh7}O(RdC=n(*oAE4=R zlO+|JBB0Fl76H)GU35nU#n+SNJqci)lHyqsmrBLp%v^L!q}^yu_(?Z_WB~s+z~8 z+BRSudN@opRP?(-=#4&6!W+n^vxHz6Dt9Ki@XlkVsA*lrPE6 z6>@Up2d*tEOS=S6dmc7`1hJudonhben&(I65c07q84u%Ma-)dK+RAQb{Q%e!O?$@5 zmi`k&tmR*OoaJ9UJvB_A(klc3I9UFL0WHjL;E29DTz6@+2QuQeKqdeD)H1yGB+}vT zFRyHS_ZRNuOHmo-5B|m1^nwf^6cyw?%5!;MCoA=0JEa}|jV;pAJXA=fSdIgWG)d4L z#7LG3sr3(9!)Vb6o|OE^tU;+G3OY(%oUm$|U=X)Nrf#)Fl?2jq72`Bt1A_`AAqpf1 z1j=e+Ql;$#o8p28RZR{CG*@1n0Z}pVZI3qEzmfwFr{aNB&Sw<$P3T)~CtwW`qS2_j zYj?)C(Jnni!l343R<*o89H}Yac%P>1lr{#NXN#7jki;nl~>hk zddi_O8RGFkaHC}0=;E{5QnD|^3m2;131XsOG006^eBe3-qZ%mpOZSOfSrZ-DriDJt zn`Da~Rmwozk0z0MT?GNNfwQ>{;SS0PeWq9q$rVU6d+wLqY+sfgB zE;f)z!#3#j8TwxUVy+eiXo3qYjx4X7q~HKSpTV7FWMQnrgy?jy#}ASW0fM%Y`5f{% zAXckaS}ebEi7jnud*}+eVb+(arKng?4OLVtt5}EO6}_xLOT@}6gi>Lh#|Z$zi!B6n z*)1`Ub>rguTpP~ihrR-I?uHHlfkHi5-*{w4Ky71KK`z?2RKN19R zEg;M$>ObOd>X_D`JT|u?}lY zQ6n2lBJ&YW&|=GtfFhVklEV%b1a1>6ZWZFvF7dgfPuVa;XY!Nl90@Fdesa*7yoISi z8>+^cG^qVS7P?@iVEt{nk3t?U#(}16(ZV6Bv$-z`{02i&P0nLv&;wNpy>W%A8ADhU z+6Vx_c!oaKO87;R&|o&E7|n>$FqCw)GO|;p+Lvs|QOE}b%`g~Rp2)hI>udZ%v5y_Y z$$*MHC{xqust&i&Z2+NSJj`#A9W`vsjqcsCbPIW*LIFo<<>H16oM!ZZi zG30&#H2HTCgHrndPZ-8A(Gqmd4N5Bt-ul7seCJ&+`^ZP(?)2JTF9^a#EAk%E>(o8i$tx7%ytDr{H<{-@W=HipGwR6DmCyX<+Cf`>GxYn&r=9BQ}i< zl=*#{h2~M$gZYsZ|FvzRp4osQ@A29E1pqjY!|IH(I*WWcEQ(0OO%CQ;#9cP{q$S!P z{8xJ)X2e*Fz_tLCYKNia=X4E;_M3#s$`mTeiWyNEJ^6=9{-qRqLJX}^$<_%cN>ioE z00EfO5HCUJ+@f3ZnQey;7vNE1^U7QQg|VDsiJD#wGLlI_(tQZv%n-2|#qtgt(wG4= zK;#Qzof7mEFw0XBBCqhoLkHgE8Q@SVDoCJ8oDD6RI|kFXf|u4cPICgNRjAgdegwJP>mebA91wT7u3wNV=r@jw44r8|J0NAcKn@ zWynmXeA_%Cc}a=nA^OW6^{ZAuv(HSzrZ_XWvU`X_0}B_3V&k*2wAu(T6u$6sj$9F| z6FK|=fy!J5*EZjDak6S~iA9rHz%E=ECp}9#;?R@?&M4HaYKVG%wTA~z6s;eEo2m(L zu+jn;f<$J)+OU@Jh8-!x=)zf;zL<1U4sU9t9G(5Jp4=@>VH;t+I3T5jl-Fj&%arDQ~ef%{VY$ zK~@!6ZyHk|*3cT04HJ$iVy9WH@_Gxv??d5clby2~veGJ&nNDm3$)76`b-=YMF>Iv$ zG7viTjKm)i>lE;{Oe+MeT%B(*2KMSc_cf{uRobr7r}9HiB!oSRQQ=Qz;9@BN2kE?} z$`(1{2YH?!01GYfZLA6j3BLIZcPqeR=pmXlh?cLuEzx?NavGMLZzaXRO zwT$@t#xMY~;wtbIXgnEIDS72g0#*{iLKo$?thHeNSCue@NkylY6mUq7$j~|ysj^Ve z3vnK2tvRa|tv+no$2w~Fcym!8mCG{gOjusBCP|hCXy# z030p)h6**MNAflAv5+h-P?)X&1hF~?4YfFCEZtda@iT89gwIg@`UZL?mJ^0JM8$yT z=5hpVkj%Pa-mz0X5N(dD;!X2rT|JzIqFokZ8)Rt7pC)Je6jr0`Wvj?y!|c{-ZveUe z=ky9iAr!a-opYNuATO!@!p6J5@P&9M2S-iuc)lvDx~k;PT^C>y5?iKB=o>nfyxDaY z)3fI}0eG!Q9v2up5M9h0&Fm+r77#dz6otZ7P_vu>U?9Tfo8iII1@CkJFd#c8gMyw1 z5vq_N6oMXDNqq-&0{}(4C>ZxDEH*fSzU35INCSAWAsU-wU(~`xP{YFaA?b2qhp5$( zTJh4HE{e;~2l{#tcyJ&oxlbKWMO2+@l)k9KilBg_N)L^>z#H#+p9X5DOY1dki#;ZC z-ar8d0iW9RfPU_vc9f2W;-GI2IbIe-QMC-75mA>KtAS7vve9I}tuF)sdcEKR12so# z{U92E{uvoJ;Itmf$}LwB{;CMC7jd~c^eI3a-QNxG{`{S{{||rum+3c07XYIMCe_H~ zIUf|5NEqE)9bRC)Oo`8Ko*X^D*y`2{g#%x#L@@*{~aa3+Pbk*mkL zK@k+gb6lSwZ@PG)So0RH*Of>PKuHy%_XK=XC5p*)LkO;n3$zz!fxXzq;rQ1xE;>Cf+T`pghk z_(Z!@!=YeSgL*6gpa2{Cfh}+!b^-+e9`EQK8MyIpcekGZG^}(BHard@hR6dq-1y$Z zpsyQ%jDuFf89bzhqk@3)9{EXrKL_gNU%|z#>`!3o6UB%rp72z^rysvr8n}lug?fF$yL(gwHmm2MN~R@XPeV~$PVXIIF)HUoOVP14~m9if|BrB3{u zoU^7LplOlPb?7YN+9W0z#F=`y#s~*i8(UZq9H5yJFZWQvnxB#BALAhHBGhL%FMdXB zb8dv#6$8vH9ja_AFyS3_wmGP!s*R;WqGb(%Kuj(UM;QRPak9i>AjCY1U=fIy9qLXB z79v?Puqfe6Hz$jMaaE$oEJXnx;G+C^VAWr7YO+;Qz3@P=ut)WH>yhx%L!x^pJ*+GH>{O} z%aJk9RtSZxIY|hOVoZUc7BE&34bZkY()PFz<$;nl@S6Mpc9Y;aL1+5Rb|u@~*7{R%STR5_F!5l=t%d zXa_uZA3xy+o4E{}DFQ6CB#M3I>tgBH`?k91^dXp=?7C2^t1L;b z!P1W_u%xFVCE(e(@gpDow|{i=O>o`%I*6uAgW77y0YGF6RW}j%)n+QT;!O)9DI~C- zrJ(RjExav5QOl}$m-6FE8__nL8HtsT7H2ZWj$qIyHRM#}nOxbN6&X1JLao2#k1EWr za4AW2l8O^aKl(KYYWW3;X0Ybx11P%C2S;VdyP>vX+lB*h=Wd{V7b9MAK-(*i&_nl^ z-nnN3)7w6^O{Fi~A}_^md!d*c&p=k60it05k$WK@cZr5llPF3Y$|=lrlW1~LfI8FQ z@wv~}`T^$ADuS3(Ak|e~M;8$l2J~4Y%8Y+Cf1=+>z*fC%@lCiSDFadY(Il?Q+ZKEX z*nqf1=!6g@nyMy)4Y_Cf(gKD^7v|+?o<}mjhnLE99|RcE;R1tP13Q*kkwwuBOVD}h z(tD4d-n{+B4}a_v|K=4hU;l-JSC^4*TM~t17O!*9ozdk?9NqMxwljGl7mb*|1y!#A z;iM8lV;6#AQHxm}ysl@fiS;<43L9wHOf4pqTrfbNHB_KNiUEYc_zG0gEm`1D0|73j zfLN)jQ>FoMq;I+5@>^6z%bg)0Z_RSTnZ90rHNf*;1o)g606zDH0K0Y%AcH?1o~LT= z*#Jl&^u*3_ zGa6*f%&>^y5iIqJPi)*djaHi+@1gKoRMXzeQ%OOzPE>ox`iYIGT0U}isP+;l(&AQ+gLjO)<@jE(a$3_0<9O(7)1G7TUOpB)Pl*R z1IfTNOVD|0Q`yV&slWI{=lLA?%@Y72`o=bRq{a%zGkT zvcZlgnu5^#--tnn$poeMJF@VT2yM=w?>UsqR#&?sPQKKdGxKvDWbOo4N|l(%l4$0f zv;lCN@W6!6k-8G4A*KgQcQ;&Y18hyA`EHQBnb-UT;EP{gKnI3!W;WsF2LRIFi(X#9 z?dx9v`1Bulf450j@Hjk1oAh!$jxn`X|j2?l~>Nx}G$ zdKd5qRP85i@^GR2Oyn(Z4JA5&DRmeg14-Ku*png7WkwW|O3_NP|TNq6O{r6>-s4 z^Z3=k1H(OZHXxgeVnO+q<|_!^d6G(bE3^|0SzN(az`sKXBphf9_KJFQiWYggzrc)F zBP3?0#Y(L4NTvu%9{ctuut9v;O@O=hlzY`mDBuCv9(7fF?zI5Vxfbw8e+sAr9{S7M z5FUQOjgP8%gBx<@HIY+Go@k^#anO4Akc^qEmSO<#xXFOAvT^|8)tLGV%4*`-k_M|> zl?)mHwEemW4n|r?f*-9h6fnONDgc=Gz_n&0s#K6mNJr7+iFIiNIW#2HM|_uy3Fmqn zAp`|L>cd?C+CJ@IVp%5y6&^_jGWm&CC>o&hwE`rN*EzcY1vxKUkJ>q48SW1CeAaih}H6jh~y&t-@P!jSI_V zv>hNcvZKNYx{8(x2{~h}4dE4vwq>tj0yyLXfL;-M0a3xxiFh4b z`PPm-n8Bv=ZjzT%3Z_s?`|7~kJ8^og>4QMqYC~Y(#U1ecb$}ah0{GZ}%m5^VrIxjA zO0uvbx-tmDVAnkwKS#*9w?IAw6#>s3Mc`Ws_^hi5E<1>@ehFar=gXv%k0G8q0dVg( zfWEtdU1+g9BfPHV0k}{aXzQ@oAP-EOQpaDDsArxBoeV7ml!Ud2+wG0?qLB%?=?5HZc3sj_o6?Gc z_uO>J#lQG_uX#1>TU`ZU>s?JGX7rkAeQ+g_DPLBe0Q!WFZ1;}LDd`Ae$id}msl0_4 z>VqM#2yvxi7T2rVXBY%&#F_ zxPOM8rr~SFBu?c3Oq%jJi;{6YoyJ@qx)0!A{T9HH`@K5q^?&N%=I{S&D_3n~{@lCM zX)TKBPM!wX+=8Ie_+I<5e+TrXPs(*x+s-pZ)|(v|<4bP_e8CR^Ty_9(=N_0%t~E#R z1G?)@fIAKY+;yk(l*G_r)$PrH?#f{6uwenwO3@z#=Aa0VfqER?XoE`Mdans=!GO!c zM-zmpl(&6#0Q&MA>=H8MW8;j#wYp}Z@NA9?pso$@{g+h(_W7Q?*n%qJC6V1o8Lb4<|{6z^|dvV1XK&BhzQ1*EIJYN79lHx%U7CqHxPB0O8*)Z|D)q>s_1|-qQ zF5shW_TVU3?7hk#`|E^1+W}4vrHui`EWqL00y=YT#spBjT7btM2E6xf zpHiDA)V%u5{pyJFUR#CHHf&9yOexpTbvXEqI{+T|j$Aa0T70YvFUIEPp9TD>zXQ!R zuK-M*+R7TtrU;0*qXVpG9RPgEA%N>{LO6L0@OyUyvx}1k)aB@I^sT z1kv*-_{qPLrJ{}GC(nso70xX3hboM2K8GhdotLD63^yAk<>$wxehiW*mEo4>avN7G z;ZqBO&eEH~@bZ*s#`)n#o3V!`fv0-dP?9p_0v03GWp+PMdtxBMzJf9>x8 zUith2G=c`=)nQeR^g;S-`Avf5Yu7FjE_3ax2eKzq zKGbg};m*jh06LxFwp0kiiMICu(*)i&BTRmw*NUKmsdePKn+PK&qtu>LQUi`^|v!tG@~OylWxQQ0PrtF>=`};riytW3KX6u3SnB z4R-Az`0D5C{kxf(SHHy@_EPckkw6Enp93%@&}rM4pM;$%(8+!I!*7J_v<)15xq0nZ&>sO=3uc>Z}ie(=2W)Vc?!GB8?qW`Kzp zk@2rOM(9`8_yiFKG$&mJ1admI+CiSlMZ0h~48@`Z6#%OlxHvUB5W0jzZ`4Q|c4b^Wk{pexw_|Pn6&GCyVs#1Ns9PiQrTW_9y)-0}A_guqxy7Uc zp&YEjAdv*nOh^}HD{}{xfmms|BHaxG~Db%5txi+#O}B8}T4QI2Bm*Q9C%#sO^rc<`#{V4BmxfjT7W zc{+}!-qWG@(Rn)5flhPLC4j&9o7i0Y3QM=>;s_bpb{1;W__Yq;a>y zjKF+~jyKY0!`Il5!YVX}(NY7?U}E;88d1PMwRE$6^d4&2Y&(_tC^f^->Wno)`7B-P z(j^=s1NBDAfv>u-!wZK;F3Yd6x6`Vj%Jl)OLTyM#9zeMFZtbHc&FRoU^-{h%r!!E<=Cogi=(rSKo1O;z z+wVra_=;Gsg#gE8HWPFJ=6RBM^$SZqzxf3Urc<ZQI zCP*iSe9(*?b8>P~&H%+|OiD&k{#AZUh4J1-Q5BrGbC!bQo@1x89l^HL2!p7px2rZp)TZ!UWOrfL2_63LfEr%jEkI1?e|&) zT~fEN2tMaZs#NlCS0=h}i+M*+fyvk))1AgX@b00Q8EDH$+>ZG0y^|Q(g323kg{DGGM?!PSNRhSG$X~?6=tJPYU z!2r?R3xz+f?11OKyAd9`7j%4CYqQ@RLS7j6u0e zc;5QKZ{K_C>;LGF@$Ta%(Hw6(`vq0qxa|T?Xi+qC?M*m~kb2r6nvnd3G(RXI<^WBK z9t;Fz6S7{WQn`&p2?@;T%UjqeR8Okn(M^O(@G+d=ODgL5gLqF7)NM=GfAps?odRHB zupo%cq>;2~B7JN!UG36}dLBrnyPk6`&=3Cvj@;e`4H+064Q}$>4&bo$J#P^K(c*RQ zLY2)Meg)wC{eTcRhZZXXj8n=IZ50`Eu8LMrk_kF#2&@<;mcK3O?49LTt^(*DR^~!r z+@leu5PwRHGxG9P*>>r_h9?Nwx>VVTMxSC)RgzT4uvkOYefbxGT^@t;%%$`~xTCNC z*lq9pqu0NduG+I(!$e}TiPROXET;*IwZzN_P#y1H`}CXw;_4jQIbI9r05Q_z0qwyLtGh!-ODNab@@Lq`yD zY|bWcKAqEXuF7*Rmdm^LLh}>90`$B8ST5-pXJ_W%i=esoRgjM1fy-MEnbT~R?M=1rX-*K9P4cvZqQ?v=~$H*jbljG5Ug8(0GQyOA>W*z{vRQO&IBvb8d8unaBEDF(#Y-Vg6N6h z0=ju6T0DRH_ZePMckU*9^_wuQ;+uI4kF=ZnslENc9K1)0*idl`0~orN8jv?PGH>|0y?xBuj&*RB8J!K=s%huCN7 z!q~(-)of{yB+AB3db0L`N(h1pD8?96b4*@os3wa?hM>zzK+(Yk8mfwcX#k71$Dns; zVeqjadIyR2b)lJmaBKO#QftqeXdGY8cKXz^u}S*L#GY^4=vkzrV@@z&1trgU@0|lW zodUN<762W92$&wQ#B1~5HxEo)h|KHDfrNIs1Il!6Tl+8n9^k9r2>80cIR|XW{syT1 z*fU&rvOcF%UEcR?!1VK<0QmOj z2_C*5NM43xP7eO{2pJNDQ^RO(WKmDsEw3bp%=75gjWv?qnZon|`3@f`{+7xN2msqc? z^z)gvVSf!CIT-*$>z+st{G10m9wZoa_Uy7}X`tS6O7>X$dP;tzzk0Xkq|2Vv6zKRv zfR{g~TptStr8-R88Ts;^qu+z}{r?M5eyN^QzF>UST=_z1Uj8P)=f8ZkdOgso|2R#1 z=V6$B>i0S?=z)PuSe8-aWoj8XQN?)2sq%R6}^D@2RR(%Od_)9>~{&Wk%9|?h2;R;$|0Ez z^(Co!RdTcEr~r*?58CV!PqKpL?`zHN6wj*s^TwYq2YHTd+zf3ux2w7VC3$Yvi3GFeToT}{t?}5SZoBV+H{5aL=(B$8@@L`BrcuUH@CZvP`BwHSh|Eb*4kuE( zsE0em>`IjnB3y0DJHymIfOqFDGn>aj14@(+YX`ad3Gld##G!#;34$zWC|^u?@r5r# zc*X0>qXBg0XuWOdPrz*?9Lra$jIrZ-_2Tv?&>6f(^G}(cR?C?s>8{R0T3xN`-Jsn>%afnSJBmb_pqm6%9s}7AgV%VtYG$CNN~}9 z$TR#2sg557V{pNN@kly)vmm$F;?E%g|+* z6)uBqrXRYs;%v;J@LD1lV#6aRTwWCGz3`lluY1>#7p`}6I=f@N1fc49rJ+VFw1}WC zcY$;}y7o*~?AjuL(=Gx!c8?ys7utXQ_j4$%`H`QsBrDBqIm+`{UEiGEv}1rM=G`B2 z`!W6V--Gs3zb_5wM;;jXi%He0tSR7#Ah~JOp#y_81|VOFsuxCz{kWthjngd$_U?J- z$6o&$=stm{1`#L`f%Hj4aZbl9tIYl{yaDjFKMHW=)c`yFL^4Ch@oqx&YhMKT%qI!{ z>NBXh40;W2`X!JoI4J3b$@3)tYknNy<*xxu)-2m)1Nrua`N#v%e&i1_2;q?jhQapN z|1scYSC{7&TDj)Sg2mGIZqHG4LwTo#1K!)2O!|3gXw1#&ggWr&tT~+%Y4uvQkbu+l zK*uZZ-pVvuyluTpGyv>F;Ex4>ckBo@O;4rPfD^)ibH>6y_u%&cFL;(+n+rItWsz0{ zrtyKHvd8LEzNdMf_AmZ`U(Mc^8wn_Y51(uQ5!ea=sLuofwe`XxAWq-JkX^dF46iL| z79Bo%dh_A;-*xvJUa|i|xO(qy^sY9_vS{$(ri=yU#c17ky5|HPW z4W_(fT_(8Gkusgo<0Y2?UiUJ@m%SR`_;JARew%Y7&6z(%@f$dmPl1!Nh+$_}-=BIL zG(YnzfLA>iaI$JjPQw)F1VTa_ten&J^ajfp-PnQVjX;wQQSSa)tV#!B_{LwbS~LKo za{+T{$hw9RuV}kva3)Q)Z-?C6K-h4J!{Ie4cGlTz)9OS5pDZc&)iqEh>E}o0ou#%N z8tk(=4I2nM#cLb5FLe{rd6YAtHu3r1nE$Nff9eGlI*+53fkml#_BDAfi0=84EKc+C z$`@QLnyir;Hb6I(qo>7-p@-h1A#m}AQd3eJWeGYEt!aNvM*Qnf}tfhGW`Ek-zA=67u-+owapkZ!Z+g z(77a?w*h$BYY_kT{|tEb^IWy4|5cXargB$Tc#<6q5VJSX<=eFZpZ`LD8$0m)!e=^b z{#dc>y8Q8_H(9=mEF_>g9!>1YGb0?yfAFBtVUI!=5)9>CAA{qw*cv!{P1>BsG>vy% z6XKt;=3c-N+6J( zqv`vbIq3ID;crz4Nlo{sxkK&Muad~;{DkU;a?ZaeD=&A&8AJ9pZ6=pV*< z&CJv{eCS?z3|s6!KK3@$wtDMoq7+)Iy~n{2@kkxSm$~>k(0=Wc-JIJA2LnZ*5-#$R z1(9pcf+HEaG7WTbkLdwLG2fWDkbot42|7z!lz2(?1J{4<=)(to?D9)-XPKDxj8zu4 z{Nms3Jb>qxr-tOw%SZwn-XBpEKU2yzUB9TCk2${!%iVd00~`QvV7UoP#1u+<)$1(f z*u*os?|J2rpWhe&1zAOu>eMMsy#5v4e9wbK`!2x@JpO@s=dO+38gVOT>9vLOs3>?l zrWor-@#JPm5@_KAKdXk0fzHCAwFNt3kz}bKhUy};a2RcNx(ql&byBa`dqe{#fNyTa z(5F7)tT}XVhJM>AwoSt6QZR2bx#5d+T~Yt zb3DfYzO_+)*Peug*53GYfUkZ%ETnPjDoqCVuJp?ZF@3!DrJYyT#puu57xRp-=3b!i zZPryUE{sG*0-n9={c`Z+)QYOp4!znyC@t-!ktNeZpd)>H2F-a~l)`G00Trn8Oz=2~ zIIM=Fx5GJo0Z2NUcHd8L4Zi=VM>zU}(<_j4-un4~r;iie_jSK&pdcU`gpr%#VR#9E z;|o;S8`$@T_9N30be41`lolA^hrWH!p_?w<50~xSSyry?+Yim({55-Vnb<j~*~`af^(3Z9PC$hwlFVgV=uQwyuoL z5~~)tDEXk9Bke+R2LTV<0F&qb5a1OrLcHRI>3P7k#Qf3w^@VSovu%;{YZdI@CFm^a z%;>~j_ip^z?Vr2j9UuP4_3LGU0pd^mEarVMiByqD_{IrWKn*CumSWb^?(g(zo@f>? zh*`7?z2R0T!Qc1_sSI&!886(A_zS;29M+l@BJqOQvNEfIXK3kcWqD#=l2<*~m<0FB z#l;opnb05}VO74f0LHLx5OnytS)daZ5-j5B@ISNa+)IBJ$b(KV^92g20imYW-A!NQ zb=(>kkbJ0khq6a%-U>M!xkj_L+9<}3s~oU{>3nP<==qGPyRia-0((d zo|6FwnhtQ9^m+C5&^-S&(EPw_5H7k3>Hdwb4aY$uY@l9_;!Ro6+Tat)`b&D65q<8i zn_$Q4J87-C9#)!tNidE+`UrH`0~dVb%W(bQ_%)zaR$}BVT>+d$KX^9Up}DuRg@ZlD+-_-9g*ko#p# zvv;i%PX2(}=^;4YDWb>PWY`nz+k@--_tT+6hY()#8lY22N$u=skaZKyFDR$O!qn+} zE@v@i#!nkNpYwc#yS@T?pvR4`$zeTBSIOJ<8VW^OCViQgOS4bKB3Z&6!wMZ?3h6a+ z8p{yR2}jBq#G{c4(>5Ejt>m0|3?GNCpGp36pTPxrWGLNOzro@}t{yN4a3mSPY}}V4 zZzpqX`>{n7V`Xf2Ooq~@;MwIr2)O@hfCs;c`L#M1T#74y{kPI970Pn%X28qe`! z2IAhDOUWZCOH)pC*LUq;eV5|WCxIFcp@=+qA*=b{Pk#tNrEuDg)d(cXIy>|RpsSw? z-8>G_zHTmOpFcYdautIxsAXIU=0eKTC6c#uCR%kXxAMlqt*pSZx0AzcTtIq!N&_24 zF=O|zqTdc04H4(j%gS9?baBOkMH!8_nO;GSW^|@yo?*HKI43(}V((r!Bbt}Lzc-}_ zf>Q@Hb6>kXP;S2N#}h{C;_nY6NNjldHGp^D0V_ZAzjnaGA?k^L@gMMNME<>5&GQZ9 zn}O%%x5L(lyF52fxbvt=O_mD@mNZI7{_L(pJ9bR|X`|*U@IkUvj{Hj#`@%1hx=P<-j>ENPUQ zX8N`Ud1XM$Y?xT5<&6huldkq^$rdZrUhlET0QQ_`2E|rHc9 zrNKI&y#}Fv*N%TysAX`SZpC!c%=JqFpZ)w;P6C>=@L`jmO`c8yoVM+;`6zYcIeGr; zp#9Dr2oHW;4;oDl&k}T&G)_%(UHRg;zi+@6uO~6($y0027K`>dMoe*;Q05W zkCyWR)3HetXT)rKu7%6Y{kby#xz>050wiYv_8iQrt}+*zF3I8-@g^q~YOL{z-xKzj zrab=1%RP3oG8TQA03pOTbgj#8<(i*>&HwM8L$hNK!g>2)a^b<{>a`_}Q^$hWO*;l$ z3CDG0K_N5Y`6GePiIb>jnAIfA>q99$0FxJKO<%pd_PqcJ6gV!+^6uGu+6~w;0o>581!tkB0He**~^uu`pl_udzj)_py*EuM^BFY|z~-E! zjG@qM-ap3Pjc?I)6Uk4{p>I?jrucs$rKZ~~tk9~O&?f_5mvv}5;-32uy^-lJ(< zH4^Ylr+r1$J7s`|ix|<>fx_xL%wS2Am9DSKD-hKC>VWZKPR7+0#9}Wp$`4SbNzxE!Y>942r#wH!}tfmP<DkiJX}tn55@ZG)m0MZp{RsqftZ`k17yBTeIKAoiOU*iw zAiO!$^>_CVt)JgNksy(PwbXrR(qHRSk6Z0M4*(HzU*rWS3ohCnD1JPluOe-9fu#fC zpwA)Yzcq!?5a4PB_CpbXJa^;rm@;tG6{iu|k)LTH#l(fhkDanTOkqyPeb(2i>v-OU zUG;hXDTOW{IbQbO9Y3)Ioh8kuNB``rhXA+UN$u95q6|9kCH*B&Ca<2}BHFzZVb89^ zosxXlc`v@^aC(luc<+JfWO}H>nzvy?Hw`jr=YrF&J^gdjLfB+LvH7%<#$wWqyd0gKp<8z4!KpX-F{iEESm6O*(*mH?d#c;&=LCE z17PR91{#R(h5l*__#~@%*6XVCF*w@>@MUT%l@23Ywv{kr#-mJ2^m;-=%CkwOMIT0Rt|-a6$U>M|f#zV7L*zG4(TdJ=SA zh^lmB;NuO1PClC5=aqVI@q&bOl1Y}qrKhu`ZP1a=es+E33NgG`);`5=-9LAD4ngHE7uclUEk@5b!?{>b(5Gcf}Oh$#T7X;A{cTHz$SFv zr^dfoIVB_qZJ!v%k){%F1^G3Jm z8$>hJOb!4r<9GgWLhl81$C@p1_7tplf-rGBq&!N-1#s&5pPeU^s>VEeQh$(A1;1Y1CBo@tFA}wF_bUR zuQLo&laBXpXCxlz&oLsZ{@`)YHXqIghp52?JSCa;8e9ojr5k*Fn*TD@2F%!8Q|e~n z6`5C?vbU1~XlU8vK>yDgiqz&4$GBdyAOPmj$ifDp^!%2ar{jKIE}34^lR{hHeBdpe z3>}zj_6#w;=-EN5-~E<1FUtIm55>qTt-R$3XDWZ1tc{!^Fk^0Ji1H~3m7r>fXn^W^ zrQfSAM5Ca>%e3qBdj}(N1cUP;`algFGuo4iOG*Wsn10^4kgLlewN*80!(bN8sdK0j z!oo^9S8HrdJ8iET8F;!dQ?qJ(m`Fg!8y4Q9NeVrAk-ZSvU?K7Od6g4hJ9)eqE~nZm z{b)f7#F&?CyO3detoPdTrKhu`CynqegO^A3#emX6{Rc)ZI}P&;-zASvEp|ms}9nfHB*x?qhnoBJH*uy~Lv93sb*XGNXptGbWg|KOE z;&1+H#pv>tU^s-~FOP(Vh-~GWU%}>;$dHoc8YC#L)EjgBCDo(FAekAO{XK_ zvHEfBdpV2L#g{*?echayhKt5D_U_$4mtJCXIex-l6)VP-dPDPY8GugD0LcZtoH4)| zYi~PeRo|IX^0KF!rQBI>nMp;-i4jBhN@msPETZA0sSl>7I}q6{Z}{A7?fp4hWv?A} zz=z$n{FnCJRDIJy>1}lC(VI`4KKb@jo15R=T21H9cUO6Hc7C@TENMyKXQI1~tWQ_q zNM?R{QJPv(l1Qv7i1&KG2fP)k?kCG_*G@~PNnM_&SfJ6Kr?h{l@yl07fML*kf~r1M zng;s|3B2W>tI+oIRxc0BSz(FV1w0kMvpy*GIrSe{z1FKwQa~uXC@C%^*xLb)ygpz| z+em$;v-ak=GUe2S$-o@jB18iUzNx}lLhVR>>IDG(Lgw=YdkcteE>1ihc|<(XQ(MEU z)1*F&$Op}MF445CfFo>fg%eNWk@>LVub|-FwMD#~UXtFxl%E}N zQU}nu!t;*lnrsNJS6L2aGr!F>yA?^<6ye)Pca|ItUUUxLn(od_MlopF`Px_}|0PyS@&$ed){aq5B?zfBpL(hImHXi1#)42GD-8h4i_C z1wmM`h4s9bgf~*ygTq=gLs$9(&MG-fFzB7>y;-sX%6Hwr z>+l595_FdIeW#B1kD^ytDVAIxVg}Ep?R>^f9s?>${>>00*e6K@C z^fa`_(-)ZfNeVv<4N0q_7WvQ|3I-D?I+0}xii;@=bl6;+O|?DE~j3w{$b@D&X`l2XLKw|3*?i}Dcc+YyAcmio*TR8iykyy{3F71 zBmI09X$d+@dQym5x;1~%)m5!qVZ}FkmL0^^U6xz*wH6v2S6YzI$9`A$ak%?CN=J^Q ziPA&882=g5f|>O6j04>|)HApWiGNlGZV#kp7P=j(CP3KZq1Dxxq)Ju}xoiz=1hDel zOjAHBy>>wUcJNtI2p1xvR6E{!(};tY}@z36G%(YS<;h2cyQm*W)p5ka=;@8 zZ|2?T941;scwxx<0lU7k0=>lvNzhK8-Z=f(V{Z*lGS`c+JCDXOEuPjr}^)$he)2ar7C@sx!@aHmqI*Uft$TeHeInCLcP3OZ&5heh3*i zHrus#!V^qOPiIL_D&b}OHYQhHbdbutioa7nWU^Ua%PS$K)*Y8Jq^#vRd9}eQe#gt! z=FyhgcdTA{#UZQ!Czp!2Zr}&=y^XV`sD|>MVU-V2s`mu#rFIh+;?gu|6ZA>>CvRit zYB@-BrspamS-kEc<+du8u*@|_M z#T1Jb27`?w>W61BAXNuAlbd&4GrrmLY|#>QmUK?g>eUzDGMP>ec9QVE;l%<>5?1jC zLgpjhyT4PLd^qIPcC5>iY=WZ%?YkzMrw^`Oam9OPRAqf;oO~v2$D&;z(ae==?jpL? zUFi}3=FPD1U?ej+L^Qp4Yi#w|5J~>%yqvK|GvKWD0dS1Y2H@!AILyb2h08lzA-Dm9 zLiv7r7^k$6_vdVJAFl|Y&&U{EUUE!L%Xy3*?227+?X8p5$qnBRz)7?Ooh6+!l)`N* zSMPt@q}@8$3C=I2!vkXi{wFLct~23_*@|E5fCg@BiQX|eed6Hiv!8v-karU)E#-Fe zMD0A+VqT+QF*=h7mz=*A-n?2rLoTF3adICAJR$LZCUXv;ls8q%Z+~xy>IDMdFAqoN zk0Y?t(i=3?tZ^7UlSfo^I+js-qoKjHkn%3w0CwK|1NBCTW5&f zy!wLYzkR-3oIP63=`87-BRqK7M)&dF^hbBywY~*Aucvf02hsJNU3Q?mzK+y|!B}`i zs0iV90zBGeKQ$<>DMe8nkUM6 zW4xcdl1=2-PCL@2?d{@C^{?q(q<;19GwsssRpf*6zJ6w6PWv|YEE1KrUlaUF7uCYpe5(k@H>9yD#hx)um8;T5$-t& zU&{WPuz8UzER;?mNGBuIeX`QPfJqOd8%S&Fc`Dm%b8bUd|H&%MZ1i-xAm}{K@f=FC zxfy|oSGi!46y6e08oR(gHHn5>D|c~>&EbpyYc_b zlLa)MmY}nwB~^6l{zq@=A{pK$g8J|<<}WiX#P<%Ccg zEgs@Z^JFJZK_6_W%qOLTJ>}H~{<#Up#Rc-L)MczZp|Dq}_hqc&{YwHUlhyIZro8O? zY>nrl`S?WxFCjYn@3Jxjc{t+a>k=m*gU%Pz=69FabAag-)RXt zOIlJz$=jK>tDhz6LV2pAi$chx;PXT&DZbVNou+Jx^uRHb=75e|8+^2SHm&|Uc?tsH zq<6riJu=}PK<=59W+1FJQ0`zzje3s^{1~eEz$Gf)MBYaBN8)2Eg>WdyhM06JoPco|8HAD7xIe`Wsqh^>|HV;8z5QdvBdwI0`o}l1M0&qRWV1VW= zG|+VQ1sYB;mRD-;)>d3Rz$*#6uN%{o@Gf|o(-L%+w4@Qjb-XKkJOrQ17aG5enk{3o z&Sj};u++(viqe7#zG2?Z_ zi_WNeXx?$2U!n-anVr&@th{wsS-JVNrX}bsX-P9Ec|5BZpLbnD^c$Tmx-o3AJL|S( z<&vz~t!dl^u1CW7kdnLS_h94`7&iIsm@DIRBcnv~Z|gBQEzEq)KxirsHa(Dk#rLAC zkl)lh3Ocj$KSQuhm(%MHQkjjsioD^a@Z!O?{rS70yl2&?<>kxaOgkD# zOBr+sVFRYkTc0U_lV}M#OIp%4DXnhn9FVtk((|@%&gUk+3i>IylYb5FI7wFQ+v4IUgL!C;+DOQbDfQ;8cSSX0L~+y><1}sax>-cpAXDKugeB(vltr zW$$Mb4s~C$NUilX$Lf?JB7UoJJybO-&@#fcfsa#ABe{@cM^Nf zy+xF__jVQqo$x%yy-Z`E(=O=cgiG@PXGWTq4~$Lq-m&%=?A-ZC2A$36dEK>%f<;(p zA%Fy+CpFN({hnP>drLZT!?*D^gy}7-mtA%ko`JLkoh2>lEE07ZW%K@{*L8aPz!tR! zu!Z%k@ESaj?qfQ56zM26&CzCSdK4yb`|9fI#_8R=f2?VmpXrjkN;7NQ37l##)dL@6 zNsH8G#?Kkgk9j-w8%&3?YS2Jy%#)$&`TG9MOK0fmj|5F?DLLPMLdvakkv^My_*#Vt=luwz+rv|@{ z=biWS9oYX_crtAYhRLCJN?qu*^IBWFE_f=vw!3gy-68pZx}%%7IottT2Q(KSh9zZM zg3gkbbdJ)=haY?U1e<@Be@yB*ohQ)K$>lXOvYY`r^|I=rGPesl;qsY)Efp^(-)i&e z%4-+zKLqn~O6Txx!Sz#s4uINp%*=t#Q#k-78!eAIFQ&VYPAA{M7B^th-oAQlbtAnU z7nancNF7uxTa(#FBc*c3)%ON{-(EWbD)Z*bj$ zvkNra%u7y*s27{9tSmw2Nu(v{ENMySC^csyoKcLDL-jx3~V z7MVwR9IMyT{buNGp9sBI68L>9ROjukr`Kxx-wV9}Z=3a&*9FK?H}yISgpIWeFFXiK zdQxfW=`3kU=P2R6^lD*zSGbrI>6GS#+8*a3g3$_9A+@#!oDrIewxtF-;suv&Qz0@a&C#Y^$4(WV1C_J=}iiP9dKX43twl}Z1sEvkM;`=-*}K?dI+?wQ|pYI?@xS zOK7S~f9ndg>Md*@J8?_r1-&yX{k%fVp*LS(5 z6S~(2LxX*f=xCSk-QCy29Z=rB3h;p?&^$G02|7z!(o>i=k90~KrU`&D)00o3G5~%MAo`DVahAKb-sntf4AWjZ&|%~-(gsg z(lYT)ICcPm*3(~`L8#Dl+J18~p@%vsJGxvH@YJOx=qzbTPZOdeCk{+u^ZF^!^_^%Z z&mnmYodUVXzuR(33NMRKK0=CDeOGFYu~PoMa$YeapF+B)gJ1+nd|fG8xjan zyU_vPMpx49ljMEuTO4ebw4^01X-P|3(vp_6q$MqBNlSX_(*F-lt9`yk>u6a30000< KMNUMnLSTaM>SQed literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_back_android.xml b/app/src/main/res/drawable/ic_back_android.xml new file mode 100644 index 0000000000..a8129acd52 --- /dev/null +++ b/app/src/main/res/drawable/ic_back_android.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_donate_crown.xml b/app/src/main/res/drawable/ic_donate_crown.xml new file mode 100644 index 0000000000..5ce35184d8 --- /dev/null +++ b/app/src/main/res/drawable/ic_donate_crown.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_donate_minus.xml b/app/src/main/res/drawable/ic_donate_minus.xml new file mode 100644 index 0000000000..7cf76b0b6b --- /dev/null +++ b/app/src/main/res/drawable/ic_donate_minus.xml @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_donate_plus.xml b/app/src/main/res/drawable/ic_donate_plus.xml new file mode 100644 index 0000000000..46c62e582f --- /dev/null +++ b/app/src/main/res/drawable/ic_donate_plus.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + diff --git a/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt b/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt index df2279e011..54265736d6 100644 --- a/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt +++ b/ivy-design/src/main/java/com/ivy/design/api/systems/IvyWalletDesign.kt @@ -130,6 +130,7 @@ abstract class IvyWalletDesign : IvyDesign { override val red = Red override val red1 = RedLight + override val red1Inverse = RedDark override val isLight = true } @@ -151,6 +152,7 @@ abstract class IvyWalletDesign : IvyDesign { override val red = Red override val red1 = RedDark + override val red1Inverse = RedLight override val isLight = false } diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt index 19fdf8eddc..d783d6dcb8 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/IvyColors.kt @@ -21,6 +21,7 @@ interface IvyColors { val red: Color val red1: Color + val red1Inverse: Color val isLight: Boolean } \ No newline at end of file diff --git a/ivy-design/src/main/java/com/ivy/design/l5_concept/SettingsScreen.kt b/ivy-design/src/main/java/com/ivy/design/l5_concept/SettingsScreen.kt deleted file mode 100644 index 784cec38c4..0000000000 --- a/ivy-design/src/main/java/com/ivy/design/l5_concept/SettingsScreen.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.ivy.design.l5_concept - -//Upgraded Ivy Wallet's settings screen \ No newline at end of file From f6cb3b3e6c30749d1c02408c3d91f4030af1eff4 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 15:17:49 +0300 Subject: [PATCH 3/9] Add "Donate" button in Settings --- .../main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt | 7 ++++--- .../src/main/java/com/ivy/design/l0_system/Colors.kt | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt index 3ccb7c33c1..0d90d8680f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt @@ -30,6 +30,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import coil.compose.AsyncImage import com.google.accompanist.insets.navigationBarsPadding import com.google.accompanist.insets.statusBarsPadding +import com.ivy.design.l0_system.SunsetNight import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style import com.ivy.design.l1_buildingBlocks.IconScale @@ -153,7 +154,7 @@ private fun BoxWithConstraintsScope.UI( onDeleteAllUserData: () -> Unit = {}, onDeleteCloudUserData: () -> Unit = {}, -) { + ) { var currencyModalVisible by remember { mutableStateOf(false) } var nameModalVisible by remember { mutableStateOf(false) } var chooseStartDateOfMonthVisible by remember { mutableStateOf(false) } @@ -356,7 +357,7 @@ private fun BoxWithConstraintsScope.UI( icon = R.drawable.ic_donate_crown, text = "Donate", iconPadding = 8.dp, - backgroundGradient = Gradient.solid(Orange2) + backgroundGradient = Gradient(SunsetNight.startColor, SunsetNight.endColor) ) { nav.navigateTo(DonateScreen) } @@ -412,7 +413,7 @@ private fun BoxWithConstraintsScope.UI( deleteAllDataModalVisible = true } - if(user != null){ + if (user != null) { Spacer(Modifier.height(16.dp)) SettingsPrimaryButton( diff --git a/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt b/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt index c20b741f1d..55277ce3ce 100644 --- a/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt +++ b/ivy-design/src/main/java/com/ivy/design/l0_system/Colors.kt @@ -100,6 +100,7 @@ val GradientOrange = Gradient(Orange, OrangeLight) val GradientOrangeDark = Gradient(OrangeDark, Color(0xFFF2CD9E)) val GradientOrangeRevert = Gradient(Color(0xFFF2CD9E), Orange) val GradientPurple = Gradient(Purple, Color(0xFFAA99FF)) +val SunsetNight = Gradient(Red, Orange) @Composable fun pureBlur() = UI.colors.pure.copy(alpha = 0.95f) From d6aeea5072ea35edbf67ee5dbd4ce40d8b606439 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 15:35:45 +0300 Subject: [PATCH 4/9] Add "Donate" button in More menu --- .../com/ivy/wallet/ui/home/HomeMoreMenu.kt | 34 +++++++++++++++++-- .../ivy/wallet/ui/settings/SettingsScreen.kt | 2 +- .../java/com/ivy/wallet/ui/theme/IvyColors.kt | 3 ++ .../wallet/ui/theme/components/IvyButton.kt | 11 ++++-- 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt b/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt index 9c1012b6e7..dd87930332 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/HomeMoreMenu.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.zIndex import com.google.accompanist.insets.navigationBarsPadding import com.google.accompanist.insets.statusBarsPadding +import com.ivy.design.l0_system.SunsetNight import com.ivy.design.l0_system.Theme import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style @@ -34,10 +35,13 @@ import com.ivy.frp.view.navigation.navigation import com.ivy.wallet.Constants import com.ivy.wallet.R import com.ivy.wallet.ui.* +import com.ivy.wallet.ui.donate.DonateScreen import com.ivy.wallet.ui.theme.Blue +import com.ivy.wallet.ui.theme.Gradient import com.ivy.wallet.ui.theme.Gray import com.ivy.wallet.ui.theme.components.BufferBattery import com.ivy.wallet.ui.theme.components.CircleButtonFilled +import com.ivy.wallet.ui.theme.components.IvyButton import com.ivy.wallet.ui.theme.components.IvyIcon import com.ivy.wallet.ui.theme.modal.AddModalBackHandling import com.ivy.wallet.ui.theme.wallet.AmountCurrencyB1 @@ -156,12 +160,17 @@ fun BoxWithConstraintsScope.MoreMenu( } } + if (percentExpanded > 0.01f) { + DonateButton( + percentExpanded = percentExpanded + ) + } + CircleButtonFilled( modifier = Modifier .layout { measurable, constraints -> val placeable = measurable.measure(constraints) - layout(placeable.width, placeable.height) { placeable.place( x = xBase.roundToInt() - buttonSizePx.roundToInt(), @@ -179,7 +188,6 @@ fun BoxWithConstraintsScope.MoreMenu( ) { setExpanded(!expanded) } - } @Composable @@ -553,6 +561,28 @@ private fun Preview_Expanded() { } } +@Composable +private fun BoxWithConstraintsScope.DonateButton( + percentExpanded: Float +) { + val nav = navigation() + IvyButton( + modifier = Modifier + .align(Alignment.BottomCenter) + .navigationBarsPadding() + .padding(bottom = 40.dp) + .zIndex(510f) + .alpha(percentExpanded), + text = "Donate", + iconStart = R.drawable.ic_donate_crown, + iconEdgePadding = 16.dp, + iconTextPadding = 12.dp, + backgroundGradient = Gradient.from(SunsetNight) + ) { + nav.navigateTo(DonateScreen) + } +} + @Preview @Composable private fun Preview() { diff --git a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt index 0d90d8680f..c3559c2c7c 100644 --- a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt @@ -357,7 +357,7 @@ private fun BoxWithConstraintsScope.UI( icon = R.drawable.ic_donate_crown, text = "Donate", iconPadding = 8.dp, - backgroundGradient = Gradient(SunsetNight.startColor, SunsetNight.endColor) + backgroundGradient = Gradient.from(SunsetNight) ) { nav.navigateTo(DonateScreen) } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt b/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt index 7a5da8ff1e..e13f41772b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/IvyColors.kt @@ -180,6 +180,9 @@ data class Gradient( val endColor: Color ) { companion object { + fun from(gradient: com.ivy.design.l0_system.Gradient) = + Gradient(gradient.startColor, gradient.endColor) + fun from(startColor: Int, endColor: Int?) = Gradient( startColor = startColor.toComposeColor(), endColor = (endColor ?: startColor).toComposeColor() diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt index 4b1edaa55f..79e4ed5921 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyButton.kt @@ -47,6 +47,7 @@ fun IvyButton( hasGlow: Boolean = true, padding: Dp = 12.dp, iconEdgePadding: Dp = 12.dp, + iconTextPadding: Dp = 4.dp, onClick: () -> Unit ) { Row( @@ -77,6 +78,7 @@ fun IvyButton( icon = iconStart, tint = iconTint, iconEdgePadding = iconEdgePadding, + iconTextPadding = iconTextPadding ) } iconEnd != null && !wrapContentMode -> { @@ -84,6 +86,7 @@ fun IvyButton( icon = iconEnd, tint = Color.Transparent, iconEdgePadding = iconEdgePadding, + iconTextPadding = iconTextPadding ) } else -> { @@ -113,6 +116,7 @@ fun IvyButton( icon = iconStart, tint = Color.Transparent, iconEdgePadding = iconEdgePadding, + iconTextPadding = iconTextPadding ) } iconEnd != null -> { @@ -120,6 +124,7 @@ fun IvyButton( icon = iconEnd, tint = iconTint, iconEdgePadding = iconEdgePadding, + iconTextPadding = iconTextPadding ) } else -> { @@ -132,6 +137,7 @@ fun IvyButton( @Composable private fun IconStart( iconEdgePadding: Dp, + iconTextPadding: Dp, icon: Int, tint: Color, ) { @@ -144,16 +150,17 @@ private fun IconStart( tint = tint, ) - Spacer(modifier = Modifier.width(4.dp)) + Spacer(modifier = Modifier.width(iconTextPadding)) } @Composable private fun IconEnd( iconEdgePadding: Dp, + iconTextPadding: Dp, icon: Int, tint: Color, ) { - Spacer(modifier = Modifier.width(4.dp)) + Spacer(modifier = Modifier.width(iconTextPadding)) Icon( modifier = Modifier, From 5e87c9ddd6cf8e65a6dd61799f9d54de9b1c0833 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 15:40:05 +0300 Subject: [PATCH 5/9] Hide "Experimental" section --- .../ivy/wallet/ui/settings/SettingsScreen.kt | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt index c3559c2c7c..2b8a2bc6fc 100644 --- a/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/settings/SettingsScreen.kt @@ -45,7 +45,6 @@ import com.ivy.wallet.domain.data.IvyCurrency import com.ivy.wallet.domain.data.core.User import com.ivy.wallet.ui.* import com.ivy.wallet.ui.donate.DonateScreen -import com.ivy.wallet.ui.settings.experimental.ExperimentalScreen import com.ivy.wallet.ui.theme.* import com.ivy.wallet.ui.theme.components.IvyButton import com.ivy.wallet.ui.theme.components.IvySwitch @@ -312,19 +311,19 @@ private fun BoxWithConstraintsScope.UI( } } - item { - SettingsSectionDivider(text = stringResource(R.string.experimental)) - - Spacer(Modifier.height(16.dp)) - - val nav = navigation() - SettingsDefaultButton( - icon = R.drawable.ic_custom_atom_m, - text = stringResource(R.string.experimental_settings) - ) { - nav.navigateTo(ExperimentalScreen) - } - } +// item { +// SettingsSectionDivider(text = stringResource(R.string.experimental)) +// +// Spacer(Modifier.height(16.dp)) +// +// val nav = navigation() +// SettingsDefaultButton( +// icon = R.drawable.ic_custom_atom_m, +// text = stringResource(R.string.experimental_settings) +// ) { +// nav.navigateTo(ExperimentalScreen) +// } +// } item { SettingsSectionDivider(text = stringResource(R.string.other)) From 5a9187d436cad353276144658c54440461ee551f Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 15:47:36 +0300 Subject: [PATCH 6/9] Add "Join Telegram" card in User Journey --- .../deprecated/logic/CustomerJourneyLogic.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt index c989a63fba..68ea037eab 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt @@ -55,6 +55,7 @@ class CustomerJourneyLogic( didYouKnow_expensesPieChart(), rateUsCard(), shareIvyWalletCard(), + joinIvyTelegramCard(), // buyLifetimeOfferCard(), makeReportCard(), rateUsCard_2(), @@ -179,6 +180,22 @@ class CustomerJourneyLogic( } ) + fun joinIvyTelegramCard() = CustomerJourneyCardData( + id = "join_ivy_telegram", + condition = { trnCount, _, _ -> + trnCount >= 16 + }, + description = "It seems like that you're enjoying Ivy Wallet! Feel free join our invite-only Ivy Telegram Community and make our app better :)", + title = "Ivy Community", + cta = "Join now", + ctaIcon = R.drawable.ic_telegram_24dp, + backgroundColor = Blue, + hasDismiss = true, + onAction = { navigation, _, _ -> + navigation.navigateTo(Paywall(paywallReason = null)) + } + ) + fun buyLifetimeOfferCard() = CustomerJourneyCardData( id = "buy_lifetime_offer", condition = { trnCount, _, ivyContext -> @@ -346,6 +363,18 @@ private fun PreviewShareIvyWallet() { } } +@Preview +@Composable +private fun PreviewJoinTelegram() { + IvyWalletComponentPreview { + CustomerJourneyCard( + cardData = CustomerJourneyLogic.joinIvyTelegramCard(), + onCTA = { }, + onDismiss = {} + ) + } +} + @Preview @Composable private fun PreviewBuyLifetimeOffer() { From c01c63ca38c7243ea8bcbc4854751ea4b93468c3 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 16:04:06 +0300 Subject: [PATCH 7/9] Fix "Join Telegram" card CTA and add "Donate" prompt --- .../deprecated/logic/CustomerJourneyLogic.kt | 92 ++++++++++--------- .../logic/model/CustomerJourneyCardData.kt | 4 +- .../com/ivy/wallet/ui/home/CustomerJourney.kt | 16 ++-- 3 files changed, 57 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt index 68ea037eab..d5edfadfbc 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/CustomerJourneyLogic.kt @@ -2,6 +2,7 @@ package com.ivy.wallet.domain.deprecated.logic import androidx.compose.runtime.Composable import androidx.compose.ui.tooling.preview.Preview +import com.ivy.design.l0_system.SunsetNight import com.ivy.wallet.Constants import com.ivy.wallet.R import com.ivy.wallet.domain.data.TransactionType @@ -11,6 +12,7 @@ import com.ivy.wallet.io.persistence.dao.PlannedPaymentRuleDao import com.ivy.wallet.io.persistence.dao.TransactionDao import com.ivy.wallet.stringRes import com.ivy.wallet.ui.* +import com.ivy.wallet.ui.donate.DonateScreen import com.ivy.wallet.ui.home.CustomerJourneyCard import com.ivy.wallet.ui.main.MainTab import com.ivy.wallet.ui.theme.* @@ -56,11 +58,11 @@ class CustomerJourneyLogic( rateUsCard(), shareIvyWalletCard(), joinIvyTelegramCard(), -// buyLifetimeOfferCard(), makeReportCard(), rateUsCard_2(), shareIvyWalletCard_2(), - ivyWalletIsOpenSource() + ivyWalletIsOpenSource(), + donateIvyWallet() ) fun adjustBalanceCard() = CustomerJourneyCardData( @@ -72,7 +74,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.adjust_initial_balance_description), cta = stringRes(R.string.to_accounts), ctaIcon = R.drawable.ic_custom_account_s, - backgroundColor = Ivy, + background = Gradient.solid(Ivy), hasDismiss = false, onAction = { _, ivyContext, _ -> ivyContext.selectMainTab(MainTab.ACCOUNTS) @@ -88,7 +90,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.create_first_planned_payment_description), cta = stringRes(R.string.add_planned_payment), ctaIcon = R.drawable.ic_planned_payments, - backgroundColor = Orange, + background = Gradient.solid(Orange), hasDismiss = true, onAction = { navigation, _, _ -> navigation.navigateTo( @@ -109,7 +111,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.widget_description), cta = stringRes(R.string.add_widget), ctaIcon = R.drawable.ic_custom_atom_s, - backgroundColor = GreenLight, + background = Gradient.solid(GreenLight), hasDismiss = true, onAction = { _, _, ivyActivity -> ivyActivity.pinWidget(AddTransactionWidgetCompact::class.java) @@ -122,10 +124,10 @@ class CustomerJourneyLogic( trnCount >= 5 }, title = stringRes(R.string.set_a_budget), - description = stringRes(R.string.set_a_budget_description), + description = stringRes(R.string.set_a_budget_description), cta = stringRes(R.string.add_budget), ctaIcon = R.drawable.ic_budget_xs, - backgroundColor = Green2, + background = Gradient.solid(Green2), hasDismiss = true, onAction = { navigation, _, _ -> navigation.navigateTo(BudgetScreen) @@ -141,7 +143,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.expenses_piechart_description), cta = stringRes(R.string.expenses_piechart), ctaIcon = R.drawable.ic_custom_bills_s, - backgroundColor = Red, + background = Gradient.solid(Red), hasDismiss = true, onAction = { navigation, _, _ -> navigation.navigateTo(PieChartStatistic(type = TransactionType.EXPENSE)) @@ -157,7 +159,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.review_ivy_wallet_description), cta = stringRes(R.string.rate_us_on_google_play), ctaIcon = R.drawable.ic_custom_star_s, - backgroundColor = Green, + background = Gradient.solid(Green), hasDismiss = true, onAction = { _, _, ivyActivity -> ivyActivity.reviewIvyWallet(dismissReviewCard = true) @@ -173,7 +175,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.help_us_grow), cta = stringRes(R.string.share_with_friends), ctaIcon = R.drawable.ic_custom_family_s, - backgroundColor = Red3, + background = Gradient.solid(Red3), hasDismiss = true, onAction = { _, _, ivyActivity -> ivyActivity.shareIvyWallet() @@ -185,31 +187,14 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 16 }, - description = "It seems like that you're enjoying Ivy Wallet! Feel free join our invite-only Ivy Telegram Community and make our app better :)", + description = "It looks like that you're enjoying Ivy Wallet! Feel free join our invite-only Ivy Telegram Community and make our app better :)", title = "Ivy Community", cta = "Join now", ctaIcon = R.drawable.ic_telegram_24dp, - backgroundColor = Blue, + background = Gradient.solid(Blue), hasDismiss = true, - onAction = { navigation, _, _ -> - navigation.navigateTo(Paywall(paywallReason = null)) - } - ) - - fun buyLifetimeOfferCard() = CustomerJourneyCardData( - id = "buy_lifetime_offer", - condition = { trnCount, _, ivyContext -> - trnCount >= 16 && !ivyContext.isPremium - }, - title = "Lifetime Premium", - description = "We understand that owning something is better than just paying a subscription for it." + - " That's why we've included this special limited lifetime offer only for our best users like you.", - cta = "Get Lifetime Premium", - ctaIcon = R.drawable.ic_custom_crown_s, - backgroundColor = Ivy, - hasDismiss = true, - onAction = { navigation, _, _ -> - navigation.navigateTo(Paywall(paywallReason = null)) + onAction = { _, _, rootActivity -> + rootActivity.openUrlInBrowser(Constants.URL_IVY_TELEGRAM_INVITE) } ) @@ -222,7 +207,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.make_a_report_description), cta = stringRes(R.string.make_a_report), ctaIcon = R.drawable.ic_statistics_xs, - backgroundColor = Green2, + background = Gradient.solid(Green2), hasDismiss = true, onAction = { navigation, _, _ -> navigation.navigateTo(Report) @@ -238,7 +223,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.make_ivy_wallet_better_description), cta = stringRes(R.string.rate_us_on_google_play), ctaIcon = R.drawable.ic_custom_star_s, - backgroundColor = GreenLight, + background = Gradient.solid(GreenLight), hasDismiss = true, onAction = { _, _, ivyActivity -> ivyActivity.reviewIvyWallet(dismissReviewCard = true) @@ -254,7 +239,7 @@ class CustomerJourneyLogic( description = stringRes(R.string.we_need_your_help_description), cta = stringRes(R.string.share_ivy_wallet), ctaIcon = R.drawable.ic_custom_family_s, - backgroundColor = Purple2, + background = Gradient.solid(Purple2), hasDismiss = true, onAction = { _, _, ivyActivity -> ivyActivity.shareIvyWallet() @@ -270,12 +255,29 @@ class CustomerJourneyLogic( description = stringRes(R.string.ivy_wallet_is_opensource_description), cta = stringRes(R.string.contribute), ctaIcon = R.drawable.github_logo, - backgroundColor = Blue3, + background = Gradient.solid(Blue3), hasDismiss = true, onAction = { _, _, ivyActivity -> ivyActivity.openUrlInBrowser(Constants.URL_IVY_WALLET_REPO) } ) + + fun donateIvyWallet() = CustomerJourneyCardData( + id = "donate_ivy_wallet", + condition = { trnCount, _, _ -> + trnCount >= 30 + }, + title = "Support Ivy Wallet", + description = "It seems like you enjoy free and open-source software. We too! " + + "That's why we opened a donations channel to sustain and improve our small project.", + cta = "Donate", + ctaIcon = R.drawable.ic_donate_crown, + background = Gradient.from(SunsetNight), + hasDismiss = true, + onAction = { nav, _, _ -> + nav.navigateTo(DonateScreen) + } + ) } } @@ -377,10 +379,10 @@ private fun PreviewJoinTelegram() { @Preview @Composable -private fun PreviewBuyLifetimeOffer() { +private fun PreviewMakeReport() { IvyWalletComponentPreview { CustomerJourneyCard( - cardData = CustomerJourneyLogic.buyLifetimeOfferCard(), + cardData = CustomerJourneyLogic.makeReportCard(), onCTA = { }, onDismiss = {} ) @@ -389,10 +391,10 @@ private fun PreviewBuyLifetimeOffer() { @Preview @Composable -private fun PreviewMakeReport() { +private fun PreviewRateUs_2() { IvyWalletComponentPreview { CustomerJourneyCard( - cardData = CustomerJourneyLogic.makeReportCard(), + cardData = CustomerJourneyLogic.rateUsCard_2(), onCTA = { }, onDismiss = {} ) @@ -401,10 +403,10 @@ private fun PreviewMakeReport() { @Preview @Composable -private fun PreviewRateUs_2() { +private fun PreviewShaveIvyWallet_2() { IvyWalletComponentPreview { CustomerJourneyCard( - cardData = CustomerJourneyLogic.rateUsCard_2(), + cardData = CustomerJourneyLogic.shareIvyWalletCard_2(), onCTA = { }, onDismiss = {} ) @@ -413,10 +415,10 @@ private fun PreviewRateUs_2() { @Preview @Composable -private fun PreviewShaveIvyWallet_2() { +private fun PreviewIvyWallet_isOpenSource() { IvyWalletComponentPreview { CustomerJourneyCard( - cardData = CustomerJourneyLogic.shareIvyWalletCard_2(), + cardData = CustomerJourneyLogic.ivyWalletIsOpenSource(), onCTA = { }, onDismiss = {} ) @@ -425,10 +427,10 @@ private fun PreviewShaveIvyWallet_2() { @Preview @Composable -private fun PreviewIvyWallet_isOpenSource() { +private fun PreviewDonateCard() { IvyWalletComponentPreview { CustomerJourneyCard( - cardData = CustomerJourneyLogic.ivyWalletIsOpenSource(), + cardData = CustomerJourneyLogic.donateIvyWallet(), onCTA = { }, onDismiss = {} ) diff --git a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt index ad4118e7f3..30aa7f138a 100644 --- a/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt +++ b/app/src/main/java/com/ivy/wallet/domain/deprecated/logic/model/CustomerJourneyCardData.kt @@ -1,10 +1,10 @@ package com.ivy.wallet.domain.deprecated.logic.model import androidx.annotation.DrawableRes -import androidx.compose.ui.graphics.Color import com.ivy.frp.view.navigation.Navigation import com.ivy.wallet.ui.IvyWalletCtx import com.ivy.wallet.ui.RootActivity +import com.ivy.wallet.ui.theme.Gradient data class CustomerJourneyCardData( val id: String, @@ -17,6 +17,6 @@ data class CustomerJourneyCardData( val hasDismiss: Boolean = true, - val backgroundColor: Color, + val background: Gradient, val onAction: (Navigation, IvyWalletCtx, RootActivity) -> Unit ) \ No newline at end of file diff --git a/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt b/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt index ce6714c00d..3a416bce1b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt +++ b/app/src/main/java/com/ivy/wallet/ui/home/CustomerJourney.kt @@ -67,8 +67,8 @@ fun CustomerJourneyCard( modifier = Modifier .fillMaxWidth() .padding(horizontal = 16.dp) - .drawColoredShadow(cardData.backgroundColor) - .background(cardData.backgroundColor, UI.shapes.r3) + .drawColoredShadow(cardData.background.startColor) + .background(cardData.background.asHorizontalBrush(), UI.shapes.r3) .clip(UI.shapes.r3) .clickable { onCTA() @@ -86,7 +86,7 @@ fun CustomerJourneyCard( text = cardData.title, style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold, - color = findContrastTextColor(cardData.backgroundColor) + color = findContrastTextColor(cardData.background.startColor) ) ) @@ -98,7 +98,7 @@ fun CustomerJourneyCard( } .padding(8.dp), //enlarge click area icon = R.drawable.ic_dismiss, - tint = cardData.backgroundColor.dynamicContrast(), + tint = cardData.background.startColor.dynamicContrast(), contentDescription = "prompt_dismiss", ) @@ -115,7 +115,7 @@ fun CustomerJourneyCard( text = cardData.description, style = UI.typo.b2.style( fontWeight = FontWeight.Medium, - color = findContrastTextColor(cardData.backgroundColor) + color = findContrastTextColor(cardData.background.startColor) ) ) @@ -129,13 +129,13 @@ fun CustomerJourneyCard( text = cardData.cta, shadowAlpha = 0f, iconStart = cardData.ctaIcon, - iconTint = cardData.backgroundColor, + iconTint = cardData.background.startColor, textStyle = UI.typo.b2.style( - color = cardData.backgroundColor, + color = cardData.background.startColor, fontWeight = FontWeight.Bold ), padding = 8.dp, - backgroundGradient = Gradient.solid(findContrastTextColor(cardData.backgroundColor)) + backgroundGradient = Gradient.solid(findContrastTextColor(cardData.background.startColor)) ) { onCTA() } From 259056d0af3c4916897be87f708cbe124616dc16 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 16:06:35 +0300 Subject: [PATCH 8/9] Bump version --- .../src/main/java/com/ivy/wallet/buildsrc/dependencies.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/com/ivy/wallet/buildsrc/dependencies.kt b/buildSrc/src/main/java/com/ivy/wallet/buildsrc/dependencies.kt index 7fd69af07b..3a4fd6e709 100644 --- a/buildSrc/src/main/java/com/ivy/wallet/buildsrc/dependencies.kt +++ b/buildSrc/src/main/java/com/ivy/wallet/buildsrc/dependencies.kt @@ -22,8 +22,8 @@ import org.gradle.kotlin.dsl.project object Project { //Version - const val versionName = "4.2.1" - const val versionCode = 113 + const val versionName = "4.3.0" + const val versionCode = 114 //Compile SDK & Build Tools const val compileSdkVersion = 31 From be672947dcc45ab66d413c1d64a0a3b9508ce192 Mon Sep 17 00:00:00 2001 From: Iliyan Germanov Date: Sat, 11 Jun 2022 16:11:34 +0300 Subject: [PATCH 9/9] Add logging to DonateViewModel.kt --- app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt index 1b0931b7d9..941986b9d6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/donate/DonateViewModel.kt @@ -9,6 +9,7 @@ import com.ivy.wallet.ui.donate.data.DonateOption import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.launch +import timber.log.Timber import javax.inject.Inject @HiltViewModel @@ -55,6 +56,7 @@ class DonateViewModel @Inject constructor( DonateOption.DONATE_100 -> IvyBilling.DONATE_100 } } then { targetSku -> + Timber.i("Donating to sku \"$targetSku\"") plans.find { it.sku == targetSku } } then { plan -> if (plan != null) {