]> git.ktnx.net Git - mobile-ledger.git/commitdiff
restore account ordering by name
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Sat, 24 Apr 2021 20:49:57 +0000 (23:49 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Sun, 25 Apr 2021 17:07:58 +0000 (17:07 +0000)
it was nice to use the ordering from hledger, but after the migration to
 room this worked only by chance - sqlite returned the rows in the order
 they were inserted. this means that any new accounts will end up at
 the bottom. this is the case when speculative transaction storage is
 active (coming soon) and the transaction has a new account.

 also, the conversion from db account objects to UI list relies on the
 ordering now.

 in a future version, the accounts table may store the hledger ordering
 in a new column, but this doesn't completely solve the problem when
 adding new accounts speculatively

app/src/main/java/net/ktnx/mobileledger/dao/AccountDAO.java

index f37b940b1df9e9377325374e277f5ba96107c3cf..429e1643465f99f9d2164d61a4fd29aef763de76 100644 (file)
@@ -75,11 +75,11 @@ public abstract class AccountDAO extends BaseDAO<Account> {
     @Delete
     public abstract void deleteSync(List<Account> items);
 
-    @Query("SELECT * FROM accounts WHERE profile_id=:profileId")
+    @Query("SELECT * FROM accounts WHERE profile_id=:profileId ORDER BY name")
     public abstract LiveData<List<Account>> getAll(long profileId);
 
     @Transaction
-    @Query("SELECT * FROM accounts WHERE profile_id = :profileId")
+    @Query("SELECT * FROM accounts WHERE profile_id = :profileId ORDER BY name")
     public abstract LiveData<List<AccountWithAmounts>> getAllWithAmounts(long profileId);
 
     @Query("SELECT * FROM accounts WHERE id=:id")