From 83db6a8237a839145ff10c665e3e1aab15305d4b Mon Sep 17 00:00:00 2001 From: Dimowner Date: Fri, 15 Feb 2019 15:48:53 +0200 Subject: [PATCH] Fix top 30 drinks items position update. --- app/build.gradle | 2 +- .../cocktails/list/CocktailsDiffUtilCallback.java | 1 + .../tastycocktails/cocktails/list/ListItem.java | 11 +++++++++++ .../tastycocktails/rating/RatingListAdapter.java | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index b15183b..a27902a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,7 +60,7 @@ ext.versions = [ def versionMajor = 1 def versionMinor = 1 -def versionPatch = 2 +def versionPatch = 3 android { compileSdkVersion versions.targetSdkVersion diff --git a/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/CocktailsDiffUtilCallback.java b/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/CocktailsDiffUtilCallback.java index b9005ca..56576a7 100644 --- a/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/CocktailsDiffUtilCallback.java +++ b/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/CocktailsDiffUtilCallback.java @@ -40,6 +40,7 @@ public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) { // && oldProduct.getCategory().equals(newProduct.getCategory()) // && oldProduct.getAlcoholic().equals(newProduct.getAlcoholic()) // && oldProduct.getGlass().equals(newProduct.getGlass()) + && oldProduct.getPosition() == newProduct.getPosition() && oldProduct.getHistory() == newProduct.getHistory() && oldProduct.isFavorite() == newProduct.isFavorite(); } diff --git a/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/ListItem.java b/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/ListItem.java index a35bf53..2aec704 100644 --- a/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/ListItem.java +++ b/app/src/main/java/com/dimowner/tastycocktails/cocktails/list/ListItem.java @@ -34,6 +34,7 @@ public class ListItem implements Parcelable { /** Time stamp when last time user opened this cocktail details. */ private final long history; private final boolean isFavorite; + private int position = 0; public ListItem(long id, String name, String description, String category, String alcoholic, String glass, String avatar_url, long history, boolean isFavorite) { @@ -84,6 +85,14 @@ public boolean isFavorite() { return isFavorite; } + public int getPosition() { + return position; + } + + public void setPosition(int position) { + this.position = position; + } + //----- START Parcelable implementation ---------- private ListItem(Parcel in) { long[] longs = new long[2]; @@ -101,6 +110,7 @@ private ListItem(Parcel in) { boolean[] bools = new boolean[1]; in.readBooleanArray(bools); isFavorite = bools[0]; + position = in.readInt(); } public int describeContents() { @@ -111,6 +121,7 @@ public void writeToParcel(Parcel out, int flags) { out.writeLongArray(new long[] {id, history}); out.writeStringArray(new String[] {name, description, category, alcoholic, glass, avatar_url}); out.writeBooleanArray(new boolean[] {isFavorite}); + out.writeInt(position); } public static final Parcelable.Creator CREATOR diff --git a/app/src/main/java/com/dimowner/tastycocktails/rating/RatingListAdapter.java b/app/src/main/java/com/dimowner/tastycocktails/rating/RatingListAdapter.java index 80d8351..2c8fbce 100644 --- a/app/src/main/java/com/dimowner/tastycocktails/rating/RatingListAdapter.java +++ b/app/src/main/java/com/dimowner/tastycocktails/rating/RatingListAdapter.java @@ -141,6 +141,9 @@ public ListItem getItem(int pos) { } public void setData(List data) { + for (int i = 0; i < data.size(); i++) { + data.get(i).setPosition(i); + } CocktailsDiffUtilCallback productDiffUtilCallback = new CocktailsDiffUtilCallback(mShowingData, data); DiffUtil.DiffResult productDiffResult = DiffUtil.calculateDiff(productDiffUtilCallback); this.mShowingData.clear();