Fix pins getting out of order when removing a pin

multisite
Floens 10 years ago
parent 9d8f9cd5e8
commit 4b9ea76be9
  1. 2
      Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java
  2. 13
      Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java

@ -173,6 +173,8 @@ public class WatchManager {
pins.remove(pin); pins.remove(pin);
pin.destroyWatcher(); pin.destroyWatcher();
Chan.getDatabaseManager().removePin(pin); Chan.getDatabaseManager().removePin(pin);
// Update the new orders
updateDatabase();
onPinsChanged(); onPinsChanged();

@ -180,6 +180,7 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
@Override @Override
public void removeItem(int position) { public void removeItem(int position) {
applyOrder();
callback.onPinRemoved(pins.get(position - PIN_OFFSET)); callback.onPinRemoved(pins.get(position - PIN_OFFSET));
} }
@ -197,10 +198,7 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
@Override @Override
public void movingDone() { public void movingDone() {
for (int i = 0; i < pins.size(); i++) { applyOrder();
Pin pin = pins.get(i);
pin.order = i;
}
} }
public void updatePinViewHolder(PinViewHolder holder, Pin pin) { public void updatePinViewHolder(PinViewHolder holder, Pin pin) {
@ -258,6 +256,13 @@ public class PinAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> im
} }
} }
private void applyOrder() {
for (int i = 0; i < pins.size(); i++) {
Pin pin = pins.get(i);
pin.order = i;
}
}
public class PinViewHolder extends RecyclerView.ViewHolder { public class PinViewHolder extends RecyclerView.ViewHolder {
private boolean highlighted; private boolean highlighted;
private ThumbnailView image; private ThumbnailView image;

Loading…
Cancel
Save