Program: 40583
Project: 40583
Buggy source:
public boolean isHasNoError(){
  if (errorViewHolder.getVisibility() == View.VISIBLE)   return false;
  boolean emptyAmountCheck=true;
  boolean isHasNoError=true;
  if (recipientAddressEditText.getText().length() == 0) {
    recipientAddressEditText.setError(getResources().getString(R.string.empty_field));
    recipientAddressEditText.requestFocus();
    isHasNoError=false;
  }
 else   if (recipientAddressEditText.getText().length() > 1 && recipientAddressEditText.getText().length() < 42) {
    recipientAddressEditText.setError(getResources().getString(R.string.short_account));
    recipientAddressEditText.requestFocus();
    isHasNoError=false;
  }
  if (amountEditText.getText().length() == 0) {
    amountEditText.setError(getResources().getString(R.string.empty_field));
    amountEditText.requestFocus();
    emptyAmountCheck=false;
    isHasNoError=false;
  }
  if (emptyAmountCheck) {
    String transferAmount=amountEditText.getText().toString();
    String balanceAmountInEther=accountBalanceInEther.toString();
    transferAmount=new EthereumPrice(transferAmount,isEth ? EthereumPrice.Currency.ETHER : EthereumPrice.Currency.WEI).inLongToString();
    balanceAmountInEther=new EthereumPrice(balanceAmountInEther,EthereumPrice.Currency.ETHER).inLongToString();
    BigDecimal transferAmountBigDecimal=new BigDecimal(transferAmount);
    BigDecimal balanceBigDecimal=new BigDecimal(balanceAmountInEther);
    if (transferAmountBigDecimal.doubleValue() > balanceBigDecimal.doubleValue()) {
      amountEditText.setError(getResources().getString(R.string.insufficient_funds));
      amountEditText.requestFocus();
      isHasNoError=false;
    }
  }
  return isHasNoError;
}

Fixed version (ground truth):
public boolean isHasNoError(){
  if (errorViewHolder.getVisibility() == View.VISIBLE)   return false;
  boolean emptyAmountCheck=true;
  boolean isHasNoError=true;
  if (recipientAddressEditText.getText().length() == 0) {
    recipientAddressTextInputLayout.setError(getResources().getString(R.string.empty_field));
    isHasNoError=false;
  }
 else   if (recipientAddressEditText.getText().length() > 1 && recipientAddressEditText.getText().length() < 42) {
    recipientAddressTextInputLayout.setError(getResources().getString(R.string.short_account));
    isHasNoError=false;
  }
 else   recipientAddressTextInputLayout.setError("String_Node_Str");
  if (amountEditText.getText().length() == 0) {
    amountTextInputLayout.setError(getResources().getString(R.string.empty_field));
    emptyAmountCheck=false;
    isHasNoError=false;
  }
 else   amountTextInputLayout.setError("String_Node_Str");
  if (emptyAmountCheck) {
    String transferAmount=amountEditText.getText().toString();
    String balanceAmountInEther=accountBalanceInEther.toString();
    transferAmount=new EthereumPrice(transferAmount,isEth ? EthereumPrice.Currency.ETHER : EthereumPrice.Currency.WEI).inLongToString();
    balanceAmountInEther=new EthereumPrice(balanceAmountInEther,EthereumPrice.Currency.ETHER).inLongToString();
    BigDecimal transferAmountBigDecimal=new BigDecimal(transferAmount);
    BigDecimal balanceBigDecimal=new BigDecimal(balanceAmountInEther);
    if (transferAmountBigDecimal.doubleValue() > balanceBigDecimal.doubleValue()) {
      amountTextInputLayout.setError(getResources().getString(R.string.insufficient_funds));
      isHasNoError=false;
    }
 else     amountTextInputLayout.setError("String_Node_Str");
  }
  return isHasNoError;
}