Dialog content has changed follow font

This commit is contained in:
Hemanth S 2020-08-14 14:04:03 +05:30
parent 038e872e7a
commit c6c89e9b9e
36 changed files with 161 additions and 87 deletions

View file

@ -43,19 +43,19 @@ class AppShortcutLauncherActivity : Activity() {
when (shortcutType) {
SHORTCUT_TYPE_SHUFFLE_ALL -> {
startServiceWithPlaylist(
SHUFFLE_MODE_SHUFFLE, ShuffleAllPlaylist(applicationContext)
SHUFFLE_MODE_SHUFFLE, ShuffleAllPlaylist()
)
DynamicShortcutManager.reportShortcutUsed(this, ShuffleAllShortcutType.id)
}
SHORTCUT_TYPE_TOP_TRACKS -> {
startServiceWithPlaylist(
SHUFFLE_MODE_NONE, TopTracksPlaylist(applicationContext)
SHUFFLE_MODE_NONE, TopTracksPlaylist()
)
DynamicShortcutManager.reportShortcutUsed(this, TopTracksShortcutType.id)
}
SHORTCUT_TYPE_LAST_ADDED -> {
startServiceWithPlaylist(
SHUFFLE_MODE_NONE, LastAddedPlaylist(applicationContext)
SHUFFLE_MODE_NONE, LastAddedPlaylist()
)
DynamicShortcutManager.reportShortcutUsed(this, LastAddedShortcutType.id)
}

View file

@ -17,7 +17,6 @@ package code.name.monkey.retromusic.dialogs
import android.app.Dialog
import android.os.Bundle
import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import code.name.monkey.retromusic.EXTRA_SONG
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.extensions.colorButtons
@ -26,9 +25,6 @@ import code.name.monkey.retromusic.extensions.materialDialog
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.repository.PlaylistRepository
import code.name.monkey.retromusic.util.PlaylistsUtil
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.koin.android.ext.android.inject
@ -37,35 +33,28 @@ class AddToPlaylistDialog : DialogFragment() {
override fun onCreateDialog(
savedInstanceState: Bundle?
): Dialog {
val materialDialog = materialDialog(R.string.add_playlist_title)
lifecycleScope.launch {
val playlists = playlistRepository.playlists()
val playlistNames = mutableListOf<String>()
playlistNames.add(requireContext().resources.getString(R.string.action_new_playlist))
for (p in playlists) {
playlistNames.add(p.name)
}
withContext(Dispatchers.Main) {
materialDialog.setItems(playlistNames.toTypedArray()) { _, which ->
val songs = extraNotNull<ArrayList<Song>>(EXTRA_SONG).value
if (which == 0) {
CreatePlaylistDialog.create(songs)
.show(requireActivity().supportFragmentManager, "ADD_TO_PLAYLIST")
} else {
PlaylistsUtil.addToPlaylist(
requireContext(),
songs,
playlists[which - 1].id,
true
)
}
dismiss()
}
}
val playlists = playlistRepository.playlists()
val playlistNames = mutableListOf<String>()
playlistNames.add(requireContext().resources.getString(R.string.action_new_playlist))
for (p in playlists) {
playlistNames.add(p.name)
}
return materialDialog(R.string.add_playlist_title)
.setItems(playlistNames.toTypedArray()) { _, which ->
val songs = extraNotNull<ArrayList<Song>>(EXTRA_SONG).value
if (which == 0) {
CreatePlaylistDialog.create(songs)
.show(requireActivity().supportFragmentManager, "ADD_TO_PLAYLIST")
} else {
PlaylistsUtil.addToPlaylist(
requireContext(),
songs,
playlists[which - 1].id,
true
)
}
dismiss()
}
.create().colorButtons()
}

View file

@ -127,6 +127,7 @@ fun TextInputLayout.accentColor() {
defaultHintTextColor = colorState
isHintAnimationEnabled = true
}
fun TextInputEditText.accentColor(){
fun TextInputEditText.accentColor() {
}

View file

@ -61,7 +61,7 @@ class LibraryViewModel(
private val loadArtists: Deferred<List<Artist>>
get() = viewModelScope.async(IO) {
realRepository.allArtists()
realRepository.albumArtists()
}
private val loadPlaylists: Deferred<List<Playlist>>

View file

@ -75,14 +75,14 @@ class HomeFragment :
lastAdded.setOnClickListener {
findActivityNavController(R.id.fragment_container).navigate(
R.id.playlistDetailsFragment,
bundleOf(EXTRA_PLAYLIST to LastAddedPlaylist(requireActivity()))
bundleOf(EXTRA_PLAYLIST to LastAddedPlaylist())
)
}
topPlayed.setOnClickListener {
findActivityNavController(R.id.fragment_container).navigate(
R.id.playlistDetailsFragment,
bundleOf(EXTRA_PLAYLIST to TopTracksPlaylist(requireActivity()))
bundleOf(EXTRA_PLAYLIST to TopTracksPlaylist())
)
}
@ -98,7 +98,7 @@ class HomeFragment :
history.setOnClickListener {
requireActivity().findNavController(R.id.fragment_container).navigate(
R.id.playlistDetailsFragment,
bundleOf(EXTRA_PLAYLIST to HistoryPlaylist(requireActivity()))
bundleOf(EXTRA_PLAYLIST to HistoryPlaylist())
)
}

View file

@ -41,6 +41,9 @@ class Album {
val songCount: Int
get() = songs!!.size
val albumArtist: String?
get() = safeGetFirstSong().albumArtist
constructor(songs: ArrayList<Song>) {
this.songs = songs
}

View file

@ -25,10 +25,10 @@ class Artist {
val name: String
get() {
val name = safeGetFirstAlbum().artistName
val name = safeGetFirstAlbum().safeGetFirstSong().albumArtist
return if (MusicUtil.isArtistNameUnknown(name)) {
UNKNOWN_ARTIST_DISPLAY_NAME
} else name!!
} else safeGetFirstAlbum().safeGetFirstSong().artistName
}
val songCount: Int

View file

@ -1,14 +1,18 @@
package code.name.monkey.retromusic.model.smartplaylist
import android.content.Context
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.model.Song
import kotlinx.android.parcel.Parcelize
import org.koin.core.KoinComponent
class HistoryPlaylist(
context: Context
) : AbsSmartPlaylist(context.getString(R.string.history), R.drawable.ic_history), KoinComponent {
@Parcelize
class HistoryPlaylist :
AbsSmartPlaylist(
App.getContext().getString(R.string.history),
R.drawable.ic_history
),
KoinComponent {
override fun songs(): List<Song> {
return topPlayedRepository.recentlyPlayedTracks()
}

View file

@ -1,11 +1,13 @@
package code.name.monkey.retromusic.model.smartplaylist
import android.content.Context
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.model.Song
import kotlinx.android.parcel.Parcelize
class LastAddedPlaylist(context: Context) :
AbsSmartPlaylist(context.getString(R.string.last_added), R.drawable.ic_library_add) {
@Parcelize
class LastAddedPlaylist :
AbsSmartPlaylist(App.getContext().getString(R.string.last_added), R.drawable.ic_library_add) {
override fun songs(): List<Song> {
return lastAddedRepository.recentSongs()
}

View file

@ -1,12 +1,15 @@
package code.name.monkey.retromusic.model.smartplaylist
import android.content.Context
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.model.Song
import kotlinx.android.parcel.Parcelize
class NotPlayedPlaylist(
context: Context
) : AbsSmartPlaylist(context.getString(R.string.not_recently_played), R.drawable.ic_watch_later) {
@Parcelize
class NotPlayedPlaylist : AbsSmartPlaylist(
App.getContext().getString(R.string.not_recently_played),
R.drawable.ic_watch_later
) {
override fun songs(): List<Song> {
return topPlayedRepository.notRecentlyPlayedTracks()
}

View file

@ -1,12 +1,15 @@
package code.name.monkey.retromusic.model.smartplaylist
import android.content.Context
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.model.Song
import kotlinx.android.parcel.Parcelize
class ShuffleAllPlaylist(
context: Context
) : AbsSmartPlaylist(context.getString(R.string.action_shuffle_all), R.drawable.ic_shuffle) {
@Parcelize
class ShuffleAllPlaylist : AbsSmartPlaylist(
App.getContext().getString(R.string.action_shuffle_all),
R.drawable.ic_shuffle
) {
override fun songs(): List<Song> {
return songRepository.songs()
}

View file

@ -1,13 +1,13 @@
package code.name.monkey.retromusic.model.smartplaylist
import android.content.Context
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.model.Song
import kotlinx.android.parcel.Parcelize
class TopTracksPlaylist(
context: Context
) : AbsSmartPlaylist(
context.getString(R.string.my_top_tracks),
@Parcelize
class TopTracksPlaylist : AbsSmartPlaylist(
App.getContext().getString(R.string.my_top_tracks),
R.drawable.ic_trending_up
) {
override fun songs(): List<Song> {

View file

@ -63,7 +63,7 @@ class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog
chooserDialog?.setCallback(this)
refreshBlacklistData()
return materialDialog(R.string.blacklist)
.setPositiveButton(android.R.string.ok) { _, _ ->
.setPositiveButton(R.string.done) { _, _ ->
dismiss()
}
.setNeutralButton(R.string.clear_action) { _, _ ->

View file

@ -22,6 +22,8 @@ import code.name.monkey.retromusic.util.PreferenceUtil
interface ArtistRepository {
fun artists(): List<Artist>
fun albumArtists(): List<Artist>
fun artists(query: String): List<Artist>
fun artist(artistId: Int): Artist
@ -59,6 +61,31 @@ class RealArtistRepository(
return splitIntoArtists(albumRepository.splitIntoAlbums(songs))
}
override fun albumArtists(): List<Artist> {
val songs = songRepository.songs(
songRepository.makeSongCursor(
null,
null,
getSongLoaderSortOrder()
)
)
return splitIntoAlbumArtists(albumRepository.splitIntoAlbums(songs))
}
private fun splitIntoAlbumArtists(albums: List<Album>): List<Artist> {
// First group the songs in albums by filtering each artist name
val amap = hashMapOf<String, Artist>()
albums.forEach {
val key = it.albumArtist
if (key != null) {
val artist: Artist = if (amap[key] != null) amap[key]!! else Artist()
artist.albums?.add(it)
amap[key] = artist
}
}
return ArrayList(amap.values)
}
override fun artist(artistId: Int): Artist {
val songs = songRepository.songs(
songRepository.makeSongCursor(

View file

@ -36,6 +36,8 @@ interface Repository {
suspend fun allArtists(): List<Artist>
suspend fun albumArtists(): List<Artist>
suspend fun allPlaylists(): List<Playlist>
suspend fun allGenres(): List<Genre>
@ -112,6 +114,8 @@ class RealRepository(
override suspend fun allArtists(): List<Artist> = artistRepository.artists()
override suspend fun albumArtists(): List<Artist> = artistRepository.albumArtists()
override suspend fun artistById(artistId: Int): Artist = artistRepository.artist(artistId)
override suspend fun recentArtists(): List<Artist> = lastAddedRepository.recentArtists()
@ -212,7 +216,7 @@ class RealRepository(
override suspend fun suggestionsHome(): Home {
val songs =
NotPlayedPlaylist(context).songs().shuffled().takeIf {
NotPlayedPlaylist().songs().shuffled().takeIf {
it.size > 9
} ?: emptyList()
println(songs.size)