From c08e9bd8c4064d4c89d964a01f8c9687d86bf25d Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Thu, 21 Apr 2022 23:19:35 +0200 Subject: [PATCH 1/9] Added strings in strings.xml --- .../com/ivy/wallet/ui/main/MainBottomBar.kt | 13 ++-- .../components/OnboardingToolbar.kt | 4 +- .../ui/onboarding/components/Suggestions.kt | 3 +- .../ui/onboarding/model/FromToTimeRange.kt | 8 ++- .../ui/onboarding/steps/OnboardingAccounts.kt | 7 ++- .../onboarding/steps/OnboardingCategories.kt | 7 ++- .../onboarding/steps/OnboardingSetCurrency.kt | 6 +- .../onboarding/steps/OnboardingSplashLogin.kt | 29 ++++----- .../ui/onboarding/steps/OnboardingType.kt | 11 ++-- .../steps/archived/OnboardingPrivacyTC.kt | 17 +++--- .../steps/archived/OnboardingSetName.kt | 7 ++- .../ui/planned/edit/EditPlannedScreen.kt | 8 ++- .../wallet/ui/planned/edit/RecurringRule.kt | 7 ++- .../ui/planned/list/PlannedPaymentCard.kt | 11 ++-- .../planned/list/PlannedPaymentsBottomBar.kt | 3 +- .../planned/list/PlannedPaymentsLazyColumn.kt | 10 ++-- .../ui/planned/list/PlannedPaymentsScreen.kt | 4 +- app/src/main/res/values/strings.xml | 59 +++++++++++++++++++ 18 files changed, 148 insertions(+), 66 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt index e3ffd78416..df946ad9eb 100644 --- a/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/main/MainBottomBar.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -97,7 +98,7 @@ fun BoxWithConstraintsScope.BottomBar( ) { Tab( icon = R.drawable.ic_home, - name = "Home", + name = stringResource(R.string.home), selected = tab == MainTab.HOME, selectedColor = Ivy ) { @@ -108,7 +109,7 @@ fun BoxWithConstraintsScope.BottomBar( Tab( icon = R.drawable.ic_accounts, - name = "Accounts", + name = stringResource(R.string.accounts), selected = tab == MainTab.ACCOUNTS, selectedColor = Green ) { @@ -272,7 +273,7 @@ private fun TransactionButtons( .alpha(buttonsShownPercent) .zIndex(200f), iconStart = R.drawable.ic_planned_payments, - text = "Add planned payment", + text = stringResource(R.string.add_planned_payment), solidBackground = true ) { onAddPlannedPayment() @@ -371,7 +372,7 @@ private fun AddIncomeButton( onAddIncome() } .zIndex(200f), - text = "ADD INCOME", + text = stringResource(R.string.add_income_uppercase), style = UI.typo.c.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold, @@ -457,7 +458,7 @@ private fun AddExpenseButton( onAddExpense() } .zIndex(200f), - text = "ADD EXPENSE", + text = stringResource(R.string.add_expense_uppercase), style = UI.typo.c.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold, @@ -543,7 +544,7 @@ private fun AddTransferButton( onAddTransfer() } .zIndex(200f), - text = "ACCOUNT TRANSFER", + text = stringResource(R.string.account_transfer), style = UI.typo.c.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold, diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt index 851550c730..0971f3c9f1 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/OnboardingToolbar.kt @@ -8,11 +8,13 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletComponentPreview import com.ivy.wallet.ui.theme.Gray import com.ivy.wallet.ui.theme.components.IvyToolbar @@ -35,7 +37,7 @@ fun OnboardingToolbar( onSkip() } .padding(all = 16.dp), //enlarge click area - text = "Skip", + text = stringResource(R.string.skip), style = UI.typo.b2.style( color = Gray, fontWeight = FontWeight.Bold diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt index 549cc6666a..ef962be248 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/components/Suggestions.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -117,7 +118,7 @@ private fun AddNewButton( Text( modifier = Modifier.padding(vertical = 16.dp), - text = "Add new", + text = stringResource(R.string.add_new), style = UI.typo.b2.style( color = UI.colors.pure, fontWeight = FontWeight.Bold diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt index 87495eefc9..8921b93819 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/model/FromToTimeRange.kt @@ -1,7 +1,9 @@ package com.ivy.wallet.ui.onboarding.model +import com.ivy.wallet.R import com.ivy.wallet.domain.data.entity.Transaction import com.ivy.wallet.domain.fp.data.ClosedTimeRange +import com.ivy.wallet.stringRes import com.ivy.wallet.utils.* import java.time.LocalDateTime @@ -36,13 +38,13 @@ data class FromToTimeRange( "${from.toLocalDate().formatDateOnly()} - ${to.toLocalDate().formatDateOnly()}" } from != null && to == null -> { - "From ${from.toLocalDate().formatDateOnly()}" + stringRes(R.string.from_date, from.toLocalDate().formatDateOnly()) } from == null && to != null -> { - "To ${to.toLocalDate().formatDateOnly()}" + stringRes(R.string.to_date, to.toLocalDate().formatDateOnly()) } else -> { - "Range" + stringRes(R.string.range) } } } diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt index ec857356e8..491f4aa236 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingAccounts.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -78,7 +79,7 @@ fun BoxWithConstraintsScope.OnboardingAccounts( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Add accounts", + text = stringResource(R.string.add_accounts), style = UI.typo.h2.style( fontWeight = FontWeight.Black ) @@ -130,7 +131,7 @@ fun BoxWithConstraintsScope.OnboardingAccounts( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Suggestions", + text = stringResource(R.string.suggestion), style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold ) @@ -173,7 +174,7 @@ fun BoxWithConstraintsScope.OnboardingAccounts( .navigationBarsPadding() .padding(bottom = 20.dp), - text = "Next", + text = stringResource(R.string.next), textColor = White, backgroundGradient = GradientIvy, hasNext = true, diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt index d30ecd1840..e51dbb96dd 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingCategories.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -73,7 +74,7 @@ fun BoxWithConstraintsScope.OnboardingCategories( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Add categories", + text = stringResource(R.string.add_categories), style = UI.typo.h2.style( fontWeight = FontWeight.Black ) @@ -121,7 +122,7 @@ fun BoxWithConstraintsScope.OnboardingCategories( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Suggestions", + text = stringResource(R.string.suggestions), style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold ) @@ -162,7 +163,7 @@ fun BoxWithConstraintsScope.OnboardingCategories( .navigationBarsPadding() .padding(bottom = 20.dp), - text = "Finish", + text = stringResource(R.string.finish), textColor = White, backgroundGradient = GradientIvy, hasNext = false, diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt index 0646629ffc..8c4c140f27 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSetCurrency.kt @@ -5,6 +5,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -13,6 +14,7 @@ import com.google.accompanist.insets.statusBarsPadding import com.ivy.design.api.navigation import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.domain.data.IvyCurrency import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.GradientIvy @@ -56,7 +58,7 @@ fun BoxWithConstraintsScope.OnboardingSetCurrency( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Set currency", + text = stringResource(R.string.set_currency), style = UI.typo.h2.style( fontWeight = FontWeight.Black ) @@ -92,7 +94,7 @@ fun BoxWithConstraintsScope.OnboardingSetCurrency( .navigationBarsPadding() .padding(bottom = 20.dp), - text = "Set", + text = stringResource(R.string.set), textColor = White, backgroundGradient = GradientIvy, hasNext = true, diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt index 75d1cae573..640bce1293 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingSplashLogin.kt @@ -20,6 +20,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.layout.layout import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight @@ -181,7 +182,7 @@ fun BoxWithConstraintsScope.OnboardingSplashLogin( ivyContext = ivyContext, percentTransition = percentTransition ), - text = "Your personal money manager", + text = stringResource(R.string.your_personal_money_manager), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.SemiBold @@ -203,7 +204,7 @@ fun BoxWithConstraintsScope.OnboardingSplashLogin( } .padding(vertical = 8.dp) .padding(end = 8.dp), - text = "#opensource", + text = stringResource(R.string.opensource), style = UI.typo.c.style( color = Green, fontWeight = FontWeight.Bold @@ -261,10 +262,10 @@ private fun LoginSection( LoginButton( text = when (opGoogleSignIn) { - is OpResult.Failure -> "Error. Try again: ${opGoogleSignIn.error()}" - OpResult.Loading -> "Signing in..." - is OpResult.Success -> "Success!" - null -> "Login with Google" + is OpResult.Failure -> stringResource(R.string.google_error_try_again, opGoogleSignIn.error()) + OpResult.Loading -> stringResource(R.string.google_signing_in) + is OpResult.Success -> stringResource(R.string.google_signing_in_success) + null -> stringResource(R.string.login_with_google) }, textColor = White, backgroundGradient = GradientRed, @@ -288,7 +289,7 @@ private fun LoginSection( LoginButton( icon = R.drawable.ic_local_account, - text = "Offline account", + text = stringResource(R.string.offline_account), textColor = UI.colors.pureInverse, backgroundGradient = Gradient.solid(UI.colors.medium), hasShadow = false @@ -322,7 +323,7 @@ private fun LoginWithGoogleExplanation() { Column { Text( - text = "SYNC YOUR DATA ON THE IVY CLOUD", + text = stringResource(R.string.sync_data_ivy_cloud), style = UI.typo.c.style( color = Green, fontWeight = FontWeight.ExtraBold @@ -332,7 +333,7 @@ private fun LoginWithGoogleExplanation() { Spacer(Modifier.height(2.dp)) Text( - text = "Data integrity and protection aren't guaranteed!", + text = stringResource(R.string.data_integrity_protection_warning), style = UI.typo.c.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Medium @@ -346,7 +347,7 @@ private fun LoginWithGoogleExplanation() { private fun LocalAccountExplanation() { Text( modifier = Modifier.padding(start = 32.dp), - text = "OR ENTER WITH OFFLINE ACCOUNT", + text = stringResource(R.string.or_enter_with_offline_account), style = UI.typo.c.style( color = Gray, fontWeight = FontWeight.ExtraBold @@ -357,7 +358,7 @@ private fun LocalAccountExplanation() { Text( modifier = Modifier.padding(start = 32.dp, end = 32.dp), - text = "Your data will be saved locally (only on your phone) and won't be synced with the cloud. You risk losing it if you uninstall the app or change your device. You can always activate sync later if you decide to.", + text = stringResource(R.string.offline_warning), style = UI.typo.c.style( color = Gray, fontWeight = FontWeight.Medium @@ -367,9 +368,9 @@ private fun LocalAccountExplanation() { @Composable private fun PrivacyPolicyAndTC() { - val terms = "Terms & Conditions" - val privacy = "Privacy Policy" - val text = "By signing in, you agree with our $terms and $privacy." + val terms = stringResource(R.string.terms_conditions) + val privacy = stringResource(R.string.privacy_policy) + val text = stringResource(R.string.by_signing_in, terms, privacy) val tcStart = text.indexOf(terms) val tcEnd = tcStart + terms.length diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt index e90c616dca..1a0504715d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/OnboardingType.kt @@ -7,6 +7,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -48,7 +49,7 @@ fun OnboardingType( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Import CSV file", + text = stringResource(R.string.import_csv_file), style = UI.typo.h2.style( fontWeight = FontWeight.Black ) @@ -58,7 +59,7 @@ fun OnboardingType( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "from Ivy or another app", + text = stringResource(R.string.from_ivy_or_another_app), style = UI.typo.nB2.style( fontWeight = FontWeight.Bold, color = Gray @@ -84,7 +85,7 @@ fun OnboardingType( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Importing a backup file from another can take up to 5 min. You can always import your data later if you want to.", + text = stringResource(R.string.importing_another_time_warning), style = UI.typo.b2.style( fontWeight = FontWeight.Bold ) @@ -95,7 +96,7 @@ fun OnboardingType( IvyOutlinedButtonFillMaxWidth( modifier = Modifier .padding(horizontal = 16.dp), - text = "Import backup file", + text = stringResource(R.string.import_backup_file), iconStart = R.drawable.ic_export_csv, iconTint = Green, textColor = Green @@ -109,7 +110,7 @@ fun OnboardingType( modifier = Modifier .padding(horizontal = 16.dp) .fillMaxWidth(), - text = "Start fresh", + text = stringResource(R.string.start_fresh), textColor = White, backgroundGradient = GradientIvy, hasNext = true, diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt index a6d4496ee2..2a88e58e3f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingPrivacyTC.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -67,7 +68,7 @@ fun OnboardingPrivacyTC( Text( modifier = Modifier.padding(start = 32.dp), - text = "Privacy and\ndata collection", + text = stringResource(R.string.privacy_and_data_collection), style = UI.typo.h2.style( fontWeight = FontWeight.ExtraBold ) @@ -87,8 +88,8 @@ fun OnboardingPrivacyTC( var privacyAccepted by remember { mutableStateOf(false) } SwipeToAgree( - swipeToAgreeText = "Swipe to agree with our Terms and conditions", - agreedText = "Agreed with our Terms and conditions" + swipeToAgreeText = stringResource(R.string.swipe_to_agree_terms_conditions), + agreedText = stringResource(R.string.agreed_terms_conditions) ) { tcAccepted = it } @@ -96,8 +97,8 @@ fun OnboardingPrivacyTC( Spacer(Modifier.height(24.dp)) SwipeToAgree( - swipeToAgreeText = "Swipe to agree with our Privacy policy", - agreedText = "Agreed with our Privacy policy" + swipeToAgreeText = stringResource(R.string.swipe_to_agree_privacy_policy), + agreedText = stringResource(R.string.agreed_privacy_policy) ) { privacyAccepted = it } @@ -116,14 +117,14 @@ private fun URLsRow() { Spacer(Modifier.width(32.dp)) TextLink( - text = "Terms and conditions", + text = stringResource(R.string.terms_and_conditions), url = Constants.URL_TC ) Spacer(Modifier.width(36.dp)) TextLink( - text = "Privacy policy", + text = stringResource(R.string.privacy_policy), url = Constants.URL_PRIVACY_POLICY ) @@ -138,7 +139,7 @@ private fun LongText() { start = 32.dp, end = 48.dp ), - text = "Track your income, expenses and budget with Ivy.\n\nIntuitive UI, recurring and planned payments, manage multiple accounts, organize transactions in categories, meaningful statistics, export to CSV and so much more.", + text = stringResource(R.string.wallet_description), style = UI.typo.b2.style( fontWeight = FontWeight.Medium ) diff --git a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt index fa299f4d88..eeb41e6449 100644 --- a/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt +++ b/app/src/main/java/com/ivy/wallet/ui/onboarding/steps/archived/OnboardingSetName.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalView import androidx.compose.ui.res.painterResource +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization @@ -76,7 +77,7 @@ fun OnboardingSetName( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Enter your name\nto personalize your\nwallet", + text = stringResource(R.string.enter_your_name), style = UI.typo.h2.style( fontWeight = FontWeight.ExtraBold ) @@ -99,7 +100,7 @@ fun OnboardingSetName( .fillMaxWidth() .focusRequester(nameFocus), value = nameTextField, - hint = "What's your name?", + hint = stringResource(R.string.what_is_your_name), keyboardOptions = KeyboardOptions( capitalization = KeyboardCapitalization.Words, autoCorrect = false, @@ -123,7 +124,7 @@ fun OnboardingSetName( Modifier .padding(horizontal = 24.dp) .fillMaxWidth(), - text = "Enter", + text = stringResource(R.string.enter), textColor = White, backgroundGradient = GradientIvy, hasNext = true, diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt b/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt index 4fcc8b3b5b..7570d7140d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/edit/EditPlannedScreen.kt @@ -9,12 +9,14 @@ import androidx.compose.runtime.livedata.observeAsState import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import com.google.accompanist.insets.navigationBarsPadding import com.google.accompanist.insets.statusBarsPadding +import com.ivy.wallet.R import com.ivy.wallet.domain.data.IntervalType import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.data.entity.Account @@ -357,15 +359,15 @@ private fun BoxWithConstraintsScope.UI( DeleteModal( visible = deleteTrnModalVisible, - title = "Confirm deletion", - description = "Deleting this planned payment will delete all non-paid upcoming or overdue transactions associated with it.", + title = stringResource(R.string.confirm_deletion), + description = stringResource(R.string.planned_payment_confirm_deletion_description), dismiss = { deleteTrnModalVisible = false } ) { onDelete() } ChangeTransactionTypeModal( - title = "Set payment type", + title = stringResource(R.string.set_payment_type), visible = changeTransactionTypeModalVisible, includeTransferType = false, initialType = type, diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt b/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt index eef5fdc675..f8fe902beb 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/edit/RecurringRule.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -52,7 +53,7 @@ fun RecurringRule( } else { AddPrimaryAttributeButton( icon = R.drawable.ic_planned_payments, - text = "Add planned date of payment", + text = stringResource(R.string.add_planned_date_payment), onClick = onShowRecurringRuleModal ) } @@ -94,7 +95,7 @@ private fun RecurringRuleCard( Column { Text( - text = if (oneTime) "Planned for" else "Planned start at", + text = if (oneTime) stringResource(R.string.planned_for) else stringResource(R.string.planned_start_at), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse @@ -106,7 +107,7 @@ private fun RecurringRuleCard( val intervalTypeLabel = intervalType.forDisplay(intervalN).uppercaseLocal() Text( - text = "REPEATS EVERY $intervalN $intervalTypeLabel", + text = stringResource(R.string.repeats_every, intervalN, intervalTypeLabel), style = UI.typo.c.style( fontWeight = FontWeight.ExtraBold, color = Orange diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt index 1323067ea0..cf4f689437 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentCard.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -158,7 +159,7 @@ private fun PlannedPaymentHeaderRow( val account = accounts.find { it.id == plannedPayment.accountId } IvyButton( backgroundGradient = Gradient.solid(UI.colors.pure), - text = account?.name ?: "deleted", + text = account?.name ?: stringResource(R.string.deleted), iconTint = UI.colors.pureInverse, iconStart = getCustomIconIdS(account?.icon, R.drawable.ic_custom_account_s), textStyle = UI.typo.c.style( @@ -196,7 +197,7 @@ private fun RuleTextRow( if (oneTime) { Text( - text = "PLANNED FOR ", + text = stringResource(R.string.planned_for_uppercase), style = UI.typo.nC.style( color = Orange, fontWeight = FontWeight.SemiBold @@ -205,7 +206,7 @@ private fun RuleTextRow( Text( modifier = Modifier.padding(bottom = 1.dp), text = startDate?.toLocalDate()?.formatDateOnlyWithYear()?.uppercaseLocal() - ?: "null", + ?: stringResource(R.string.null_text), style = UI.typo.nC.style( color = Orange, fontWeight = FontWeight.ExtraBold @@ -214,7 +215,7 @@ private fun RuleTextRow( } else { val startDateFormatted = startDate?.toLocalDate()?.formatDateOnly()?.uppercaseLocal() Text( - text = "STARTS $startDateFormatted ", + text = stringResource(R.string.starts_date, startDateFormatted ?: ""), style = UI.typo.nC.style( color = Orange, fontWeight = FontWeight.SemiBold @@ -223,7 +224,7 @@ private fun RuleTextRow( val intervalTypeFormatted = intervalType?.forDisplay(intervalN ?: 0)?.uppercaseLocal() Text( modifier = Modifier.padding(bottom = 1.dp), - text = "REPEATS EVERY $intervalN $intervalTypeFormatted", + text = stringResource(R.string.repeats_every, intervalN ?: 0 , intervalTypeFormatted ?: ""), style = UI.typo.nC.style( color = Orange, fontWeight = FontWeight.ExtraBold diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt index cbe3d977fd..dc50a864f0 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsBottomBar.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.width import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -42,7 +43,7 @@ fun BoxWithConstraintsScope.PlannedPaymentsBottomBar( IvyOutlinedButton( iconStart = R.drawable.ic_planned_payments, - text = "Add payment", + text = stringResource(R.string.add_payment), solidBackground = true ) { onAdd() diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt index 76ba02e91e..f94775464b 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsLazyColumn.kt @@ -6,6 +6,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -19,6 +20,7 @@ import com.ivy.wallet.R import com.ivy.wallet.domain.data.entity.Account import com.ivy.wallet.domain.data.entity.Category import com.ivy.wallet.domain.data.entity.PlannedPaymentRule +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.EditPlanned import com.ivy.wallet.ui.theme.Gray @@ -111,7 +113,7 @@ private fun LazyListScope.plannedPaymentItems( SectionDivider( expanded = oneTimeExpanded, setExpanded = setOneTimeExpanded, - title = "One time payments", + title = stringRes(R.string.one_time_payments), titleColor = UI.colors.pureInverse, baseCurrency = currency, income = oneTimeIncome, @@ -143,7 +145,7 @@ private fun LazyListScope.plannedPaymentItems( SectionDivider( expanded = recurringExpanded, setExpanded = setRecurringExpanded, - title = "Recurring payments", + title = stringRes(R.string.recurring_payments), titleColor = UI.colors.pureInverse, baseCurrency = currency, income = recurringIncome, @@ -212,7 +214,7 @@ private fun LazyItemScope.NoPlannedPaymentsEmptyState() { Spacer(Modifier.height(24.dp)) Text( - text = "No planned payments", + text = stringResource(R.string.no_planned_payments), style = UI.typo.b1.style( color = Gray, fontWeight = FontWeight.ExtraBold @@ -222,7 +224,7 @@ private fun LazyItemScope.NoPlannedPaymentsEmptyState() { Spacer(Modifier.height(8.dp)) Text( - text = "You don't have any planed payments.\nPress the '⚡' bottom at the bottom to add one.", + text = stringResource(R.string.no_planned_payments_description), style = UI.typo.b2.style( color = Gray, fontWeight = FontWeight.Medium, diff --git a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt index 6639c8a096..8568c94325 100644 --- a/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/planned/list/PlannedPaymentsScreen.kt @@ -10,6 +10,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.livedata.observeAsState import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -17,6 +18,7 @@ import androidx.lifecycle.viewmodel.compose.viewModel import com.ivy.design.api.navigation import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.domain.data.IntervalType import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.data.entity.Account @@ -81,7 +83,7 @@ private fun BoxWithConstraintsScope.UI( Text( modifier = Modifier.padding(start = 24.dp), - text = "Planned payments", + text = stringResource(R.string.planned_payments_inline), style = UI.typo.h2.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dae1a431c1..1b119bd8bc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -132,4 +132,63 @@ Note: Deleting this category will remove it permanently. Edit transactions + Home + Add planned payment + ADD INCOME + ADD EXPENSE + ACCOUNT TRANSFER + Skip + Add new + From %1$s + To %1$s + Range + Privacy and\ndata collection + Swipe to agree with our Terms and conditions + Agreed with our Terms and conditions + Swipe to agree with our Privacy policy + Agreed with our Privacy policy + Terms and conditions + Privacy policy + Track your income, expenses and budget with Ivy.\n\nIntuitive UI, recurring and planned payments, manage multiple accounts, organize transactions in categories, meaningful statistics, export to CSV and so much more. + Enter your name\nto personalize your\nwallet + What\'s your name? + Enter + Add accounts + Suggestions + Next + Add categories + Suggestions + Set + Your personal money manager + #opensource + Error. Try again: %1$s + Signing in... + Success! + Login with Google + Offline account + SYNC YOUR DATA ON THE IVY CLOUD + Data integrity and protection aren\'t guaranteed! + OR ENTER WITH OFFLINE ACCOUNT + Your data will be saved locally (only on your phone) and won\'t be synced with the cloud. You risk losing it if you uninstall the app or change your device. You can always activate sync later if you decide to. + + By signing in, you agree with our %1$s and %2$s. + Import CSV file + from Ivy or another app + Importing a backup file from another can take up to 5 min. You can always import your data later if you want to. + Import backup file + Start fresh + Deleting this planned payment will delete all non-paid upcoming or overdue transactions associated with it. + Set payment type + Planned start at + REPEATS EVERY %1$d %2$s + deleted + "PLANNED FOR " + null + "STARTS %1$s " + Add payment + One time payments + Recurring payments + No planned payments + You don\'t have any planned payments.\nPress the \'⚡\' bottom at the bottom to add one. + Planned payments From 1b1e49eaf3c5dca64b53614408271f0e98781a4d Mon Sep 17 00:00:00 2001 From: Mohamed Date: Fri, 22 Apr 2022 18:28:46 +0200 Subject: [PATCH 2/9] Added strings for ui.theme.wallet --- .../ui/theme/transaction/HistoryDateDivider.kt | 8 +++++--- .../ui/theme/transaction/TransactionCard.kt | 15 +++++++++------ .../transaction/TransactionSectionDivider.kt | 7 +++++-- .../wallet/ui/theme/transaction/Transactions.kt | 8 +++++--- app/src/main/res/values/strings.xml | 9 +++++++++ 5 files changed, 33 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/HistoryDateDivider.kt b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/HistoryDateDivider.kt index 7db9b688dd..c0ad36b46d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/HistoryDateDivider.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/HistoryDateDivider.kt @@ -5,6 +5,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp @@ -18,6 +19,7 @@ import com.ivy.wallet.utils.dateNowUTC import com.ivy.wallet.utils.format import com.ivy.wallet.utils.formatLocal import java.time.LocalDate +import com.ivy.wallet.R @Composable fun HistoryDateDivider( @@ -53,13 +55,13 @@ fun HistoryDateDivider( Text( text = when (date) { today -> { - "Today" + stringResource(R.string.today) } today.minusDays(1) -> { - "Yesterday" + stringResource(R.string.yesterday) } today.plusDays(1) -> { - "Tomorrow" + stringResource(R.string.tomorrow) } else -> { date.formatLocal("EEEE") diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionCard.kt b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionCard.kt index 326d067bad..d6346f6b12 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionCard.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionCard.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview @@ -84,7 +85,7 @@ fun LazyItemScope.TransactionCard( Text( modifier = Modifier.padding(horizontal = 24.dp), - text = "DUE ON ${transaction.dueDate.formatNicely()}".uppercase(), + text = stringResource(R.string.due_on, transaction.dueDate.formatNicely()).uppercase(), style = UI.typo.nC.style( color = if (transaction.dueDate.isAfter(timeNowUTC())) Orange else UI.colors.gray, @@ -145,7 +146,7 @@ fun LazyItemScope.TransactionCard( if (transaction.type == TransactionType.TRANSFER && transaction.toAmount != null && toAccountCurrency != transactionCurrency) { Text( modifier = Modifier.padding(start = 68.dp), - text = transaction.toAmount.format(2) + " $toAccountCurrency", + text = "${transaction.toAmount.format(2)} $toAccountCurrency", style = UI.typo.nB2.style( color = Gray, fontWeight = FontWeight.Normal @@ -162,7 +163,7 @@ fun LazyItemScope.TransactionCard( modifier = Modifier .fillMaxWidth() .padding(horizontal = 24.dp), - text = if (isExpense) "Pay" else "Get", + text = if (isExpense) stringResource(R.string.pay) else stringResource(R.string.get), wrapContentMode = false, backgroundGradient = if (isExpense) gradientExpenses() else GradientGreen, textStyle = UI.typo.b2.style( @@ -233,7 +234,7 @@ private fun TransactionHeaderRow( backgroundGradient = Gradient.solid(UI.colors.pure), hasGlow = false, iconTint = UI.colors.pureInverse, - text = account?.name ?: "deleted", + text = account?.name ?: stringResource(R.string.deleted), iconStart = getCustomIconIdS( iconName = account?.icon, defaultIcon = R.drawable.ic_custom_account_s @@ -282,7 +283,8 @@ private fun TransferHeader( Text( modifier = Modifier .padding(vertical = 8.dp), - text = account?.name ?: "null", + // used toString() in case of null + text = account?.name.toString(), style = UI.typo.c.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse @@ -306,7 +308,8 @@ private fun TransferHeader( Text( modifier = Modifier .padding(vertical = 8.dp), - text = toAccount?.name ?: "null", + // used toString() in case of null + text = toAccount?.name.toString(), style = UI.typo.c.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionSectionDivider.kt b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionSectionDivider.kt index 1786cbf52b..3d0c1fee57 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionSectionDivider.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/TransactionSectionDivider.kt @@ -10,6 +10,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.rotate import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -107,8 +108,9 @@ private fun SectionDividerIncomeExpenseRow( color = UI.colors.pureInverse ) ) + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " expenses", + text = stringResource(R.string.expenses_lowercase), style = UI.typo.c.style( fontWeight = FontWeight.Normal, color = UI.colors.pureInverse @@ -133,8 +135,9 @@ private fun SectionDividerIncomeExpenseRow( color = UI.colors.green ) ) + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " income", + text = stringResource(R.string.income_lowercase), style = UI.typo.c.style( fontWeight = FontWeight.Normal, color = UI.colors.pureInverse diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/Transactions.kt b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/Transactions.kt index 0db0f7f840..3b48f8e8a8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/transaction/Transactions.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/transaction/Transactions.kt @@ -9,6 +9,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp @@ -22,6 +23,7 @@ import com.ivy.wallet.domain.data.TransactionHistoryItem import com.ivy.wallet.domain.data.entity.Account import com.ivy.wallet.domain.data.entity.Category import com.ivy.wallet.domain.data.entity.Transaction +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.EditTransaction import com.ivy.wallet.ui.IvyWalletCtx import com.ivy.wallet.ui.theme.Gray @@ -50,7 +52,7 @@ fun LazyListScope.transactions( history: List, lastItemSpacer: Dp? = null, onPayOrGet: (Transaction) -> Unit, - emptyStateTitle: String = "No transactions", + emptyStateTitle: String = stringRes(R.string.no_transactions), emptyStateText: String, dateDividerMarginTop: Dp? = null ) { @@ -59,7 +61,7 @@ fun LazyListScope.transactions( SectionDivider( expanded = upcomingExpanded, setExpanded = setUpcomingExpanded, - title = "Upcoming", + title = stringResource(R.string.upcoming), titleColor = Orange, baseCurrency = baseCurrency, income = upcomingIncome, @@ -91,7 +93,7 @@ fun LazyListScope.transactions( SectionDivider( expanded = overdueExpanded, setExpanded = setOverdueExpanded, - title = "Overdue", + title = stringResource(R.string.overdue), titleColor = Red, baseCurrency = baseCurrency, income = overdueIncome, diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1b119bd8bc..efda46fa36 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -191,4 +191,13 @@ No planned payments You don\'t have any planned payments.\nPress the \'⚡\' bottom at the bottom to add one. Planned payments + Today + Yesterday + Tomorrow + Due on %1$s + Upcoming + Overdue + expenses + income + From c16c8ef78da7242c68e36856fdaae12944ee8eda Mon Sep 17 00:00:00 2001 From: Mohamed Date: Fri, 22 Apr 2022 20:08:04 +0200 Subject: [PATCH 3/9] Added strings for ui.theme.modal.edit --- .../wallet/ui/edit/PrimaryAttributeColumn.kt | 2 +- .../ivy/wallet/ui/edit/core/Description.kt | 2 +- .../ui/theme/modal/edit/AccountModal.kt | 11 +++++---- .../wallet/ui/theme/modal/edit/AmountModal.kt | 9 +++---- .../ui/theme/modal/edit/CalculatorModal.kt | 6 +++-- .../ui/theme/modal/edit/CategoryModal.kt | 8 +++++-- .../theme/modal/edit/ChooseCategoryModal.kt | 5 ++-- .../ui/theme/modal/edit/DescriptionModal.kt | 6 +++-- .../wallet/ui/theme/wallet/AmountCurrency.kt | 24 +++++++++++-------- app/src/main/res/values/strings.xml | 15 +++++++++++- 10 files changed, 58 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt b/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt index a6d36fc481..13d046949a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/PrimaryAttributeColumn.kt @@ -67,7 +67,7 @@ private fun PreviewPrimaryAttributeColumn() { IvyWalletComponentPreview { PrimaryAttributeColumn( icon = R.drawable.ic_description, - title = stringResource(R.string.description_text), + title = stringResource(R.string.description), onClick = { } ) { Spacer(Modifier.height(12.dp)) diff --git a/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt b/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt index 3e1efa762f..66d939c7d6 100644 --- a/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt +++ b/app/src/main/java/com/ivy/wallet/ui/edit/core/Description.kt @@ -47,7 +47,7 @@ private fun DescriptionText( ) { PrimaryAttributeColumn( icon = R.drawable.ic_description, - title = stringResource(R.string.description_text), + title = stringResource(R.string.description), onClick = onClick ) { Spacer(Modifier.height(12.dp)) diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt index 0f4f9a9c85..f2871d7b37 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AccountModal.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview @@ -112,13 +113,13 @@ fun BoxWithConstraintsScope.AccountModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = if (modal?.account != null) "Edit account" else "New account", + text = if (modal?.account != null) stringResource(R.string.edit_account) else stringResource(R.string.new_account), ) Spacer(Modifier.height(24.dp)) IconNameRow( - hint = "Account name", + hint = stringResource(R.string.account_name), defaultIcon = R.drawable.ic_custom_account_m, color = color, icon = icon, @@ -157,13 +158,13 @@ fun BoxWithConstraintsScope.AccountModal( modifier = Modifier .padding(start = 16.dp) .align(Alignment.Start), - text = "Include account", + text = stringResource(R.string.include_account), checked = includeInBalance ) { includeInBalance = it } }, - label = "ENTER ACCOUNT BALANCE", + label = stringResource(R.string.enter_account_balance).uppercase(), currency = currencyCode, amount = amount, amountPaddingTop = 40.dp, @@ -204,7 +205,7 @@ fun BoxWithConstraintsScope.AccountModal( val context = LocalContext.current CurrencyModal( - title = "Choose currency", + title = stringResource(R.string.choose_currency), initialCurrency = IvyCurrency.fromCode(currencyCode), visible = currencyModalVisible, dismiss = { currencyModalVisible = false } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt index f459e84fe3..730e268d76 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/AmountModal.kt @@ -14,6 +14,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -79,7 +80,7 @@ fun BoxWithConstraintsScope.AmountModal( Spacer(Modifier.width(16.dp)) ModalPositiveButton( - text = "Enter", + text = stringResource(R.string.enter), iconStart = R.drawable.ic_check ) { try { @@ -147,15 +148,15 @@ fun AmountCurrency( Spacer(Modifier.weight(1f)) Text( - text = if (amount.isBlank()) "0" else amount, + text = amount.ifBlank { "0" }, style = UI.typo.nH1.style( fontWeight = FontWeight.Bold, color = UI.colors.pureInverse ) ) - + Spacer(Modifier.width(4.dp)) Text( - text = " $currency", + text = currency, style = UI.typo.nH2.style( fontWeight = FontWeight.Normal, color = UI.colors.pureInverse diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt index 391a29ef48..e6c3cd4a14 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CalculatorModal.kt @@ -4,12 +4,14 @@ import androidx.compose.foundation.layout.* import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.Gray import com.ivy.wallet.ui.theme.Red @@ -50,7 +52,7 @@ fun BoxWithConstraintsScope.CalculatorModal( ) { Spacer(Modifier.height(32.dp)) - ModalTitle(text = "Calculator") + ModalTitle(text = stringResource(R.string.calculator)) Spacer(Modifier.height(32.dp)) @@ -59,7 +61,7 @@ fun BoxWithConstraintsScope.CalculatorModal( modifier = Modifier .fillMaxWidth() .padding(horizontal = 24.dp), - text = if (isEmpty) "Calculation (+-/*=)" else expression, + text = if (isEmpty) stringResource(R.string.calculator_empty_expression) else expression, style = UI.typo.nH2.style( fontWeight = FontWeight.Bold, textAlign = TextAlign.Center, diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt index 2a5c842f4c..047f5a18b7 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/CategoryModal.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType @@ -105,13 +106,16 @@ fun BoxWithConstraintsScope.CategoryModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = if (modal?.category != null) "Edit category" else "Create category" + text = if (modal?.category != null) stringResource(R.string.edit_category) + else stringResource( + R.string.create_category + ) ) Spacer(Modifier.height(24.dp)) IconNameRow( - hint = "Category name", + hint = stringResource(R.string.category_name), defaultIcon = R.drawable.ic_custom_category_m, color = color, icon = icon, diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt index ea7e38d046..4550113178 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/ChooseCategoryModal.kt @@ -14,6 +14,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -74,7 +75,7 @@ fun BoxWithConstraintsScope.ChooseCategoryModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = "Choose category" + text = stringResource(R.string.choose_category) ) Spacer(Modifier.height(24.dp)) @@ -240,7 +241,7 @@ fun AddNewButton( ) { IvyBorderButton( modifier = modifier, - text = "Add new", + text = stringResource(R.string.add_new), backgroundGradient = Gradient.solid(UI.colors.mediumInverse), iconStart = R.drawable.ic_plus, textStyle = UI.typo.b2.style( diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt index 234a60a390..21f0af2bcd 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/edit/DescriptionModal.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction @@ -17,6 +18,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.components.IvyDescriptionTextField import com.ivy.wallet.ui.theme.modal.IvyModal @@ -62,7 +64,7 @@ fun BoxWithConstraintsScope.DescriptionModal( Text( modifier = Modifier .padding(start = 32.dp), - text = "Description", + text = stringResource(R.string.description), style = UI.typo.b1.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold @@ -98,7 +100,7 @@ fun BoxWithConstraintsScope.DescriptionModal( } ), value = descTextFieldValue, - hint = "Enter any details here (supports Markdown)", + hint = stringResource(R.string.description_text_field_hint), ) { descTextFieldValue = it } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt b/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt index 64454abbe6..9ebd444314 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/wallet/AmountCurrency.kt @@ -1,11 +1,15 @@ package com.ivy.wallet.ui.theme.wallet import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.width import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style import com.ivy.wallet.utils.format @@ -30,9 +34,9 @@ fun AmountCurrencyB2Row( color = textColor ) ) - + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " $currency", + text = currency, style = UI.typo.nB2.style( fontWeight = FontWeight.Normal, color = textColor @@ -78,9 +82,9 @@ fun AmountCurrencyB1( color = textColor ) ) - + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " $currency", + text = currency, style = UI.typo.nB1.style( fontWeight = FontWeight.Normal, color = textColor @@ -101,9 +105,9 @@ fun AmountCurrencyH1( color = textColor ) ) - + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " $currency", + text = currency, style = UI.typo.nH2.style( fontWeight = FontWeight.Normal, color = textColor @@ -127,9 +131,9 @@ fun AmountCurrencyH2Row( color = textColor ) ) - + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " $currency", + text = currency, style = UI.typo.b1.style( fontWeight = FontWeight.Normal, color = textColor @@ -152,9 +156,9 @@ fun AmountCurrencyCaption( color = textColor ) ) - + Spacer(modifier = Modifier.width(4.dp)) Text( - text = " $currency", + text = currency, style = UI.typo.nC.style( fontWeight = FontWeight.Normal, color = textColor diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index efda46fa36..8581452c20 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,7 +69,7 @@ %1$d rows from CSV file not recognized Finish Add description - Description + Description Planned for Add money to Pay with @@ -199,5 +199,18 @@ Overdue expenses income + Edit account + New account + Account name + Include account + Enter account balance + Choose currency + Calculator + Calculation (+-/*=) + Edit category + Create category + Category name + Choose category + Enter any details here (supports Markdown) From b8416176e251b08d6e47dae16cf9a0dc66735e1f Mon Sep 17 00:00:00 2001 From: StarHamster <91747573+StarHamster@users.noreply.github.com> Date: Sat, 23 Apr 2022 03:20:09 +0700 Subject: [PATCH 4/9] Add icons --- .../res/drawable/ic_vue_brands_android.xml | 55 ++++++ .../main/res/drawable/ic_vue_brands_apple.xml | 14 ++ .../main/res/drawable/ic_vue_brands_be.xml | 25 +++ .../res/drawable/ic_vue_brands_blogger.xml | 32 ++++ .../res/drawable/ic_vue_brands_bootsrap.xml | 19 ++ .../res/drawable/ic_vue_brands_dribbble.xml | 34 ++++ .../main/res/drawable/ic_vue_brands_drive.xml | 34 ++++ .../res/drawable/ic_vue_brands_dropbox.xml | 41 ++++ .../res/drawable/ic_vue_brands_facebook.xml | 19 ++ .../main/res/drawable/ic_vue_brands_figma.xml | 31 +++ .../res/drawable/ic_vue_brands_framer.xml | 20 ++ .../res/drawable/ic_vue_brands_google.xml | 13 ++ .../drawable/ic_vue_brands_google_play.xml | 34 ++++ .../main/res/drawable/ic_vue_brands_html3.xml | 27 +++ .../main/res/drawable/ic_vue_brands_html5.xml | 20 ++ .../drawable/ic_vue_brands_illustrator.xml | 39 ++++ .../main/res/drawable/ic_vue_brands_js.xml | 27 +++ .../res/drawable/ic_vue_brands_messenger.xml | 20 ++ .../main/res/drawable/ic_vue_brands_ok.xml | 30 +++ .../res/drawable/ic_vue_brands_paypal.xml | 16 ++ .../res/drawable/ic_vue_brands_photoshop.xml | 27 +++ .../res/drawable/ic_vue_brands_python.xml | 41 ++++ .../main/res/drawable/ic_vue_brands_slack.xml | 62 ++++++ .../res/drawable/ic_vue_brands_snapchat.xml | 19 ++ .../res/drawable/ic_vue_brands_spotify.xml | 34 ++++ .../res/drawable/ic_vue_brands_trello.xml | 23 +++ .../res/drawable/ic_vue_brands_triangle.xml | 27 +++ .../res/drawable/ic_vue_brands_twitch.xml | 28 +++ .../main/res/drawable/ic_vue_brands_ui8.xml | 32 ++++ .../res/drawable/ic_vue_brands_vuesax.xml | 27 +++ .../res/drawable/ic_vue_brands_whatsapp.xml | 18 ++ .../res/drawable/ic_vue_brands_windows.xml | 38 ++++ .../main/res/drawable/ic_vue_brands_xd.xml | 34 ++++ .../res/drawable/ic_vue_brands_xiaomi.xml | 32 ++++ .../res/drawable/ic_vue_brands_youtube.xml | 20 ++ .../main/res/drawable/ic_vue_brands_zoom.xml | 25 +++ .../res/drawable/ic_vue_building_bank.xml | 69 +++++++ .../res/drawable/ic_vue_building_building.xml | 48 +++++ .../drawable/ic_vue_building_building1.xml | 55 ++++++ .../drawable/ic_vue_building_buildings.xml | 55 ++++++ .../drawable/ic_vue_building_courthouse.xml | 59 ++++++ .../res/drawable/ic_vue_building_hospital.xml | 41 ++++ .../res/drawable/ic_vue_building_house.xml | 44 +++++ .../main/res/drawable/ic_vue_chart_chart.xml | 27 +++ .../res/drawable/ic_vue_chart_diagram.xml | 20 ++ .../main/res/drawable/ic_vue_chart_graph.xml | 27 +++ .../res/drawable/ic_vue_chart_status_up.xml | 44 +++++ .../res/drawable/ic_vue_chart_trend_up.xml | 27 +++ .../main/res/drawable/ic_vue_crypto_aave.xml | 25 +++ .../main/res/drawable/ic_vue_crypto_ankr.xml | 32 ++++ .../main/res/drawable/ic_vue_crypto_augur.xml | 25 +++ .../res/drawable/ic_vue_crypto_autonio.xml | 32 ++++ .../res/drawable/ic_vue_crypto_avalanche.xml | 25 +++ .../drawable/ic_vue_crypto_binance_coin.xml | 41 ++++ .../drawable/ic_vue_crypto_binance_usd.xml | 34 ++++ .../res/drawable/ic_vue_crypto_bitcoin.xml | 67 +++++++ .../res/drawable/ic_vue_crypto_cardano.xml | 180 ++++++++++++++++++ .../main/res/drawable/ic_vue_crypto_celo.xml | 16 ++ .../res/drawable/ic_vue_crypto_celsius_.xml | 27 +++ .../res/drawable/ic_vue_crypto_chainlink.xml | 13 ++ .../main/res/drawable/ic_vue_crypto_civic.xml | 18 ++ .../main/res/drawable/ic_vue_crypto_dai.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_dash.xml | 20 ++ .../res/drawable/ic_vue_crypto_decred.xml | 20 ++ .../main/res/drawable/ic_vue_crypto_dent.xml | 26 +++ .../res/drawable/ic_vue_crypto_educare.xml | 34 ++++ .../res/drawable/ic_vue_crypto_emercoin.xml | 25 +++ .../res/drawable/ic_vue_crypto_enjin_coin.xml | 27 +++ .../main/res/drawable/ic_vue_crypto_eos.xml | 20 ++ .../res/drawable/ic_vue_crypto_ethereum.xml | 34 ++++ .../ic_vue_crypto_ethereum_classic.xml | 27 +++ .../res/drawable/ic_vue_crypto_ftx_token.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_graph.xml | 32 ++++ .../res/drawable/ic_vue_crypto_harmony.xml | 31 +++ .../ic_vue_crypto_hedera_hashgraph.xml | 41 ++++ .../main/res/drawable/ic_vue_crypto_hex.xml | 21 ++ .../drawable/ic_vue_crypto_huobi_token.xml | 20 ++ .../main/res/drawable/ic_vue_crypto_icon.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_iost.xml | 34 ++++ .../drawable/ic_vue_crypto_kyber_network.xml | 27 +++ .../res/drawable/ic_vue_crypto_litecoin.xml | 27 +++ .../main/res/drawable/ic_vue_crypto_maker.xml | 27 +++ .../res/drawable/ic_vue_crypto_monero.xml | 20 ++ .../res/drawable/ic_vue_crypto_nebulas.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_nem.xml | 25 +++ .../main/res/drawable/ic_vue_crypto_nexo.xml | 20 ++ .../drawable/ic_vue_crypto_ocean_protocol.xml | 174 +++++++++++++++++ .../main/res/drawable/ic_vue_crypto_okb.xml | 34 ++++ .../res/drawable/ic_vue_crypto_ontology.xml | 20 ++ .../res/drawable/ic_vue_crypto_polkadot.xml | 20 ++ .../res/drawable/ic_vue_crypto_polygon.xml | 20 ++ .../res/drawable/ic_vue_crypto_polyswarm.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_quant.xml | 60 ++++++ .../res/drawable/ic_vue_crypto_siacoin.xml | 27 +++ .../res/drawable/ic_vue_crypto_solana.xml | 21 ++ .../res/drawable/ic_vue_crypto_stacks.xml | 53 ++++++ .../res/drawable/ic_vue_crypto_stellar.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_tenx.xml | 18 ++ .../res/drawable/ic_vue_crypto_tether.xml | 27 +++ .../main/res/drawable/ic_vue_crypto_theta.xml | 48 +++++ .../res/drawable/ic_vue_crypto_thorchain.xml | 11 ++ .../res/drawable/ic_vue_crypto_trontron.xml | 27 +++ .../res/drawable/ic_vue_crypto_usd_coin.xml | 41 ++++ .../main/res/drawable/ic_vue_crypto_velas.xml | 20 ++ .../main/res/drawable/ic_vue_crypto_vibe.xml | 25 +++ .../res/drawable/ic_vue_crypto_wanchain.xml | 34 ++++ .../main/res/drawable/ic_vue_crypto_wing.xml | 27 +++ .../main/res/drawable/ic_vue_crypto_xrp.xml | 20 ++ .../main/res/drawable/ic_vue_crypto_zel.xml | 30 +++ .../main/res/drawable/ic_vue_delivery_box.xml | 27 +++ .../res/drawable/ic_vue_delivery_box1.xml | 34 ++++ .../res/drawable/ic_vue_delivery_package.xml | 41 ++++ .../res/drawable/ic_vue_delivery_receive.xml | 62 ++++++ .../res/drawable/ic_vue_delivery_truck.xml | 62 ++++++ .../res/drawable/ic_vue_design_bezier.xml | 69 +++++++ .../main/res/drawable/ic_vue_design_brush.xml | 27 +++ .../drawable/ic_vue_design_color_swatch.xml | 41 ++++ .../res/drawable/ic_vue_design_magicpen.xml | 41 ++++ .../res/drawable/ic_vue_design_roller.xml | 41 ++++ .../res/drawable/ic_vue_design_scissors.xml | 34 ++++ .../res/drawable/ic_vue_design_tool_pen.xml | 62 ++++++ .../main/res/drawable/ic_vue_dev_arrow.xml | 48 +++++ app/src/main/res/drawable/ic_vue_dev_code.xml | 34 ++++ app/src/main/res/drawable/ic_vue_dev_data.xml | 48 +++++ .../main/res/drawable/ic_vue_dev_hashtag.xml | 34 ++++ .../res/drawable/ic_vue_dev_hierarchy.xml | 41 ++++ .../main/res/drawable/ic_vue_dev_relation.xml | 58 ++++++ .../main/res/drawable/ic_vue_edu_award.xml | 27 +++ app/src/main/res/drawable/ic_vue_edu_book.xml | 34 ++++ .../main/res/drawable/ic_vue_edu_bookmark.xml | 34 ++++ .../res/drawable/ic_vue_edu_briefcase.xml | 41 ++++ .../res/drawable/ic_vue_edu_calculator.xml | 62 ++++++ .../main/res/drawable/ic_vue_edu_glass.xml | 20 ++ .../res/drawable/ic_vue_edu_graduate_cap.xml | 27 +++ .../main/res/drawable/ic_vue_edu_magazine.xml | 34 ++++ app/src/main/res/drawable/ic_vue_edu_note.xml | 34 ++++ .../main/res/drawable/ic_vue_edu_omega.xml | 20 ++ app/src/main/res/drawable/ic_vue_edu_pen.xml | 27 +++ .../main/res/drawable/ic_vue_edu_planer.xml | 41 ++++ .../res/drawable/ic_vue_edu_ruler_pen.xml | 48 +++++ .../res/drawable/ic_vue_edu_telescope.xml | 41 ++++ app/src/main/res/drawable/ic_vue_edu_todo.xml | 48 +++++ .../main/res/drawable/ic_vue_files_folder.xml | 11 ++ .../drawable/ic_vue_files_folder_cloud.xml | 20 ++ .../drawable/ic_vue_files_folder_favorite.xml | 18 ++ .../res/drawable/ic_vue_location_discover.xml | 20 ++ .../res/drawable/ic_vue_location_global.xml | 41 ++++ .../drawable/ic_vue_location_global_edit.xml | 55 ++++++ .../ic_vue_location_global_search.xml | 55 ++++++ .../res/drawable/ic_vue_location_location.xml | 16 ++ .../main/res/drawable/ic_vue_location_map.xml | 39 ++++ .../res/drawable/ic_vue_location_map1.xml | 27 +++ .../res/drawable/ic_vue_location_radar.xml | 20 ++ .../res/drawable/ic_vue_location_routing.xml | 37 ++++ .../main/res/drawable/ic_vue_main_archive.xml | 27 +++ .../drawable/ic_vue_main_battery_charging.xml | 34 ++++ .../res/drawable/ic_vue_main_battery_half.xml | 34 ++++ .../main/res/drawable/ic_vue_main_broom.xml | 48 +++++ .../main/res/drawable/ic_vue_main_cake.xml | 55 ++++++ .../res/drawable/ic_vue_main_calendar.xml | 76 ++++++++ .../main/res/drawable/ic_vue_main_clock.xml | 20 ++ .../main/res/drawable/ic_vue_main_coffee.xml | 48 +++++ .../main/res/drawable/ic_vue_main_crown.xml | 13 ++ app/src/main/res/drawable/ic_vue_main_cup.xml | 46 +++++ .../res/drawable/ic_vue_main_emoji_happy.xml | 34 ++++ .../res/drawable/ic_vue_main_emoji_normal.xml | 34 ++++ .../res/drawable/ic_vue_main_emoji_sad.xml | 34 ++++ .../main/res/drawable/ic_vue_main_flash.xml | 13 ++ .../main/res/drawable/ic_vue_main_gift.xml | 41 ++++ .../main/res/drawable/ic_vue_main_glass.xml | 41 ++++ .../main/res/drawable/ic_vue_main_home.xml | 20 ++ .../res/drawable/ic_vue_main_home_safe.xml | 20 ++ .../res/drawable/ic_vue_main_home_wifi.xml | 34 ++++ .../main/res/drawable/ic_vue_main_judge.xml | 34 ++++ .../main/res/drawable/ic_vue_main_lamp.xml | 27 +++ .../res/drawable/ic_vue_main_lamp_charge.xml | 27 +++ .../res/drawable/ic_vue_main_lifebuoy.xml | 48 +++++ .../main/res/drawable/ic_vue_main_milk.xml | 41 ++++ .../res/drawable/ic_vue_main_notification.xml | 24 +++ app/src/main/res/drawable/ic_vue_main_pet.xml | 41 ++++ .../main/res/drawable/ic_vue_main_reserve.xml | 34 ++++ .../main/res/drawable/ic_vue_main_send.xml | 20 ++ .../main/res/drawable/ic_vue_main_share.xml | 48 +++++ .../res/drawable/ic_vue_main_signpost.xml | 41 ++++ .../main/res/drawable/ic_vue_main_sport.xml | 41 ++++ .../main/res/drawable/ic_vue_main_timer.xml | 13 ++ .../main/res/drawable/ic_vue_main_trash.xml | 41 ++++ .../main/res/drawable/ic_vue_main_tree.xml | 27 +++ .../main/res/drawable/ic_vue_media_camera.xml | 27 +++ .../main/res/drawable/ic_vue_media_film.xml | 76 ++++++++ .../res/drawable/ic_vue_media_film_play.xml | 41 ++++ .../main/res/drawable/ic_vue_media_image.xml | 27 +++ .../res/drawable/ic_vue_media_microphone.xml | 34 ++++ .../res/drawable/ic_vue_media_mountains.xml | 20 ++ .../main/res/drawable/ic_vue_media_music.xml | 34 ++++ .../res/drawable/ic_vue_media_photocamera.xml | 27 +++ .../main/res/drawable/ic_vue_media_play.xml | 20 ++ .../res/drawable/ic_vue_media_scissors.xml | 41 ++++ .../drawable/ic_vue_media_screenmirroring.xml | 20 ++ .../res/drawable/ic_vue_media_setting.xml | 55 ++++++ .../res/drawable/ic_vue_media_speaker.xml | 25 +++ .../res/drawable/ic_vue_media_subtitle.xml | 41 ++++ .../main/res/drawable/ic_vue_media_voice.xml | 48 +++++ .../drawable/ic_vue_messages_device_msg.xml | 55 ++++++ .../res/drawable/ic_vue_messages_direct.xml | 34 ++++ .../res/drawable/ic_vue_messages_edit.xml | 27 +++ .../res/drawable/ic_vue_messages_letter.xml | 20 ++ .../main/res/drawable/ic_vue_messages_msg.xml | 34 ++++ .../drawable/ic_vue_messages_msg_favorite.xml | 41 ++++ .../ic_vue_messages_msg_notification.xml | 41 ++++ .../drawable/ic_vue_messages_msg_search.xml | 48 +++++ .../res/drawable/ic_vue_messages_msg_text.xml | 27 +++ .../res/drawable/ic_vue_messages_msgs.xml | 20 ++ .../res/drawable/ic_vue_money_archive.xml | 48 +++++ .../drawable/ic_vue_money_bitcoin_refresh.xml | 62 ++++++ .../res/drawable/ic_vue_money_buy_bitcoin.xml | 62 ++++++ .../res/drawable/ic_vue_money_buy_crypto.xml | 27 +++ .../main/res/drawable/ic_vue_money_card.xml | 34 ++++ .../drawable/ic_vue_money_card_bitcoin.xml | 76 ++++++++ .../res/drawable/ic_vue_money_card_coin.xml | 41 ++++ .../drawable/ic_vue_money_card_receive.xml | 48 +++++ .../res/drawable/ic_vue_money_card_send.xml | 48 +++++ .../main/res/drawable/ic_vue_money_coins.xml | 27 +++ .../res/drawable/ic_vue_money_discount.xml | 34 ++++ .../main/res/drawable/ic_vue_money_dollar.xml | 27 +++ .../main/res/drawable/ic_vue_money_math.xml | 55 ++++++ .../res/drawable/ic_vue_money_percentage.xml | 34 ++++ .../ic_vue_money_receipt_discount.xml | 41 ++++ .../drawable/ic_vue_money_receipt_empty.xml | 20 ++ .../drawable/ic_vue_money_receipt_items.xml | 48 +++++ .../main/res/drawable/ic_vue_money_recive.xml | 41 ++++ .../drawable/ic_vue_money_security_card.xml | 41 ++++ .../main/res/drawable/ic_vue_money_send.xml | 41 ++++ .../main/res/drawable/ic_vue_money_tag.xml | 19 ++ .../main/res/drawable/ic_vue_money_ticket.xml | 20 ++ .../drawable/ic_vue_money_ticket_discount.xml | 34 ++++ .../res/drawable/ic_vue_money_ticket_star.xml | 34 ++++ .../res/drawable/ic_vue_money_transfer.xml | 48 +++++ .../main/res/drawable/ic_vue_money_wallet.xml | 34 ++++ .../drawable/ic_vue_money_wallet_cards.xml | 41 ++++ .../drawable/ic_vue_money_wallet_empty.xml | 34 ++++ .../drawable/ic_vue_money_wallet_money.xml | 41 ++++ .../main/res/drawable/ic_vue_pc_bluetooth.xml | 13 ++ .../main/res/drawable/ic_vue_pc_charging.xml | 34 ++++ app/src/main/res/drawable/ic_vue_pc_cpu.xml | 104 ++++++++++ app/src/main/res/drawable/ic_vue_pc_game.xml | 62 ++++++ .../main/res/drawable/ic_vue_pc_gameboy.xml | 48 +++++ .../main/res/drawable/ic_vue_pc_headphone.xml | 13 ++ .../main/res/drawable/ic_vue_pc_monitor.xml | 34 ++++ app/src/main/res/drawable/ic_vue_pc_phone.xml | 11 ++ .../res/drawable/ic_vue_pc_phone_call.xml | 25 +++ .../main/res/drawable/ic_vue_pc_printer.xml | 41 ++++ .../main/res/drawable/ic_vue_pc_setting.xml | 20 ++ .../main/res/drawable/ic_vue_pc_speaker.xml | 27 +++ app/src/main/res/drawable/ic_vue_pc_watch.xml | 34 ++++ app/src/main/res/drawable/ic_vue_pc_wifi.xml | 34 ++++ .../res/drawable/ic_vue_people_2persons.xml | 34 ++++ .../res/drawable/ic_vue_people_people.xml | 48 +++++ .../res/drawable/ic_vue_people_person.xml | 20 ++ .../drawable/ic_vue_people_person_search.xml | 34 ++++ .../res/drawable/ic_vue_people_person_tag.xml | 27 +++ .../res/drawable/ic_vue_security_alarm.xml | 41 ++++ .../main/res/drawable/ic_vue_security_eye.xml | 20 ++ .../main/res/drawable/ic_vue_security_key.xml | 27 +++ .../res/drawable/ic_vue_security_lock.xml | 27 +++ .../res/drawable/ic_vue_security_password.xml | 41 ++++ .../res/drawable/ic_vue_security_radar.xml | 41 ++++ .../res/drawable/ic_vue_security_shield.xml | 13 ++ .../ic_vue_security_shield_person.xml | 27 +++ .../ic_vue_security_shield_security.xml | 27 +++ app/src/main/res/drawable/ic_vue_shop_bag.xml | 43 +++++ .../main/res/drawable/ic_vue_shop_bag1.xml | 34 ++++ .../main/res/drawable/ic_vue_shop_barcode.xml | 62 ++++++ .../main/res/drawable/ic_vue_shop_cart.xml | 34 ++++ .../main/res/drawable/ic_vue_shop_shop.xml | 41 ++++ .../res/drawable/ic_vue_support_dislike.xml | 18 ++ .../res/drawable/ic_vue_support_heart.xml | 13 ++ .../main/res/drawable/ic_vue_support_like.xml | 18 ++ .../drawable/ic_vue_support_like_dislike.xml | 30 +++ .../res/drawable/ic_vue_support_medal.xml | 27 +++ .../res/drawable/ic_vue_support_smileys.xml | 62 ++++++ .../main/res/drawable/ic_vue_support_star.xml | 13 ++ .../drawable/ic_vue_transport_airplane.xml | 13 ++ .../res/drawable/ic_vue_transport_bus.xml | 41 ++++ .../res/drawable/ic_vue_transport_car.xml | 62 ++++++ .../drawable/ic_vue_transport_car_wash.xml | 79 ++++++++ .../res/drawable/ic_vue_transport_gas.xml | 41 ++++ .../res/drawable/ic_vue_transport_ship.xml | 34 ++++ .../res/drawable/ic_vue_transport_train.xml | 62 ++++++ .../main/res/drawable/ic_vue_type_link.xml | 27 +++ .../main/res/drawable/ic_vue_type_link2.xml | 20 ++ .../res/drawable/ic_vue_type_paperclip.xml | 13 ++ .../main/res/drawable/ic_vue_type_text.xml | 27 +++ .../drawable/ic_vue_type_textalign_center.xml | 34 ++++ .../ic_vue_type_textalign_justifycenter.xml | 34 ++++ .../drawable/ic_vue_type_textalign_left.xml | 34 ++++ .../drawable/ic_vue_type_textalign_right.xml | 34 ++++ .../res/drawable/ic_vue_type_translate.xml | 76 ++++++++ .../res/drawable/ic_vue_weather_cloud.xml | 20 ++ .../main/res/drawable/ic_vue_weather_cold.xml | 97 ++++++++++ .../main/res/drawable/ic_vue_weather_drop.xml | 11 ++ .../res/drawable/ic_vue_weather_flash.xml | 34 ++++ .../main/res/drawable/ic_vue_weather_moon.xml | 13 ++ .../main/res/drawable/ic_vue_weather_sun.xml | 20 ++ .../main/res/drawable/ic_vue_weather_wind.xml | 27 +++ 305 files changed, 10705 insertions(+) create mode 100644 app/src/main/res/drawable/ic_vue_brands_android.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_apple.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_be.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_blogger.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_bootsrap.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_dribbble.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_drive.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_dropbox.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_facebook.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_figma.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_framer.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_google.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_google_play.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_html3.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_html5.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_illustrator.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_js.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_messenger.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_ok.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_paypal.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_photoshop.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_python.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_slack.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_snapchat.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_spotify.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_trello.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_triangle.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_twitch.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_ui8.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_vuesax.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_whatsapp.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_windows.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_xd.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_xiaomi.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_youtube.xml create mode 100644 app/src/main/res/drawable/ic_vue_brands_zoom.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_bank.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_building.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_building1.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_buildings.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_courthouse.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_hospital.xml create mode 100644 app/src/main/res/drawable/ic_vue_building_house.xml create mode 100644 app/src/main/res/drawable/ic_vue_chart_chart.xml create mode 100644 app/src/main/res/drawable/ic_vue_chart_diagram.xml create mode 100644 app/src/main/res/drawable/ic_vue_chart_graph.xml create mode 100644 app/src/main/res/drawable/ic_vue_chart_status_up.xml create mode 100644 app/src/main/res/drawable/ic_vue_chart_trend_up.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_aave.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_ankr.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_augur.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_autonio.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_avalanche.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_binance_coin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_binance_usd.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_bitcoin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_cardano.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_celo.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_celsius_.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_chainlink.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_civic.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_dai.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_dash.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_decred.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_dent.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_educare.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_emercoin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_enjin_coin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_eos.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_ethereum.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_ethereum_classic.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_ftx_token.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_graph.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_harmony.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_hedera_hashgraph.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_hex.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_huobi_token.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_icon.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_iost.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_kyber_network.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_litecoin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_maker.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_monero.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_nebulas.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_nem.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_nexo.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_ocean_protocol.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_okb.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_ontology.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_polkadot.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_polygon.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_polyswarm.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_quant.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_siacoin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_solana.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_stacks.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_stellar.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_tenx.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_tether.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_theta.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_thorchain.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_trontron.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_usd_coin.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_velas.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_vibe.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_wanchain.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_wing.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_xrp.xml create mode 100644 app/src/main/res/drawable/ic_vue_crypto_zel.xml create mode 100644 app/src/main/res/drawable/ic_vue_delivery_box.xml create mode 100644 app/src/main/res/drawable/ic_vue_delivery_box1.xml create mode 100644 app/src/main/res/drawable/ic_vue_delivery_package.xml create mode 100644 app/src/main/res/drawable/ic_vue_delivery_receive.xml create mode 100644 app/src/main/res/drawable/ic_vue_delivery_truck.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_bezier.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_brush.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_color_swatch.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_magicpen.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_roller.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_scissors.xml create mode 100644 app/src/main/res/drawable/ic_vue_design_tool_pen.xml create mode 100644 app/src/main/res/drawable/ic_vue_dev_arrow.xml create mode 100644 app/src/main/res/drawable/ic_vue_dev_code.xml create mode 100644 app/src/main/res/drawable/ic_vue_dev_data.xml create mode 100644 app/src/main/res/drawable/ic_vue_dev_hashtag.xml create mode 100644 app/src/main/res/drawable/ic_vue_dev_hierarchy.xml create mode 100644 app/src/main/res/drawable/ic_vue_dev_relation.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_award.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_book.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_bookmark.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_briefcase.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_calculator.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_glass.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_graduate_cap.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_magazine.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_note.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_omega.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_pen.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_planer.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_ruler_pen.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_telescope.xml create mode 100644 app/src/main/res/drawable/ic_vue_edu_todo.xml create mode 100644 app/src/main/res/drawable/ic_vue_files_folder.xml create mode 100644 app/src/main/res/drawable/ic_vue_files_folder_cloud.xml create mode 100644 app/src/main/res/drawable/ic_vue_files_folder_favorite.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_discover.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_global.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_global_edit.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_global_search.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_location.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_map.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_map1.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_radar.xml create mode 100644 app/src/main/res/drawable/ic_vue_location_routing.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_archive.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_battery_charging.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_battery_half.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_broom.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_cake.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_calendar.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_clock.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_coffee.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_crown.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_cup.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_emoji_happy.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_emoji_normal.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_emoji_sad.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_flash.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_gift.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_glass.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_home.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_home_safe.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_home_wifi.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_judge.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_lamp.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_lamp_charge.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_lifebuoy.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_milk.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_notification.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_pet.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_reserve.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_send.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_share.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_signpost.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_sport.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_timer.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_trash.xml create mode 100644 app/src/main/res/drawable/ic_vue_main_tree.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_camera.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_film.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_film_play.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_image.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_microphone.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_mountains.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_music.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_photocamera.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_play.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_scissors.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_screenmirroring.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_setting.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_speaker.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_subtitle.xml create mode 100644 app/src/main/res/drawable/ic_vue_media_voice.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_device_msg.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_direct.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_edit.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_letter.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_msg.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_msg_favorite.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_msg_notification.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_msg_search.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_msg_text.xml create mode 100644 app/src/main/res/drawable/ic_vue_messages_msgs.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_archive.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_bitcoin_refresh.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_buy_bitcoin.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_buy_crypto.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_card.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_card_bitcoin.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_card_coin.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_card_receive.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_card_send.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_coins.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_discount.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_dollar.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_math.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_percentage.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_receipt_discount.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_receipt_empty.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_receipt_items.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_recive.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_security_card.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_send.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_tag.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_ticket.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_ticket_discount.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_ticket_star.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_transfer.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_wallet.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_wallet_cards.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_wallet_empty.xml create mode 100644 app/src/main/res/drawable/ic_vue_money_wallet_money.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_bluetooth.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_charging.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_cpu.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_game.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_gameboy.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_headphone.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_monitor.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_phone.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_phone_call.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_printer.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_setting.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_speaker.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_watch.xml create mode 100644 app/src/main/res/drawable/ic_vue_pc_wifi.xml create mode 100644 app/src/main/res/drawable/ic_vue_people_2persons.xml create mode 100644 app/src/main/res/drawable/ic_vue_people_people.xml create mode 100644 app/src/main/res/drawable/ic_vue_people_person.xml create mode 100644 app/src/main/res/drawable/ic_vue_people_person_search.xml create mode 100644 app/src/main/res/drawable/ic_vue_people_person_tag.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_alarm.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_eye.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_key.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_lock.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_password.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_radar.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_shield.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_shield_person.xml create mode 100644 app/src/main/res/drawable/ic_vue_security_shield_security.xml create mode 100644 app/src/main/res/drawable/ic_vue_shop_bag.xml create mode 100644 app/src/main/res/drawable/ic_vue_shop_bag1.xml create mode 100644 app/src/main/res/drawable/ic_vue_shop_barcode.xml create mode 100644 app/src/main/res/drawable/ic_vue_shop_cart.xml create mode 100644 app/src/main/res/drawable/ic_vue_shop_shop.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_dislike.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_heart.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_like.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_like_dislike.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_medal.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_smileys.xml create mode 100644 app/src/main/res/drawable/ic_vue_support_star.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_airplane.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_bus.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_car.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_car_wash.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_gas.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_ship.xml create mode 100644 app/src/main/res/drawable/ic_vue_transport_train.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_link.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_link2.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_paperclip.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_text.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_textalign_center.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_textalign_justifycenter.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_textalign_left.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_textalign_right.xml create mode 100644 app/src/main/res/drawable/ic_vue_type_translate.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_cloud.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_cold.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_drop.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_flash.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_moon.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_sun.xml create mode 100644 app/src/main/res/drawable/ic_vue_weather_wind.xml diff --git a/app/src/main/res/drawable/ic_vue_brands_android.xml b/app/src/main/res/drawable/ic_vue_brands_android.xml new file mode 100644 index 0000000000..7d68063994 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_android.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_apple.xml b/app/src/main/res/drawable/ic_vue_brands_apple.xml new file mode 100644 index 0000000000..b0a76a7738 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_apple.xml @@ -0,0 +1,14 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_be.xml b/app/src/main/res/drawable/ic_vue_brands_be.xml new file mode 100644 index 0000000000..1d01a9d89c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_be.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_blogger.xml b/app/src/main/res/drawable/ic_vue_brands_blogger.xml new file mode 100644 index 0000000000..d7993c2cc7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_blogger.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_bootsrap.xml b/app/src/main/res/drawable/ic_vue_brands_bootsrap.xml new file mode 100644 index 0000000000..5182198e96 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_bootsrap.xml @@ -0,0 +1,19 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_dribbble.xml b/app/src/main/res/drawable/ic_vue_brands_dribbble.xml new file mode 100644 index 0000000000..ab779fbd06 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_dribbble.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_drive.xml b/app/src/main/res/drawable/ic_vue_brands_drive.xml new file mode 100644 index 0000000000..aa63521393 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_drive.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_dropbox.xml b/app/src/main/res/drawable/ic_vue_brands_dropbox.xml new file mode 100644 index 0000000000..0af41b81ce --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_dropbox.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_facebook.xml b/app/src/main/res/drawable/ic_vue_brands_facebook.xml new file mode 100644 index 0000000000..4073918f8d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_facebook.xml @@ -0,0 +1,19 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_figma.xml b/app/src/main/res/drawable/ic_vue_brands_figma.xml new file mode 100644 index 0000000000..2bb3ff50d6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_figma.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_framer.xml b/app/src/main/res/drawable/ic_vue_brands_framer.xml new file mode 100644 index 0000000000..c0f1e5c61a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_framer.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_google.xml b/app/src/main/res/drawable/ic_vue_brands_google.xml new file mode 100644 index 0000000000..717105f05a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_google.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_google_play.xml b/app/src/main/res/drawable/ic_vue_brands_google_play.xml new file mode 100644 index 0000000000..f9f48513d6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_google_play.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_html3.xml b/app/src/main/res/drawable/ic_vue_brands_html3.xml new file mode 100644 index 0000000000..5919044bff --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_html3.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_html5.xml b/app/src/main/res/drawable/ic_vue_brands_html5.xml new file mode 100644 index 0000000000..56203fe01f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_html5.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_illustrator.xml b/app/src/main/res/drawable/ic_vue_brands_illustrator.xml new file mode 100644 index 0000000000..54609ce057 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_illustrator.xml @@ -0,0 +1,39 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_js.xml b/app/src/main/res/drawable/ic_vue_brands_js.xml new file mode 100644 index 0000000000..e38f09fd5d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_js.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_messenger.xml b/app/src/main/res/drawable/ic_vue_brands_messenger.xml new file mode 100644 index 0000000000..8124ced870 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_messenger.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_ok.xml b/app/src/main/res/drawable/ic_vue_brands_ok.xml new file mode 100644 index 0000000000..d5f96d9d23 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_ok.xml @@ -0,0 +1,30 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_paypal.xml b/app/src/main/res/drawable/ic_vue_brands_paypal.xml new file mode 100644 index 0000000000..a229e32fe7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_paypal.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_photoshop.xml b/app/src/main/res/drawable/ic_vue_brands_photoshop.xml new file mode 100644 index 0000000000..7b8600d8e3 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_photoshop.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_python.xml b/app/src/main/res/drawable/ic_vue_brands_python.xml new file mode 100644 index 0000000000..6de0664852 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_python.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_slack.xml b/app/src/main/res/drawable/ic_vue_brands_slack.xml new file mode 100644 index 0000000000..9b294050ea --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_slack.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_snapchat.xml b/app/src/main/res/drawable/ic_vue_brands_snapchat.xml new file mode 100644 index 0000000000..d9571bc8b1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_snapchat.xml @@ -0,0 +1,19 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_spotify.xml b/app/src/main/res/drawable/ic_vue_brands_spotify.xml new file mode 100644 index 0000000000..63a7f882ad --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_spotify.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_trello.xml b/app/src/main/res/drawable/ic_vue_brands_trello.xml new file mode 100644 index 0000000000..70978b3d89 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_trello.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_triangle.xml b/app/src/main/res/drawable/ic_vue_brands_triangle.xml new file mode 100644 index 0000000000..f4d888c36c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_triangle.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_twitch.xml b/app/src/main/res/drawable/ic_vue_brands_twitch.xml new file mode 100644 index 0000000000..b4dc761559 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_twitch.xml @@ -0,0 +1,28 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_ui8.xml b/app/src/main/res/drawable/ic_vue_brands_ui8.xml new file mode 100644 index 0000000000..d568f34934 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_ui8.xml @@ -0,0 +1,32 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_vuesax.xml b/app/src/main/res/drawable/ic_vue_brands_vuesax.xml new file mode 100644 index 0000000000..9140c66d45 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_vuesax.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_whatsapp.xml b/app/src/main/res/drawable/ic_vue_brands_whatsapp.xml new file mode 100644 index 0000000000..6b8b8eab76 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_whatsapp.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_windows.xml b/app/src/main/res/drawable/ic_vue_brands_windows.xml new file mode 100644 index 0000000000..ae214fbcbd --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_windows.xml @@ -0,0 +1,38 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_xd.xml b/app/src/main/res/drawable/ic_vue_brands_xd.xml new file mode 100644 index 0000000000..73b40e2c12 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_xd.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_xiaomi.xml b/app/src/main/res/drawable/ic_vue_brands_xiaomi.xml new file mode 100644 index 0000000000..f4c9b9c4bb --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_xiaomi.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_youtube.xml b/app/src/main/res/drawable/ic_vue_brands_youtube.xml new file mode 100644 index 0000000000..cdad2499c8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_youtube.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_brands_zoom.xml b/app/src/main/res/drawable/ic_vue_brands_zoom.xml new file mode 100644 index 0000000000..7e8ba0cb11 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_brands_zoom.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_bank.xml b/app/src/main/res/drawable/ic_vue_building_bank.xml new file mode 100644 index 0000000000..7ba69ac339 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_bank.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_building.xml b/app/src/main/res/drawable/ic_vue_building_building.xml new file mode 100644 index 0000000000..01b7d668aa --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_building.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_building1.xml b/app/src/main/res/drawable/ic_vue_building_building1.xml new file mode 100644 index 0000000000..351a917597 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_building1.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_buildings.xml b/app/src/main/res/drawable/ic_vue_building_buildings.xml new file mode 100644 index 0000000000..94c663b054 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_buildings.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_courthouse.xml b/app/src/main/res/drawable/ic_vue_building_courthouse.xml new file mode 100644 index 0000000000..4692723a15 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_courthouse.xml @@ -0,0 +1,59 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_hospital.xml b/app/src/main/res/drawable/ic_vue_building_hospital.xml new file mode 100644 index 0000000000..4d9391c422 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_hospital.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_building_house.xml b/app/src/main/res/drawable/ic_vue_building_house.xml new file mode 100644 index 0000000000..ea7df02c73 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_building_house.xml @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_chart_chart.xml b/app/src/main/res/drawable/ic_vue_chart_chart.xml new file mode 100644 index 0000000000..1fce16655f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_chart_chart.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_chart_diagram.xml b/app/src/main/res/drawable/ic_vue_chart_diagram.xml new file mode 100644 index 0000000000..9bf204bc7f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_chart_diagram.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_chart_graph.xml b/app/src/main/res/drawable/ic_vue_chart_graph.xml new file mode 100644 index 0000000000..45d767b956 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_chart_graph.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_chart_status_up.xml b/app/src/main/res/drawable/ic_vue_chart_status_up.xml new file mode 100644 index 0000000000..b846e08ed9 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_chart_status_up.xml @@ -0,0 +1,44 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_chart_trend_up.xml b/app/src/main/res/drawable/ic_vue_chart_trend_up.xml new file mode 100644 index 0000000000..964af3d3e6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_chart_trend_up.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_aave.xml b/app/src/main/res/drawable/ic_vue_crypto_aave.xml new file mode 100644 index 0000000000..fde3583f42 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_aave.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_ankr.xml b/app/src/main/res/drawable/ic_vue_crypto_ankr.xml new file mode 100644 index 0000000000..c025dbbc44 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_ankr.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_augur.xml b/app/src/main/res/drawable/ic_vue_crypto_augur.xml new file mode 100644 index 0000000000..ca0aadff13 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_augur.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_autonio.xml b/app/src/main/res/drawable/ic_vue_crypto_autonio.xml new file mode 100644 index 0000000000..3ba0e85b44 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_autonio.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_avalanche.xml b/app/src/main/res/drawable/ic_vue_crypto_avalanche.xml new file mode 100644 index 0000000000..d35c5c5ccd --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_avalanche.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_binance_coin.xml b/app/src/main/res/drawable/ic_vue_crypto_binance_coin.xml new file mode 100644 index 0000000000..a01003e583 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_binance_coin.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_binance_usd.xml b/app/src/main/res/drawable/ic_vue_crypto_binance_usd.xml new file mode 100644 index 0000000000..3e970d96fa --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_binance_usd.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_bitcoin.xml b/app/src/main/res/drawable/ic_vue_crypto_bitcoin.xml new file mode 100644 index 0000000000..32675b5b57 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_bitcoin.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_cardano.xml b/app/src/main/res/drawable/ic_vue_crypto_cardano.xml new file mode 100644 index 0000000000..01c8f3aa0f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_cardano.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_celo.xml b/app/src/main/res/drawable/ic_vue_crypto_celo.xml new file mode 100644 index 0000000000..54275ee334 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_celo.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_celsius_.xml b/app/src/main/res/drawable/ic_vue_crypto_celsius_.xml new file mode 100644 index 0000000000..a9af21fdd0 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_celsius_.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_chainlink.xml b/app/src/main/res/drawable/ic_vue_crypto_chainlink.xml new file mode 100644 index 0000000000..b6079cd26f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_chainlink.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_civic.xml b/app/src/main/res/drawable/ic_vue_crypto_civic.xml new file mode 100644 index 0000000000..079a24f473 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_civic.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_dai.xml b/app/src/main/res/drawable/ic_vue_crypto_dai.xml new file mode 100644 index 0000000000..01d550345b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_dai.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_dash.xml b/app/src/main/res/drawable/ic_vue_crypto_dash.xml new file mode 100644 index 0000000000..f6ee8da706 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_dash.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_decred.xml b/app/src/main/res/drawable/ic_vue_crypto_decred.xml new file mode 100644 index 0000000000..6370483aa6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_decred.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_dent.xml b/app/src/main/res/drawable/ic_vue_crypto_dent.xml new file mode 100644 index 0000000000..e785144c84 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_dent.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_educare.xml b/app/src/main/res/drawable/ic_vue_crypto_educare.xml new file mode 100644 index 0000000000..a6c2329c8a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_educare.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_emercoin.xml b/app/src/main/res/drawable/ic_vue_crypto_emercoin.xml new file mode 100644 index 0000000000..611aa06281 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_emercoin.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_enjin_coin.xml b/app/src/main/res/drawable/ic_vue_crypto_enjin_coin.xml new file mode 100644 index 0000000000..481d124df7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_enjin_coin.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_eos.xml b/app/src/main/res/drawable/ic_vue_crypto_eos.xml new file mode 100644 index 0000000000..f71befb792 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_eos.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_ethereum.xml b/app/src/main/res/drawable/ic_vue_crypto_ethereum.xml new file mode 100644 index 0000000000..3e476d07ab --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_ethereum.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_ethereum_classic.xml b/app/src/main/res/drawable/ic_vue_crypto_ethereum_classic.xml new file mode 100644 index 0000000000..642b9c17c4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_ethereum_classic.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_ftx_token.xml b/app/src/main/res/drawable/ic_vue_crypto_ftx_token.xml new file mode 100644 index 0000000000..4b0c0b7f5d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_ftx_token.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_graph.xml b/app/src/main/res/drawable/ic_vue_crypto_graph.xml new file mode 100644 index 0000000000..61fcbd0ce1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_graph.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_harmony.xml b/app/src/main/res/drawable/ic_vue_crypto_harmony.xml new file mode 100644 index 0000000000..dd6070c6a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_harmony.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_hedera_hashgraph.xml b/app/src/main/res/drawable/ic_vue_crypto_hedera_hashgraph.xml new file mode 100644 index 0000000000..9b043279de --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_hedera_hashgraph.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_hex.xml b/app/src/main/res/drawable/ic_vue_crypto_hex.xml new file mode 100644 index 0000000000..5c4b5b6182 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_hex.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_huobi_token.xml b/app/src/main/res/drawable/ic_vue_crypto_huobi_token.xml new file mode 100644 index 0000000000..552c4cb6fe --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_huobi_token.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_icon.xml b/app/src/main/res/drawable/ic_vue_crypto_icon.xml new file mode 100644 index 0000000000..c9d12ece0b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_icon.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_iost.xml b/app/src/main/res/drawable/ic_vue_crypto_iost.xml new file mode 100644 index 0000000000..a3706fd10f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_iost.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_kyber_network.xml b/app/src/main/res/drawable/ic_vue_crypto_kyber_network.xml new file mode 100644 index 0000000000..b2d9417258 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_kyber_network.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_litecoin.xml b/app/src/main/res/drawable/ic_vue_crypto_litecoin.xml new file mode 100644 index 0000000000..cb660d2fd6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_litecoin.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_maker.xml b/app/src/main/res/drawable/ic_vue_crypto_maker.xml new file mode 100644 index 0000000000..c0d12873a3 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_maker.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_monero.xml b/app/src/main/res/drawable/ic_vue_crypto_monero.xml new file mode 100644 index 0000000000..37567ff77a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_monero.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_nebulas.xml b/app/src/main/res/drawable/ic_vue_crypto_nebulas.xml new file mode 100644 index 0000000000..9b459cfbb4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_nebulas.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_nem.xml b/app/src/main/res/drawable/ic_vue_crypto_nem.xml new file mode 100644 index 0000000000..81e160055c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_nem.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_nexo.xml b/app/src/main/res/drawable/ic_vue_crypto_nexo.xml new file mode 100644 index 0000000000..496baec2b7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_nexo.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_ocean_protocol.xml b/app/src/main/res/drawable/ic_vue_crypto_ocean_protocol.xml new file mode 100644 index 0000000000..7765996ac4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_ocean_protocol.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_okb.xml b/app/src/main/res/drawable/ic_vue_crypto_okb.xml new file mode 100644 index 0000000000..f609ca2eb4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_okb.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_ontology.xml b/app/src/main/res/drawable/ic_vue_crypto_ontology.xml new file mode 100644 index 0000000000..d0c984b5a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_ontology.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_polkadot.xml b/app/src/main/res/drawable/ic_vue_crypto_polkadot.xml new file mode 100644 index 0000000000..90ab0e9c0d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_polkadot.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_polygon.xml b/app/src/main/res/drawable/ic_vue_crypto_polygon.xml new file mode 100644 index 0000000000..cdc0d200f0 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_polygon.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_polyswarm.xml b/app/src/main/res/drawable/ic_vue_crypto_polyswarm.xml new file mode 100644 index 0000000000..14c722a26b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_polyswarm.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_quant.xml b/app/src/main/res/drawable/ic_vue_crypto_quant.xml new file mode 100644 index 0000000000..ce085a06da --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_quant.xml @@ -0,0 +1,60 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_siacoin.xml b/app/src/main/res/drawable/ic_vue_crypto_siacoin.xml new file mode 100644 index 0000000000..9dbf953951 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_siacoin.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_solana.xml b/app/src/main/res/drawable/ic_vue_crypto_solana.xml new file mode 100644 index 0000000000..56a835d5b4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_solana.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_stacks.xml b/app/src/main/res/drawable/ic_vue_crypto_stacks.xml new file mode 100644 index 0000000000..dd9d826086 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_stacks.xml @@ -0,0 +1,53 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_stellar.xml b/app/src/main/res/drawable/ic_vue_crypto_stellar.xml new file mode 100644 index 0000000000..27a67f4879 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_stellar.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_tenx.xml b/app/src/main/res/drawable/ic_vue_crypto_tenx.xml new file mode 100644 index 0000000000..6e6723900b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_tenx.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_tether.xml b/app/src/main/res/drawable/ic_vue_crypto_tether.xml new file mode 100644 index 0000000000..17a53e0bfe --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_tether.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_theta.xml b/app/src/main/res/drawable/ic_vue_crypto_theta.xml new file mode 100644 index 0000000000..f0ba0235f7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_theta.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_thorchain.xml b/app/src/main/res/drawable/ic_vue_crypto_thorchain.xml new file mode 100644 index 0000000000..bfcb3f6a85 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_thorchain.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_trontron.xml b/app/src/main/res/drawable/ic_vue_crypto_trontron.xml new file mode 100644 index 0000000000..2d11909b32 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_trontron.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_usd_coin.xml b/app/src/main/res/drawable/ic_vue_crypto_usd_coin.xml new file mode 100644 index 0000000000..dd6cf100aa --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_usd_coin.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_velas.xml b/app/src/main/res/drawable/ic_vue_crypto_velas.xml new file mode 100644 index 0000000000..5d984cd817 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_velas.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_vibe.xml b/app/src/main/res/drawable/ic_vue_crypto_vibe.xml new file mode 100644 index 0000000000..c708dc3817 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_vibe.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_wanchain.xml b/app/src/main/res/drawable/ic_vue_crypto_wanchain.xml new file mode 100644 index 0000000000..f60a8bd239 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_wanchain.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_wing.xml b/app/src/main/res/drawable/ic_vue_crypto_wing.xml new file mode 100644 index 0000000000..8baf65bbd1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_wing.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_xrp.xml b/app/src/main/res/drawable/ic_vue_crypto_xrp.xml new file mode 100644 index 0000000000..a4ba47f608 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_xrp.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_crypto_zel.xml b/app/src/main/res/drawable/ic_vue_crypto_zel.xml new file mode 100644 index 0000000000..4a06b841ff --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_crypto_zel.xml @@ -0,0 +1,30 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_delivery_box.xml b/app/src/main/res/drawable/ic_vue_delivery_box.xml new file mode 100644 index 0000000000..8fa8e1b037 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_delivery_box.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_delivery_box1.xml b/app/src/main/res/drawable/ic_vue_delivery_box1.xml new file mode 100644 index 0000000000..3d2188c786 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_delivery_box1.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_delivery_package.xml b/app/src/main/res/drawable/ic_vue_delivery_package.xml new file mode 100644 index 0000000000..f35242109d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_delivery_package.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_delivery_receive.xml b/app/src/main/res/drawable/ic_vue_delivery_receive.xml new file mode 100644 index 0000000000..b595df84bc --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_delivery_receive.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_delivery_truck.xml b/app/src/main/res/drawable/ic_vue_delivery_truck.xml new file mode 100644 index 0000000000..0e01266098 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_delivery_truck.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_bezier.xml b/app/src/main/res/drawable/ic_vue_design_bezier.xml new file mode 100644 index 0000000000..9373f932ac --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_bezier.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_brush.xml b/app/src/main/res/drawable/ic_vue_design_brush.xml new file mode 100644 index 0000000000..af50101c12 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_brush.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_color_swatch.xml b/app/src/main/res/drawable/ic_vue_design_color_swatch.xml new file mode 100644 index 0000000000..0afbbbe006 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_color_swatch.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_magicpen.xml b/app/src/main/res/drawable/ic_vue_design_magicpen.xml new file mode 100644 index 0000000000..d8d9a668b4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_magicpen.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_roller.xml b/app/src/main/res/drawable/ic_vue_design_roller.xml new file mode 100644 index 0000000000..129772ffe7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_roller.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_scissors.xml b/app/src/main/res/drawable/ic_vue_design_scissors.xml new file mode 100644 index 0000000000..8b4ab618e1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_scissors.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_design_tool_pen.xml b/app/src/main/res/drawable/ic_vue_design_tool_pen.xml new file mode 100644 index 0000000000..4cd199ddaa --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_design_tool_pen.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_dev_arrow.xml b/app/src/main/res/drawable/ic_vue_dev_arrow.xml new file mode 100644 index 0000000000..31e8ba0848 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_dev_arrow.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_dev_code.xml b/app/src/main/res/drawable/ic_vue_dev_code.xml new file mode 100644 index 0000000000..d79e928f6d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_dev_code.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_dev_data.xml b/app/src/main/res/drawable/ic_vue_dev_data.xml new file mode 100644 index 0000000000..9bdf96104c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_dev_data.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_dev_hashtag.xml b/app/src/main/res/drawable/ic_vue_dev_hashtag.xml new file mode 100644 index 0000000000..48fed54866 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_dev_hashtag.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_dev_hierarchy.xml b/app/src/main/res/drawable/ic_vue_dev_hierarchy.xml new file mode 100644 index 0000000000..2029857cbe --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_dev_hierarchy.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_dev_relation.xml b/app/src/main/res/drawable/ic_vue_dev_relation.xml new file mode 100644 index 0000000000..4bd9f19d07 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_dev_relation.xml @@ -0,0 +1,58 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_award.xml b/app/src/main/res/drawable/ic_vue_edu_award.xml new file mode 100644 index 0000000000..2545dc4c12 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_award.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_book.xml b/app/src/main/res/drawable/ic_vue_edu_book.xml new file mode 100644 index 0000000000..ee01810c15 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_book.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_bookmark.xml b/app/src/main/res/drawable/ic_vue_edu_bookmark.xml new file mode 100644 index 0000000000..8dc917bf7d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_bookmark.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_briefcase.xml b/app/src/main/res/drawable/ic_vue_edu_briefcase.xml new file mode 100644 index 0000000000..30ec3e34c2 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_briefcase.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_calculator.xml b/app/src/main/res/drawable/ic_vue_edu_calculator.xml new file mode 100644 index 0000000000..63aef6b949 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_calculator.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_glass.xml b/app/src/main/res/drawable/ic_vue_edu_glass.xml new file mode 100644 index 0000000000..3fb60d7c38 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_glass.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_graduate_cap.xml b/app/src/main/res/drawable/ic_vue_edu_graduate_cap.xml new file mode 100644 index 0000000000..53f47ad38d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_graduate_cap.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_magazine.xml b/app/src/main/res/drawable/ic_vue_edu_magazine.xml new file mode 100644 index 0000000000..0da63523dc --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_magazine.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_note.xml b/app/src/main/res/drawable/ic_vue_edu_note.xml new file mode 100644 index 0000000000..bcae87e919 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_note.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_omega.xml b/app/src/main/res/drawable/ic_vue_edu_omega.xml new file mode 100644 index 0000000000..9876f9390a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_omega.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_pen.xml b/app/src/main/res/drawable/ic_vue_edu_pen.xml new file mode 100644 index 0000000000..361869ef81 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_pen.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_planer.xml b/app/src/main/res/drawable/ic_vue_edu_planer.xml new file mode 100644 index 0000000000..3cf061277c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_planer.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_ruler_pen.xml b/app/src/main/res/drawable/ic_vue_edu_ruler_pen.xml new file mode 100644 index 0000000000..6f2228ed2a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_ruler_pen.xml @@ -0,0 +1,48 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_telescope.xml b/app/src/main/res/drawable/ic_vue_edu_telescope.xml new file mode 100644 index 0000000000..7773c0f824 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_telescope.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_edu_todo.xml b/app/src/main/res/drawable/ic_vue_edu_todo.xml new file mode 100644 index 0000000000..a52122c4af --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_edu_todo.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_files_folder.xml b/app/src/main/res/drawable/ic_vue_files_folder.xml new file mode 100644 index 0000000000..35b28d52cc --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_files_folder.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_files_folder_cloud.xml b/app/src/main/res/drawable/ic_vue_files_folder_cloud.xml new file mode 100644 index 0000000000..9a08ce5f96 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_files_folder_cloud.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_files_folder_favorite.xml b/app/src/main/res/drawable/ic_vue_files_folder_favorite.xml new file mode 100644 index 0000000000..f9ca76131d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_files_folder_favorite.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_discover.xml b/app/src/main/res/drawable/ic_vue_location_discover.xml new file mode 100644 index 0000000000..103a828849 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_discover.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_global.xml b/app/src/main/res/drawable/ic_vue_location_global.xml new file mode 100644 index 0000000000..af57f1a2bc --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_global.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_global_edit.xml b/app/src/main/res/drawable/ic_vue_location_global_edit.xml new file mode 100644 index 0000000000..e88cb41a7b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_global_edit.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_global_search.xml b/app/src/main/res/drawable/ic_vue_location_global_search.xml new file mode 100644 index 0000000000..46453b709f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_global_search.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_location.xml b/app/src/main/res/drawable/ic_vue_location_location.xml new file mode 100644 index 0000000000..fcb757c6bd --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_location.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_map.xml b/app/src/main/res/drawable/ic_vue_location_map.xml new file mode 100644 index 0000000000..1277f9c4c5 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_map.xml @@ -0,0 +1,39 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_map1.xml b/app/src/main/res/drawable/ic_vue_location_map1.xml new file mode 100644 index 0000000000..63e3c04405 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_map1.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_radar.xml b/app/src/main/res/drawable/ic_vue_location_radar.xml new file mode 100644 index 0000000000..aa4556b60c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_radar.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_location_routing.xml b/app/src/main/res/drawable/ic_vue_location_routing.xml new file mode 100644 index 0000000000..66fbd4af92 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_location_routing.xml @@ -0,0 +1,37 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_archive.xml b/app/src/main/res/drawable/ic_vue_main_archive.xml new file mode 100644 index 0000000000..872f6b67d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_archive.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_battery_charging.xml b/app/src/main/res/drawable/ic_vue_main_battery_charging.xml new file mode 100644 index 0000000000..51cad3239b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_battery_charging.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_battery_half.xml b/app/src/main/res/drawable/ic_vue_main_battery_half.xml new file mode 100644 index 0000000000..5275d9828e --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_battery_half.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_broom.xml b/app/src/main/res/drawable/ic_vue_main_broom.xml new file mode 100644 index 0000000000..db2f2cb152 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_broom.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_cake.xml b/app/src/main/res/drawable/ic_vue_main_cake.xml new file mode 100644 index 0000000000..7c674fd0cd --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_cake.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_calendar.xml b/app/src/main/res/drawable/ic_vue_main_calendar.xml new file mode 100644 index 0000000000..01e6a3ec73 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_calendar.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_clock.xml b/app/src/main/res/drawable/ic_vue_main_clock.xml new file mode 100644 index 0000000000..a01282984a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_clock.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_coffee.xml b/app/src/main/res/drawable/ic_vue_main_coffee.xml new file mode 100644 index 0000000000..8e714a1483 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_coffee.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_crown.xml b/app/src/main/res/drawable/ic_vue_main_crown.xml new file mode 100644 index 0000000000..6869756b84 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_crown.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_main_cup.xml b/app/src/main/res/drawable/ic_vue_main_cup.xml new file mode 100644 index 0000000000..8b58747973 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_cup.xml @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_emoji_happy.xml b/app/src/main/res/drawable/ic_vue_main_emoji_happy.xml new file mode 100644 index 0000000000..1c4c5f346e --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_emoji_happy.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_emoji_normal.xml b/app/src/main/res/drawable/ic_vue_main_emoji_normal.xml new file mode 100644 index 0000000000..a6cefdfc47 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_emoji_normal.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_emoji_sad.xml b/app/src/main/res/drawable/ic_vue_main_emoji_sad.xml new file mode 100644 index 0000000000..216b50f792 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_emoji_sad.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_flash.xml b/app/src/main/res/drawable/ic_vue_main_flash.xml new file mode 100644 index 0000000000..d82b6ca802 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_flash.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_main_gift.xml b/app/src/main/res/drawable/ic_vue_main_gift.xml new file mode 100644 index 0000000000..5fa0c1a750 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_gift.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_glass.xml b/app/src/main/res/drawable/ic_vue_main_glass.xml new file mode 100644 index 0000000000..0cab6e35f0 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_glass.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_home.xml b/app/src/main/res/drawable/ic_vue_main_home.xml new file mode 100644 index 0000000000..0bd31fa670 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_home.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_home_safe.xml b/app/src/main/res/drawable/ic_vue_main_home_safe.xml new file mode 100644 index 0000000000..4a5caa3cea --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_home_safe.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_home_wifi.xml b/app/src/main/res/drawable/ic_vue_main_home_wifi.xml new file mode 100644 index 0000000000..74f587b6fe --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_home_wifi.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_judge.xml b/app/src/main/res/drawable/ic_vue_main_judge.xml new file mode 100644 index 0000000000..2734bce4eb --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_judge.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_lamp.xml b/app/src/main/res/drawable/ic_vue_main_lamp.xml new file mode 100644 index 0000000000..3dab639970 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_lamp.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_lamp_charge.xml b/app/src/main/res/drawable/ic_vue_main_lamp_charge.xml new file mode 100644 index 0000000000..1f2930b0e3 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_lamp_charge.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_lifebuoy.xml b/app/src/main/res/drawable/ic_vue_main_lifebuoy.xml new file mode 100644 index 0000000000..a827c7102c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_lifebuoy.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_milk.xml b/app/src/main/res/drawable/ic_vue_main_milk.xml new file mode 100644 index 0000000000..56f6cabb3e --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_milk.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_notification.xml b/app/src/main/res/drawable/ic_vue_main_notification.xml new file mode 100644 index 0000000000..00fdfbaa74 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_notification.xml @@ -0,0 +1,24 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_pet.xml b/app/src/main/res/drawable/ic_vue_main_pet.xml new file mode 100644 index 0000000000..ac9dd5daf5 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_pet.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_reserve.xml b/app/src/main/res/drawable/ic_vue_main_reserve.xml new file mode 100644 index 0000000000..a79a5e5d68 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_reserve.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_send.xml b/app/src/main/res/drawable/ic_vue_main_send.xml new file mode 100644 index 0000000000..23adb66884 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_send.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_share.xml b/app/src/main/res/drawable/ic_vue_main_share.xml new file mode 100644 index 0000000000..e79b0a6b82 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_share.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_signpost.xml b/app/src/main/res/drawable/ic_vue_main_signpost.xml new file mode 100644 index 0000000000..d8803a7aa3 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_signpost.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_sport.xml b/app/src/main/res/drawable/ic_vue_main_sport.xml new file mode 100644 index 0000000000..d0dbde9153 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_sport.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_timer.xml b/app/src/main/res/drawable/ic_vue_main_timer.xml new file mode 100644 index 0000000000..e369d6f537 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_timer.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_main_trash.xml b/app/src/main/res/drawable/ic_vue_main_trash.xml new file mode 100644 index 0000000000..39f2d6aca8 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_trash.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_main_tree.xml b/app/src/main/res/drawable/ic_vue_main_tree.xml new file mode 100644 index 0000000000..4ce053718b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_main_tree.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_camera.xml b/app/src/main/res/drawable/ic_vue_media_camera.xml new file mode 100644 index 0000000000..db8265eb56 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_camera.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_film.xml b/app/src/main/res/drawable/ic_vue_media_film.xml new file mode 100644 index 0000000000..8c14880e81 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_film.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_film_play.xml b/app/src/main/res/drawable/ic_vue_media_film_play.xml new file mode 100644 index 0000000000..d853c1c262 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_film_play.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_image.xml b/app/src/main/res/drawable/ic_vue_media_image.xml new file mode 100644 index 0000000000..49937ef676 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_image.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_microphone.xml b/app/src/main/res/drawable/ic_vue_media_microphone.xml new file mode 100644 index 0000000000..7e108950fe --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_microphone.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_mountains.xml b/app/src/main/res/drawable/ic_vue_media_mountains.xml new file mode 100644 index 0000000000..8938a8fd7c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_mountains.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_music.xml b/app/src/main/res/drawable/ic_vue_media_music.xml new file mode 100644 index 0000000000..2ba5d89864 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_music.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_photocamera.xml b/app/src/main/res/drawable/ic_vue_media_photocamera.xml new file mode 100644 index 0000000000..fc51192124 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_photocamera.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_play.xml b/app/src/main/res/drawable/ic_vue_media_play.xml new file mode 100644 index 0000000000..a0fe455a35 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_play.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_scissors.xml b/app/src/main/res/drawable/ic_vue_media_scissors.xml new file mode 100644 index 0000000000..e844187da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_scissors.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_screenmirroring.xml b/app/src/main/res/drawable/ic_vue_media_screenmirroring.xml new file mode 100644 index 0000000000..4eeecda467 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_screenmirroring.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_setting.xml b/app/src/main/res/drawable/ic_vue_media_setting.xml new file mode 100644 index 0000000000..3b3cc0ddc0 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_setting.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_speaker.xml b/app/src/main/res/drawable/ic_vue_media_speaker.xml new file mode 100644 index 0000000000..971385848b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_speaker.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_subtitle.xml b/app/src/main/res/drawable/ic_vue_media_subtitle.xml new file mode 100644 index 0000000000..eaca75bf11 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_subtitle.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_media_voice.xml b/app/src/main/res/drawable/ic_vue_media_voice.xml new file mode 100644 index 0000000000..8ccad935d5 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_media_voice.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_device_msg.xml b/app/src/main/res/drawable/ic_vue_messages_device_msg.xml new file mode 100644 index 0000000000..305d79983d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_device_msg.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_direct.xml b/app/src/main/res/drawable/ic_vue_messages_direct.xml new file mode 100644 index 0000000000..22621435e9 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_direct.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_edit.xml b/app/src/main/res/drawable/ic_vue_messages_edit.xml new file mode 100644 index 0000000000..7267dce85d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_edit.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_letter.xml b/app/src/main/res/drawable/ic_vue_messages_letter.xml new file mode 100644 index 0000000000..9d1a3cf83c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_letter.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_msg.xml b/app/src/main/res/drawable/ic_vue_messages_msg.xml new file mode 100644 index 0000000000..a6d462f7f0 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_msg.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_msg_favorite.xml b/app/src/main/res/drawable/ic_vue_messages_msg_favorite.xml new file mode 100644 index 0000000000..fb4b86b155 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_msg_favorite.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_msg_notification.xml b/app/src/main/res/drawable/ic_vue_messages_msg_notification.xml new file mode 100644 index 0000000000..2ecc9eafaf --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_msg_notification.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_msg_search.xml b/app/src/main/res/drawable/ic_vue_messages_msg_search.xml new file mode 100644 index 0000000000..edcf911362 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_msg_search.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_msg_text.xml b/app/src/main/res/drawable/ic_vue_messages_msg_text.xml new file mode 100644 index 0000000000..67bee42fcf --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_msg_text.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_messages_msgs.xml b/app/src/main/res/drawable/ic_vue_messages_msgs.xml new file mode 100644 index 0000000000..ad80ef4026 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_messages_msgs.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_archive.xml b/app/src/main/res/drawable/ic_vue_money_archive.xml new file mode 100644 index 0000000000..a140d4e5e0 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_archive.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_bitcoin_refresh.xml b/app/src/main/res/drawable/ic_vue_money_bitcoin_refresh.xml new file mode 100644 index 0000000000..6ea5afd05d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_bitcoin_refresh.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_buy_bitcoin.xml b/app/src/main/res/drawable/ic_vue_money_buy_bitcoin.xml new file mode 100644 index 0000000000..4cf36d31c7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_buy_bitcoin.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_buy_crypto.xml b/app/src/main/res/drawable/ic_vue_money_buy_crypto.xml new file mode 100644 index 0000000000..ec9580734a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_buy_crypto.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_card.xml b/app/src/main/res/drawable/ic_vue_money_card.xml new file mode 100644 index 0000000000..50a367f9a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_card.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_card_bitcoin.xml b/app/src/main/res/drawable/ic_vue_money_card_bitcoin.xml new file mode 100644 index 0000000000..98d720602c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_card_bitcoin.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_card_coin.xml b/app/src/main/res/drawable/ic_vue_money_card_coin.xml new file mode 100644 index 0000000000..156e521ea9 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_card_coin.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_card_receive.xml b/app/src/main/res/drawable/ic_vue_money_card_receive.xml new file mode 100644 index 0000000000..75fdbe938c --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_card_receive.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_card_send.xml b/app/src/main/res/drawable/ic_vue_money_card_send.xml new file mode 100644 index 0000000000..4c3d467822 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_card_send.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_coins.xml b/app/src/main/res/drawable/ic_vue_money_coins.xml new file mode 100644 index 0000000000..28e6e7379a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_coins.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_discount.xml b/app/src/main/res/drawable/ic_vue_money_discount.xml new file mode 100644 index 0000000000..7845cd6d24 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_discount.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_dollar.xml b/app/src/main/res/drawable/ic_vue_money_dollar.xml new file mode 100644 index 0000000000..7fae0d67e4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_dollar.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_math.xml b/app/src/main/res/drawable/ic_vue_money_math.xml new file mode 100644 index 0000000000..f6c3fa6a94 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_math.xml @@ -0,0 +1,55 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_percentage.xml b/app/src/main/res/drawable/ic_vue_money_percentage.xml new file mode 100644 index 0000000000..b0999ccc93 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_percentage.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_receipt_discount.xml b/app/src/main/res/drawable/ic_vue_money_receipt_discount.xml new file mode 100644 index 0000000000..be393ef068 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_receipt_discount.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_receipt_empty.xml b/app/src/main/res/drawable/ic_vue_money_receipt_empty.xml new file mode 100644 index 0000000000..f5d55457d9 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_receipt_empty.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_receipt_items.xml b/app/src/main/res/drawable/ic_vue_money_receipt_items.xml new file mode 100644 index 0000000000..4ca0143cce --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_receipt_items.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_recive.xml b/app/src/main/res/drawable/ic_vue_money_recive.xml new file mode 100644 index 0000000000..36804ecb7f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_recive.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_security_card.xml b/app/src/main/res/drawable/ic_vue_money_security_card.xml new file mode 100644 index 0000000000..8f9fddd32d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_security_card.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_send.xml b/app/src/main/res/drawable/ic_vue_money_send.xml new file mode 100644 index 0000000000..07bcd2849b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_send.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_tag.xml b/app/src/main/res/drawable/ic_vue_money_tag.xml new file mode 100644 index 0000000000..4feddde863 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_tag.xml @@ -0,0 +1,19 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_ticket.xml b/app/src/main/res/drawable/ic_vue_money_ticket.xml new file mode 100644 index 0000000000..e0be1198b7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_ticket.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_ticket_discount.xml b/app/src/main/res/drawable/ic_vue_money_ticket_discount.xml new file mode 100644 index 0000000000..31cd986599 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_ticket_discount.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_ticket_star.xml b/app/src/main/res/drawable/ic_vue_money_ticket_star.xml new file mode 100644 index 0000000000..9cc5b57613 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_ticket_star.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_transfer.xml b/app/src/main/res/drawable/ic_vue_money_transfer.xml new file mode 100644 index 0000000000..be9b41cbd1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_transfer.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_wallet.xml b/app/src/main/res/drawable/ic_vue_money_wallet.xml new file mode 100644 index 0000000000..c975c1acc6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_wallet.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_wallet_cards.xml b/app/src/main/res/drawable/ic_vue_money_wallet_cards.xml new file mode 100644 index 0000000000..9bdd4cf71b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_wallet_cards.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_wallet_empty.xml b/app/src/main/res/drawable/ic_vue_money_wallet_empty.xml new file mode 100644 index 0000000000..e1901e27d4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_wallet_empty.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_money_wallet_money.xml b/app/src/main/res/drawable/ic_vue_money_wallet_money.xml new file mode 100644 index 0000000000..9e6dcf18b5 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_money_wallet_money.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_bluetooth.xml b/app/src/main/res/drawable/ic_vue_pc_bluetooth.xml new file mode 100644 index 0000000000..e996ccb6db --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_bluetooth.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_charging.xml b/app/src/main/res/drawable/ic_vue_pc_charging.xml new file mode 100644 index 0000000000..91f0bfa6b2 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_charging.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_cpu.xml b/app/src/main/res/drawable/ic_vue_pc_cpu.xml new file mode 100644 index 0000000000..ee2c61c556 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_cpu.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_game.xml b/app/src/main/res/drawable/ic_vue_pc_game.xml new file mode 100644 index 0000000000..023e9eb3fa --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_game.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_gameboy.xml b/app/src/main/res/drawable/ic_vue_pc_gameboy.xml new file mode 100644 index 0000000000..5079b13073 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_gameboy.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_headphone.xml b/app/src/main/res/drawable/ic_vue_pc_headphone.xml new file mode 100644 index 0000000000..14e4c315d4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_headphone.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_monitor.xml b/app/src/main/res/drawable/ic_vue_pc_monitor.xml new file mode 100644 index 0000000000..9d107f75ad --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_monitor.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_phone.xml b/app/src/main/res/drawable/ic_vue_pc_phone.xml new file mode 100644 index 0000000000..adf41c0353 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_phone.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_phone_call.xml b/app/src/main/res/drawable/ic_vue_pc_phone_call.xml new file mode 100644 index 0000000000..4d21c4e54d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_phone_call.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_printer.xml b/app/src/main/res/drawable/ic_vue_pc_printer.xml new file mode 100644 index 0000000000..a9c3676556 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_printer.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_setting.xml b/app/src/main/res/drawable/ic_vue_pc_setting.xml new file mode 100644 index 0000000000..dc33c3f93d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_setting.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_speaker.xml b/app/src/main/res/drawable/ic_vue_pc_speaker.xml new file mode 100644 index 0000000000..86d637c460 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_speaker.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_watch.xml b/app/src/main/res/drawable/ic_vue_pc_watch.xml new file mode 100644 index 0000000000..3ea71a183d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_watch.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_pc_wifi.xml b/app/src/main/res/drawable/ic_vue_pc_wifi.xml new file mode 100644 index 0000000000..5bf7c35419 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_pc_wifi.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_people_2persons.xml b/app/src/main/res/drawable/ic_vue_people_2persons.xml new file mode 100644 index 0000000000..1440c8df01 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_people_2persons.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_people_people.xml b/app/src/main/res/drawable/ic_vue_people_people.xml new file mode 100644 index 0000000000..47e49e90e7 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_people_people.xml @@ -0,0 +1,48 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_people_person.xml b/app/src/main/res/drawable/ic_vue_people_person.xml new file mode 100644 index 0000000000..bcd85734cd --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_people_person.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_people_person_search.xml b/app/src/main/res/drawable/ic_vue_people_person_search.xml new file mode 100644 index 0000000000..94b28fbe11 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_people_person_search.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_people_person_tag.xml b/app/src/main/res/drawable/ic_vue_people_person_tag.xml new file mode 100644 index 0000000000..2b50dc6ebf --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_people_person_tag.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_alarm.xml b/app/src/main/res/drawable/ic_vue_security_alarm.xml new file mode 100644 index 0000000000..e1a0f69d3a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_alarm.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_eye.xml b/app/src/main/res/drawable/ic_vue_security_eye.xml new file mode 100644 index 0000000000..35c6e5716e --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_eye.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_key.xml b/app/src/main/res/drawable/ic_vue_security_key.xml new file mode 100644 index 0000000000..2ef0eb68d6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_key.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_lock.xml b/app/src/main/res/drawable/ic_vue_security_lock.xml new file mode 100644 index 0000000000..d99a38d171 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_lock.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_password.xml b/app/src/main/res/drawable/ic_vue_security_password.xml new file mode 100644 index 0000000000..1d93b7ee5d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_password.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_radar.xml b/app/src/main/res/drawable/ic_vue_security_radar.xml new file mode 100644 index 0000000000..4140378806 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_radar.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_shield.xml b/app/src/main/res/drawable/ic_vue_security_shield.xml new file mode 100644 index 0000000000..b60a31511a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_shield.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_security_shield_person.xml b/app/src/main/res/drawable/ic_vue_security_shield_person.xml new file mode 100644 index 0000000000..1143640e56 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_shield_person.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_security_shield_security.xml b/app/src/main/res/drawable/ic_vue_security_shield_security.xml new file mode 100644 index 0000000000..36bb64e0a5 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_security_shield_security.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_shop_bag.xml b/app/src/main/res/drawable/ic_vue_shop_bag.xml new file mode 100644 index 0000000000..8f96cf3eed --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_shop_bag.xml @@ -0,0 +1,43 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_shop_bag1.xml b/app/src/main/res/drawable/ic_vue_shop_bag1.xml new file mode 100644 index 0000000000..38bba38f19 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_shop_bag1.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_shop_barcode.xml b/app/src/main/res/drawable/ic_vue_shop_barcode.xml new file mode 100644 index 0000000000..3fe1a48472 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_shop_barcode.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_shop_cart.xml b/app/src/main/res/drawable/ic_vue_shop_cart.xml new file mode 100644 index 0000000000..3b8486d6e6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_shop_cart.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_shop_shop.xml b/app/src/main/res/drawable/ic_vue_shop_shop.xml new file mode 100644 index 0000000000..0ef6b05cae --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_shop_shop.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_support_dislike.xml b/app/src/main/res/drawable/ic_vue_support_dislike.xml new file mode 100644 index 0000000000..02dffec5a1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_dislike.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_support_heart.xml b/app/src/main/res/drawable/ic_vue_support_heart.xml new file mode 100644 index 0000000000..b058962134 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_heart.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_support_like.xml b/app/src/main/res/drawable/ic_vue_support_like.xml new file mode 100644 index 0000000000..a7e1ecb5bf --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_like.xml @@ -0,0 +1,18 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_support_like_dislike.xml b/app/src/main/res/drawable/ic_vue_support_like_dislike.xml new file mode 100644 index 0000000000..77cf04c7f4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_like_dislike.xml @@ -0,0 +1,30 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_support_medal.xml b/app/src/main/res/drawable/ic_vue_support_medal.xml new file mode 100644 index 0000000000..41e7d8810a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_medal.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_support_smileys.xml b/app/src/main/res/drawable/ic_vue_support_smileys.xml new file mode 100644 index 0000000000..62b7861e4a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_smileys.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_support_star.xml b/app/src/main/res/drawable/ic_vue_support_star.xml new file mode 100644 index 0000000000..9f55e7de16 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_support_star.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_airplane.xml b/app/src/main/res/drawable/ic_vue_transport_airplane.xml new file mode 100644 index 0000000000..881506f63a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_airplane.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_bus.xml b/app/src/main/res/drawable/ic_vue_transport_bus.xml new file mode 100644 index 0000000000..19173fe62a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_bus.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_car.xml b/app/src/main/res/drawable/ic_vue_transport_car.xml new file mode 100644 index 0000000000..c6a6a7bcd6 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_car.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_car_wash.xml b/app/src/main/res/drawable/ic_vue_transport_car_wash.xml new file mode 100644 index 0000000000..22b3435888 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_car_wash.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_gas.xml b/app/src/main/res/drawable/ic_vue_transport_gas.xml new file mode 100644 index 0000000000..d39f08ad03 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_gas.xml @@ -0,0 +1,41 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_ship.xml b/app/src/main/res/drawable/ic_vue_transport_ship.xml new file mode 100644 index 0000000000..8c9b3a80be --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_ship.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_transport_train.xml b/app/src/main/res/drawable/ic_vue_transport_train.xml new file mode 100644 index 0000000000..3a381611f2 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_transport_train.xml @@ -0,0 +1,62 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_link.xml b/app/src/main/res/drawable/ic_vue_type_link.xml new file mode 100644 index 0000000000..9ff9212b89 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_link.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_link2.xml b/app/src/main/res/drawable/ic_vue_type_link2.xml new file mode 100644 index 0000000000..4c6790d1ce --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_link2.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_paperclip.xml b/app/src/main/res/drawable/ic_vue_type_paperclip.xml new file mode 100644 index 0000000000..24b353e812 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_paperclip.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_type_text.xml b/app/src/main/res/drawable/ic_vue_type_text.xml new file mode 100644 index 0000000000..4757c3aaac --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_text.xml @@ -0,0 +1,27 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_textalign_center.xml b/app/src/main/res/drawable/ic_vue_type_textalign_center.xml new file mode 100644 index 0000000000..1c9657cd19 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_textalign_center.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_textalign_justifycenter.xml b/app/src/main/res/drawable/ic_vue_type_textalign_justifycenter.xml new file mode 100644 index 0000000000..57b7ae63c1 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_textalign_justifycenter.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_textalign_left.xml b/app/src/main/res/drawable/ic_vue_type_textalign_left.xml new file mode 100644 index 0000000000..b33e70dd8e --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_textalign_left.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_textalign_right.xml b/app/src/main/res/drawable/ic_vue_type_textalign_right.xml new file mode 100644 index 0000000000..1e1aa0078f --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_textalign_right.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_type_translate.xml b/app/src/main/res/drawable/ic_vue_type_translate.xml new file mode 100644 index 0000000000..4f78638301 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_type_translate.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_cloud.xml b/app/src/main/res/drawable/ic_vue_weather_cloud.xml new file mode 100644 index 0000000000..d3dae4ed5e --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_cloud.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_cold.xml b/app/src/main/res/drawable/ic_vue_weather_cold.xml new file mode 100644 index 0000000000..389ff1dc78 --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_cold.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_drop.xml b/app/src/main/res/drawable/ic_vue_weather_drop.xml new file mode 100644 index 0000000000..9ffac7946b --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_drop.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_flash.xml b/app/src/main/res/drawable/ic_vue_weather_flash.xml new file mode 100644 index 0000000000..cb9e7c6abf --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_flash.xml @@ -0,0 +1,34 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_moon.xml b/app/src/main/res/drawable/ic_vue_weather_moon.xml new file mode 100644 index 0000000000..f68ef893ec --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_moon.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_sun.xml b/app/src/main/res/drawable/ic_vue_weather_sun.xml new file mode 100644 index 0000000000..419faf4e5a --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_sun.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/ic_vue_weather_wind.xml b/app/src/main/res/drawable/ic_vue_weather_wind.xml new file mode 100644 index 0000000000..eaeedfa13d --- /dev/null +++ b/app/src/main/res/drawable/ic_vue_weather_wind.xml @@ -0,0 +1,27 @@ + + + + + From ea3fef0fc80fe19e0e6040d8f6d0a2d0905b1011 Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Sat, 23 Apr 2022 16:02:43 +0200 Subject: [PATCH 5/9] Added strings in strings.xml --- .../ivy/wallet/ui/reports/FilterOverlay.kt | 41 +++--- .../com/ivy/wallet/ui/reports/ReportScreen.kt | 16 ++- .../com/ivy/wallet/ui/search/SearchScreen.kt | 8 +- .../ivy/wallet/ui/settings/SettingsScreen.kt | 87 ++++++------ .../ui/theme/components/BudgetBattery.kt | 5 +- .../ui/theme/components/BufferBattery.kt | 4 +- .../components/ChangeTransactionTypeModal.kt | 11 +- .../ui/theme/components/CurrencyPicker.kt | 7 +- .../components/CustomExchangeRateCard.kt | 3 +- .../ui/theme/components/IvyColorPicker.kt | 3 +- .../ui/theme/components/ReorderModal.kt | 5 +- .../wallet/ui/theme/modal/AddKeywordModal.kt | 6 +- .../ivy/wallet/ui/theme/modal/BudgetModal.kt | 13 +- .../ivy/wallet/ui/theme/modal/BufferModal.kt | 4 +- .../wallet/ui/theme/modal/ChooseIconModal.kt | 4 +- .../ui/theme/modal/ChoosePeriodModal.kt | 15 ++- .../modal/ChooseStartDateOfMonthModal.kt | 4 +- .../wallet/ui/theme/modal/CurrencyModal.kt | 4 +- .../ivy/wallet/ui/theme/modal/DeleteModal.kt | 3 +- .../ui/theme/modal/IvyModalComponents.kt | 11 +- .../ivy/wallet/ui/theme/modal/LoanModal.kt | 28 ++-- .../wallet/ui/theme/modal/LoanRecordModal.kt | 29 ++-- .../wallet/ui/theme/modal/MonthPickerModal.kt | 4 +- .../ivy/wallet/ui/theme/modal/NameModal.kt | 6 +- .../ui/theme/modal/RecurringRuleModal.kt | 11 +- .../ui/theme/modal/RequestFeatureModal.kt | 10 +- app/src/main/res/values/strings.xml | 124 +++++++++++++++++- 27 files changed, 314 insertions(+), 152 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt b/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt index 5d86efbeab..268463b3e8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/FilterOverlay.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.layout.layout +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -121,7 +122,7 @@ fun BoxWithConstraintsScope.FilterOverlay( modifier = Modifier.padding( start = 32.dp ), - text = "Filter", + text = stringResource(R.string.filter), style = UI.typo.h2.style( fontWeight = FontWeight.ExtraBold ) @@ -136,7 +137,7 @@ fun BoxWithConstraintsScope.FilterOverlay( onSetFilter(null) } .padding(all = 4.dp), //expand click area - text = "Clear filter", + text = stringResource(R.string.clean_filter), style = UI.typo.b2.style( fontWeight = FontWeight.Bold, color = Color.Gray @@ -233,7 +234,7 @@ fun BoxWithConstraintsScope.FilterOverlay( Spacer(Modifier.weight(1f)) IvyButton( - text = "Apply filter", + text = stringResource(R.string.apply_filter), iconStart = R.drawable.ic_filter_xs, backgroundGradient = GradientGreen, padding = 10.dp, @@ -336,7 +337,7 @@ private fun TypeFilter( onSetFilter: (ReportFilter) -> Unit ) { FilterTitleText( - text = "By Type", + text = stringResource(R.string.by_type), active = filter != null && filter.trnTypes.isNotEmpty(), inactiveColor = Red ) @@ -387,9 +388,9 @@ private fun TypeFilterCheckbox( IvyCheckboxWithText( modifier = modifier, text = when (trnType) { - TransactionType.INCOME -> "Incomes" - TransactionType.EXPENSE -> "Expenses" - TransactionType.TRANSFER -> "Account transfers" + TransactionType.INCOME -> stringResource(R.string.incomes) + TransactionType.EXPENSE -> stringResource(R.string.expenses) + TransactionType.TRANSFER -> stringResource(R.string.account_transfers) }, checked = filter != null && filter.trnTypes.contains(trnType), ) { checked -> @@ -418,7 +419,7 @@ private fun PeriodFilter( onShowPeriodChooserModal: () -> Unit ) { FilterTitleText( - text = "Time Period", + text = stringResource(R.string.time_period), active = filter?.period != null, inactiveColor = Red ) @@ -432,7 +433,7 @@ private fun PeriodFilter( iconStart = R.drawable.ic_calendar, text = filter?.period?.toDisplayLong(ivyWalletCtx().startDayOfMonth) ?.capitalizeLocal() - ?: "Select time range", + ?: stringResource(R.string.select_time_range), padding = 12.dp, ) { onShowPeriodChooserModal() @@ -447,7 +448,7 @@ private fun AccountsFilter( onSetFilter: (ReportFilter) -> Unit ) { ListFilterTitle( - text = "Accounts (${filter?.accounts?.size ?: 0})", + text = stringResource(R.string.accounts_number, filter?.accounts?.size ?: 0), active = filter != null && filter.accounts.isNotEmpty(), itemsSelected = filter?.accounts?.size ?: 0, onClearAll = { @@ -518,7 +519,7 @@ private fun CategoriesFilter( val selectedItemsCount = filter?.categories?.size ?: 0 ListFilterTitle( - text = "Categories ($selectedItemsCount)", + text = stringResource(R.string.categories_number, selectedItemsCount), active = filter != null && filter.categories.isNotEmpty(), itemsSelected = selectedItemsCount, onClearAll = { @@ -607,7 +608,7 @@ private fun ListFilterTitle( } } .padding(all = 4.dp), //expand click area - text = if (itemsSelected > 0) "Clear all" else "Select all", + text = if (itemsSelected > 0) stringResource(R.string.clear_all) else stringResource(R.string.select_all), style = UI.typo.b2.style( fontWeight = FontWeight.Bold, color = Color.Gray @@ -679,7 +680,7 @@ private fun AmountFilter( onShowMaxAmountModal: () -> Unit, ) { FilterTitleText( - text = "Amount (optional)", + text = stringResource(R.string.amount_optional), active = filter?.minAmount != null || filter?.maxAmount != null ) @@ -697,7 +698,7 @@ private fun AmountFilter( horizontalAlignment = Alignment.Start ) { Text( - text = "From", + text = stringResource(R.string.from), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold ) @@ -718,7 +719,7 @@ private fun AmountFilter( horizontalAlignment = Alignment.End ) { Text( - text = "To", + text = stringResource(R.string.to), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold ) @@ -743,7 +744,7 @@ private fun KeywordsFilter( onShowExcludeKeywordModal: () -> Unit, ) { FilterTitleText( - text = "Keywords (optional)", + text = stringResource(R.string.keywords_optional), active = filter != null && (filter.includeKeywords.isNotEmpty() || filter.excludeKeywords.isNotEmpty()) ) @@ -752,7 +753,7 @@ private fun KeywordsFilter( Text( modifier = Modifier.padding(start = 32.dp), - text = "INCLUDES", + text = stringResource(R.string.includes_uppercase), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold ) @@ -781,7 +782,7 @@ private fun KeywordsFilter( } } is AddKeywordButton -> { - AddKeywordButton(text = "Add a keyword") { + AddKeywordButton(text = stringResource(R.string.add_keyword)) { onShowIncludeKeywordModal() } } @@ -792,7 +793,7 @@ private fun KeywordsFilter( Text( modifier = Modifier.padding(start = 32.dp), - text = "EXCLUDES", + text = stringResource(R.string.excludes_uppercase), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold ) @@ -821,7 +822,7 @@ private fun KeywordsFilter( } } is AddKeywordButton -> { - AddKeywordButton(text = "Add a keyword") { + AddKeywordButton(text = stringResource(R.string.add_keyword)) { onShowExcludeKeywordModal() } } diff --git a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt index fcf69dfae1..cb66786a5a 100644 --- a/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/reports/ReportScreen.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -27,6 +28,7 @@ import com.ivy.wallet.R import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.data.entity.Account import com.ivy.wallet.domain.data.entity.Category +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.PieChartStatistic import com.ivy.wallet.ui.Report @@ -114,7 +116,7 @@ private fun BoxWithConstraintsScope.UI( modifier = Modifier.padding( start = 32.dp ), - text = "Reports", + text = stringResource(R.string.reports), style = UI.typo.h2.style( fontWeight = FontWeight.ExtraBold ) @@ -207,9 +209,9 @@ private fun BoxWithConstraintsScope.UI( onPayOrGet = { onEventHandler.invoke(ReportScreenEvent.OnPayOrGet(transaction = it)) }, - emptyStateTitle = "No transactions", + emptyStateTitle = stringRes(R.string.no_transactions), - emptyStateText = "You don't have any transactions for your filter." + emptyStateText = stringRes(R.string.no_transactions_for_your_filter) ) } else { item { @@ -263,7 +265,7 @@ private fun NoFilterEmptyState( Spacer(Modifier.height(8.dp)) Text( - text = "No Filter", + text = stringResource(R.string.no_filter), style = UI.typo.b1.style( color = Gray, fontWeight = FontWeight.ExtraBold @@ -274,7 +276,7 @@ private fun NoFilterEmptyState( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "To generate a report you must first set a valid filter.", + text = stringResource(R.string.invalid_filter_warning), style = UI.typo.b2.style( color = Gray, fontWeight = FontWeight.Medium, @@ -286,7 +288,7 @@ private fun NoFilterEmptyState( IvyButton( iconStart = R.drawable.ic_filter_xs, - text = "Set Filter" + text = stringResource(R.string.set_filter) ) { setFilterOverlayVisible(true) } @@ -311,7 +313,7 @@ private fun Toolbar( //Export CSV IvyOutlinedButton( - text = "Export", + text = stringResource(R.string.export), iconTint = Green, textColor = Green, solidBackground = true, diff --git a/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt b/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt index 9516f6fe3d..95c5c72f61 100644 --- a/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt +++ b/app/src/main/java/com/ivy/wallet/ui/search/SearchScreen.kt @@ -14,6 +14,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -25,6 +26,7 @@ import com.ivy.wallet.R import com.ivy.wallet.domain.data.TransactionHistoryItem import com.ivy.wallet.domain.data.entity.Account import com.ivy.wallet.domain.data.entity.Category +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.Search import com.ivy.wallet.ui.ivyWalletCtx @@ -123,8 +125,8 @@ private fun UI( history = transactions, onPayOrGet = { }, dateDividerMarginTop = 16.dp, - emptyStateTitle = "No transactions", - emptyStateText = "You don't have any transactions for \"${searchQueryTextFieldValue.text}\" query." + emptyStateTitle = stringRes(R.string.no_transactions), + emptyStateText = stringRes(R.string.no_transactions_for_query, searchQueryTextFieldValue.text) ) item { @@ -169,7 +171,7 @@ private fun SearchInput( .padding(vertical = 12.dp) .focusRequester(searchFocus), value = searchQueryTextFieldValue, - hint = "Search transactions", + hint = stringResource(R.string.search_transactions), onValueChanged = { onSetSearchQueryTextField(it) } 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 e54c8d0dbb..e9913a7942 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 @@ -16,6 +16,7 @@ import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -179,7 +180,7 @@ private fun BoxWithConstraintsScope.UI( Text( modifier = Modifier.padding(start = 32.dp), - text = "Settings", + text = stringResource(R.string.settings), style = UI.typo.h2.style( fontWeight = FontWeight.Black ) @@ -210,7 +211,7 @@ private fun BoxWithConstraintsScope.UI( } item { - SettingsSectionDivider(text = "Import & Export") + SettingsSectionDivider(text = stringResource(R.string.import_export)) Spacer(Modifier.height(16.dp)) @@ -223,7 +224,7 @@ private fun BoxWithConstraintsScope.UI( SettingsDefaultButton( icon = R.drawable.ic_export_csv, - text = "Backup Data", + text = stringResource(R.string.backup_data), ) { onBackupData() } @@ -232,7 +233,7 @@ private fun BoxWithConstraintsScope.UI( SettingsPrimaryButton( icon = R.drawable.ic_export_csv, - text = "Import Data", + text = stringResource(R.string.import_data), backgroundGradient = GradientGreen ) { nav.navigateTo( @@ -244,14 +245,14 @@ private fun BoxWithConstraintsScope.UI( } item { - SettingsSectionDivider(text = "App Settings") + SettingsSectionDivider(text = stringResource(R.string.app_settings)) Spacer(Modifier.height(16.dp)) AppSwitch( lockApp = lockApp, onSetLockApp = onSetLockApp, - text = "Lock app", + text = stringResource(R.string.lock_app), icon = R.drawable.ic_custom_fingerprint_m ) @@ -260,7 +261,7 @@ private fun BoxWithConstraintsScope.UI( AppSwitch( lockApp = showNotifications, onSetLockApp = onSetShowNotifications, - text = "Show notifications", + text = stringResource(R.string.show_notifications), icon = R.drawable.ic_notification_m ) @@ -269,8 +270,8 @@ private fun BoxWithConstraintsScope.UI( AppSwitch( lockApp = hideCurrentBalance, onSetLockApp = onSetHideCurrentBalance, - text = "Hide balance", - description = "Click on the hidden balance to show the balance for 5s", + text = stringResource(R.string.hide_balance), + description = stringResource(R.string.hide_balance_description), icon = R.drawable.ic_hide_m ) @@ -284,14 +285,14 @@ private fun BoxWithConstraintsScope.UI( } item { - SettingsSectionDivider(text = "Other") + SettingsSectionDivider(text = stringResource(R.string.other)) Spacer(Modifier.height(16.dp)) val ivyActivity = LocalContext.current as RootActivity SettingsPrimaryButton( icon = R.drawable.ic_custom_star_m, - text = "Rate us on Google Play", + text = stringResource(R.string.rate_us_on_google_play), backgroundGradient = GradientIvy ) { ivyActivity.reviewIvyWallet(dismissReviewCard = false) @@ -301,7 +302,7 @@ private fun BoxWithConstraintsScope.UI( SettingsPrimaryButton( icon = R.drawable.ic_custom_family_m, - text = "Share Ivy Wallet", + text = stringResource(R.string.share_ivy_wallet), backgroundGradient = Gradient.solid(Red3) ) { ivyActivity.shareIvyWallet() @@ -309,7 +310,7 @@ private fun BoxWithConstraintsScope.UI( } item { - SettingsSectionDivider(text = "Product") + SettingsSectionDivider(text = stringResource(R.string.product)) Spacer(Modifier.height(12.dp)) @@ -344,7 +345,7 @@ private fun BoxWithConstraintsScope.UI( item { SettingsSectionDivider( - text = "Danger zone", + text = stringResource(R.string.danger_zone), color = Red ) @@ -352,7 +353,7 @@ private fun BoxWithConstraintsScope.UI( SettingsPrimaryButton( icon = R.drawable.ic_delete, - text = "Delete all user data", + text = stringResource(R.string.delete_all_user_data), backgroundGradient = Gradient.solid(Red) ) { deleteAllDataModalVisible = true @@ -365,7 +366,7 @@ private fun BoxWithConstraintsScope.UI( } CurrencyModal( - title = "Set currency", + title = stringResource(R.string.set_currency), initialCurrency = IvyCurrency.fromCode(currencyCode), visible = currencyModalVisible, dismiss = { currencyModalVisible = false } @@ -398,8 +399,10 @@ private fun BoxWithConstraintsScope.UI( ) DeleteModal( - title = "Delete all user data?", - description = "WARNING! This action will delete all data for ${user?.email ?: "your account"} PERMANENTLY and you won't be able to recover it.", + title = stringResource(R.string.delete_all_user_data_question), + description = stringResource(R.string.delete_all_user_data_warning, user?.email ?: stringResource( + R.string.your_account) + ), visible = deleteAllDataModalVisible, dismiss = { deleteAllDataModalVisible = false }, onDelete = { @@ -409,8 +412,10 @@ private fun BoxWithConstraintsScope.UI( ) DeleteModal( - title = "Confirm permanent deletion for '${user?.email ?: "all of your data"}'", - description = "FINAL WARNING! After clicking \"Delete\" your data will be gone forever.", + title = stringResource(R.string.confirm_all_userd_data_deletion, user?.email ?: stringResource( + R.string.all_of_your_data) + ), + description = stringResource(R.string.final_deletion_warning), visible = deleteAllDataModalFinalVisible, dismiss = { deleteAllDataModalFinalVisible = false }, onDelete = { @@ -419,8 +424,8 @@ private fun BoxWithConstraintsScope.UI( ) ProgressModal( - title = "Exporting Data", - description = "Please wait, exporting data", + title = stringResource(R.string.exporting_data), + description = stringResource(R.string.exporting_data_description), visible = progressState ) } @@ -447,7 +452,7 @@ private fun StartDateOfMonth( Text( modifier = Modifier.padding(vertical = 20.dp), - text = "Start date of month", + text = stringResource(R.string.start_date_of_month), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Bold @@ -474,7 +479,7 @@ private fun IvyTelegram() { val rootActivity = rootActivity() SettingsPrimaryButton( icon = R.drawable.ic_telegram_24dp, - text = "Ivy Telegram", + text = stringResource(R.string.ivy_telegram), backgroundGradient = Gradient.solid(Blue), ) { rootActivity.openUrlInBrowser(Constants.URL_IVY_TELEGRAM_INVITE) @@ -486,7 +491,7 @@ private fun HelpCenter() { val nav = navigation() SettingsDefaultButton( icon = R.drawable.ic_custom_education_m, - text = "Help Center", + text = stringResource(R.string.help_center), ) { nav.navigateTo( IvyWebView(url = Constants.URL_HELP_CENTER) @@ -499,7 +504,7 @@ private fun Roadmap() { val nav = navigation() SettingsDefaultButton( icon = R.drawable.ic_custom_rocket_m, - text = "Roadmap", + text = stringResource(R.string.roadmap), ) { nav.navigateTo( IvyWebView(url = Constants.URL_ROADMAP) @@ -513,7 +518,7 @@ private fun RequestFeature( ) { SettingsDefaultButton( icon = R.drawable.ic_custom_programming_m, - text = "Request a feature", + text = stringResource(R.string.request_a_feature), ) { onClick() } @@ -524,7 +529,7 @@ private fun ContactSupport() { val ivyActivity = LocalContext.current as RootActivity SettingsDefaultButton( icon = R.drawable.ic_support, - text = "Contact support", + text = stringResource(R.string.contact_support), ) { ivyActivity.contactSupport() } @@ -535,7 +540,7 @@ private fun ProjectContributors() { val nav = navigation() SettingsDefaultButton( icon = R.drawable.ic_custom_people_m, - text = "Project Contributors", + text = stringResource(R.string.project_contributors), ) { nav.navigateTo( IvyWebView(url = URL_IVY_CONTRIBUTORS) @@ -631,7 +636,7 @@ private fun AccountCard( Spacer(Modifier.width(24.dp)) Text( - text = "ACCOUNT", + text = stringResource(R.string.account_uppercase), style = UI.typo.c.style( fontWeight = FontWeight.Black, color = UI.colors.gray @@ -643,14 +648,14 @@ private fun AccountCard( if (user != null) { AccountCardButton( icon = R.drawable.ic_logout, - text = "Logout" + text = stringResource(R.string.logout) ) { onLogout() } } else { AccountCardButton( icon = R.drawable.ic_login, - text = "Login" + text = stringResource(R.string.login) ) { onLogin() } @@ -755,7 +760,7 @@ private fun AccountCardUser( Spacer(Modifier.width(12.dp)) Text( - text = "Syncing...", + text = stringResource(R.string.syncing), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold, color = Orange @@ -781,7 +786,7 @@ private fun AccountCardUser( Spacer(Modifier.width(12.dp)) Text( - text = "Data synced to cloud", + text = stringResource(R.string.data_synced_to_cloud), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold, color = Green @@ -795,7 +800,7 @@ private fun AccountCardUser( IvyButton( modifier = Modifier.padding(horizontal = 24.dp), iconStart = R.drawable.ic_sync, - text = "Tap to sync", + text = stringResource(R.string.tap_to_sync), backgroundGradient = GradientRed ) { onSync() @@ -806,7 +811,7 @@ private fun AccountCardUser( IvyButton( modifier = Modifier.padding(horizontal = 24.dp), iconStart = R.drawable.ic_sync, - text = "Sync failed. Tap to sync", + text = stringResource(R.string.sync_failed), backgroundGradient = GradientRed ) { onSync() @@ -834,7 +839,7 @@ private fun AccountCardLocalAccount( Text( modifier = Modifier.testTag("local_account_name"), - text = if (name != null && name.isNotBlank()) name else "Anonymous", + text = if (name != null && name.isNotBlank()) name else stringResource(R.string.anonymous), style = UI.typo.b2.style( fontWeight = FontWeight.Bold ) @@ -867,7 +872,7 @@ private fun ExportCSV( ) { SettingsDefaultButton( icon = R.drawable.ic_export_csv, - text = "Export to CSV", + text = stringResource(R.string.export_to_csv), ) { onExportToCSV() } @@ -893,7 +898,7 @@ private fun TCAndPrivacyPolicy() { uriHandler.openUri(Constants.URL_TC) } .padding(vertical = 14.dp), - text = "Terms & Conditions", + text = stringResource(R.string.terms_conditions), style = UI.typo.c.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse, @@ -912,7 +917,7 @@ private fun TCAndPrivacyPolicy() { uriHandler.openUri(Constants.URL_PRIVACY_POLICY) } .padding(vertical = 14.dp), - text = "Privacy Policy", + text = stringResource(R.string.privacy_policy), style = UI.typo.c.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse, @@ -1046,7 +1051,7 @@ private fun CurrencyButton( Text( modifier = Modifier.padding(vertical = 20.dp), - text = "Set currency", + text = stringResource(R.string.set_currency), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.Bold diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt index 4ddee7cc19..c19ea00785 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/BudgetBattery.kt @@ -10,6 +10,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -106,9 +107,9 @@ fun BudgetBattery( Text( text = when { percentSpent <= 1 -> { - "Left to spend" + stringResource(R.string.left_to_spend) } - else -> "Budget exceeded by" + else -> stringResource(R.string.budget_exceeded_by) }, style = UI.typo.c.style( color = textColor, diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt index a9b97c7385..b1dec93850 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/BufferBattery.kt @@ -10,6 +10,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.drawBehind import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -96,7 +97,8 @@ fun BufferBattery( Column { Text( - text = if (bufferExceeded) "Buffer exceeded by" else "Left to spend", + text = if (bufferExceeded) stringResource(R.string.buffer_exceeded_by) else stringResource( + R.string.left_to_spend), style = UI.typo.c.style( color = textColor, fontWeight = FontWeight.ExtraBold diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt index 8a4cbd459c..8a68ae951e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ChangeTransactionTypeModal.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -30,7 +31,7 @@ import java.util.* @Composable fun BoxWithConstraintsScope.ChangeTransactionTypeModal( - title: String = "Set transaction type", + title: String = stringResource(R.string.set_transaction_type), visible: Boolean, includeTransferType: Boolean, initialType: TransactionType, @@ -164,9 +165,9 @@ private fun TransactionTypeButton( Text( text = when (transactionType) { - TransactionType.INCOME -> "Income" - TransactionType.EXPENSE -> "Expense" - TransactionType.TRANSFER -> "Transfer" + TransactionType.INCOME -> stringResource(R.string.income) + TransactionType.EXPENSE -> stringResource(R.string.expense) + TransactionType.TRANSFER -> stringResource(R.string.transfer) }, style = UI.typo.b1.style( color = textColor @@ -182,7 +183,7 @@ private fun TransactionTypeButton( ) Text( - text = "Selected", + text = stringResource(R.string.selected), style = UI.typo.b2.style( fontWeight = FontWeight.SemiBold, color = textSelectedColor diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt index dd0fb2b5f4..bd6f9b8ee9 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/CurrencyPicker.kt @@ -22,6 +22,7 @@ import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization @@ -148,7 +149,7 @@ private fun SearchInput( if (searchTextFieldValue.text.isEmpty()) { //Hint Text( - text = "Search (USD, EUR, GBP, BTC, etc)", + text = stringResource(R.string.search_currency), style = UI.typo.c.style( fontWeight = FontWeight.Bold ) @@ -234,7 +235,7 @@ private fun SelectedCurrencyCard( ) Text( - text = if (preselected) "Pre-selected" else "Selected", + text = if (preselected) stringResource(R.string.pre_selected) else stringResource(R.string.selected), style = UI.typo.b2.style( color = White, fontWeight = FontWeight.SemiBold @@ -265,7 +266,7 @@ private fun CurrencyList( var lastFirstLetter: String? = null for (currency in currencies) { - val firstLetter = if (currency.isCrypto) "Crypto" else currency.code.first().toString() + val firstLetter = if (currency.isCrypto) stringResource(R.string.crypto) else currency.code.first().toString() if (firstLetter != lastFirstLetter) { currenciesWithLetters.add( LetterDivider( diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt index e0d575bfee..3c6f1e53de 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/CustomExchangeRateCard.kt @@ -8,6 +8,7 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -22,7 +23,7 @@ import com.ivy.wallet.utils.format @Composable fun CustomExchangeRateCard( modifier: Modifier = Modifier, - title: String = "Exchange Rate", + title: String = stringResource(R.string.exchange_rate), fromCurrencyCode: String, toCurrencyCode: String, exchangeRate: Double, diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt index a9c74a1140..a66fb317c8 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/IvyColorPicker.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -63,7 +64,7 @@ fun ColumnScope.IvyColorPicker( ) { Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Choose color", + text = stringResource(R.string.choose_color), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt index 295f66a29d..3eb052a491 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/components/ReorderModal.kt @@ -14,6 +14,7 @@ import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.compose.ui.viewinterop.AndroidView @@ -40,7 +41,7 @@ fun BoxScope.ReorderModalSingleType( TitleContent: @Composable ColumnScope.() -> Unit = { Text( modifier = Modifier.padding(start = 32.dp), - text = "Reorder", + text = stringResource(R.string.reorder), style = UI.typo.b1.style( UI.colors.pureInverse, FontWeight.ExtraBold @@ -80,7 +81,7 @@ fun BoxScope.ReorderModal( TitleContent: @Composable ColumnScope.() -> Unit = { Text( modifier = Modifier.padding(start = 32.dp), - text = "Reorder", + text = stringResource(R.string.reorder), style = UI.typo.b1.style( UI.colors.pureInverse, FontWeight.ExtraBold diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt index 5400ff26a8..143d68a367 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/AddKeywordModal.kt @@ -9,11 +9,13 @@ import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.components.IvyTitleTextField import com.ivy.wallet.utils.onScreenStart @@ -45,7 +47,7 @@ fun BoxWithConstraintsScope.AddKeywordModal( Text( modifier = Modifier.padding(start = 32.dp), - text = "Add keyword", + text = stringResource(R.string.add_keyword), style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse @@ -66,7 +68,7 @@ fun BoxWithConstraintsScope.AddKeywordModal( .focusRequester(inputFocus), dividerModifier = Modifier.padding(horizontal = 24.dp), value = modalKeyword, - hint = "Keyword" + hint = stringResource(R.string.keyword) ) { modalKeyword = it } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt index 4beff2d26e..81b3daf04f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BudgetModal.kt @@ -14,6 +14,7 @@ import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization @@ -23,6 +24,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.domain.data.entity.Account import com.ivy.wallet.domain.data.entity.Budget import com.ivy.wallet.domain.data.entity.Category @@ -119,7 +121,8 @@ fun BoxWithConstraintsScope.BudgetModal( verticalAlignment = Alignment.CenterVertically ) { ModalTitle( - text = if (modal?.budget != null) "Edit budget" else "Create budget" + text = if (modal?.budget != null) stringResource(R.string.edit_budget) else stringResource( + R.string.create_budget) ) if (initialBudget != null) { @@ -137,7 +140,7 @@ fun BoxWithConstraintsScope.BudgetModal( Spacer(Modifier.height(24.dp)) ModalNameInput( - hint = "Budget name", + hint = stringResource(R.string.budget_name), autoFocusKeyboard = modal?.autoFocusKeyboard ?: true, textFieldValue = nameTextFieldValue, setTextFieldValue = { @@ -158,7 +161,7 @@ fun BoxWithConstraintsScope.BudgetModal( Spacer(Modifier.height(24.dp)) ModalAmountSection( - label = "BUDGET AMOUNT", + label = stringResource(R.string.budget_amount_uppercase), currency = modal?.baseCurrency ?: "", amount = amount, amountPaddingTop = 24.dp, @@ -183,8 +186,8 @@ fun BoxWithConstraintsScope.BudgetModal( DeleteModal( visible = deleteModalVisible, - title = "Confirm deletion", - description = "Are you sure that you want to delete \"${nameTextFieldValue.text}\" budget?", + title = stringResource(R.string.confirm_deletion), + description = stringResource(R.string.confirm_budget_deletion_warning, nameTextFieldValue.text), dismiss = { deleteModalVisible = false } ) { if (initialBudget != null) { diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt index 12957f3391..b25710676c 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/BufferModal.kt @@ -6,8 +6,10 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI +import com.ivy.wallet.R import com.ivy.wallet.ui.theme.components.BufferBattery import com.ivy.wallet.ui.theme.modal.edit.AmountModal import java.util.* @@ -56,7 +58,7 @@ fun BoxWithConstraintsScope.BufferModal( Spacer(Modifier.height(24.dp)) ModalAmountSection( - label = "Edit Savings goal", + label = stringResource(R.string.edit_savings_goal), currency = modal?.currency ?: "", amount = newBufferAmount ) { diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt index 90d168417a..df9544e299 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseIconModal.kt @@ -14,9 +14,11 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.Ivy import com.ivy.wallet.ui.theme.components.ItemIconS @@ -68,7 +70,7 @@ fun BoxWithConstraintsScope.ChooseIconModal( item { Spacer(Modifier.height(32.dp)) - ModalTitle(text = "Choose icon") + ModalTitle(text = stringResource(R.string.choose_icon)) Spacer(Modifier.height(32.dp)) } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt index 9ac357ba99..be9ba2e340 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChoosePeriodModal.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -136,7 +137,7 @@ private fun ChooseMonth( Text( modifier = Modifier .padding(start = 32.dp), - text = "Choose month", + text = stringResource(R.string.choose_month), style = UI.typo.b1.style( color = if (selectedMonthYear != null) UI.colors.pureInverse else Gray, fontWeight = FontWeight.ExtraBold @@ -260,7 +261,7 @@ private fun FromToRange( Text( modifier = Modifier .padding(start = 32.dp), - text = "or custom range", + text = stringResource(R.string.or_custom_range), style = UI.typo.b1.style( color = if (timeRange != null) UI.colors.pureInverse else Gray, fontWeight = FontWeight.ExtraBold @@ -349,7 +350,7 @@ private fun IntervalFromToDate( .padding( vertical = 16.dp, ), - text = if (border == IntervalBorder.FROM) "From" else "To", + text = if (border == IntervalBorder.FROM) stringResource(R.string.from) else stringResource(R.string.to), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold, color = if (dateTime != null) Green else UI.colors.pureInverse @@ -363,7 +364,7 @@ private fun IntervalFromToDate( } Text( - text = dateTime?.toLocalDate()?.formatDateOnlyWithYear() ?: "Add date", + text = dateTime?.toLocalDate()?.formatDateOnlyWithYear() ?: stringResource(R.string.add_date), style = UI.typo.nB2.style( fontWeight = FontWeight.Bold, color = if (dateTime != null) UI.colors.pureInverse else Gray @@ -414,7 +415,7 @@ private fun LastNPeriod( Text( modifier = Modifier .padding(start = 32.dp), - text = "or in the last", + text = stringResource(R.string.or_in_the_last), style = UI.typo.b1.style( color = if (lastNTimeRange != null) UI.colors.pureInverse else Gray, fontWeight = FontWeight.ExtraBold @@ -460,7 +461,7 @@ private fun AllTime( Text( modifier = Modifier .padding(start = 32.dp), - text = "or all time", + text = stringResource(R.string.or_all_time), style = UI.typo.b1.style( color = if (active) UI.colors.pureInverse else Gray, fontWeight = FontWeight.ExtraBold @@ -472,7 +473,7 @@ private fun AllTime( MonthButton( modifier = Modifier.padding(start = 32.dp), selected = active, - text = if (active) "Unselect All Time" else "Select All Time" + text = if (active) stringResource(R.string.unselect_all_time) else stringResource(R.string.select_all_time) ) { onSelected( if (active) { diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt index 7cd6caa11e..0f520f7d0f 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/ChooseStartDateOfMonthModal.kt @@ -10,12 +10,14 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.Ivy import com.ivy.wallet.ui.theme.White @@ -39,7 +41,7 @@ fun BoxWithConstraintsScope.ChooseStartDateOfMonthModal( ) { Spacer(Modifier.height(32.dp)) - ModalTitle(text = "Choose start date of month") + ModalTitle(text = stringResource(R.string.choose_start_date_of_month)) Spacer(Modifier.height(32.dp)) diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt index b74e356d4b..3bd894de98 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/CurrencyModal.kt @@ -6,11 +6,13 @@ import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.domain.data.IvyCurrency import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.Gray @@ -61,7 +63,7 @@ fun BoxWithConstraintsScope.CurrencyModal( Spacer(Modifier.weight(1f)) Text( - text = "supports crypto", + text = stringResource(R.string.supports_crypto), style = UI.typo.c.style( fontWeight = FontWeight.ExtraBold, color = Gray diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt index 44ad40ca25..2334dc47e3 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/DeleteModal.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI @@ -22,7 +23,7 @@ fun BoxWithConstraintsScope.DeleteModal( title: String, description: String, visible: Boolean, - buttonText: String = "Delete", + buttonText: String = stringResource(R.string.delete), iconStart: Int = R.drawable.ic_delete, dismiss: () -> Unit, onDelete: () -> Unit, diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt index 3df09fb20b..bca8ef7609 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/IvyModalComponents.kt @@ -7,6 +7,7 @@ import androidx.compose.material.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI @@ -55,7 +56,7 @@ fun ModalDynamicPrimaryAction( @Composable fun ModalSet( modifier: Modifier = Modifier, - label: String = "Set", + label: String = stringResource(R.string.set), enabled: Boolean = true, onClick: () -> Unit ) { @@ -110,7 +111,7 @@ fun ModalSave( ) { ModalPositiveButton( modifier = modifier, - text = "Save", + text = stringResource(R.string.save), iconStart = R.drawable.ic_save, enabled = enabled, onClick = onClick @@ -123,7 +124,7 @@ fun ModalAdd( onClick: () -> Unit ) { ModalPositiveButton( - text = "Add", + text = stringResource(R.string.add), iconStart = R.drawable.ic_plus, enabled = enabled, onClick = onClick @@ -136,7 +137,7 @@ fun ModalCreate( onClick: () -> Unit ) { ModalPositiveButton( - text = "Create", + text = stringResource(R.string.create), iconStart = R.drawable.ic_plus, enabled = enabled, onClick = onClick @@ -226,7 +227,7 @@ fun ModalTitle( @Composable fun ModalSkip( - text: String = "Skip", + text: String = stringResource(R.string.skip), onClick: () -> Unit ) { IvyOutlinedButton( diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt index 4dcafc784e..a682999de1 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanModal.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.text.style.TextAlign @@ -145,13 +146,13 @@ fun BoxWithConstraintsScope.LoanModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = if (modal?.loan != null) "Edit loan" else "New loan", + text = if (modal?.loan != null) stringResource(R.string.edit_loan) else stringResource(R.string.new_loan), ) Spacer(Modifier.height(24.dp)) IconNameRow( - hint = "Loan name", + hint = stringResource(R.string.loan_name), defaultIcon = R.drawable.ic_custom_loan_m, color = color, icon = icon, @@ -183,7 +184,7 @@ fun BoxWithConstraintsScope.LoanModal( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Associated Account", + text = stringResource(R.string.associated_account), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold @@ -215,7 +216,7 @@ fun BoxWithConstraintsScope.LoanModal( modifier = Modifier .padding(start = 16.dp) .align(Alignment.Start), - text = "Create a Main Transaction", + text = stringResource(R.string.create_main_transaction), checked = createLoanTrans ) { createLoanTrans = it @@ -224,7 +225,7 @@ fun BoxWithConstraintsScope.LoanModal( Spacer(modifier = Modifier.height(24.dp)) ModalAmountSection( - label = "ENTER LOAN AMOUNT", + label = stringResource(R.string.enter_loan_amount_uppercase), currency = currencyCode, amount = amount, amountPaddingTop = 40.dp, @@ -248,7 +249,7 @@ fun BoxWithConstraintsScope.LoanModal( } CurrencyModal( - title = "Choose currency", + title = stringResource(R.string.choose_currency), initialCurrency = IvyCurrency.fromCode(currencyCode), visible = currencyModalVisible, dismiss = { currencyModalVisible = false } @@ -276,10 +277,9 @@ fun BoxWithConstraintsScope.LoanModal( DeleteModal( visible = accountChangeModal, - title = "Confirm Account Change", - description = "Note: You are trying to change the account associated with the loan with an account of different currency, " + - "\nAll the loan records will be re-calculated based on today's exchanges rates ", - buttonText = "Confirm", + title = stringResource(R.string.confirm_account_change), + description = stringResource(R.string.confirm_account_change_warning), + buttonText = stringResource(R.string.confirm), iconStart = R.drawable.ic_agreed, dismiss = { selectedAcc = modal?.selectedAccount ?: selectedAcc @@ -433,7 +433,7 @@ private fun AddAccount( Text( modifier = Modifier.padding(vertical = 10.dp), - text = "Add account", + text = stringResource(R.string.add_account), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold @@ -453,7 +453,7 @@ private fun ColumnScope.LoanTypePicker( ) { Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Loan type", + text = stringResource(R.string.loan_type), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold @@ -473,7 +473,7 @@ private fun ColumnScope.LoanTypePicker( SelectorButton( selected = type == LoanType.BORROW, - label = "Borrow money" + label = stringResource(R.string.borrow_money) ) { onTypeSelected(LoanType.BORROW) } @@ -482,7 +482,7 @@ private fun ColumnScope.LoanTypePicker( SelectorButton( selected = type == LoanType.LEND, - label = "Lend money" + label = stringResource(R.string.lend_money) ) { onTypeSelected(LoanType.LEND) } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt index 5ba9bf7c3b..ade51e898e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/LoanRecordModal.kt @@ -13,6 +13,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.tooling.preview.Preview @@ -141,7 +142,8 @@ fun BoxWithConstraintsScope.LoanRecordModal( verticalAlignment = Alignment.CenterVertically ) { ModalTitle( - text = if (initialRecord != null) "Edit record" else "New record" + text = if (initialRecord != null) stringResource(R.string.edit_record) else stringResource( + R.string.new_record) ) if (initialRecord != null) { @@ -158,7 +160,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( Spacer(Modifier.height(24.dp)) ModalNameInput( - hint = "Note", + hint = stringResource(R.string.note), autoFocusKeyboard = false, textFieldValue = noteTextFieldValue, setTextFieldValue = { @@ -179,7 +181,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( Text( modifier = Modifier.padding(horizontal = 32.dp), - text = "Associated Account", + text = stringResource(R.string.associated_account), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold @@ -217,7 +219,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( modifier = Modifier .padding(start = 16.dp) .align(Alignment.Start), - text = "Create a Main Transaction", + text = stringResource(R.string.create_main_transaction), checked = createLoanRecordTrans ) { createLoanRecordTrans = it @@ -227,7 +229,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( modifier = Modifier .padding(start = 16.dp) .align(Alignment.Start), - text = "Mark as Interest", + text = stringResource(R.string.mark_as_interest), checked = loanInterest ) { loanInterest = it @@ -238,7 +240,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( modifier = Modifier .padding(start = 16.dp, end = 8.dp) .align(Alignment.Start), - text = "Recalculate Amount with today's Currency exchange Rates", + text = stringResource(R.string.recalculate_amount_with_today_exchange_rates), checked = reCalculate ) { reCalculate = it @@ -248,7 +250,7 @@ fun BoxWithConstraintsScope.LoanRecordModal( Spacer(modifier = Modifier.height(16.dp)) ModalAmountSection( - label = "ENTER RECORD AMOUNT", + label = stringResource(R.string.enter_record_amount_uppercase), currency = currencyCode, amount = amount, amountPaddingTop = 40.dp, @@ -273,8 +275,8 @@ fun BoxWithConstraintsScope.LoanRecordModal( DeleteModal( visible = deleteModalVisible, - title = "Confirm deletion", - description = "Are you sure that you want to delete \"${noteTextFieldValue.text}\" record?", + title = stringResource(R.string.confirm_deletion), + description = stringResource(R.string.record_deletion_warning, noteTextFieldValue.text), dismiss = { deleteModalVisible = false } ) { if (initialRecord != null) { @@ -296,10 +298,9 @@ fun BoxWithConstraintsScope.LoanRecordModal( DeleteModal( visible = accountChangeConformationModal, - title = "Confirm Account Change", - description = "Note: You are trying to change the account associated with the loan record with an account of different currency" + - "\nThe amount will be re-calculated based on today's exchanges rates ", - buttonText = "Confirm", + title = stringResource(R.string.confirm_account_change), + description = stringResource(R.string.account_change_warning), + buttonText = stringResource(R.string.confirm), iconStart = R.drawable.ic_agreed, dismiss = { selectedAcc = modal?.selectedAccount ?: selectedAcc @@ -540,7 +541,7 @@ private fun AddAccount( Text( modifier = Modifier.padding(vertical = 10.dp), - text = "Add account", + text = stringResource(R.string.add_account), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt index e65eb9f496..edaec94eba 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/MonthPickerModal.kt @@ -12,11 +12,13 @@ import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.Gradient import com.ivy.wallet.ui.theme.Ivy @@ -59,7 +61,7 @@ fun BoxWithConstraintsScope.MonthPickerModal( Spacer(Modifier.height(32.dp)) ModalTitle( - text = "Choose month" + text = stringResource(R.string.choose_month) ) Spacer(Modifier.height(24.dp)) diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt index abb4a71bf8..2f6cec0666 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/NameModal.kt @@ -7,11 +7,13 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.ivy.design.l0_system.UI import com.ivy.design.l0_system.style +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.components.IvyTitleTextField import com.ivy.wallet.utils.selectEndTextFieldValue @@ -42,7 +44,7 @@ fun BoxWithConstraintsScope.NameModal( Text( modifier = Modifier.padding(start = 32.dp), - text = "Edit name", + text = stringResource(R.string.edit_name), style = UI.typo.b1.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse @@ -55,7 +57,7 @@ fun BoxWithConstraintsScope.NameModal( modifier = Modifier.padding(horizontal = 32.dp), dividerModifier = Modifier.padding(horizontal = 24.dp), value = modalName, - hint = "What's your name?" + hint = stringResource(R.string.what_is_your_name) ) { modalName = it } diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt index 945320aaa7..70fca87e0e 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/RecurringRuleModal.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview @@ -94,7 +95,7 @@ fun BoxWithConstraintsScope.RecurringRuleModal( hideKeyboard(rootView) } - ModalTitle(text = "Plan for") + ModalTitle(text = stringResource(R.string.plan_for)) Spacer(Modifier.height(16.dp)) @@ -157,7 +158,7 @@ private fun TimesSelector( TimesSelectorButton( selected = oneTime, - label = "One time" + label = stringResource(R.string.one_time) ) { onSetOneTime(true) } @@ -166,7 +167,7 @@ private fun TimesSelector( TimesSelectorButton( selected = !oneTime, - label = "Multiple times" + label = stringResource(R.string.multiple_times) ) { onSetOneTime(false) } @@ -233,7 +234,7 @@ private fun MultipleTimes( Text( modifier = Modifier .padding(start = 32.dp), - text = "Starts on", + text = stringResource(R.string.starts_on), style = UI.typo.b2.style( color = UI.colors.pureInverse, fontWeight = FontWeight.ExtraBold @@ -257,7 +258,7 @@ private fun MultipleTimes( Text( modifier = Modifier .padding(start = 32.dp), - text = "Repeats every", + text = stringResource(R.string.repeats_every_text), style = UI.typo.b2.style( fontWeight = FontWeight.ExtraBold, color = UI.colors.pureInverse diff --git a/app/src/main/java/com/ivy/wallet/ui/theme/modal/RequestFeatureModal.kt b/app/src/main/java/com/ivy/wallet/ui/theme/modal/RequestFeatureModal.kt index cc63639fb0..89dbb3e125 100644 --- a/app/src/main/java/com/ivy/wallet/ui/theme/modal/RequestFeatureModal.kt +++ b/app/src/main/java/com/ivy/wallet/ui/theme/modal/RequestFeatureModal.kt @@ -5,12 +5,14 @@ import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.runtime.* import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.TextRange import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.ivy.wallet.R import com.ivy.wallet.ui.IvyWalletPreview import com.ivy.wallet.ui.theme.Gray import com.ivy.wallet.ui.theme.components.IvyDescriptionTextField @@ -39,7 +41,7 @@ fun BoxWithConstraintsScope.RequestFeatureModal( dismiss = dismiss, PrimaryAction = { ModalSet( - label = "Submit", + label = stringResource(R.string.submit), enabled = title.text.isNotBlank() ) { onSubmit( @@ -52,12 +54,12 @@ fun BoxWithConstraintsScope.RequestFeatureModal( ) { Spacer(Modifier.height(32.dp)) - ModalTitle(text = "Request a feature") + ModalTitle(text = stringResource(R.string.request_a_feature)) Spacer(Modifier.height(24.dp)) ModalNameInput( - hint = "What do you need?", + hint = stringResource(R.string.what_do_you_need), autoFocusKeyboard = true, textFieldValue = title, setTextFieldValue = { @@ -87,7 +89,7 @@ fun BoxWithConstraintsScope.RequestFeatureModal( ) } ), - hint = "Explain it in one sentence. (supports markdown)", + hint = stringResource(R.string.explain_it_in_one_sentence), hintColor = Gray, value = body, ) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8581452c20..89026caa8f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,7 +69,7 @@ %1$d rows from CSV file not recognized Finish Add description - Description + Description Planned for Add money to Pay with @@ -212,5 +212,125 @@ Category name Choose category Enter any details here (supports Markdown) - + Clear filter + Filter + Apply filter + By Type + Incomes + Time Period + Select time range + Accounts (%1$d) + Categories (%1$d) + Clear all + Select all + Amount (optional) + Keywords (optional) + INCLUDES + Add a keyword + EXCLUDES + You don\'t have any transactions for your filter. + No Filter + To generate a report you must first set a valid filter. + Set Filter + Export + You don\'t have any transactions for "%1$s" query. + + Backup Data + Import Data + App Settings + Lock app + Show notifications + Hide balance + Click on the hidden balance to show the balance for 5s + Other + Rate us on Google Play + Share Ivy Wallet + Product + Danger zone + Delete all user data + Delete all user data? + WARNING! This action will delete all data for %1$s PERMANENTLY and you won\'t be able to recover it. + your account + Confirm permanent deletion for \'%1$s\' + all of your data + FINAL WARNING! After clicking "Delete" your data will be gone forever. + Exporting Data + Please wait, exporting data + Start date of month + Ivy Telegram + Help Center + Roadmap + Request a feature + Contact support + Project Contributors + ACCOUNT + Logout + Login + Syncing… + Data synced to cloud + Tap to sync + Sync failed. Tap to sync + Anonymous + Export to CSV + Left to spend + Budget exceeded by + Buffer exceeded by + Set transaction type + Transfer + Selected + Search (USD, EUR, GBP, BTC, etc) + Pre-selected + Crypto + Exch + ange Rate + Choose color + Reorder + Keyword + Edit budget + Create budget + Budget name + BUDGET AMOUNT + Are you sure that you want to delete "%1$s" budget? + Edit Savings goal + Choose icon + Choose month + or custom range + Add date + or in the last + or all time + Unselect All Time + Select All Time + Choose start date of month + supports crypto + Delete + Save + Add + Create + Edit loan + New loan + Loan name + Associated Account + Create a Main Transaction + ENTER LOAN AMOUNT + "Note: You are trying to change the account associated with the loan with an account of different currency, \nAll the loan records will be re-calculated based on today's exchanges rates " + Loan type + Borrow money + Lend money + Edit record + New record + Note + Mark as Interest + Recalculate Amount with today\'s Currency exchange Rates + ENTER RECORD AMOUNT + Are you sure that you want to delete "%1$s" record? + "Note: You are trying to change the account associated with the loan record with an account of different currency\nThe amount will be re-calculated based on today's exchanges rates " + Edit name + Plan for + One time + Multiple times + Starts on + Repeats every + Submit + What do you need? + Explain it in one sentence. (supports markdown) From 3dcbb0279917d92e1cee4e6afbaa7a5fd8bb290e Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Sat, 23 Apr 2022 16:05:30 +0200 Subject: [PATCH 6/9] Added strings in strings.xml --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 89026caa8f..19a14e5bb9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,7 +69,7 @@ %1$d rows from CSV file not recognized Finish Add description - Description + Description Planned for Add money to Pay with From 7e09e633622156bfd944d79977ac227503eda80a Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Sat, 23 Apr 2022 16:34:19 +0200 Subject: [PATCH 7/9] Fixed typo --- app/src/main/res/values/strings.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 19a14e5bb9..551907488a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -281,8 +281,7 @@ Search (USD, EUR, GBP, BTC, etc) Pre-selected Crypto - Exch - ange Rate + Exchange Rate Choose color Reorder Keyword From f2c79863adc2a039e95cdc52758d76825485bed3 Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Sat, 23 Apr 2022 20:59:05 +0200 Subject: [PATCH 8/9] Added strings in strings.xml --- .../wallet/domain/fp/charts/ChartPeriod.kt | 10 ++- .../domain/logic/CustomerJourneyLogic.kt | 85 ++++++++----------- .../wallet/domain/logic/PreloadDataLogic.kt | 62 +++++++------- .../wallet/domain/logic/WalletAccountLogic.kt | 4 +- .../loantrasactions/LoanTransactionsCore.kt | 4 +- .../notification/TransactionReminderWorker.kt | 8 +- .../java/com/ivy/wallet/ui/RootActivity.kt | 5 +- .../java/com/ivy/wallet/ui/RootViewModel.kt | 6 +- .../main/java/com/ivy/wallet/utils/DateExt.kt | 22 ++--- app/src/main/res/values/strings.xml | 68 ++++++++++++++- 10 files changed, 169 insertions(+), 105 deletions(-) diff --git a/app/src/main/java/com/ivy/wallet/domain/fp/charts/ChartPeriod.kt b/app/src/main/java/com/ivy/wallet/domain/fp/charts/ChartPeriod.kt index 167d7393de..60019d8211 100644 --- a/app/src/main/java/com/ivy/wallet/domain/fp/charts/ChartPeriod.kt +++ b/app/src/main/java/com/ivy/wallet/domain/fp/charts/ChartPeriod.kt @@ -1,6 +1,8 @@ package com.ivy.wallet.domain.fp.charts +import com.ivy.wallet.R import com.ivy.wallet.domain.fp.data.ClosedTimeRange +import com.ivy.wallet.stringRes import com.ivy.wallet.utils.dateNowUTC import com.ivy.wallet.utils.endOfDayNowUTC import com.ivy.wallet.utils.endOfMonth @@ -15,10 +17,10 @@ enum class ChartPeriod { fun display(): String { return when (this) { - LAST_12_MONTHS -> "Last 12 months" - LAST_6_MONTHS -> "Last 6 months" - LAST_4_WEEKS -> "Last 4 weeks" - LAST_7_DAYS -> "Last 7 days" + LAST_12_MONTHS -> stringRes(R.string.last_12_months) + LAST_6_MONTHS -> stringRes(R.string.last_6_months) + LAST_4_WEEKS -> stringRes(R.string.last_4_weeks) + LAST_7_DAYS -> stringRes(R.string.last_7_days) } } diff --git a/app/src/main/java/com/ivy/wallet/domain/logic/CustomerJourneyLogic.kt b/app/src/main/java/com/ivy/wallet/domain/logic/CustomerJourneyLogic.kt index 695e2c9a7d..ccad0b54a4 100644 --- a/app/src/main/java/com/ivy/wallet/domain/logic/CustomerJourneyLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/logic/CustomerJourneyLogic.kt @@ -9,6 +9,7 @@ import com.ivy.wallet.domain.logic.model.CustomerJourneyCardData import com.ivy.wallet.io.persistence.SharedPrefs 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.home.CustomerJourneyCard import com.ivy.wallet.ui.main.MainTab @@ -66,9 +67,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount == 0L }, - title = "Adjust your initial balance", - description = "Let's get started. Go to \"Accounts\" -> Tap an account -> Tap its balance -> Enter current balance. That's it!", - cta = "To accounts", + title = stringRes(R.string.adjust_initial_balance), + description = stringRes(R.string.adjust_initial_balance_description), + cta = stringRes(R.string.to_accounts), ctaIcon = R.drawable.ic_custom_account_s, backgroundColor = Ivy, hasDismiss = false, @@ -82,10 +83,9 @@ class CustomerJourneyLogic( condition = { trnCount, plannedPaymentCount, _ -> trnCount >= 1 && plannedPaymentCount == 0L }, - title = "Create your first planned payment", - description = "Automate the tracking of recurring transactions like your subscriptions, rent, salary, etc." + - " Stay ahead of your finances by knowing how much you have to pay/get in advance.", - cta = "Add planned payment", + title = stringRes(R.string.create_first_planned_payment), + description = stringRes(R.string.create_first_planned_payment_description), + cta = stringRes(R.string.add_planned_payment), ctaIcon = R.drawable.ic_planned_payments, backgroundColor = Orange, hasDismiss = true, @@ -104,10 +104,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 3 }, - title = "Did you know?", - description = "Ivy Wallet has a cool widget that lets you add INCOME/EXPENSES/TRANSFER transactions with 1-click from your home " + - "\n\nNote: If the \"Add widget\" button doesn't work, please add it manually from your launcher's widgets menu.", - cta = "Add widget", + title = stringRes(R.string.did_you_know), + description = stringRes(R.string.widget_description), + cta = stringRes(R.string.add_widget), ctaIcon = R.drawable.ic_custom_atom_s, backgroundColor = GreenLight, hasDismiss = true, @@ -121,11 +120,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 5 }, - title = "Set a budget", - description = "Ivy Wallet not only helps you to passively track your expenses" + - " but also proactively create your financial future by setting budgets" + - " and sticking to them.", - cta = "Add budget", + title = stringRes(R.string.set_a_budget), + description = stringRes(R.string.set_a_budget_description), + cta = stringRes(R.string.add_budget), ctaIcon = R.drawable.ic_budget_xs, backgroundColor = Green2, hasDismiss = true, @@ -139,9 +136,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 7 }, - title = "Did you know?", - description = "You can see your expenses structure by categories! Try it, tap the gray/black \"Expenses\" button just below your balance.", - cta = "Expenses PieChart", + title = stringRes(R.string.did_you_know), + description = stringRes(R.string.expenses_piechart_description), + cta = stringRes(R.string.expenses_piechart), ctaIcon = R.drawable.ic_custom_bills_s, backgroundColor = Red, hasDismiss = true, @@ -155,11 +152,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 10 }, - title = "Review Ivy Wallet", - description = "Give us your feedback! Help Ivy Wallet become better and grow by writing us a review." + - " Compliments, ideas, and critics are all welcome!" + - " We do our best.\n\nCheers,\nIvy Team", - cta = "Rate us on Google Play", + title = stringRes(R.string.review_ivy_wallet), + 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, hasDismiss = true, @@ -173,10 +168,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 14 }, - title = "Share Ivy Wallet", - description = "Help us grow so we can invest more in development and make the app better for you." + - " By sharing Ivy Wallet you'll make two developers happy and also help a friend to take control of their finances.", - cta = "Share with friends", + title = stringRes(R.string.share_ivy_wallet), + description = stringRes(R.string.help_us_grow), + cta = stringRes(R.string.share_with_friends), ctaIcon = R.drawable.ic_custom_family_s, backgroundColor = Red3, hasDismiss = true, @@ -207,11 +201,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 18 }, - title = "Did you know?", - description = "You can generate reports to get deep insights about your income and spending." + - " Filter your transactions by type, time period, category, accounts, amount, keywords and more" + - " to gain better view on your finances.", - cta = "Make a report", + title = stringRes(R.string.did_you_know), + description = stringRes(R.string.make_a_report_description), + cta = stringRes(R.string.make_a_report), ctaIcon = R.drawable.ic_statistics_xs, backgroundColor = Green2, hasDismiss = true, @@ -225,12 +217,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 22 }, - title = "Review Ivy Wallet", - description = "Want to make Ivy Wallet better? Write us a review." + - " That's the only way for us to develop what you want and need." + - " Also it help us rank higher in the PlayStore so we can spend money on the product rather than marketing." + - "\n\nWe do our best.\nIvy Team", - cta = "Rate us on Google Play", + title = stringRes(R.string.review_ivy_wallet), + 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, hasDismiss = true, @@ -244,13 +233,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 24 }, - title = "We need your help!", - description = "We're just a designer and a developer" + - " working on the app after our 9-5 jobs. Currently, we invest a lot of time and money" + - " to generate only losses and exhaustion." + - " If you want us to keep developing Ivy Wallet please share it with friends and family." + - "\n\nP.S. Google PlayStore reviews also helps a lot!", - cta = "Share Ivy Wallet", + title = stringRes(R.string.we_need_your_help), + 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, hasDismiss = true, @@ -264,11 +249,9 @@ class CustomerJourneyLogic( condition = { trnCount, _, _ -> trnCount >= 28 }, - title = "Ivy Wallet is open-source!", - description = "Ivy Wallet's code is open and everyone can see it." + - " We believe that transparency and ethics are must for every software product." + - " If you like our work and want to make the app better you can contribute in our public Github repository.", - cta = "Contribute", + title = stringRes(R.string.ivy_wallet_is_opensource), + description = stringRes(R.string.ivy_wallet_is_opensource_description), + cta = stringRes(R.string.contribute), ctaIcon = R.drawable.github_logo, backgroundColor = Blue3, hasDismiss = true, diff --git a/app/src/main/java/com/ivy/wallet/domain/logic/PreloadDataLogic.kt b/app/src/main/java/com/ivy/wallet/domain/logic/PreloadDataLogic.kt index 73d328f5fe..06b7ac2620 100644 --- a/app/src/main/java/com/ivy/wallet/domain/logic/PreloadDataLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/logic/PreloadDataLogic.kt @@ -1,12 +1,14 @@ package com.ivy.wallet.domain.logic import androidx.compose.ui.graphics.toArgb +import com.ivy.wallet.R import com.ivy.wallet.domain.data.entity.Account import com.ivy.wallet.domain.data.entity.Category import com.ivy.wallet.domain.logic.model.CreateAccountData import com.ivy.wallet.domain.logic.model.CreateCategoryData import com.ivy.wallet.io.persistence.dao.AccountDao import com.ivy.wallet.io.persistence.dao.CategoryDao +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.onboarding.model.AccountBalance import com.ivy.wallet.ui.theme.* @@ -24,7 +26,7 @@ class PreloadDataLogic( fun preloadAccounts() { val cash = Account( - name = "Cash", + name = stringRes(R.string.cash), currency = null, color = Green.toArgb(), icon = "cash", @@ -33,7 +35,7 @@ class PreloadDataLogic( ) val bank = Account( - name = "Bank", + name = stringRes(R.string.bank), currency = null, color = IvyDark.toArgb(), icon = "bank", @@ -47,21 +49,21 @@ class PreloadDataLogic( fun accountSuggestions(baseCurrency: String): List = listOf( CreateAccountData( - name = "Cash", + name = stringRes(R.string.cash), currency = baseCurrency, color = Green, icon = "cash", balance = 0.0 ), CreateAccountData( - name = "Bank", + name = stringRes(R.string.bank), currency = baseCurrency, color = IvyDark, icon = "bank", balance = 0.0 ), CreateAccountData( - name = "Revolut", + name = stringRes(R.string.revoult), currency = baseCurrency, color = Blue, icon = "revolut", @@ -81,61 +83,61 @@ class PreloadDataLogic( private fun preloadCategoriesCreateData() = listOf( CreateCategoryData( - name = "Food & Drinks", + name = stringRes(R.string.food_drinks), color = Green, icon = "fooddrink" ), CreateCategoryData( - name = "Bills & Fees", + name = stringRes(R.string.bills_fees), color = Red, icon = "bills" ), CreateCategoryData( - name = "Transport", + name = stringRes(R.string.transport), color = YellowLight, icon = "transport" ), CreateCategoryData( - name = "Groceries", + name = stringRes(R.string.groceries), color = GreenLight, icon = "groceries" ), CreateCategoryData( - name = "Entertainment", + name = stringRes(R.string.entertainment), color = Orange, icon = "game" ), CreateCategoryData( - name = "Shopping", + name = stringRes(R.string.shopping), color = Ivy, icon = "shopping" ), CreateCategoryData( - name = "Gifts", + name = stringRes(R.string.gifts), color = RedLight, icon = "gift" ), CreateCategoryData( - name = "Health", + name = stringRes(R.string.health), color = IvyLight, icon = "health" ), CreateCategoryData( - name = "Investments", + name = stringRes(R.string.investments), color = IvyDark, icon = "leaf" ), CreateCategoryData( - name = "Loans", + name = stringRes(R.string.loans), color = BlueDark, icon = "loan" ), @@ -159,91 +161,91 @@ class PreloadDataLogic( .plus( listOf( CreateCategoryData( - name = "Car", + name = stringRes(R.string.car), color = Blue3, icon = "vehicle" ), CreateCategoryData( - name = "Work", + name = stringRes(R.string.work), color = Blue2Light, icon = "work" ), CreateCategoryData( - name = "Home", + name = stringRes(R.string.home), color = Green2, icon = "house" ), CreateCategoryData( - name = "Restaurant", + name = stringRes(R.string.restaurant), color = Orange3, icon = "restaurant" ), CreateCategoryData( - name = "Family", + name = stringRes(R.string.family), color = Red3Light, icon = "family" ), CreateCategoryData( - name = "Social Life", + name = stringRes(R.string.social_life), color = Blue2, icon = "people" ), CreateCategoryData( - name = "Order food", + name = stringRes(R.string.order_food), color = Orange2, icon = "orderfood2" ), CreateCategoryData( - name = "Travel", + name = stringRes(R.string.travel), color = BlueLight, icon = "travel" ), CreateCategoryData( - name = "Fitness", + name = stringRes(R.string.fitness), color = Purple2, icon = "fitness" ), CreateCategoryData( - name = "Self-development", + name = stringRes(R.string.self_development), color = Yellow, icon = "selfdevelopment" ), CreateCategoryData( - name = "Clothes", + name = stringRes(R.string.clothes), color = Green2Light, icon = "clothes2" ), CreateCategoryData( - name = "Beauty", + name = stringRes(R.string.beauty), color = Red3, icon = "makeup" ), CreateCategoryData( - name = "Education", + name = stringRes(R.string.education), color = Blue, icon = "education" ), CreateCategoryData( - name = "Pet", + name = stringRes(R.string.pet), color = Orange3Light, icon = "pet" ), CreateCategoryData( - name = "Sports", + name = stringRes(R.string.sports), color = Purple1, icon = "sports" ), diff --git a/app/src/main/java/com/ivy/wallet/domain/logic/WalletAccountLogic.kt b/app/src/main/java/com/ivy/wallet/domain/logic/WalletAccountLogic.kt index 0fa61b151a..493cedf7b2 100644 --- a/app/src/main/java/com/ivy/wallet/domain/logic/WalletAccountLogic.kt +++ b/app/src/main/java/com/ivy/wallet/domain/logic/WalletAccountLogic.kt @@ -1,5 +1,6 @@ package com.ivy.wallet.domain.logic +import com.ivy.wallet.R import com.ivy.wallet.domain.data.TransactionHistoryItem import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.data.entity.Account @@ -8,6 +9,7 @@ import com.ivy.wallet.domain.logic.currency.ExchangeRatesLogic import com.ivy.wallet.io.persistence.dao.AccountDao import com.ivy.wallet.io.persistence.dao.SettingsDao import com.ivy.wallet.io.persistence.dao.TransactionDao +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.onboarding.model.FromToTimeRange import com.ivy.wallet.ui.onboarding.model.filterOverdue import com.ivy.wallet.ui.onboarding.model.filterUpcoming @@ -29,7 +31,7 @@ class WalletAccountLogic( actualBalance: Double = calculateAccountBalance(account), newBalance: Double, - adjustTransactionTitle: String = "Adjust balance", + adjustTransactionTitle: String = stringRes(R.string.adjust_balance), isFiat: Boolean? = null, trnIsSyncedFlag: Boolean = false, //TODO: Remove this once Bank Integration trn sync is properly implemented diff --git a/app/src/main/java/com/ivy/wallet/domain/logic/loantrasactions/LoanTransactionsCore.kt b/app/src/main/java/com/ivy/wallet/domain/logic/loantrasactions/LoanTransactionsCore.kt index 317573060c..4d0b3e2caa 100644 --- a/app/src/main/java/com/ivy/wallet/domain/logic/loantrasactions/LoanTransactionsCore.kt +++ b/app/src/main/java/com/ivy/wallet/domain/logic/loantrasactions/LoanTransactionsCore.kt @@ -1,12 +1,14 @@ package com.ivy.wallet.domain.logic.loantrasactions import androidx.compose.ui.graphics.toArgb +import com.ivy.wallet.R import com.ivy.wallet.domain.data.LoanType import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.data.entity.* import com.ivy.wallet.domain.logic.currency.ExchangeRatesLogic import com.ivy.wallet.domain.sync.uploader.TransactionUploader import com.ivy.wallet.io.persistence.dao.* +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.IvyWalletCtx import com.ivy.wallet.ui.theme.components.IVY_COLOR_PICKER_COLORS_FREE import com.ivy.wallet.utils.computationThread @@ -192,7 +194,7 @@ class LoanTransactionsCore( } ?: if (ivyContext.isPremium || categoryList.size < 12) { addCategoryToDb = true Category( - "Loans", + stringRes(R.string.loans), color = IVY_COLOR_PICKER_COLORS_FREE[4].toArgb(), icon = "loan" ) diff --git a/app/src/main/java/com/ivy/wallet/domain/logic/notification/TransactionReminderWorker.kt b/app/src/main/java/com/ivy/wallet/domain/logic/notification/TransactionReminderWorker.kt index 46e1e0f823..71964bbf66 100644 --- a/app/src/main/java/com/ivy/wallet/domain/logic/notification/TransactionReminderWorker.kt +++ b/app/src/main/java/com/ivy/wallet/domain/logic/notification/TransactionReminderWorker.kt @@ -6,10 +6,12 @@ import androidx.core.app.NotificationCompat import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker import androidx.work.WorkerParameters +import com.ivy.wallet.R import com.ivy.wallet.android.notification.IvyNotificationChannel import com.ivy.wallet.android.notification.NotificationService import com.ivy.wallet.io.persistence.SharedPrefs import com.ivy.wallet.io.persistence.dao.TransactionDao +import com.ivy.wallet.stringRes import com.ivy.wallet.ui.RootActivity import com.ivy.wallet.utils.atEndOfDay import com.ivy.wallet.utils.dateNowUTC @@ -68,9 +70,9 @@ class TransactionReminderWorker @AssistedInject constructor( private fun randomText(): String = listOf( - "Have you made any transactions today? \uD83C\uDFC1", - "Did you track your expenses today? \uD83D\uDCB8", - "Have you recorded your transactions today? \uD83C\uDFC1", + stringRes(R.string.notification_1), + stringRes(R.string.notification_2), + stringRes(R.string.notification_3), ).shuffled().first() private fun fetchShowNotifications(): Boolean = 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 71134d91ab..0b0a0f927d 100644 --- a/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt +++ b/app/src/main/java/com/ivy/wallet/ui/RootActivity.kt @@ -45,6 +45,7 @@ import com.ivy.design.navigation.Navigation import com.ivy.design.navigation.Screen import com.ivy.wallet.BuildConfig import com.ivy.wallet.Constants +import com.ivy.wallet.R import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.logic.CustomerJourneyLogic import com.ivy.wallet.ui.analytics.AnalyticsReport @@ -390,10 +391,10 @@ class RootActivity : AppCompatActivity() { val promptInfo = BiometricPrompt.PromptInfo.Builder() .setTitle( - "Authentication required" + getString(R.string.authentication_required) ) .setSubtitle( - "Prove that you have access to this device to unlock the app." + getString(R.string.authentication_required_description) ) .setAllowedAuthenticators( BiometricManager.Authenticators.BIOMETRIC_WEAK or diff --git a/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt b/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt index 7967fd8e0a..edaa1b9c89 100644 --- a/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt +++ b/app/src/main/java/com/ivy/wallet/ui/RootViewModel.kt @@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope import com.ivy.design.l0_system.Theme import com.ivy.design.navigation.Navigation import com.ivy.wallet.Constants +import com.ivy.wallet.R import com.ivy.wallet.android.billing.IvyBilling import com.ivy.wallet.domain.data.TransactionType import com.ivy.wallet.domain.logic.PaywallLogic @@ -16,6 +17,7 @@ import com.ivy.wallet.io.network.IvyAnalytics import com.ivy.wallet.io.network.IvySession import com.ivy.wallet.io.persistence.SharedPrefs import com.ivy.wallet.io.persistence.dao.SettingsDao +import com.ivy.wallet.stringRes import com.ivy.wallet.utils.TestIdlingResource import com.ivy.wallet.utils.ioThread import com.ivy.wallet.utils.readOnly @@ -116,13 +118,13 @@ class RootViewModel @Inject constructor( ): BiometricPrompt.AuthenticationCallback { return object : BiometricPrompt.AuthenticationCallback() { override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { - Timber.d("Authentication succeeded!") + Timber.d(stringRes(R.string.authentication_succeeded)) unlockApp() onAuthSuccess() } override fun onAuthenticationFailed() { - Timber.d("Authentication failed.") + Timber.d(stringRes(R.string.authentication_failed)) } override fun onAuthenticationError(errorCode: Int, errString: CharSequence) { diff --git a/app/src/main/java/com/ivy/wallet/utils/DateExt.kt b/app/src/main/java/com/ivy/wallet/utils/DateExt.kt index 22519154f6..92b9d386e6 100644 --- a/app/src/main/java/com/ivy/wallet/utils/DateExt.kt +++ b/app/src/main/java/com/ivy/wallet/utils/DateExt.kt @@ -3,6 +3,8 @@ package com.ivy.wallet.utils import androidx.compose.runtime.Composable import androidx.compose.ui.platform.LocalContext +import com.ivy.wallet.R +import com.ivy.wallet.stringRes import java.time.* import java.time.format.DateTimeFormatter import java.util.* @@ -50,13 +52,13 @@ fun LocalDateTime.formatNicely( return when (this.toLocalDate()) { today -> { - "Today, ${this.formatLocal(patternNoWeekDay, zone)}" + stringRes(R.string.today_date, this.formatLocal(patternNoWeekDay, zone)) } today.minusDays(1) -> { - "Yesterday, ${this.formatLocal(patternNoWeekDay, zone)}" + stringRes(R.string.yesterday_date, this.formatLocal(patternNoWeekDay, zone)) } today.plusDays(1) -> { - "Tomorrow, ${this.formatLocal(patternNoWeekDay, zone)}" + stringRes(R.string.tomorrow_date, this.formatLocal(patternNoWeekDay, zone)) } else -> { if (isThisYear) { @@ -87,13 +89,13 @@ fun LocalDateTime.formatNicelyWithTime( return when (this.toLocalDate()) { today -> { - "Today, ${this.formatLocal(patternNoWeekDay, zone)}" + stringRes(R.string.today_date, this.formatLocal(patternNoWeekDay, zone)) } today.minusDays(1) -> { - "Yesterday, ${this.formatLocal(patternNoWeekDay, zone)}" + stringRes(R.string.yesterday_date, this.formatLocal(patternNoWeekDay, zone)) } today.plusDays(1) -> { - "Tomorrow, ${this.formatLocal(patternNoWeekDay, zone)}" + stringRes(R.string.tomorrow, this.formatLocal(patternNoWeekDay, zone)) } else -> { if (isThisYear) { @@ -140,13 +142,13 @@ fun LocalDate.closeDay(): String? { val today = dateNowUTC() return when (this) { today -> { - "Today" + stringRes(R.string.today) } today.minusDays(1) -> { - "Yesterday" + stringRes(R.string.yesterday) } today.plusDays(1) -> { - "Tomorrow" + stringRes(R.string.tomorrow) } else -> { null @@ -235,7 +237,7 @@ fun LocalDateTime.timeLeft( secondsLabel: String = "s" ): String { val timeLeftMs = this.millis() - from.millis() - if (timeLeftMs <= 0) return "Expired" + if (timeLeftMs <= 0) return stringRes(R.string.expired) val days = TimeUnit.MILLISECONDS.toDays(timeLeftMs) var timeLeftAfterCalculations = timeLeftMs - TimeUnit.DAYS.toMillis(days) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 551907488a..9c3231ae77 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -162,7 +162,7 @@ Your personal money manager #opensource Error. Try again: %1$s - Signing in... + Signing in… Success! Login with Google Offline account @@ -332,4 +332,70 @@ Submit What do you need? Explain it in one sentence. (supports markdown) + Last 12 months + Last 6 months + Last 4 weeks + Last 7 days + Today, %1$s + Yesterday, %1$s + Tomorrow, %1$s + Expired + Authentication succeeded! + Authentication failed. + Have you made any transactions today? 🏁 + Did you track your expenses today? 💸 + Have you recorded your transactions today? 🏁 + Cash + Bank + Revolut + + + Transport + Groceries + Entertainment + Shopping + Gifts + Health + Investments + Car + Work + Restaurant + Family + Social Life + Order food + Travel + Fitness + Self-development + Clothes + Beauty + Education + Pet + Sports + Adjust your initial balance + To accounts + Tap an account -> Tap its balance -> Enter current balance. That\'s it!]]> + Create your first planned payment + Automate the tracking of recurring transactions like your subscriptions, rent, salary, etc. Stay ahead of your finances by knowing how much you have to pay/get in advance. + Did you know? + Ivy Wallet has a cool widget that lets you add INCOME/EXPENSES/TRANSFER transactions with 1-click from your home\n\nNote: If the "Add widget" button doesn't work, please add it manually from your launcher's widgets menu. + Add widget + Set a budget + Ivy Wallet not only helps you to passively track your expenses but also proactively create your financial future by setting budgets and sticking to them. + You can see your expenses structure by categories! Try it, tap the gray/black Expenses button just below your balance. + Expenses PieChart + Review Ivy Wallet + Give us your feedback! Help Ivy Wallet become better and grow by writing us a review. Compliments, ideas, and critics are all welcome! We do our best.\n\nCheers,\nIvy Team + Help us grow so we can invest more in development and make the app better for you. By sharing Ivy Wallet you\'ll make two developers happy and also help a friend to take control of their finances. + Share with friends + You can generate reports to get deep insights about your income and spending. Filter your transactions by type, time period, category, accounts, amount, keywords and more to gain better view on your finances. + Make a report + Want to make Ivy Wallet better? Write us a review. That\'s the only way for us to develop what you want and need. Also it help us rank higher in the PlayStore so we can spend money on the product rather than marketing.\n\nWe do our best.\nIvy Team + We need your help! + We\'re just a designer and a developer working on the app after our 9–5 jobs. Currently, we invest a lot of time and money to generate only losses and exhaustion. If you want us to keep developing Ivy Wallet please share it with friends and family.\n\nP.S. Google PlayStore reviews also helps a lot! + Ivy Wallet is open-source! + Ivy Wallet\'s code is open and everyone can see it. We believe that transparency and ethics are must for every software product. If you like our work and want to make the app better you can contribute in our public Github repository. + Contribute + Adjust balance + Authentication required + Prove that you have access to this device to unlock the app. From 85c7db656e00e029e6effe2401af5346ccff9d8c Mon Sep 17 00:00:00 2001 From: code-a1 <68858676+code-a1@users.noreply.github.com> Date: Sat, 23 Apr 2022 21:07:45 +0200 Subject: [PATCH 9/9] Fixed typo --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9c3231ae77..b87a5a63b3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -377,7 +377,7 @@ Create your first planned payment Automate the tracking of recurring transactions like your subscriptions, rent, salary, etc. Stay ahead of your finances by knowing how much you have to pay/get in advance. Did you know? - Ivy Wallet has a cool widget that lets you add INCOME/EXPENSES/TRANSFER transactions with 1-click from your home\n\nNote: If the "Add widget" button doesn't work, please add it manually from your launcher's widgets menu. + Ivy Wallet has a cool widget that lets you add INCOME/EXPENSES/TRANSFER transactions with 1-click from your home\n\nNote: If the "Add widget" button doesn\'t work, please add it manually from your launcher\'s widgets menu. Add widget Set a budget Ivy Wallet not only helps you to passively track your expenses but also proactively create your financial future by setting budgets and sticking to them.