[Android] Fix video delete cancellation

Geoffrey Métais git at videolan.org
Wed Dec 6 14:33:29 CET 2017


vlc-android | branch: 2.5.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Tue Dec  5 14:38:41 2017 +0100| [af14cfacb27e63764a0a7ff8ec15b3cc1e419432] | committer: Geoffrey Métais

Fix video delete cancellation

(cherry picked from commit 919636b6071c68db8e5cbf399ddf47e3d3e8c6cb)

> https://code.videolan.org/videolan/vlc-android/commit/af14cfacb27e63764a0a7ff8ec15b3cc1e419432
---

 .../src/org/videolan/vlc/gui/video/VideoGridFragment.java   |  9 +++++----
 .../src/org/videolan/vlc/gui/video/VideoListAdapter.java    | 13 ++++++++-----
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java
index 4be925151..52ab90d45 100644
--- a/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java
+++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoGridFragment.java
@@ -292,9 +292,10 @@ public class VideoGridFragment extends SortableFragment<VideoListAdapter> implem
     }
 
     private void removeVideo(final MediaWrapper media) {
-        mAdapter.remove(media);
-        if (getView() != null)
-            UiTools.snackerWithCancel(getView(), getString(R.string.file_deleted), new Runnable() {
+        final int position = mAdapter.remove(media);
+        final View view = getView();
+        if (position != -1 && view != null)
+            UiTools.snackerWithCancel(view, getString(R.string.file_deleted), new Runnable() {
                 @Override
                 public void run() {
                     deleteMedia(media, false);
@@ -302,7 +303,7 @@ public class VideoGridFragment extends SortableFragment<VideoListAdapter> implem
             }, new Runnable() {
                 @Override
                 public void run() {
-                    mAdapter.add(media);
+                    mAdapter.add(media, position);
                 }
             });
     }
diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java
index 0587035a2..9cd97c46c 100644
--- a/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java
+++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoListAdapter.java
@@ -153,17 +153,20 @@ public class VideoListAdapter extends SortableAdapter<MediaWrapper, VideoListAda
     }
 
     @MainThread
-    public void add(MediaWrapper item) {
+    public void add(MediaWrapper item, int position) {
         final ArrayList<MediaWrapper> list = new ArrayList<>(peekLast());
-        list.add(item);
+        list.add(position, item);
         update(list);
     }
 
     @MainThread
-    public void remove(MediaWrapper item) {
+    public int remove(MediaWrapper item) {
         final ArrayList<MediaWrapper> refList = new ArrayList<>(peekLast());
-        if (refList.remove(item))
-            update(refList);
+        final int position = refList.indexOf(item);
+        if (position < 0 || position >= refList.size()) return -1;
+        refList.remove(position);
+        update(refList);
+        return position;
     }
 
     @MainThread



More information about the Android mailing list