import net.ktnx.mobileledger.utils.Digest;
import net.ktnx.mobileledger.utils.Globals;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.util.ArrayList;
.compareTo(o2.getCurrency());
if (res != 0)
return res;
+ res = o1.getComment()
+ .compareTo(o2.getComment());
+ if (res != 0)
+ return res;
return Float.compare(o1.getAmount(), o2.getAmount());
}
};
try {
Digest sha = new Digest(DIGEST_TYPE);
StringBuilder data = new StringBuilder();
+ data.append("ver1");
data.append(profile);
data.append(getId());
data.append('\0');
data.append(getDescription());
data.append('\0');
+ data.append(getComment());
+ data.append('\0');
data.append(Globals.formatLedgerDate(getDate()));
data.append('\0');
for (LedgerTransactionAccount item : accounts) {
data.append(item.getComment());
}
sha.update(data.toString()
- .getBytes(Charset.forName("UTF-8")));
+ .getBytes(StandardCharsets.UTF_8));
dataHash = sha.digestToHexString();
}
catch (NoSuchAlgorithmException e) {
return;
try (Cursor cTr = db.rawQuery(
- "SELECT date, description from transactions WHERE profile=? AND id=?",
+ "SELECT date, description, comment from transactions WHERE profile=? AND id=?",
new String[]{profile, String.valueOf(id)}))
{
if (cTr.moveToFirst()) {
dateString, id));
}
description = cTr.getString(1);
+ comment = cTr.getString(2);
- try (Cursor cAcc = db.rawQuery("SELECT account_name, amount, currency, comment FROM " +
- "transaction_accounts WHERE " +
- "profile=? AND transaction_id = ?",
+ accounts.clear();
+
+ try (Cursor cAcc = db.rawQuery(
+ "SELECT account_name, amount, currency, comment FROM " +
+ "transaction_accounts WHERE profile=? AND transaction_id = ?",
new String[]{profile, String.valueOf(id)}))
{
while (cAcc.moveToNext()) {
}
public String getDataHash() {
+ fillDataHash();
return dataHash;
}
public void finishLoading() {