From 84d7e15b5ca4c07b9217eabef2bb67e1eff2176b Mon Sep 17 00:00:00 2001 From: FC Stegerman Date: Sun, 16 Jul 2023 03:29:31 +0200 Subject: [PATCH] LoyaltyCard: add isDuplicate(); Utils: add equals() --- .../java/protect/card_locker/LoyaltyCard.java | 23 ++++++++++++------- .../main/java/protect/card_locker/Utils.java | 9 ++++++++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCard.java b/app/src/main/java/protect/card_locker/LoyaltyCard.java index d8cbdea9b..cd4f0e26a 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCard.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCard.java @@ -14,30 +14,28 @@ public class LoyaltyCard implements Parcelable { public final int id; public final String store; public final String note; + @Nullable public final Date validFrom; + @Nullable public final Date expiry; public final BigDecimal balance; + @Nullable public final Currency balanceType; public final String cardId; - @Nullable public final String barcodeId; - @Nullable public final CatimaBarcode barcodeType; - @Nullable public final Integer headerColor; - public final int starStatus; public final int archiveStatus; public final long lastUsed; public int zoomLevel; - public LoyaltyCard(final int id, final String store, final String note, final Date validFrom, - final Date expiry, final BigDecimal balance, final Currency balanceType, - final String cardId, @Nullable final String barcodeId, - @Nullable final CatimaBarcode barcodeType, + public LoyaltyCard(final int id, final String store, final String note, @Nullable final Date validFrom, + @Nullable final Date expiry, final BigDecimal balance, @Nullable final Currency balanceType, + final String cardId, @Nullable final String barcodeId, @Nullable final CatimaBarcode barcodeType, @Nullable final Integer headerColor, final int starStatus, final long lastUsed, final int zoomLevel, final int archiveStatus) { this.id = id; @@ -145,6 +143,15 @@ public class LoyaltyCard implements Parcelable { return new LoyaltyCard(id, store, note, validFrom, expiry, balance, balanceType, cardId, barcodeId, barcodeType, headerColor, starred, lastUsed, zoomLevel, archived); } + public static boolean isDuplicate(final LoyaltyCard a, final LoyaltyCard b) { + // Skip lastUsed + return a.id == b.id && a.store.equals(b.store) && a.note.equals(b.note) && Utils.equals(a.validFrom, b.validFrom) + && Utils.equals(a.expiry, b.expiry) && a.balance.equals(b.balance) && Utils.equals(a.balanceType, b.balanceType) + && a.cardId.equals(b.cardId) && Utils.equals(a.barcodeId, b.barcodeId) && Utils.equals(a.barcodeType, b.barcodeType) + && Utils.equals(a.headerColor, b.headerColor) && a.starStatus == b.starStatus && a.zoomLevel == b.zoomLevel + && a.archiveStatus == b.archiveStatus; + } + @Override public int describeContents() { return id; diff --git a/app/src/main/java/protect/card_locker/Utils.java b/app/src/main/java/protect/card_locker/Utils.java index bae7e5df9..010323835 100644 --- a/app/src/main/java/protect/card_locker/Utils.java +++ b/app/src/main/java/protect/card_locker/Utils.java @@ -667,4 +667,13 @@ public class Utils { return null; } } + + public static boolean equals(final Object a, final Object b) { + if (a == null && b == null) { + return true; + } else if (a == null || b == null) { + return false; + } + return a.equals(b); + } }