]> git.ktnx.net Git - mobile-ledger.git/commit
rework transaction date handling
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Tue, 16 Jun 2020 05:16:39 +0000 (05:16 +0000)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Wed, 17 Jun 2020 06:04:07 +0000 (06:04 +0000)
commit217da55a224e2ae899d0b50604e2e54f882ec04f
treecd8b7dd259df3000983b4c68063ecedf71b0a303
parent1ad7a3b131b2510bcb9a515dafe6a08765bd6100
rework transaction date handling

the surface problem is that storing dates as strings in hledger format
(yyyy/mm/dd) doesn't guarantee sort order. An year of 12020 is a typo,
but goes unnoticed and sorts earlier than 2020. Splitting the date into
separate numeric columns for year, month and day makes sorting work as needed.

While there, replace in-memory storage from java's Date to a SimpleDate
object which just holds the year, month and day. Simplifies exchanging
dates with the database and fulfils the task of holding a date just
fine. The extra flexibility of adding intervals to dates or holding
also time components is not needed anyway.
17 files changed:
app/src/main/java/net/ktnx/mobileledger/async/SendTransactionTask.java
app/src/main/java/net/ktnx/mobileledger/async/UpdateTransactionsTask.java
app/src/main/java/net/ktnx/mobileledger/json/v1_14/ParsedLedgerTransaction.java
app/src/main/java/net/ktnx/mobileledger/json/v1_15/ParsedLedgerTransaction.java
app/src/main/java/net/ktnx/mobileledger/model/LedgerTransaction.java
app/src/main/java/net/ktnx/mobileledger/model/MobileLedgerProfile.java
app/src/main/java/net/ktnx/mobileledger/model/TransactionListItem.java
app/src/main/java/net/ktnx/mobileledger/ui/DatePickerFragment.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionFragment.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionModel.java
app/src/main/java/net/ktnx/mobileledger/ui/transaction_list/TransactionListAdapter.java
app/src/main/java/net/ktnx/mobileledger/utils/Globals.java
app/src/main/java/net/ktnx/mobileledger/utils/MobileLedgerDatabase.java
app/src/main/java/net/ktnx/mobileledger/utils/SimpleDate.java [new file with mode: 0644]
app/src/main/res/raw/create_db.sql
app/src/main/res/raw/sql_34.sql [new file with mode: 0644]