From 38d953486c27bdd72c31e9b60d8c7a7bf8348567 Mon Sep 17 00:00:00 2001 From: Schoumi Date: Wed, 3 May 2017 17:26:34 +0200 Subject: [PATCH] Fixes selection on multi-link that doesn't work and cause crash Fixes 19,20 --- .../java/fr/mobdev/goblim/MultiLinkAdapter.java | 10 ++++++---- .../goblim/activity/MultiLinkActivity.java | 6 ++++-- app/src/main/res/layout/link_item.xml | 17 +++++++++-------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/fr/mobdev/goblim/MultiLinkAdapter.java b/app/src/main/java/fr/mobdev/goblim/MultiLinkAdapter.java index b5fc26a..df43c71 100644 --- a/app/src/main/java/fr/mobdev/goblim/MultiLinkAdapter.java +++ b/app/src/main/java/fr/mobdev/goblim/MultiLinkAdapter.java @@ -69,9 +69,9 @@ public class MultiLinkAdapter extends RecyclerView.Adapter{ box = (CheckBox) v.findViewById(R.id.selected); } if(box.isChecked() && !selecteds.contains(holder.index)) { - selecteds.add(holder.index); - } else { - selecteds.remove(holder.index); + selecteds.set(holder.index,holder.index); + } else if (!box.isChecked() && selecteds.contains(holder.index)) { + selecteds.set(holder.index,-1); } selectionListener.onSelectionChanged(); } @@ -95,7 +95,9 @@ public class MultiLinkAdapter extends RecyclerView.Adapter{ holder.progress.setVisibility(View.VISIBLE); holder.thumb.setVisibility(View.GONE); } - holder.box.setChecked(selecteds.contains(position)); + + holder.box.setChecked(selecteds.get(position) != -1); + holder.index = position; } @Override diff --git a/app/src/main/java/fr/mobdev/goblim/activity/MultiLinkActivity.java b/app/src/main/java/fr/mobdev/goblim/activity/MultiLinkActivity.java index daa055b..f7a56f5 100644 --- a/app/src/main/java/fr/mobdev/goblim/activity/MultiLinkActivity.java +++ b/app/src/main/java/fr/mobdev/goblim/activity/MultiLinkActivity.java @@ -210,7 +210,8 @@ public class MultiLinkActivity extends AppCompatActivity { List selected = adapter.getSelecteds(); List urls = new ArrayList<>(); for(Integer index : selected) { - urls.add(deleteUrls.get(index)); + if(index != -1) + urls.add(deleteUrls.get(index)); } NetworkManager.getInstance(listener).deleteMultiple(MultiLinkActivity.this, urls); } @@ -230,7 +231,8 @@ public class MultiLinkActivity extends AppCompatActivity { List selected = adapter.getSelecteds(); String output = baseUrl; for(Integer index : selected) { - output += sharedHashs.get(index)+","; + if(index != -1) + output += sharedHashs.get(index)+","; } return output; } diff --git a/app/src/main/res/layout/link_item.xml b/app/src/main/res/layout/link_item.xml index 9c29d17..e5d997a 100644 --- a/app/src/main/res/layout/link_item.xml +++ b/app/src/main/res/layout/link_item.xml @@ -5,14 +5,6 @@ android:layout_margin="5dp" > - - + + + \ No newline at end of file