diff --git a/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRateBottomBar.kt b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRateBottomBar.kt new file mode 100644 index 0000000000..d5d36feee1 --- /dev/null +++ b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRateBottomBar.kt @@ -0,0 +1,48 @@ +package com.ivy.exchangerates + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.BoxWithConstraintsScope +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import com.ivy.legacy.IvyWalletPreview +import com.ivy.ui.R +import com.ivy.wallet.ui.theme.Blue +import com.ivy.wallet.ui.theme.components.BackBottomBar +import com.ivy.wallet.ui.theme.components.IvyButton + +@Composable +internal fun BoxWithConstraintsScope.ExchangeRatesBottomBar( + onClose: () -> Unit, + onAddRate: () -> Unit +) { + BackBottomBar(onBack = onClose) { + IvyButton( + text = stringResource(R.string.add_manual_exchange_rate), + iconStart = R.drawable.ic_plus + ) { + onAddRate() + } + } +} + +@Preview +@Composable +private fun PreviewBottomBar() { + IvyWalletPreview { + Column( + Modifier + .fillMaxSize() + .background(Blue) + ) { + } + + ExchangeRatesBottomBar( + onAddRate = {}, + onClose = {} + ) + } +} diff --git a/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt index 94926cffdc..5119cc095a 100644 --- a/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt +++ b/screen/exchange-rates/src/main/java/com/ivy/exchangerates/ExchangeRatesScreen.kt @@ -4,15 +4,9 @@ import androidx.compose.foundation.layout.BoxWithConstraintsScope import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.systemBarsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Add -import androidx.compose.material3.FloatingActionButton -import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -27,7 +21,6 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import com.ivy.base.legacy.Theme import com.ivy.design.l0_system.UI -import com.ivy.design.l0_system.White import com.ivy.design.l0_system.style import com.ivy.design.l1_buildingBlocks.ColumnRoot import com.ivy.design.l1_buildingBlocks.DividerW @@ -39,6 +32,7 @@ import com.ivy.exchangerates.modal.AddRateModal import com.ivy.legacy.IvyWalletPreview import com.ivy.legacy.ui.SearchInput import com.ivy.legacy.utils.selectEndTextFieldValue +import com.ivy.navigation.navigation import com.ivy.wallet.ui.theme.modal.edit.AmountModal import kotlinx.collections.immutable.persistentListOf import java.util.UUID @@ -59,6 +53,7 @@ private fun BoxWithConstraintsScope.UI( state: RatesState, onEvent: (RatesEvent) -> Unit, ) { + val nav = navigation() var amountModalVisible by remember { mutableStateOf(false) } @@ -107,23 +102,10 @@ private fun BoxWithConstraintsScope.UI( mutableStateOf(false) } - FloatingActionButton( - modifier = Modifier - .systemBarsPadding() - .align(Alignment.BottomEnd) - .padding(all = 24.dp), - containerColor = UI.colors.primary, - contentColor = White, - shape = RoundedCornerShape(100.dp), - onClick = { - addRateModalVisible = true - } - ) { - Icon( - imageVector = Icons.Filled.Add, - contentDescription = "Add rate Icon", - ) - } + ExchangeRatesBottomBar( + onClose = { nav.back() }, + onAddRate = { addRateModalVisible = true } + ) AddRateModal( visible = addRateModalVisible, diff --git a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png index f826a75453..667321ce88 100644 Binary files a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png and b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Dark].png differ diff --git a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png index c242738a82..68af8ba647 100644 Binary files a/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png and b/screen/exchange-rates/src/test/snapshots/images/com.ivy.exchangerates_ExchangeRatesScreenPaparazziTest_snapshot Exchange Rates Screen[Light].png differ diff --git a/shared/ui/core/src/main/res/values-ar/strings.xml b/shared/ui/core/src/main/res/values-ar/strings.xml index 65895f573d..c5a72332c2 100644 --- a/shared/ui/core/src/main/res/values-ar/strings.xml +++ b/shared/ui/core/src/main/res/values-ar/strings.xml @@ -27,6 +27,7 @@ %2$s معلومات الميزانية: %1$s إجمالي الميزانية المتبقية: %1$s %2$s أضف فئة + Add rate الإنفاق عدد الإنفاق الدخل diff --git a/shared/ui/core/src/main/res/values-bg/strings.xml b/shared/ui/core/src/main/res/values-bg/strings.xml index 696c93d598..f058044f0f 100644 --- a/shared/ui/core/src/main/res/values-bg/strings.xml +++ b/shared/ui/core/src/main/res/values-bg/strings.xml @@ -27,6 +27,7 @@ Бюджет: %1$s%2$s Общ останал бюджет: %1$s %2$s Добави категория + Add rate Разходи Брой разходи Приход diff --git a/shared/ui/core/src/main/res/values-de/strings.xml b/shared/ui/core/src/main/res/values-de/strings.xml index 46bfde3a85..b2fb198b0e 100644 --- a/shared/ui/core/src/main/res/values-de/strings.xml +++ b/shared/ui/core/src/main/res/values-de/strings.xml @@ -27,6 +27,7 @@ Budget-Infos: %1$s%2$s Gesamtes verbleibendes Budget: %1$s %2$s Kategorie hinzufügen + Add rate Ausgaben Ausgabenzählung Einnahmen diff --git a/shared/ui/core/src/main/res/values-es/strings.xml b/shared/ui/core/src/main/res/values-es/strings.xml index 84440b2899..919b655a36 100644 --- a/shared/ui/core/src/main/res/values-es/strings.xml +++ b/shared/ui/core/src/main/res/values-es/strings.xml @@ -27,6 +27,7 @@ información de presupuesto: %1$s%2$s Presupuesto total restante: %1$s %2$s Agregar categoría + Add rate Gastos Cuenta de gastos Ingresos diff --git a/shared/ui/core/src/main/res/values-hi/strings.xml b/shared/ui/core/src/main/res/values-hi/strings.xml index 29ce3a16f7..5a9bdee0ad 100644 --- a/shared/ui/core/src/main/res/values-hi/strings.xml +++ b/shared/ui/core/src/main/res/values-hi/strings.xml @@ -27,6 +27,7 @@ बजट की जानकारी: %1$s%2$s कुल शेष बजट: %1$s %2$s कैटेगरी जोड़े + Add rate खर्च खर्च की गिनती आय diff --git a/shared/ui/core/src/main/res/values-id/strings.xml b/shared/ui/core/src/main/res/values-id/strings.xml index ce54c09083..8e6518338e 100644 --- a/shared/ui/core/src/main/res/values-id/strings.xml +++ b/shared/ui/core/src/main/res/values-id/strings.xml @@ -27,6 +27,7 @@ Info anggaran: %1$s%2$s Total Anggaran Tersisa: %1$s %2$s Tambahkan kategori + Add rate Pengeluaran Jumlah pengeluaran Pendapatan diff --git a/shared/ui/core/src/main/res/values-in/strings.xml b/shared/ui/core/src/main/res/values-in/strings.xml index ce54c09083..8e6518338e 100644 --- a/shared/ui/core/src/main/res/values-in/strings.xml +++ b/shared/ui/core/src/main/res/values-in/strings.xml @@ -27,6 +27,7 @@ Info anggaran: %1$s%2$s Total Anggaran Tersisa: %1$s %2$s Tambahkan kategori + Add rate Pengeluaran Jumlah pengeluaran Pendapatan diff --git a/shared/ui/core/src/main/res/values-it/strings.xml b/shared/ui/core/src/main/res/values-it/strings.xml index a514cec4ae..3d5ea47da4 100644 --- a/shared/ui/core/src/main/res/values-it/strings.xml +++ b/shared/ui/core/src/main/res/values-it/strings.xml @@ -27,6 +27,7 @@ Info sul budget %1$s%2$s Budget rimanente totale: %1$s %2$s Aggiungi categoria + Add rate Uscite Numero uscite Entrate diff --git a/shared/ui/core/src/main/res/values-kn/strings.xml b/shared/ui/core/src/main/res/values-kn/strings.xml index bfae85eabf..9b687fcad1 100644 --- a/shared/ui/core/src/main/res/values-kn/strings.xml +++ b/shared/ui/core/src/main/res/values-kn/strings.xml @@ -27,6 +27,7 @@ ಬಜೆಟ್ ಮಾಹಿತಿ: %1$s%2$s ಒಟ್ಟು ಉಳಿದಿರುವ ಬಜೆಟ್: %1$s %2$s ವರ್ಗವನ್ನು ಸೇರಿಸಿ + Add rate ಖರ್ಚು ಖರ್ಚುಗಳ ಎಣಿಕೆ ಆದಾಯ diff --git a/shared/ui/core/src/main/res/values-mn/strings.xml b/shared/ui/core/src/main/res/values-mn/strings.xml index 1abb9a92ff..da18da4ee1 100644 --- a/shared/ui/core/src/main/res/values-mn/strings.xml +++ b/shared/ui/core/src/main/res/values-mn/strings.xml @@ -27,6 +27,7 @@ Төсвийн задаргаа: %1$s%2$s Нийт үлдэгдэл төсөв: %1$s %2$s Ангилал нэмэх + Add rate Зарлага Зарлагын тоо Орлого diff --git a/shared/ui/core/src/main/res/values-pl/strings.xml b/shared/ui/core/src/main/res/values-pl/strings.xml index 58ecacef2c..db0155c262 100644 --- a/shared/ui/core/src/main/res/values-pl/strings.xml +++ b/shared/ui/core/src/main/res/values-pl/strings.xml @@ -27,6 +27,7 @@ Informacja o budżecie: %1$s%2$s Całkowity pozostały budżet: %1$s %2$s Dodaj kategorię + Add rate Wydatki Ilość wydatków Wpływy diff --git a/shared/ui/core/src/main/res/values-pt-rBR/strings.xml b/shared/ui/core/src/main/res/values-pt-rBR/strings.xml index c6ab4501df..dc1e8e1fc0 100644 --- a/shared/ui/core/src/main/res/values-pt-rBR/strings.xml +++ b/shared/ui/core/src/main/res/values-pt-rBR/strings.xml @@ -27,6 +27,7 @@ Informações sobre o orçamento: %1$s %2$s Orçamento Total Restante: %1$s %2$s Adicionar categoria + Add rate Despesas Contagem de despesas Rendimento diff --git a/shared/ui/core/src/main/res/values-ru/strings.xml b/shared/ui/core/src/main/res/values-ru/strings.xml index da3ea87222..2d91dda46f 100644 --- a/shared/ui/core/src/main/res/values-ru/strings.xml +++ b/shared/ui/core/src/main/res/values-ru/strings.xml @@ -27,6 +27,7 @@ Информация о бюджете: %1$s%2$s Общий оставшийся бюджет: %1$s %2$s Добавить категорию + Add rate Расходы Количество расходов Доходы diff --git a/shared/ui/core/src/main/res/values-vi/strings.xml b/shared/ui/core/src/main/res/values-vi/strings.xml index bf2bcb6683..39e11f2f9a 100644 --- a/shared/ui/core/src/main/res/values-vi/strings.xml +++ b/shared/ui/core/src/main/res/values-vi/strings.xml @@ -27,6 +27,7 @@ Thông tin ngân sách: %1$s%2$s Tổng ngân sách còn lại: %1$s %2$s Thêm danh mục + Add rate Khoản chi Số lần chi Khoản thu diff --git a/shared/ui/core/src/main/res/values-zh-rCN/strings.xml b/shared/ui/core/src/main/res/values-zh-rCN/strings.xml index 7d60dd85b5..dcb0025bdc 100644 --- a/shared/ui/core/src/main/res/values-zh-rCN/strings.xml +++ b/shared/ui/core/src/main/res/values-zh-rCN/strings.xml @@ -27,6 +27,7 @@ 预算:%1$s%2$s 剩余总预算:%1$s %2$s 添加类别 + Add rate 支出 支出次数 收入 diff --git a/shared/ui/core/src/main/res/values-zh-rTW/strings.xml b/shared/ui/core/src/main/res/values-zh-rTW/strings.xml index 211d06dd22..048d7db22e 100644 --- a/shared/ui/core/src/main/res/values-zh-rTW/strings.xml +++ b/shared/ui/core/src/main/res/values-zh-rTW/strings.xml @@ -28,6 +28,7 @@ 總剩餘預算:%1$s %2$s 超出預算 %1$s %2$s 新增類別 + Add rate 支出 支出計數 收入 diff --git a/shared/ui/core/src/main/res/values/strings.xml b/shared/ui/core/src/main/res/values/strings.xml index 505b406669..25af3e2adb 100644 --- a/shared/ui/core/src/main/res/values/strings.xml +++ b/shared/ui/core/src/main/res/values/strings.xml @@ -28,6 +28,7 @@ Total Remaining Budget: %1$s %2$s Budget exceeded by %1$s %2$s Add category + Add rate Expenses Expenses count Income