From bd542c3bc29339dc0dbf1d342f44ba0408685cbb Mon Sep 17 00:00:00 2001 From: Mantas Varnagiris Date: Mon, 20 Oct 2014 21:33:25 +0100 Subject: [PATCH] Improved transaction creation --- .../transactions/TransactionEditFragment.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/financius/src/main/java/com/code44/finance/ui/transactions/TransactionEditFragment.java b/financius/src/main/java/com/code44/finance/ui/transactions/TransactionEditFragment.java index 61931f90..9434474b 100644 --- a/financius/src/main/java/com/code44/finance/ui/transactions/TransactionEditFragment.java +++ b/financius/src/main/java/com/code44/finance/ui/transactions/TransactionEditFragment.java @@ -343,12 +343,15 @@ private void toggleTransactionType() { switch (model.getTransactionType()) { case Expense: model.setTransactionType(TransactionType.Income); + model.setAccountFrom(null); break; case Income: model.setTransactionType(TransactionType.Transfer); + model.setAccountTo(null); break; case Transfer: model.setTransactionType(TransactionType.Expense); + model.setCategory(null); break; } model.setCategory(null); @@ -402,14 +405,15 @@ private boolean canBeConfirmed(Transaction model, boolean showErrors) { switch (model.getTransactionType()) { case Expense: - canBeConfirmed = canBeConfirmed && validateAccountFrom(showErrors); + canBeConfirmed = validateAccountFrom(showErrors) && canBeConfirmed; break; case Income: - canBeConfirmed = canBeConfirmed && validateAccountTo(showErrors); + canBeConfirmed = validateAccountTo(showErrors) && canBeConfirmed; break; case Transfer: - canBeConfirmed = canBeConfirmed && validateAccountFrom(showErrors); - canBeConfirmed = canBeConfirmed && validateAccountTo(showErrors); + canBeConfirmed = validateAccountFrom(showErrors) && canBeConfirmed; + canBeConfirmed = validateAccountTo(showErrors) && canBeConfirmed; + canBeConfirmed = validateAccounts(showErrors) && canBeConfirmed; break; } @@ -445,4 +449,15 @@ private boolean validateAccountTo(boolean showError) { } return true; } + + private boolean validateAccounts(boolean showError) { + if (model.getAccountTo() != null && model.getAccountFrom() != null && model.getAccountTo().hasId() && model.getAccountTo().getId().equals(model.getAccountFrom().getId())) { + if (showError) { + FieldValidationUtils.onError(accountFrom_B); + FieldValidationUtils.onError(accountTo_B); + } + return false; + } + return true; + } }