From 7c4087c6d5f83bc51b5b6b2e08e807d128cd0838 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 11 Feb 2015 11:49:52 +0100 Subject: [PATCH] Fixed: transactions not saved when double-entry enabled but no transfer account specified Fixes #277 --- .../ui/transaction/TransactionFormFragment.java | 10 ++++++++-- .../android/test/ui/TransactionsActivityTest.java | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java index ba36be527..0408d663c 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java @@ -742,8 +742,14 @@ public boolean onOptionsItemSelected(MenuItem item) { } else if (mAmountEditText.getText().length() == 0) { Toast.makeText(getActivity(), R.string.toast_transanction_amount_required, Toast.LENGTH_SHORT).show(); - } else - saveNewTransaction(); + } else if (mUseDoubleEntry && mDoubleAccountSpinner.getCount() == 0){ + //TODO: Or automatically create an imbalance account + Toast.makeText(getActivity(), + "Create & specify a transfer account OR disable double-entry in settings to save the transaction", + Toast.LENGTH_LONG).show(); + } else { + saveNewTransaction(); + } return true; default: diff --git a/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java b/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java index 34cadf8ec..5ad713caf 100644 --- a/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java @@ -188,7 +188,9 @@ private void validateEditTransactionFields(Transaction transaction){ actualValue = timeView.getText().toString();// mSolo.getText(7).getText().toString(); assertEquals(expectedValue, actualValue); } - + + //TODO: Add test for only one account but with double-entry enabled + public void testAddTransaction(){ setDoubleEntryEnabled(true); mSolo.waitForText(TRANSACTION_NAME);