[Android] Playlist : fix separator missing issue

Alexandre Perraud git at videolan.org
Mon Aug 8 18:48:22 CEST 2016


vlc-android | branch: 2.0.x | Alexandre Perraud <4leyx4ndre at gmail.com> | Fri Aug  5 17:58:19 2016 +0200| [59758540d70e0cefe11617346d82f76636be88a5] | committer: Jean-Baptiste Kempf

Playlist : fix separator missing issue

(cherry picked from commit 76f750f4d318465a2c18e060dc713fea8ae21b18)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

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

 .../vlc/gui/audio/AudioBrowserFragment.java        | 17 +++---------
 .../vlc/gui/audio/AudioBrowserListAdapter.java     | 31 ++++++++++++----------
 .../vlc/gui/dialogs/SavePlaylistDialog.java        |  2 +-
 3 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java
index 61aee21..5322c83 100644
--- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java
+++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.java
@@ -25,7 +25,6 @@ import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Handler;
-import android.os.Looper;
 import android.os.Message;
 import android.support.design.widget.FloatingActionButton;
 import android.support.design.widget.TabLayout;
@@ -268,6 +267,7 @@ public class AudioBrowserFragment extends MediaBrowserFragment implements SwipeR
             updateLists();
         else {
             updateEmptyView(mViewPager.getCurrentItem());
+            updatePlaylists();
         }
         mMediaLibrary.addUpdateHandler(mHandler);
         mMediaLibrary.setBrowser(this);
@@ -278,7 +278,6 @@ public class AudioBrowserFragment extends MediaBrowserFragment implements SwipeR
                 mSwipeRefreshLayout.setEnabled(current.getFirstVisiblePosition() == 0);
             }
         });
-        updatePlaylists();
     }
 
     // Focus support. Start.
@@ -862,20 +861,12 @@ public class AudioBrowserFragment extends MediaBrowserFragment implements SwipeR
     Runnable updatePlaylists = new Runnable() {
         @Override
         public void run() {
-            if (Looper.myLooper() != Looper.getMainLooper()) {
-                mHandler.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        mPlaylistAdapter.clear();
-                    }
-                });
-            }
+            //DB playlists
+            ArrayList<AudioBrowserListAdapter.ListItem> dbPlaylists = mMediaLibrary.getPlaylistDbItems();
+            mPlaylistAdapter.addAllDBPlaylists(dbPlaylists);
             //File playlists
             ArrayList<MediaWrapper> playlists = mMediaLibrary.getPlaylistFilesItems();
             mPlaylistAdapter.addAll(playlists, AudioBrowserListAdapter.TYPE_PLAYLISTS);
-            //DB playlists
-            ArrayList<AudioBrowserListAdapter.ListItem> dbPlaylists = mMediaLibrary.getPlaylistDbItems();
-            mPlaylistAdapter.addAll(dbPlaylists);
 
             mAdaptersToNotify.add(mPlaylistAdapter);
             if (mReadyToDisplay && !mDisplaying)
diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java
index a60e80e..7544bf4 100644
--- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java
+++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserListAdapter.java
@@ -120,19 +120,6 @@ public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndex
         mAlignMode = Integer.valueOf(preferences.getString("audio_title_alignment", "0"));
     }
 
-    public void addAll(final List<ListItem> items) {
-        mContext.runOnUiThread(new Runnable() {
-            @Override
-            public void run() {
-                for (ListItem item : items) {
-                    mMediaItemMap.put(item.mTitle, item);
-                    mItems.add(item);
-                }
-                Collections.sort(mItems, mItemsComparator);
-            }
-        });
-    }
-
     public void add(String title, String subTitle, MediaWrapper media) {
         add(title, subTitle, media, null);
     }
@@ -155,12 +142,26 @@ public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndex
         }
     }
 
+    public void addAllDBPlaylists(final List<ListItem> items) {
+        mContext.runOnUiThread(new Runnable() {
+            @Override
+            public void run() {
+                clear();
+                for (ListItem item : items) {
+                    mMediaItemMap.put(item.mMediaKey, item);
+                    mItems.add(item);
+                }
+            }
+        });
+    }
+
     public void addAll(List<MediaWrapper> mediaList, final int type) {
         final LinkedList<MediaWrapper> list = new LinkedList<MediaWrapper>(mediaList);
         mContext.runOnUiThread(new Runnable() {
             @Override
             public void run() {
-                clear();
+                if (type != TYPE_PLAYLISTS)
+                    clear();
                 String title, subTitle, key;
                 for (MediaWrapper media : list) {
                     switch (type){
@@ -226,6 +227,8 @@ public class AudioBrowserListAdapter extends BaseAdapter implements SectionIndex
         char prevFirstChar = '%';
         boolean firstSeparator = true;
         ArrayList<String> sections = new ArrayList<>();
+        if (type == TYPE_PLAYLISTS)
+            Collections.sort(mItems, mItemsComparator);
 
         for (int i = 0; i < mItems.size(); ++i) {
             String title = mItems.get(i).mTitle;
diff --git a/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.java b/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.java
index 3bb6393..83d5b97 100644
--- a/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.java
+++ b/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.java
@@ -73,7 +73,7 @@ public class SavePlaylistDialog extends DialogFragment implements AdapterView.On
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mAdapter = new AudioBrowserListAdapter(getActivity(), AudioBrowserListAdapter.ITEM_WITHOUT_COVER);
-        mAdapter.addAll(MediaLibrary.getInstance().getPlaylistDbItems());
+        mAdapter.addAllDBPlaylists(MediaLibrary.getInstance().getPlaylistDbItems());
         mTracks = getArguments().getParcelableArrayList(KEY_TRACKS);
         mNewTrack = getArguments().getParcelableArrayList(KEY_NEW_TRACKS);
     }



More information about the Android mailing list