Removed Rx java
This commit is contained in:
parent
ccad96dd41
commit
62726de918
12 changed files with 189 additions and 386 deletions
|
@ -19,7 +19,6 @@ import android.provider.MediaStore.Audio.AudioColumns
|
|||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import io.reactivex.Observable
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
|
@ -29,31 +28,6 @@ import kotlin.collections.ArrayList
|
|||
*/
|
||||
|
||||
object AlbumLoader {
|
||||
fun getAllAlbumsFlowable(
|
||||
context: Context
|
||||
): Observable<ArrayList<Album>> {
|
||||
val songs = SongLoader.getSongsFlowable(
|
||||
SongLoader.makeSongCursor(
|
||||
context, null, null,
|
||||
getSongLoaderSortOrder(context))
|
||||
)
|
||||
|
||||
return splitIntoAlbumsFlowable(songs)
|
||||
}
|
||||
|
||||
fun getAlbumsFlowable(
|
||||
context: Context,
|
||||
query: String
|
||||
): Observable<ArrayList<Album>> {
|
||||
val songs = SongLoader.getSongsFlowable(
|
||||
SongLoader.makeSongCursor(
|
||||
context,
|
||||
AudioColumns.ALBUM + " LIKE ?",
|
||||
arrayOf("%$query%"),
|
||||
getSongLoaderSortOrder(context))
|
||||
)
|
||||
return splitIntoAlbumsFlowable(songs)
|
||||
}
|
||||
|
||||
fun getAlbums(
|
||||
context: Context,
|
||||
|
@ -68,26 +42,6 @@ object AlbumLoader {
|
|||
return splitIntoAlbums(songs)
|
||||
}
|
||||
|
||||
fun getAlbumFlowable(
|
||||
context: Context,
|
||||
albumId: Int
|
||||
): Observable<Album> {
|
||||
return Observable.create { e ->
|
||||
val songs = SongLoader.getSongsFlowable(
|
||||
SongLoader.makeSongCursor(
|
||||
context,
|
||||
AudioColumns.ALBUM_ID + "=?",
|
||||
arrayOf(albumId.toString()),
|
||||
getSongLoaderSortOrder(context)
|
||||
)
|
||||
)
|
||||
songs.subscribe { songs1 ->
|
||||
e.onNext(Album(songs1))
|
||||
e.onComplete()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getAlbum(
|
||||
context: Context,
|
||||
albumId: Int
|
||||
|
@ -103,35 +57,10 @@ object AlbumLoader {
|
|||
return album
|
||||
}
|
||||
|
||||
fun splitIntoAlbumsFlowable(
|
||||
songs: Observable<ArrayList<Song>>?
|
||||
): Observable<ArrayList<Album>> {
|
||||
return Observable.create { e ->
|
||||
val albums = ArrayList<Album>()
|
||||
songs?.subscribe { songs1 ->
|
||||
for (song in songs1) {
|
||||
getOrCreateAlbumFlowable(albums, song.albumId).subscribe { album ->
|
||||
album.songs!!.add(song)
|
||||
}
|
||||
}
|
||||
}
|
||||
for (album in albums) {
|
||||
sortSongsByTrackNumber(album)
|
||||
}
|
||||
e.onNext(albums)
|
||||
e.onComplete()
|
||||
}
|
||||
}
|
||||
|
||||
fun getAllAlbums(
|
||||
context: Context
|
||||
): ArrayList<Album> {
|
||||
val songs = SongLoader.getSongs(
|
||||
SongLoader.makeSongCursor(
|
||||
context, null, null,
|
||||
getSongLoaderSortOrder(context))
|
||||
)
|
||||
|
||||
val songs = SongLoader.getSongs(SongLoader.makeSongCursor(context, null, null, getSongLoaderSortOrder(context)))
|
||||
return splitIntoAlbums(songs)
|
||||
}
|
||||
|
||||
|
@ -150,25 +79,6 @@ object AlbumLoader {
|
|||
return albums
|
||||
}
|
||||
|
||||
private fun getOrCreateAlbumFlowable(
|
||||
albums: ArrayList<Album>,
|
||||
albumId: Int
|
||||
): Observable<Album> {
|
||||
return Observable.create { e ->
|
||||
for (album in albums) {
|
||||
if (!album.songs!!.isEmpty() && album.songs[0].albumId == albumId) {
|
||||
e.onNext(album)
|
||||
e.onComplete()
|
||||
return@create
|
||||
}
|
||||
}
|
||||
val album = Album()
|
||||
albums.add(album)
|
||||
e.onNext(album)
|
||||
e.onComplete()
|
||||
}
|
||||
}
|
||||
|
||||
private fun getOrCreateAlbum(
|
||||
albums: ArrayList<Album>,
|
||||
albumId: Int
|
||||
|
@ -183,14 +93,11 @@ object AlbumLoader {
|
|||
return album
|
||||
}
|
||||
|
||||
private fun sortSongsByTrackNumber(
|
||||
album: Album
|
||||
) {
|
||||
album.songs?.sortWith(Comparator { o1, o2 -> o1.trackNumber - o2.trackNumber })
|
||||
private fun sortSongsByTrackNumber(album: Album) {
|
||||
album.songs?.sortWith(Comparator { o1, o2 -> o1.trackNumber.compareTo(o2.trackNumber) })
|
||||
}
|
||||
|
||||
private fun getSongLoaderSortOrder(context: Context): String {
|
||||
return PreferenceUtil.getInstance(context).albumSortOrder + ", " +
|
||||
PreferenceUtil.getInstance(context).albumDetailSongSortOrder
|
||||
return PreferenceUtil.getInstance(context).albumSortOrder + ", " + PreferenceUtil.getInstance(context).albumSongSortOrder
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,15 +19,11 @@ import android.provider.MediaStore.Audio.AudioColumns
|
|||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import io.reactivex.Observable
|
||||
|
||||
|
||||
object ArtistLoader {
|
||||
private fun getSongLoaderSortOrder(context: Context): String {
|
||||
return PreferenceUtil.getInstance(context).artistSortOrder + ", " +
|
||||
PreferenceUtil.getInstance(context).artistAlbumSortOrder + ", " +
|
||||
PreferenceUtil.getInstance(context).albumDetailSongSortOrder + ", " +
|
||||
PreferenceUtil.getInstance(context).artistDetailSongSortOrder
|
||||
return PreferenceUtil.getInstance(context).artistSortOrder + ", " + PreferenceUtil.getInstance(context).artistAlbumSortOrder + ", " + PreferenceUtil.getInstance(context).albumSongSortOrder
|
||||
}
|
||||
|
||||
fun getAllArtists(context: Context): ArrayList<Artist> {
|
||||
|
@ -70,34 +66,6 @@ object ArtistLoader {
|
|||
return album
|
||||
}
|
||||
|
||||
fun splitIntoArtists(albums: Observable<ArrayList<Album>>): Observable<ArrayList<Artist>> {
|
||||
return Observable.create { e ->
|
||||
val artists = ArrayList<Artist>()
|
||||
albums.subscribe { localAlbums ->
|
||||
if (localAlbums != null) {
|
||||
for (album in localAlbums) {
|
||||
getOrCreateArtist(artists, album.artistId).albums!!.add(album)
|
||||
}
|
||||
}
|
||||
e.onNext(artists)
|
||||
e.onComplete()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getArtistFlowable(context: Context, artistId: Int): Observable<Artist> {
|
||||
return Observable.create { e ->
|
||||
SongLoader.getSongsFlowable(SongLoader.makeSongCursor(context, AudioColumns.ARTIST_ID + "=?",
|
||||
arrayOf(artistId.toString()),
|
||||
getSongLoaderSortOrder(context)))
|
||||
.subscribe { songs ->
|
||||
val artist = Artist(AlbumLoader.splitIntoAlbums(songs))
|
||||
e.onNext(artist)
|
||||
e.onComplete()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getArtist(context: Context, artistId: Int): Artist {
|
||||
val songs = SongLoader.getSongs(SongLoader.makeSongCursor(
|
||||
context,
|
||||
|
|
|
@ -21,9 +21,6 @@ import code.name.monkey.retromusic.model.Album
|
|||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import io.reactivex.Observable
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
|
@ -31,11 +28,6 @@ import kotlin.collections.ArrayList
|
|||
|
||||
object LastAddedSongsLoader {
|
||||
|
||||
|
||||
fun getLastAddedSongsFlowable(context: Context): Observable<ArrayList<Song>> {
|
||||
return SongLoader.getSongsFlowable(makeLastAddedCursor(context))
|
||||
}
|
||||
|
||||
fun getLastAddedSongs(context: Context): ArrayList<Song> {
|
||||
return SongLoader.getSongs(makeLastAddedCursor(context))
|
||||
}
|
||||
|
@ -50,21 +42,10 @@ object LastAddedSongsLoader {
|
|||
MediaStore.Audio.Media.DATE_ADDED + " DESC")
|
||||
}
|
||||
|
||||
|
||||
fun getLastAddedAlbumsFlowable(context: Context): Observable<ArrayList<Album>> {
|
||||
return AlbumLoader.splitIntoAlbumsFlowable(getLastAddedSongsFlowable(context))
|
||||
}
|
||||
|
||||
|
||||
fun getLastAddedAlbums(context: Context): ArrayList<Album> {
|
||||
return AlbumLoader.splitIntoAlbums(getLastAddedSongs(context))
|
||||
}
|
||||
|
||||
|
||||
fun getLastAddedArtistsFlowable(context: Context): Observable<ArrayList<Artist>> {
|
||||
return ArtistLoader.splitIntoArtists(getLastAddedAlbumsFlowable(context))
|
||||
}
|
||||
|
||||
fun getLastAddedArtists(context: Context): ArrayList<Artist> {
|
||||
return ArtistLoader.splitIntoArtists(getLastAddedAlbums(context))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue