This question might be silly but I'm not able to achieve this. I have a payment device that I'm connected via bluetooth to my app. For the device to display currency code, I need to pass a string, like this :
String codeForPaymendDevice = "978";
This "978" basically sends "EUR" currency code and displays on the screen of the payment device. (The device's library maps and handles this). In my app, when the user makes a purchase in EUR currency, it should compare with "978(EUR)" and if both matches, it should parse codeForPaymentDevice. I'm not able to do this because I cannot compare "EUR" with 978 (as my code doesn't know 978 is EUR, only the payment device knows 978 is EUR).
What I need to do is, map "978" to "EUR" code and then compare transaction.getCurrencyCode() with the mapped variable and then parse it.
private SaleRequest buildTransactionRequest(Transaction transaction) {
        final SaleRequest tr = new SaleRequest();
        BigDecimal amount = getAmountPaid();
        String codeForPaymentDevice = "978";
        String formattedAmount;
        try {
            if (!transaction.getCurrencyCode().equalsIgnoreCase(CREW_CURRENCY)) {
                formattedAmount = AirFiApplication
                        .getPriceFormatter(AirFiApplication.getCurrency(transaction.getCurrencyCode())).format(amount);
                // transaction.getCurrencyCode = EUR 
                tr.setCurrency(codeForPaymentDevice); // TODO remove hardcoding
            } 
        } catch (MPosValueException e) {
            LOG.error("Error while building transaction request due to {}", e.getLocalizedMessage());
        }
        return tr;
    }
 
    