Some features I used when converting from Java
view?.displayInvalidCardErrorMessage()if (view != null) {
view.hideProgressSpinner();
}Kotlin:
Java:
fun Check.getFirstOpenCreditCardPayment(): Optional<Payment> {
return Optional.fromNullable(payments.firstOrNull { payment ->
payment.paymentType == Payment.Type.CREDIT &&
!payment.isDeleted &&
payment.paymentStatus == Status.OPEN })
}private Predicate<Payment> isOpenCreditCard = payment -> {
return payment.paymentType == Payment.Type.CREDIT
&& !payment.isDeleted()
&& payment.paymentStatus == Status.OPEN;
};
private Optional<Payment> filterPayments(Check check, Predicate condition) {
Optional<ToastPosOrderPayment> result = FluentIterable.from(check.payments)
.filter(condition)
.first();
return result;
}
public Optional<Payment> getFirstOpenCreditCardPayment(Check check){
return filterPayments(check, isOpenCreditCard);
}FluentIterable:
Kotlin built in collections methods:
fun CardReaderService.canTakeEmvPayment(): Boolean {
return (canTakeQuickChipPayment() || canTakeFullEmvPayment())
}