From f3f6a35743c6c2a0832b1af071f5ca18144a0912 Mon Sep 17 00:00:00 2001 From: Fabian Bender Date: Tue, 20 Feb 2024 08:07:49 +0100 Subject: [PATCH 1/3] make cart a local var of the method `shouldShowPayButton()` to avoid npe due to a mutable object --- .../java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java b/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java index 71f56ba4d9..6e71a950bc 100644 --- a/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java +++ b/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java @@ -22,6 +22,7 @@ import io.snabble.sdk.PaymentMethod; import io.snabble.sdk.Project; +import io.snabble.sdk.Shop; import io.snabble.sdk.ShoppingCart; import io.snabble.sdk.Snabble; import io.snabble.sdk.checkout.PaymentMethodInfo; @@ -415,8 +416,9 @@ public boolean shouldShowBigSelector() { } public boolean shouldShowPayButton() { - boolean onlinePaymentAvailable = cart.getAvailablePaymentMethods() != null && !cart.getAvailablePaymentMethods().isEmpty(); - return cart.getTotalPrice() >= 0 && (onlinePaymentAvailable || selectedEntry.getValue() != null); + final ShoppingCart shoppingCart = cart; + boolean onlinePaymentAvailable = shoppingCart.getAvailablePaymentMethods() != null && !shoppingCart.getAvailablePaymentMethods().isEmpty(); + return shoppingCart.getTotalPrice() >= 0 && (onlinePaymentAvailable || selectedEntry.getValue() != null); } public boolean shouldShowGooglePayButton() { From f427f0924f90d004c74ac8f5d8229d13e9502301 Mon Sep 17 00:00:00 2001 From: Fabian Bender Date: Tue, 20 Feb 2024 08:12:34 +0100 Subject: [PATCH 2/3] add changelog changes --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6914cf173d..13eae3b61d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file. ### Changed ### Removed ### Fixed +* ui: Avoid npe caused by `isEmpty()` check on a null shopping cart ## [0.72.2] ### Changed From c397027684796fee77aebf2d157c3ebbdb863654 Mon Sep 17 00:00:00 2001 From: Fabian Bender Date: Tue, 20 Feb 2024 08:26:04 +0100 Subject: [PATCH 3/3] remove obsolete import --- .../main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java | 1 - 1 file changed, 1 deletion(-) diff --git a/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java b/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java index 6e71a950bc..7b672e5584 100644 --- a/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java +++ b/ui/src/main/java/io/snabble/sdk/ui/cart/PaymentSelectionHelper.java @@ -22,7 +22,6 @@ import io.snabble.sdk.PaymentMethod; import io.snabble.sdk.Project; -import io.snabble.sdk.Shop; import io.snabble.sdk.ShoppingCart; import io.snabble.sdk.Snabble; import io.snabble.sdk.checkout.PaymentMethodInfo;