diff --git a/app/build.gradle b/app/build.gradle index 8bbd149e..c7fb337c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -137,5 +137,5 @@ dependencies { compile 'de.psdev.licensesdialog:licensesdialog:1.8.0' compile 'com.github.kabouzeid:AppIntro:3.3.0k' compile 'com.github.bumptech.glide:glide:3.6.1' - compile 'com.github.kabouzeid:RecyclerView-FastScroll:v1.0-kmod' + compile 'com.github.kabouzeid:RecyclerView-FastScroll:v1.2-kmod' } diff --git a/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java b/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java index c5417d00..ff60d0e9 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java +++ b/app/src/main/java/com/kabouzeid/gramophone/adapter/album/AlbumAdapter.java @@ -24,7 +24,9 @@ import com.kabouzeid.gramophone.interfaces.CabHolder; import com.kabouzeid.gramophone.model.Album; import com.kabouzeid.gramophone.model.Song; import com.kabouzeid.gramophone.util.ColorUtil; +import com.kabouzeid.gramophone.util.MusicUtil; import com.kabouzeid.gramophone.util.NavigationUtil; +import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView; import java.util.ArrayList; import java.util.List; @@ -32,7 +34,7 @@ import java.util.List; /** * @author Karim Abou Zeid (kabouzeid) */ -public class AlbumAdapter extends AbsMultiSelectAdapter { +public class AlbumAdapter extends AbsMultiSelectAdapter implements FastScrollRecyclerView.SectionedAdapter { public static final String TAG = AlbumAdapter.class.getSimpleName(); @@ -179,6 +181,12 @@ public class AlbumAdapter extends AbsMultiSelectAdapter { +public class ArtistAdapter extends AbsMultiSelectAdapter implements FastScrollRecyclerView.SectionedAdapter { protected final AppCompatActivity activity; protected ArrayList dataSet; @@ -185,6 +186,12 @@ public class ArtistAdapter extends AbsMultiSelectAdapter implements MaterialCab.Callback { +public class SongAdapter extends AbsMultiSelectAdapter implements MaterialCab.Callback, FastScrollRecyclerView.SectionedAdapter { public static final String TAG = AlbumSongAdapter.class.getSimpleName(); - private static final int FADE_IN_TIME = 500; protected final AppCompatActivity activity; protected ArrayList dataSet; @@ -175,6 +178,12 @@ public class SongAdapter extends AbsMultiSelectAdapter")); + public static boolean isArtistNameUnknown(@Nullable String artistName) { + if (TextUtils.isEmpty(artistName)) return false; + artistName = artistName.trim().toLowerCase(); + return artistName.equals("unknown") || artistName.equals(""); + } + + @NonNull + public static String getSectionName(@Nullable String musicMediaTitle) { + if (TextUtils.isEmpty(musicMediaTitle)) return ""; + musicMediaTitle = musicMediaTitle.trim().toLowerCase(); + if (musicMediaTitle.startsWith("the ")) { + musicMediaTitle = musicMediaTitle.substring(4); + } else if (musicMediaTitle.startsWith("a ")) { + musicMediaTitle = musicMediaTitle.substring(2); + } + if (musicMediaTitle.isEmpty()) return ""; + return String.valueOf(musicMediaTitle.charAt(0)).toUpperCase(); } }