diff --git a/app/src/main/java/dev/achmad/ledgerr/ui/screens/import_bank_statement/ImportBankStatementScreenModel.kt b/app/src/main/java/dev/achmad/ledgerr/ui/screens/import_bank_statement/ImportBankStatementScreenModel.kt index dd6dbd1..feff121 100644 --- a/app/src/main/java/dev/achmad/ledgerr/ui/screens/import_bank_statement/ImportBankStatementScreenModel.kt +++ b/app/src/main/java/dev/achmad/ledgerr/ui/screens/import_bank_statement/ImportBankStatementScreenModel.kt @@ -1,9 +1,11 @@ package dev.achmad.ledgerr.ui.screens.import_bank_statement +import android.content.Context import android.net.Uri import cafe.adriel.voyager.core.model.ScreenModel import cafe.adriel.voyager.core.model.screenModelScope import cafe.adriel.voyager.navigator.Navigator +import dev.achmad.ledgerr.R import dev.achmad.ledgerr.di.util.inject import dev.achmad.ledgerr.domain.bankstatement.interactor.BankStatementImporter import dev.achmad.ledgerr.domain.bankstatement.model.PendingImportExpense @@ -38,6 +40,7 @@ class ImportBankStatementScreenModel( private val importers: List = inject(), private val getCategories: GetCategories = inject(), private val insertExpenses: InsertExpenses = inject(), + private val context: Context = inject(), ) : ScreenModel { private val _state = MutableStateFlow(ImportState.BankPicker(importers)) @@ -66,16 +69,15 @@ class ImportBankStatementScreenModel( .onSuccess { rows -> if (rows.isEmpty()) { _state.value = ImportState.BankPicker(importers) - _snackbar.tryEmit("No transactions found in PDF") + _snackbar.tryEmit(context.getString(R.string.import_no_transactions)) } else { _state.value = ImportState.Confirmation(importer.bankName, rows) } } .onFailure { error -> _state.value = ImportState.BankPicker(importers) - val message = error.message - ?: error::class.simpleName - ?: "Import failed" + val message = error.message?.takeIf { it.isNotBlank() } + ?: context.getString(R.string.import_failed) _snackbar.tryEmit(message) } } @@ -113,7 +115,7 @@ class ImportBankStatementScreenModel( val confirmation = _state.value as? ImportState.Confirmation ?: return@launch val selected = confirmation.rows.filter { it.isSelected } if (selected.isEmpty()) { - _snackbar.tryEmit("No items selected") + _snackbar.tryEmit(context.getString(R.string.import_no_items_selected)) return@launch } withContext(Dispatchers.IO) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ad772ba..762535c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -39,6 +39,9 @@ Amount Date (yyyy-MM-dd) Description + No transactions found in PDF + Import failed + No items selected Settings