Code refactor and Flat, Fit, Full, Circle theme toolbar shadow fixes
This commit is contained in:
parent
954dfb6327
commit
724f743627
304 changed files with 3874 additions and 3524 deletions
|
@ -19,7 +19,10 @@ 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 java.util.Comparator
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
import kotlin.collections.isNotEmpty
|
||||
import kotlin.collections.sortWith
|
||||
|
||||
|
||||
/**
|
||||
|
@ -29,42 +32,54 @@ import java.util.Comparator
|
|||
object AlbumLoader {
|
||||
|
||||
fun getAlbums(
|
||||
context: Context,
|
||||
query: String
|
||||
context: Context,
|
||||
query: String
|
||||
): ArrayList<Album> {
|
||||
val songs = SongLoader.getSongs(SongLoader.makeSongCursor(
|
||||
val songs = SongLoader.getSongs(
|
||||
SongLoader.makeSongCursor(
|
||||
context,
|
||||
AudioColumns.ALBUM + " LIKE ?",
|
||||
arrayOf("%$query%"),
|
||||
getSongLoaderSortOrder(context))
|
||||
getSongLoaderSortOrder(context)
|
||||
)
|
||||
)
|
||||
return splitIntoAlbums(songs)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getAlbum(
|
||||
context: Context,
|
||||
albumId: Int
|
||||
context: Context,
|
||||
albumId: Int
|
||||
): Album {
|
||||
val songs = SongLoader.getSongs(
|
||||
SongLoader.makeSongCursor(
|
||||
context,
|
||||
AudioColumns.ALBUM_ID + "=?",
|
||||
arrayOf(albumId.toString()),
|
||||
getSongLoaderSortOrder(context)))
|
||||
SongLoader.makeSongCursor(
|
||||
context,
|
||||
AudioColumns.ALBUM_ID + "=?",
|
||||
arrayOf(albumId.toString()),
|
||||
getSongLoaderSortOrder(context)
|
||||
)
|
||||
)
|
||||
val album = Album(songs)
|
||||
sortSongsByTrackNumber(album)
|
||||
return album
|
||||
}
|
||||
|
||||
fun getAllAlbums(
|
||||
context: Context
|
||||
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)
|
||||
}
|
||||
|
||||
fun splitIntoAlbums(
|
||||
songs: ArrayList<Song>?
|
||||
songs: ArrayList<Song>?
|
||||
): ArrayList<Album> {
|
||||
val albums = ArrayList<Album>()
|
||||
if (songs != null) {
|
||||
|
@ -79,8 +94,8 @@ object AlbumLoader {
|
|||
}
|
||||
|
||||
private fun getOrCreateAlbum(
|
||||
albums: ArrayList<Album>,
|
||||
albumId: Int
|
||||
albums: ArrayList<Album>,
|
||||
albumId: Int
|
||||
): Album {
|
||||
for (album in albums) {
|
||||
if (album.songs!!.isNotEmpty() && album.songs[0].albumId == albumId) {
|
||||
|
@ -97,6 +112,8 @@ object AlbumLoader {
|
|||
}
|
||||
|
||||
private fun getSongLoaderSortOrder(context: Context): String {
|
||||
return PreferenceUtil.getInstance(context).albumSortOrder + ", " + PreferenceUtil.getInstance(context).albumSongSortOrder
|
||||
return PreferenceUtil.getInstance(context).albumSortOrder + ", " + PreferenceUtil.getInstance(
|
||||
context
|
||||
).albumSongSortOrder
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,9 @@ import code.name.monkey.retromusic.util.PreferenceUtil
|
|||
|
||||
object ArtistLoader {
|
||||
private fun getSongLoaderSortOrder(context: Context): String {
|
||||
return PreferenceUtil.getInstance(context).artistSortOrder + ", " + PreferenceUtil.getInstance(context).artistAlbumSortOrder + ", " + PreferenceUtil.getInstance(
|
||||
return PreferenceUtil.getInstance(context).artistSortOrder + ", " + PreferenceUtil.getInstance(
|
||||
context
|
||||
).artistAlbumSortOrder + ", " + PreferenceUtil.getInstance(
|
||||
context
|
||||
).albumSongSortOrder
|
||||
}
|
||||
|
|
|
@ -82,8 +82,9 @@ object GenreLoader {
|
|||
private fun makeAllSongsWithGenreCursor(context: Context): Cursor? {
|
||||
try {
|
||||
return context.contentResolver.query(
|
||||
Uri.parse("content://media/external/audio/genres/all/members"),
|
||||
arrayOf(Genres.Members.AUDIO_ID), null, null, null)
|
||||
Uri.parse("content://media/external/audio/genres/all/members"),
|
||||
arrayOf(Genres.Members.AUDIO_ID), null, null, null
|
||||
)
|
||||
} catch (e: SecurityException) {
|
||||
return null
|
||||
}
|
||||
|
@ -93,8 +94,12 @@ object GenreLoader {
|
|||
private fun makeGenreSongCursor(context: Context, genreId: Int): Cursor? {
|
||||
try {
|
||||
return context.contentResolver.query(
|
||||
Genres.Members.getContentUri("external", genreId.toLong()),
|
||||
baseProjection, BASE_SELECTION, null, PreferenceUtil.getInstance(context).songSortOrder)
|
||||
Genres.Members.getContentUri("external", genreId.toLong()),
|
||||
baseProjection,
|
||||
BASE_SELECTION,
|
||||
null,
|
||||
PreferenceUtil.getInstance(context).songSortOrder
|
||||
)
|
||||
} catch (e: SecurityException) {
|
||||
return null
|
||||
}
|
||||
|
@ -112,7 +117,11 @@ object GenreLoader {
|
|||
} else {
|
||||
// try to remove the empty genre from the media store
|
||||
try {
|
||||
context.contentResolver.delete(Genres.EXTERNAL_CONTENT_URI, Genres._ID + " == " + genre.id, null)
|
||||
context.contentResolver.delete(
|
||||
Genres.EXTERNAL_CONTENT_URI,
|
||||
Genres._ID + " == " + genre.id,
|
||||
null
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
@ -140,7 +149,13 @@ object GenreLoader {
|
|||
private fun makeGenreCursor(context: Context): Cursor? {
|
||||
val projection = arrayOf(Genres._ID, Genres.NAME)
|
||||
try {
|
||||
return context.contentResolver.query(Genres.EXTERNAL_CONTENT_URI, projection, null, null, PreferenceUtil.getInstance(context).genreSortOrder)
|
||||
return context.contentResolver.query(
|
||||
Genres.EXTERNAL_CONTENT_URI,
|
||||
projection,
|
||||
null,
|
||||
null,
|
||||
PreferenceUtil.getInstance(context).genreSortOrder
|
||||
)
|
||||
} catch (e: SecurityException) {
|
||||
return null
|
||||
}
|
||||
|
|
|
@ -36,10 +36,11 @@ object LastAddedSongsLoader {
|
|||
val cutoff = PreferenceUtil.getInstance(context).lastAddedCutoff
|
||||
|
||||
return SongLoader.makeSongCursor(
|
||||
context,
|
||||
MediaStore.Audio.Media.DATE_ADDED + ">?",
|
||||
arrayOf(cutoff.toString()),
|
||||
MediaStore.Audio.Media.DATE_ADDED + " DESC")
|
||||
context,
|
||||
MediaStore.Audio.Media.DATE_ADDED + ">?",
|
||||
arrayOf(cutoff.toString()),
|
||||
MediaStore.Audio.Media.DATE_ADDED + " DESC"
|
||||
)
|
||||
}
|
||||
|
||||
fun getLastAddedAlbums(context: Context): ArrayList<Album> {
|
||||
|
|
|
@ -20,7 +20,7 @@ import android.provider.BaseColumns
|
|||
import android.provider.MediaStore
|
||||
import android.provider.MediaStore.Audio.PlaylistsColumns
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
import java.util.ArrayList
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
|
|
|
@ -23,7 +23,7 @@ import code.name.monkey.retromusic.model.AbsCustomPlaylist
|
|||
import code.name.monkey.retromusic.model.Playlist
|
||||
import code.name.monkey.retromusic.model.PlaylistSong
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import java.util.ArrayList
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
|
@ -38,6 +38,7 @@ object PlaylistSongsLoader {
|
|||
return (playlist as? AbsCustomPlaylist)?.getSongs(context)
|
||||
?: getPlaylistSongList(context, playlist.id)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getPlaylistSongList(context: Context, playlistId: Int): ArrayList<Song> {
|
||||
val songs = arrayListOf<Song>()
|
||||
|
|
|
@ -17,7 +17,7 @@ package code.name.monkey.retromusic.loaders
|
|||
import android.content.Context
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.model.Genre
|
||||
import java.util.Locale
|
||||
import java.util.*
|
||||
|
||||
object SearchLoader {
|
||||
fun searchAll(context: Context, query: String?): MutableList<Any> {
|
||||
|
|
|
@ -23,7 +23,7 @@ import code.name.monkey.retromusic.Constants.baseProjection
|
|||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.providers.BlacklistStore
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import java.util.ArrayList
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* Created by hemanths on 10/08/17.
|
||||
|
|
|
@ -15,6 +15,7 @@ package code.name.monkey.retromusic.loaders;
|
|||
|
||||
import android.database.AbstractCursor;
|
||||
import android.database.Cursor;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ package code.name.monkey.retromusic.loaders;
|
|||
|
||||
import android.database.AbstractCursor;
|
||||
import android.database.Cursor;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ import code.name.monkey.retromusic.model.Artist
|
|||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.providers.HistoryStore
|
||||
import code.name.monkey.retromusic.providers.SongPlayCountStore
|
||||
import java.util.ArrayList
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue