Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.

Commit 3c75b2c

Browse files
author
Evgenii Kanivets
committed
#95. Refactor AccountOperationsFragment.
1 parent 710f433 commit 3c75b2c

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/account/edit/fragment/AccountOperationsFragment.kt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.view.View
55
import com.blogspot.e_kanivets.moneytracker.R
66
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseFragment
77
import com.blogspot.e_kanivets.moneytracker.adapter.RecordAdapter
8+
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController
89
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController
910
import com.blogspot.e_kanivets.moneytracker.controller.data.TransferController
1011
import com.blogspot.e_kanivets.moneytracker.entity.data.Account
@@ -16,6 +17,8 @@ import javax.inject.Inject
1617

1718
class AccountOperationsFragment : BaseFragment() {
1819

20+
@Inject
21+
internal lateinit var accountController: AccountController
1922
@Inject
2023
internal lateinit var recordController: RecordController
2124
@Inject
@@ -38,19 +41,19 @@ class AccountOperationsFragment : BaseFragment() {
3841
val accountRecords = recordController.getRecordsForAccount(account)
3942
val accountTransfers = transferController.getTransfersForAccount(account)
4043

41-
accountRecords += calculateRecordsFromTransfers(accountTransfers)
44+
accountRecords += obtainRecordsFromTransfers(accountTransfers)
4245
accountRecords.sortByDescending { it.time }
4346

4447
return accountRecords
4548
}
4649

47-
private fun calculateRecordsFromTransfers(transfers: List<Transfer>): List<Record> {
50+
private fun obtainRecordsFromTransfers(transfers: List<Transfer>): List<Record> {
4851
val records = mutableListOf<Record>()
4952

5053
transfers.forEach {
5154
val type = if (it.fromAccountId == account.id) Record.TYPE_EXPENSE else Record.TYPE_INCOME
52-
val title = "Transfer ${if (type == Record.TYPE_EXPENSE) "to" else "from"}"
53-
val category = Category("transfer")
55+
val title = constructRecordTitle(type, it)
56+
val category = Category(getString(R.string.transfer).toLowerCase())
5457
val price = if (type == Record.TYPE_EXPENSE) it.fromAmount else it.toAmount
5558
val decimals = if (type == Record.TYPE_EXPENSE) it.fromDecimals else it.toDecimals
5659

@@ -60,6 +63,13 @@ class AccountOperationsFragment : BaseFragment() {
6063
return records.toList()
6164
}
6265

66+
private fun constructRecordTitle(type: Int, transfer: Transfer): String {
67+
val titlePrefix = getString(if (type == Record.TYPE_EXPENSE) R.string.to else R.string.from)
68+
val oppositeAccountId = if (type == Record.TYPE_EXPENSE) transfer.toAccountId else transfer.fromAccountId
69+
val oppositeAccountTitle = "$titlePrefix ${accountController.read(oppositeAccountId)?.title}"
70+
return "${getString(R.string.transfer)} $oppositeAccountTitle".toLowerCase()
71+
}
72+
6373
companion object {
6474

6575
private const val KEY_ACCOUNT = "key_account"

0 commit comments

Comments
 (0)