public void onButtonApplyClicked(View view) { if (printOrder.getPromoCode() != null) { // Clear promo code printOrder.clearPromoCode(); updateViewsBasedOnPromoCodeChange(); } else { // Apply promo code final ProgressDialog dialog = new ProgressDialog(this); dialog.setCancelable(false); dialog.setTitle("Processing"); dialog.setMessage("Checking Code..."); dialog.show(); String promoCode = ((EditText) findViewById(R.id.edit_text_promo_code)).getText().toString(); printOrder.applyPromoCode( promoCode, new ApplyPromoCodeListener() { @Override public void onPromoCodeApplied(PrintOrder order, BigDecimal discount) { dialog.dismiss(); Toast.makeText(PaymentActivity.this, "Discount applied!", Toast.LENGTH_LONG).show(); updateViewsBasedOnPromoCodeChange(); } @Override public void onError(PrintOrder order, Exception ex) { dialog.dismiss(); showErrorDialog(ex.getMessage()); } }); } }