diff --git a/.gitignore b/.gitignore index 1932b252..a9135c63 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,6 @@ build/ #NDK obj/ -captures \ No newline at end of file +captures +app/normal/release/ +/models/ diff --git a/app/build.gradle b/app/build.gradle index 75e60e61..00485c9c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,8 +32,8 @@ android { vectorDrawables.useSupportLibrary = true applicationId "code.name.monkey.retromusic" - versionCode 281 - versionName '3.0.540' + versionCode 283 + versionName '3.0.550' multiDexEnabled true @@ -132,7 +132,7 @@ dependencies { implementation "com.squareup.retrofit2:retrofit:2.5.0" implementation "com.squareup.retrofit2:converter-gson:2.4.0" - implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0" + implementation "com.squareup.retrofit2:adapter-rxjava2:2.5.0" implementation "com.afollestad.material-dialogs:core:$materialDialog" implementation "com.afollestad.material-dialogs:commons:$materialDialog" diff --git a/app/src/main/assets/retro-changelog.html b/app/src/main/assets/retro-changelog.html index 3647f65b..e3161cb7 100644 --- a/app/src/main/assets/retro-changelog.html +++ b/app/src/main/assets/retro-changelog.html @@ -1 +1 @@ -

v3.0.540

Highlights

Changelog

If you see entire app white or dark or black select same theme in settings to fix

FAQ's

*If you face any UI related issues you clear app data and cache, if its not working try to uninstall and install again.

\ No newline at end of file +

v3.0.550

Highlights

Changelog

If you see entire app white or dark or black select same theme in settings to fix

FAQ's

*If you face any UI related issues you clear app data and cache, if its not working try to uninstall and install again.

\ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt index b6dcdc40..2f9c4a32 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt @@ -5,12 +5,14 @@ import android.text.Html import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.ThemeStore +import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Playlist import code.name.monkey.retromusic.util.PlaylistsUtil import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment -import kotlinx.android.synthetic.main.dialog_remove_from_playlist.* +import kotlinx.android.synthetic.main.dialog_delete.* import java.util.* @@ -18,7 +20,7 @@ class DeletePlaylistDialog : RoundedBottomSheetDialogFragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.dialog_remove_from_playlist, container, false) + return inflater.inflate(R.layout.dialog_delete, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -32,17 +34,22 @@ class DeletePlaylistDialog : RoundedBottomSheetDialogFragment() { } else { Html.fromHtml(getString(R.string.delete_playlist_x, playlists[0].name)) } - bannerTitle.text = content - bannerTitle.setTextColor(ThemeStore.textColorPrimary(context!!)) + dialogTitle.text = content + dialogTitle.setTextColor(ThemeStore.textColorPrimary(context!!)) - actionRemove.setText(R.string.action_delete) - actionRemove.setTextColor(ThemeStore.textColorSecondary(context!!)) - actionCancel.setTextColor(ThemeStore.textColorSecondary(context!!)) - - actionCancel.setOnClickListener { dismiss() } - actionRemove.setOnClickListener { - PlaylistsUtil.deletePlaylists(activity!!, playlists) - dismiss() + actionDelete.apply { + setText(R.string.action_delete) + setOnClickListener { + PlaylistsUtil.deletePlaylists(context, playlists) + dismiss() + } + MaterialUtil.setTint(this) + icon = ContextCompat.getDrawable(context, R.drawable.ic_delete_white_24dp) + } + actionCancel.apply { + MaterialUtil.setTint(this, false) + setOnClickListener { dismiss() } + icon = ContextCompat.getDrawable(context, R.drawable.ic_close_white_24dp) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt index b8ac3b63..2c892747 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt @@ -5,6 +5,7 @@ import android.text.Html import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R @@ -19,28 +20,33 @@ class DeleteSongsDialog : RoundedBottomSheetDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - title.setTextColor(ThemeStore.textColorPrimary(context!!)) - MaterialUtil.setTint(actionDelete) - MaterialUtil.setTint(actionCancel) - + dialogTitle.setTextColor(ThemeStore.textColorPrimary(context!!)) //noinspection unchecked,ConstantConditions val songs = arguments!!.getParcelableArrayList("songs") val content: CharSequence if (songs != null) { content = if (songs.size > 1) { - Html.fromHtml(getString(R.string.delete_x_songs, songs.size)) + getString(R.string.delete_x_songs, songs.size) } else { - Html.fromHtml(getString(R.string.delete_song_x, songs[0].title)) + getString(R.string.delete_song_x, songs[0].title) } - this.title.text = content + dialogTitle.text = content } - actionDelete.setOnClickListener { - if (songs != null) { - MusicUtil.deleteTracks(activity!!, songs) + actionDelete.apply { + setOnClickListener { + if (songs != null) { + MusicUtil.deleteTracks(activity!!, songs) + } + dismiss() } - dismiss() + MaterialUtil.setTint(this) + icon = ContextCompat.getDrawable(context, R.drawable.ic_delete_white_24dp) + } + actionCancel.apply { + MaterialUtil.setTint(this, false) + setOnClickListener { dismiss() } + icon = ContextCompat.getDrawable(context, R.drawable.ic_close_white_24dp) } - actionCancel.setOnClickListener { dismiss() } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt index 22907334..2f9e4410 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt @@ -58,11 +58,7 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - actionBuyPro.let { - it.visibility = if (!App.isProVersion) View.VISIBLE else View.GONE - it.iconTint = ColorStateList.valueOf(ThemeStore.accentColor(it.context)) - it.setTextColor(ColorStateList.valueOf(ThemeStore.accentColor(it.context))) - } + text!!.setTextColor(ThemeStore.textColorSecondary(context!!)) titleWelcome!!.setTextColor(ThemeStore.textColorPrimary(context!!)) titleWelcome!!.text = String.format("%s %s!", timeOfTheDay, PreferenceUtil.getInstance().userName) @@ -76,8 +72,14 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl actionFolders.setOnClickListener(this) actionRate.setOnClickListener(this) actionShare.setOnClickListener(this) - actionBuyPro.setOnClickListener(this) actionBugReport.setOnClickListener(this) + buyProContainer.apply { + setCardBackgroundColor(ThemeStore.accentColor(context!!)) + visibility = if (!App.isProVersion) View.VISIBLE else View.GONE + setOnClickListener { + NavigationUtil.goToProVersion(context) + } + } } @@ -97,7 +99,7 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl R.id.actionShare -> shareApp() R.id.actionBugReport -> prepareBugReport() R.id.actionEqualizer -> NavigationUtil.openEqualizer(mainActivity) - R.id.actionBuyPro -> NavigationUtil.goToProVersion(mainActivity) + } dismiss() } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt index eeb3645a..6ed76a96 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt @@ -9,7 +9,6 @@ import android.view.ViewGroup import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.PlaylistSong -import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.PlaylistsUtil import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment import kotlinx.android.synthetic.main.dialog_remove_from_playlist.* @@ -40,18 +39,23 @@ class RemoveFromPlaylistDialog : RoundedBottomSheetDialogFragment() { title = R.string.remove_song_from_playlist_title content = Html.fromHtml(getString(R.string.remove_song_x_from_playlist, songs[0].title)) } - actionRemove.text = content - bannerTitle.setText(title) - - bannerTitle.setTextColor(ThemeStore.textColorPrimary(context!!)) - actionRemove.setTextColor(ThemeStore.textColorSecondary(context!!)) - actionCancel.setTextColor(ThemeStore.textColorSecondary(context!!)) - - actionRemove.setOnClickListener { - PlaylistsUtil.removeFromPlaylist(activity!!, songs) - dismiss() + actionDelete.apply { + text = content + setTextColor(ThemeStore.textColorSecondary(context)) + setOnClickListener { + PlaylistsUtil.removeFromPlaylist(activity!!, songs) + dismiss() + } + } + bannerTitle.apply { + setText(title) + setTextColor(ThemeStore.textColorPrimary(context)) + } + + actionCancel.apply { + setTextColor(ThemeStore.textColorSecondary(context)) + setOnClickListener { dismiss() } } - actionCancel.setOnClickListener { dismiss() } } companion object { diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt index 4f9c7183..36903859 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R @@ -23,10 +24,8 @@ class RenamePlaylistDialog : RoundedBottomSheetDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val accentColor = ThemeStore.accentColor(context!!) - actionCreate.setText(R.string.action_rename) - MaterialUtil.setTint(actionCreate, true) - MaterialUtil.setTint(actionCancel, false) + MaterialUtil.setTint(actionNewPlaylistContainer, false) actionNewPlaylist.apply { @@ -41,12 +40,22 @@ class RenamePlaylistDialog : RoundedBottomSheetDialogFragment() { bannerTitle.setTextColor(ThemeStore.textColorPrimary(context!!)) bannerTitle.setText(R.string.rename_playlist_title) - actionCancel.setOnClickListener { dismiss() } - actionCreate.setOnClickListener { - if (actionNewPlaylist.toString().trim { it <= ' ' } != "") { - val playlistId = arguments!!.getLong("playlist_id") - PlaylistsUtil.renamePlaylist(context!!, playlistId, actionNewPlaylist.text!!.toString()) + actionCancel.apply { + MaterialUtil.setTint(actionCancel, false) + setOnClickListener { dismiss() } + icon = ContextCompat.getDrawable(context, R.drawable.ic_close_white_24dp) + } + + actionCreate.apply { + setText(R.string.action_rename) + setOnClickListener { + if (actionNewPlaylist.toString().trim { it <= ' ' } != "") { + val playlistId = arguments!!.getLong("playlist_id") + PlaylistsUtil.renamePlaylist(context!!, playlistId, actionNewPlaylist.text!!.toString()) + } } + MaterialUtil.setTint(this) + icon = ContextCompat.getDrawable(context, R.drawable.ic_edit_white_24dp) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt index 41bf91ff..266d6f0d 100755 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt @@ -16,6 +16,7 @@ import android.view.View import android.view.ViewGroup import android.widget.SeekBar import android.widget.Toast +import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.Constants.ACTION_QUIT @@ -45,7 +46,6 @@ class SleepTimerDialog : RoundedBottomSheetDialogFragment() { } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.dialog_sleep_timer, container, false) } @@ -57,7 +57,7 @@ class SleepTimerDialog : RoundedBottomSheetDialogFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - MaterialUtil.setTint(actionSet, true) + MaterialUtil.setTint(actionCancel, false) title.setTextColor(ThemeStore.textColorPrimary(context!!)) @@ -88,26 +88,32 @@ class SleepTimerDialog : RoundedBottomSheetDialogFragment() { } }) - actionCancel.setOnClickListener { - - val previous = makeTimerPendingIntent(PendingIntent.FLAG_NO_CREATE) - if (previous != null) { - val am = activity!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager - am.cancel(previous) - previous.cancel() - Toast.makeText(activity, activity!!.resources.getString(R.string.sleep_timer_canceled), Toast.LENGTH_SHORT).show() + actionCancel.apply { + icon = ContextCompat.getDrawable(context, R.drawable.ic_close_white_24dp) + setOnClickListener { + val previous = makeTimerPendingIntent(PendingIntent.FLAG_NO_CREATE) + if (previous != null) { + val am = activity!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager + am.cancel(previous) + previous.cancel() + Toast.makeText(activity, activity!!.resources.getString(R.string.sleep_timer_canceled), Toast.LENGTH_SHORT).show() + } + dismiss() } - dismiss() } - actionSet.setOnClickListener { - val minutes = seekArcProgress - val pi = makeTimerPendingIntent(PendingIntent.FLAG_CANCEL_CURRENT) - val nextSleepTimerElapsedTime = SystemClock.elapsedRealtime() + minutes * 60 * 1000 - PreferenceUtil.getInstance().setNextSleepTimerElapsedRealtime(nextSleepTimerElapsedTime) - val am = activity!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager - am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi) - Toast.makeText(activity, activity!!.resources.getString(R.string.sleep_timer_set, minutes), Toast.LENGTH_SHORT).show() - dismiss() + actionSet.apply { + icon = ContextCompat.getDrawable(context, R.drawable.ic_time_lapse_white_24dp) + MaterialUtil.setTint(actionSet) + setOnClickListener { + val minutes = seekArcProgress + val pi = makeTimerPendingIntent(PendingIntent.FLAG_CANCEL_CURRENT) + val nextSleepTimerElapsedTime = SystemClock.elapsedRealtime() + minutes * 60 * 1000 + PreferenceUtil.getInstance().setNextSleepTimerElapsedRealtime(nextSleepTimerElapsedTime) + val am = activity!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager + am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi) + Toast.makeText(activity, activity!!.resources.getString(R.string.sleep_timer_set, minutes), Toast.LENGTH_SHORT).show() + dismiss() + } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt index 12107ec3..a4679a59 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt @@ -6,41 +6,50 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.ThemeStore +import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.views.RoundedBottomSheetDialogFragment -import kotlinx.android.synthetic.main.dialog_file_share.* +import kotlinx.android.synthetic.main.dialog_delete.* class SongShareDialog : RoundedBottomSheetDialogFragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.dialog_file_share, container, false) + return inflater.inflate(R.layout.dialog_delete, container, false) } @SuppressLint("StringFormatInvalid") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) val song = arguments!!.getParcelable("song")!! + dialogTitle.setTextColor(ThemeStore.textColorPrimary(context!!)) - audioText.text = getString(R.string.currently_listening_to_x_by_x, song.title, song.artistName) - audioFile.setTextColor(ThemeStore.textColorSecondary(context!!)) - audioText.setTextColor(ThemeStore.textColorSecondary(context!!)) - title.setTextColor(ThemeStore.textColorPrimary(context!!)) - - audioFile.setOnClickListener { - MusicUtil.createShareSongFileIntent(song, context) - dismiss() - } - audioText.setOnClickListener { - val currentlyListening = getString(R.string.currently_listening_to_x_by_x, song.title, song.artistName) - activity!!.startActivity(Intent.createChooser(Intent().setAction(Intent.ACTION_SEND) - .putExtra(Intent.EXTRA_TEXT, currentlyListening) - .setType("text/plain"), null)) - dismiss() + actionDelete.apply { + text = getString(R.string.currently_listening_to_x_by_x, song.title, song.artistName) + setTextColor(ThemeStore.textColorSecondary(context!!)) + setOnClickListener { + val currentlyListening = getString(R.string.currently_listening_to_x_by_x, song.title, song.artistName) + activity!!.startActivity(Intent.createChooser(Intent().setAction(Intent.ACTION_SEND) + .putExtra(Intent.EXTRA_TEXT, currentlyListening) + .setType("text/plain"), null)) + dismiss() + } + icon = ContextCompat.getDrawable(context, R.drawable.ic_text_fields_black_24dp) + MaterialUtil.setTint(this) } + actionCancel.apply { + setTextColor(ThemeStore.textColorSecondary(context!!)) + setOnClickListener { + MusicUtil.createShareSongFileIntent(song, context) + dismiss() + } + icon = ContextCompat.getDrawable(context, R.drawable.ic_share_white_24dp) + MaterialUtil.setTint(this, false) + } } companion object { diff --git a/app/src/main/java/code/name/monkey/retromusic/loaders/ArtistLoader.kt b/app/src/main/java/code/name/monkey/retromusic/loaders/ArtistLoader.kt index 96f778fe..70e479d0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/loaders/ArtistLoader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/loaders/ArtistLoader.kt @@ -2,13 +2,13 @@ package code.name.monkey.retromusic.loaders import android.content.Context import android.provider.MediaStore.Audio.AudioColumns - -import java.util.ArrayList - 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 object ArtistLoader { private fun getSongLoaderSortOrder(): String { @@ -20,9 +20,7 @@ object ArtistLoader { fun getArtist(context: Context, artistId: Int): Observable { return Observable.create { e -> - SongLoader.getSongs(SongLoader.makeSongCursor( - context, - AudioColumns.ARTIST_ID + "=?", + SongLoader.getSongs(SongLoader.makeSongCursor(context, AudioColumns.ARTIST_ID + "=?", arrayOf(artistId.toString()), getSongLoaderSortOrder())) .subscribe { songs -> diff --git a/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistLoader.kt b/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistLoader.kt index 4602708f..6d7371e5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistLoader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistLoader.kt @@ -2,16 +2,13 @@ package code.name.monkey.retromusic.loaders import android.content.Context import android.database.Cursor -import android.net.Uri import android.provider.BaseColumns import android.provider.MediaStore import android.provider.MediaStore.Audio.PlaylistsColumns - +import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Playlist - -import java.util.ArrayList - import io.reactivex.Observable +import java.util.* /** * Created by hemanths on 16/08/17. @@ -92,6 +89,13 @@ object PlaylistLoader { return getAllPlaylists(makePlaylistCursor(context, null, null)) } + fun getFavoritePlaylist(context: Context): Observable> { + return getAllPlaylists(makePlaylistCursor( + context, + PlaylistsColumns.NAME + "=?", + arrayOf(context.getString(R.string.favorites)))) + } + fun deletePlaylists(context: Context, playlistId: Long) { val localUri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI val localStringBuilder = StringBuilder() diff --git a/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistSongsLoader.kt b/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistSongsLoader.kt index 41aadb2c..9c69ffeb 100644 --- a/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistSongsLoader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/loaders/PlaylistSongsLoader.kt @@ -81,6 +81,5 @@ object PlaylistSongsLoader { } catch (e: SecurityException) { return null } - } } diff --git a/app/src/main/java/code/name/monkey/retromusic/loaders/SongLoader.kt b/app/src/main/java/code/name/monkey/retromusic/loaders/SongLoader.kt index a96fcba9..26a4c9c5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/loaders/SongLoader.kt +++ b/app/src/main/java/code/name/monkey/retromusic/loaders/SongLoader.kt @@ -58,7 +58,8 @@ object SongLoader { val artistId = cursor.getInt(9) val artistName = cursor.getString(10) - return Song(id, title, trackNumber, year, duration, data, dateModified, albumId, albumName?:"", + return Song(id, title, trackNumber, year, duration, data, dateModified, albumId, albumName + ?: "", artistId, artistName) } @@ -138,31 +139,10 @@ object SongLoader { .flatMap { val list = ArrayList() ShuffleHelper.makeShuffleList(it, -1) - if (it.size > 9) { - list.addAll(it.subList(0, 9)) + if (it.size >= 7) { + list.addAll(it.subList(0, 7)) } return@flatMap Observable.just(list) } - /*.flatMap({ songs -> - val list = ArrayList() - ShuffleHelper.makeShuffleList(songs, -1) - if (songs.size > 9) { - list.addAll(songs.subList(0, 9)) - } - Observable.just(list) - } as Function, ObservableSource>>)*/ - /*.subscribe(songs -> { - ArrayList list = new ArrayList<>(); - if (songs.isEmpty()) { - return; - } - ShuffleHelper.makeShuffleList(songs, -1); - if (songs.size() > 10) { - list.addAll(songs.subList(0, 10)); - } else { - list.addAll(songs); - } - return; - });*/ } } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java index 29ca0357..1d572768 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java @@ -6,7 +6,6 @@ import android.os.Parcel; import java.util.ArrayList; import androidx.annotation.NonNull; -import code.name.monkey.models.Song; import io.reactivex.Observable; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/Album.kt b/app/src/main/java/code/name/monkey/retromusic/model/Album.kt index fb64107b..27405c44 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/Album.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/Album.kt @@ -1,10 +1,10 @@ -package code.name.monkey.models +package code.name.monkey.retromusic.model import java.util.* class Album { - val songs: ArrayList? + val songs: ArrayList? val id: Int get() = safeGetFirstSong().albumId @@ -27,7 +27,7 @@ class Album { val songCount: Int get() = songs!!.size - constructor(songs: ArrayList) { + constructor(songs: ArrayList) { this.songs = songs } @@ -35,7 +35,7 @@ class Album { this.songs = ArrayList() } - fun safeGetFirstSong(): code.name.monkey.models.Song { - return if (songs!!.isEmpty()) code.name.monkey.models.Song.EMPTY_SONG else songs[0] + fun safeGetFirstSong(): Song { + return if (songs!!.isEmpty()) Song.EMPTY_SONG else songs[0] } } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt b/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt index 449d0c77..0f5a5c35 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt @@ -30,9 +30,9 @@ class Artist { val albumCount: Int get() = albums!!.size - val songs: ArrayList + val songs: ArrayList get() { - val songs = ArrayList() + val songs = ArrayList() for (album in albums!!) { songs.addAll(album.songs!!) } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/Playlist.java b/app/src/main/java/code/name/monkey/retromusic/model/Playlist.java index ba4b7657..a04f3126 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/Playlist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/Playlist.java @@ -1,4 +1,4 @@ -package code.name.monkey.models; +package code.name.monkey.retromusic.model; import android.os.Parcel; import android.os.Parcelable; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/PlaylistSong.java b/app/src/main/java/code/name/monkey/retromusic/model/PlaylistSong.java index ae7af07d..c44f1f6a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/PlaylistSong.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/PlaylistSong.java @@ -2,8 +2,6 @@ package code.name.monkey.retromusic.model; import android.os.Parcel; -import code.name.monkey.models.Song; - public class PlaylistSong extends Song { public static PlaylistSong EMPTY_PLAYLIST_SONG = new PlaylistSong(-1, "", -1, -1, -1, "", -1, -1, "", -1, "", -1, -1); diff --git a/app/src/main/java/code/name/monkey/retromusic/model/lyrics/Lyrics.java b/app/src/main/java/code/name/monkey/retromusic/model/lyrics/Lyrics.java index 32a346e0..f80e5395 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/lyrics/Lyrics.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/lyrics/Lyrics.java @@ -1,7 +1,7 @@ -package code.name.monkey.models.lyrics; +package code.name.monkey.retromusic.model.lyrics; -import code.name.monkey.models.Song; +import code.name.monkey.retromusic.model.Song; import java.util.ArrayList; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/AbsSmartPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/AbsSmartPlaylist.java index dad72616..9e3291ba 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/AbsSmartPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/AbsSmartPlaylist.java @@ -1,4 +1,4 @@ -package code.name.monkey.models.smartplaylist; +package code.name.monkey.retromusic.model.smartplaylist; import android.content.Context; import android.os.Parcel; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.java index 08856050..1ab5e0d7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.java @@ -7,10 +7,9 @@ import androidx.annotation.NonNull; import java.util.ArrayList; -import code.name.monkey.models.Song; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.loaders.TopAndRecentlyPlayedTracksLoader; - +import code.name.monkey.retromusic.model.Song; import code.name.monkey.retromusic.providers.HistoryStore; import io.reactivex.Observable; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.java index d2395c34..d4dd4c7c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.java @@ -8,7 +8,7 @@ import androidx.annotation.NonNull; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.loaders.LastAddedSongsLoader; -import code.name.monkey.models.Song; +import code.name.monkey.retromusic.model.Song; import java.util.ArrayList; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/MyTopTracksPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/MyTopTracksPlaylist.java index b62a4dd3..18515d20 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/MyTopTracksPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/MyTopTracksPlaylist.java @@ -8,7 +8,7 @@ import androidx.annotation.NonNull; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.loaders.TopAndRecentlyPlayedTracksLoader; -import code.name.monkey.models.Song; +import code.name.monkey.retromusic.model.Song; import code.name.monkey.retromusic.providers.SongPlayCountStore; import java.util.ArrayList; diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.java index 169a4a60..e4b752f0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.java @@ -8,7 +8,7 @@ import androidx.annotation.NonNull; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.loaders.SongLoader; -import code.name.monkey.models.Song; +import code.name.monkey.retromusic.model.Song; import java.util.ArrayList; diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/contract/HomeContract.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/contract/HomeContract.kt index 84c89191..9fbccfee 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/contract/HomeContract.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/contract/HomeContract.kt @@ -1,43 +1,15 @@ package code.name.monkey.retromusic.mvp.contract -import code.name.monkey.retromusic.model.* +import code.name.monkey.retromusic.model.Home import code.name.monkey.retromusic.mvp.BasePresenter import code.name.monkey.retromusic.mvp.BaseView interface HomeContract { - interface HomeView : BaseView> { - - /*fun recentArtist(artists: ArrayList) - - fun recentAlbum(albums: ArrayList) - - fun topArtists(artists: ArrayList) - - fun topAlbums(albums: ArrayList) - - fun suggestions(songs: ArrayList) - - fun playlists(playlists: ArrayList) - - fun geners(songs: ArrayList)*/ - - fun loadHomes(homes: ArrayList) - } + interface HomeView : BaseView> interface HomePresenter : BasePresenter { - /*fun loadRecentAlbums() - - fun loadTopAlbums() - - fun loadRecentArtists() - - fun loadTopArtists() - - fun loadSuggestions() - - fun loadGenres()*/ - fun loadAll(); + fun homeSections(); } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt index 4557a47c..65141292 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt @@ -11,6 +11,7 @@ import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.RECENT_ARTIS import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.SUGGESTIONS import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.TOP_ALBUMS import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.TOP_ARTISTS +import code.name.monkey.retromusic.util.PreferenceUtil import io.reactivex.Observable import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.Disposable @@ -21,128 +22,37 @@ operator fun CompositeDisposable.plusAssign(disposable: Disposable) { } class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), HomeContract.HomePresenter { - override fun loadAll() { + override fun homeSections() { disposable += Observable.combineLatest(repository.suggestionSongs, repository.recentAlbums, repository.topAlbums, repository.recentArtists, repository.topArtists, - repository.allGenres, repository.allPlaylists, + repository.allGenres, repository.favoritePlaylist, Function7, ArrayList, ArrayList, ArrayList, ArrayList, ArrayList, ArrayList, List> { suggestions: ArrayList, recentAlbums: ArrayList, topAlbums: ArrayList, recentArtists: ArrayList, topArtists: ArrayList, genres: ArrayList, - playlists: ArrayList -> + favoritePlaylist: ArrayList -> val homes: ArrayList = ArrayList() if (suggestions.isNotEmpty()) homes.add(Home(R.string.suggestion_songs, 0, suggestions, SUGGESTIONS)) if (recentArtists.isNotEmpty()) homes.add(Home(R.string.recent_artists, 0, recentArtists, RECENT_ARTISTS)) if (recentAlbums.isNotEmpty()) homes.add(Home(R.string.recent_albums, 0, recentAlbums, RECENT_ALBUMS)) if (topArtists.isNotEmpty()) homes.add(Home(R.string.top_artists, 0, topArtists, TOP_ARTISTS)) if (topAlbums.isNotEmpty()) homes.add(Home(R.string.top_albums, 0, topAlbums, TOP_ALBUMS)) - if (genres.isNotEmpty()) homes.add(Home(R.string.genres, 0, genres, GENRES)) - if (playlists.isNotEmpty()) homes.add(Home(R.string.playlists, 0, playlists, PLAYLISTS)) + if (favoritePlaylist.isNotEmpty()) homes.add(Home(R.string.favorites, 0, favoritePlaylist, PLAYLISTS)) + if (genres.isNotEmpty() && PreferenceUtil.getInstance().isGenreShown) homes.add(Home(R.string.genres, 0, genres, GENRES)) homes }).subscribe { homes -> if (homes.isNotEmpty()) { - view.loadHomes(homes as ArrayList) + view.showData(homes as ArrayList) } } } override fun subscribe() { - loadAll() - /*loadRecentAlbums() - loadRecentArtists() - loadTopAlbums() - loadTopArtists() - loadSuggestions()*/ - - /*if (PreferenceUtil.getInstance().isGenreShown) loadGenres()*/ - + homeSections() } override fun unsubscribe() { - if (true) { - disposable.dispose() - } + disposable.dispose() } - - /*fun loadPlaylists() { - disposable += repository.allPlaylists - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .subscribe({ playlist -> - if (!playlist.isEmpty()) { - view.playlists(playlist) - } - }, { view.showEmptyView() }, { view.completed() }) - } - - override fun loadRecentAlbums() { - disposable += repository.recentAlbums - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .doOnSubscribe { view.loading() } - .subscribe({ artists -> - if (!artists.isEmpty()) { - view.recentAlbum(artists) - } - }, { view.showEmptyView() }, { view.completed() }) - } - - override fun loadTopAlbums() { - disposable += repository.topAlbums - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .doOnSubscribe { view.loading() } - .subscribe({ artists -> - if (!artists.isEmpty()) { - view.topAlbums(artists) - } - }, { view.showEmptyView() }, { view.completed() }) - } - - override fun loadRecentArtists() { - disposable += repository.recentArtists - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .doOnSubscribe { view.loading() } - .subscribe({ artists -> - if (!artists.isEmpty()) { - view.recentArtist(artists) - } - }, { view.showEmptyView() }, { view.completed() }) - } - - override fun loadTopArtists() { - disposable += repository.topArtists - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .doOnSubscribe { view.loading() } - .subscribe({ artists -> - if (!artists.isEmpty()) { - view.topArtists(artists) - } - }, { view.showEmptyView() }, { view.completed() }) - - } - - override fun loadSuggestions() { - disposable += repository.suggestionSongs - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .doOnSubscribe { view.loading() } - .subscribe({ songs -> view.suggestions(songs) }, - { view.showEmptyView() }, { view.completed() }) - } - - override fun loadGenres() { - disposable += repository.allGenres - .observeOn(schedulerProvider.ui()) - .subscribeOn(schedulerProvider.io()) - .doOnSubscribe { view.loading() } - .subscribe({ genres -> - if (!genres.isEmpty()) { - view.geners(genres) - } - }, { view.showEmptyView() }, { view.completed() }) - }*/ } diff --git a/app/src/main/java/code/name/monkey/retromusic/providers/BlacklistStore.java b/app/src/main/java/code/name/monkey/retromusic/providers/BlacklistStore.java index f77da536..e75ee372 100644 --- a/app/src/main/java/code/name/monkey/retromusic/providers/BlacklistStore.java +++ b/app/src/main/java/code/name/monkey/retromusic/providers/BlacklistStore.java @@ -8,27 +8,14 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Environment; -import androidx.annotation.NonNull; - import java.io.File; import java.util.ArrayList; -import java.util.List; -import code.name.monkey.retromusic.App; -import code.name.monkey.retromusic.model.Album; -import code.name.monkey.retromusic.model.Artist; -import code.name.monkey.retromusic.model.Genre; -import code.name.monkey.retromusic.model.Home; -import code.name.monkey.retromusic.model.Playlist; -import code.name.monkey.retromusic.model.Song; +import androidx.annotation.NonNull; import code.name.monkey.retromusic.util.FileUtil; import code.name.monkey.retromusic.util.PreferenceUtil; -import io.reactivex.Observable; -import io.reactivex.functions.Function7; import static code.name.monkey.retromusic.Constants.MEDIA_STORE_CHANGED; -import static code.name.monkey.retromusic.ui.adapter.HomeAdapter.RECENT_ALBUMS; -import static code.name.monkey.retromusic.ui.adapter.HomeAdapter.SUGGESTIONS; public class BlacklistStore extends SQLiteOpenHelper { public static final String DATABASE_NAME = "blacklist.db"; @@ -160,45 +147,6 @@ public class BlacklistStore extends SQLiteOpenHelper { return paths; } - private void hmm() { - RepositoryImpl repository = new RepositoryImpl(App.Companion.getContext()); - - - Observable.combineLatest(repository.getSuggestionSongs(), repository.getRecentAlbums(), - repository.getTopAlbums(), repository.getRecentArtists(), repository.getTopArtists(), - repository.getAllGenres(), repository.getAllPlaylists(), new Function7, ArrayList, ArrayList, ArrayList, ArrayList, ArrayList, ArrayList, List>() { - @Override - public List apply(ArrayList songs, ArrayList albums, ArrayList albums2, ArrayList artists, ArrayList artists2, ArrayList genres, ArrayList playlists) throws Exception { - List homes = new ArrayList<>(); - homes.add(new Home(0, 0, songs, SUGGESTIONS)); - homes.add(new Home(0, 0, albums, RECENT_ALBUMS)); - return homes; - - } - }).subscribe(homes -> { - if (homes.isEmpty()) { - - } - }); - - - Observable.combineLatest( - repository.getSuggestionSongs(), - repository.getRecentAlbums(), - repository.getTopAlbums(), - repository.getRecentArtists(), - repository.getTopArtists(), - repository.getAllGenres(), - repository.getAllPlaylists(), - (ArrayList suggestions, ArrayList recentAlbums, ArrayList topAlbums, - ArrayList recentArtists, ArrayList topArtists, - ArrayList genres, ArrayList playlists) -> { - List homes = new ArrayList<>(); - - return homes; - }).subscribe(); - } - public interface BlacklistStoreColumns { String NAME = "blacklist"; diff --git a/app/src/main/java/code/name/monkey/retromusic/providers/RepositoryImpl.kt b/app/src/main/java/code/name/monkey/retromusic/providers/RepositoryImpl.kt index e9037ec8..f4dd5a60 100644 --- a/app/src/main/java/code/name/monkey/retromusic/providers/RepositoryImpl.kt +++ b/app/src/main/java/code/name/monkey/retromusic/providers/RepositoryImpl.kt @@ -7,9 +7,11 @@ import code.name.monkey.retromusic.model.* import code.name.monkey.retromusic.model.smartplaylist.AbsSmartPlaylist import code.name.monkey.retromusic.providers.interfaces.Repository import io.reactivex.Observable -import java.util.* class RepositoryImpl(private val context: Context) : Repository { + override val favoritePlaylist: Observable> + get() = PlaylistLoader.getFavoritePlaylist(context) + override val allSongs: Observable> get() = SongLoader.getAllSongs(context) diff --git a/app/src/main/java/code/name/monkey/retromusic/providers/interfaces/Repository.kt b/app/src/main/java/code/name/monkey/retromusic/providers/interfaces/Repository.kt index 58c5f026..af2bc1e8 100644 --- a/app/src/main/java/code/name/monkey/retromusic/providers/interfaces/Repository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/providers/interfaces/Repository.kt @@ -4,6 +4,7 @@ import code.name.monkey.retromusic.model.* import code.name.monkey.retromusic.model.smartplaylist.AbsSmartPlaylist import io.reactivex.Observable import java.util.* +import kotlin.collections.ArrayList /** * Created by hemanths on 11/08/17. @@ -47,5 +48,6 @@ interface Repository { fun getGenre(genreId: Int): Observable> + val favoritePlaylist: Observable> } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt index 75b56b31..0309e923 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt @@ -132,7 +132,6 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac } } - toolbar.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp) if (toolbar != null && !PreferenceUtil.getInstance().fullScreenMode) { @@ -218,6 +217,7 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac }) return@map it.albums!! } + .subscribe { it.remove(album) diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt index b0b66741..056a2e6f 100755 --- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt @@ -27,7 +27,9 @@ import code.name.monkey.retromusic.glide.RetroGlideExtension import code.name.monkey.retromusic.glide.RetroMusicColoredTarget import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.misc.AppBarStateChangeListener +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.mvp.contract.ArtistDetailContract import code.name.monkey.retromusic.mvp.presenter.ArtistDetailsPresenter import code.name.monkey.retromusic.rest.LastFMRestClient @@ -44,6 +46,7 @@ import retrofit2.Call import retrofit2.Callback import retrofit2.Response import java.util.* +import kotlin.collections.ArrayList class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContract.ArtistsDetailsView { @@ -51,8 +54,8 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac private var artist: Artist? = null private var lastFMRestClient: LastFMRestClient? = null private var artistDetailsPresenter: ArtistDetailsPresenter? = null - private var songAdapter: SimpleSongAdapter? = null - private var albumAdapter: AlbumAdapter? = null + private lateinit var songAdapter: SimpleSongAdapter + private lateinit var albumAdapter: AlbumAdapter private var forceDownload: Boolean = false private fun setupWindowTransitions() { @@ -225,9 +228,11 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac artistTitle.text = artist.name text.text = String.format("%s • %s", MusicUtil.getArtistInfoString(this, artist), MusicUtil .getReadableDurationString(MusicUtil.getTotalDuration(this, artist.songs))) + //val songs = artist.songs.sortedWith(compareBy { it.title }) as ArrayList + songAdapter.swapDataSet(artist.songs) - songAdapter!!.swapDataSet(artist.songs) - albumAdapter!!.swapDataSet(artist.albums!!) + //val albums = artist.albums?.sortedWith(compareBy { it.artistName }) as ArrayList + albumAdapter.swapDataSet(artist.albums!!) } private fun loadBiography(lang: String? = Locale.getDefault().language) { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/MainActivity.kt index d72c50c4..5bad4115 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/MainActivity.kt @@ -79,9 +79,9 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP checkShowChangelog() - if (!App.isProVersion && !PreferenceManager.getDefaultSharedPreferences(this).getBoolean("shown", false)) { + /*if (!App.isProVersion && !PreferenceManager.getDefaultSharedPreferences(this).getBoolean("shown", false)) { showPromotionalOffer() - } + }*/ } private fun checkShowChangelog() { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/PurchaseActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/PurchaseActivity.kt index 58784fab..19344893 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/PurchaseActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/PurchaseActivity.kt @@ -16,7 +16,6 @@ import code.name.monkey.retromusic.ui.activities.base.AbsBaseActivity import com.anjlab.android.iab.v3.BillingProcessor import com.anjlab.android.iab.v3.TransactionDetails import kotlinx.android.synthetic.main.activity_pro_version.* -import kotlinx.android.synthetic.main.activity_pro_version_content.* import java.lang.ref.WeakReference diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsThemeActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsThemeActivity.kt index 89910457..c8e57945 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsThemeActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsThemeActivity.kt @@ -10,7 +10,6 @@ import android.view.WindowManager import androidx.annotation.ColorInt import androidx.core.content.ContextCompat import code.name.monkey.appthemehelper.ATH -import code.name.monkey.appthemehelper.ATHActivity import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.* import code.name.monkey.retromusic.R @@ -144,7 +143,7 @@ abstract class AbsThemeActivity : AbsCrashCollector(), Runnable { } open fun setLightNavigationBar(enabled: Boolean) { - if (!ATHUtil.isWindowBackgroundDark(this) && ThemeStore.coloredNavigationBar(this)) { + if (!ATHUtil.isWindowBackgroundDark(this) and ThemeStore.coloredNavigationBar(this)) { ATH.setLightNavigationbar(this, enabled) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt index 908d0ba5..70a876ae 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt @@ -20,9 +20,11 @@ import code.name.monkey.retromusic.glide.GlideApp import code.name.monkey.retromusic.glide.RetroGlideExtension import code.name.monkey.retromusic.glide.RetroMusicColoredTarget import code.name.monkey.retromusic.helper.MusicPlayerRemote +import code.name.monkey.retromusic.loaders.PlaylistSongsLoader import code.name.monkey.retromusic.model.* import code.name.monkey.retromusic.ui.adapter.album.AlbumFullWidthAdapter import code.name.monkey.retromusic.ui.adapter.artist.ArtistAdapter +import code.name.monkey.retromusic.ui.adapter.song.SongAdapter import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.views.MetalRecyclerViewPager import com.google.android.material.floatingactionbutton.FloatingActionButton @@ -41,6 +43,7 @@ class HomeAdapter(private val activity: AppCompatActivity, private val homes: Ar SUGGESTIONS -> SuggestionViewHolder(LayoutInflater.from(activity).inflate(R.layout.section_item_collage, parent, false)) RECENT_ARTISTS, TOP_ARTISTS -> ArtistViewHolder(layout) GENRES -> GenreViewHolder(layout) + PLAYLISTS -> PlaylistViewHolder(layout) else -> { AlbumViewHolder(LayoutInflater.from(activity).inflate(R.layout.metal_section_recycler_view, parent, false)) } @@ -66,6 +69,10 @@ class HomeAdapter(private val activity: AppCompatActivity, private val homes: Ar val viewHolder = holder as GenreViewHolder viewHolder.bindView(home) } + PLAYLISTS -> { + val viewHolder = holder as PlaylistViewHolder + viewHolder.bindView(home) + } } } @@ -174,4 +181,21 @@ class HomeAdapter(private val activity: AppCompatActivity, private val homes: Ar val title: TextView = view.findViewById(R.id.sectionTitle) } + + private inner class PlaylistViewHolder(view: View) : RecyclerView.ViewHolder(view) { + fun bindView(home: Home) { + val songs = PlaylistSongsLoader.getPlaylistSongList(activity, home.arrayList[0] as Playlist).blockingFirst() + recyclerView.apply { + val songAdapter = SongAdapter(activity, songs, R.layout.item_album_card, false, null) + layoutManager = GridLayoutManager(activity, 1, GridLayoutManager.HORIZONTAL, false) + adapter = songAdapter + + } + title.text = activity.getString(home.title) + } + + val recyclerView: RecyclerView = view.findViewById(R.id.recyclerView) + val title: TextView = view.findViewById(R.id.sectionTitle) + + } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/AlbumCoverPagerAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/AlbumCoverPagerAdapter.kt index 4cb289c2..ea3f837c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/AlbumCoverPagerAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/AlbumCoverPagerAdapter.kt @@ -146,7 +146,6 @@ class AlbumCoverPagerAdapter(fm: FragmentManager, private val dataSet: ArrayList } interface ColorReceiver { - fun onColorReady(color: Int, request: Int) } diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/HorizontalAlbumAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/HorizontalAlbumAdapter.kt index 72dc020e..d3b63896 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/HorizontalAlbumAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/album/HorizontalAlbumAdapter.kt @@ -66,11 +66,7 @@ class HorizontalAlbumAdapter(activity: AppCompatActivity, dataSet: ArrayList dataSet.size - dataSet.size >= 5 -> 5 - else -> super.getItemCount() - } + return dataSet.size } companion object { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/playlist/PlaylistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/playlist/PlaylistAdapter.kt index 4fac4696..fdecd389 100755 --- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/playlist/PlaylistAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/playlist/PlaylistAdapter.kt @@ -120,8 +120,7 @@ class PlaylistAdapter(protected val activity: AppCompatActivity, dataSet: ArrayL return playlist.name } - override fun onMultipleItemAction(menuItem: MenuItem, - selection: ArrayList) { + override fun onMultipleItemAction(menuItem: MenuItem, selection: ArrayList) { when (menuItem.itemId) { R.id.action_delete_playlist -> { var i = 0 @@ -172,39 +171,39 @@ class PlaylistAdapter(protected val activity: AppCompatActivity, dataSet: ArrayL inner class ViewHolder(itemView: View) : MediaEntryViewHolder(itemView) { init { - if (image != null) { - val iconPadding = activity.resources - .getDimensionPixelSize(R.dimen.list_item_image_icon_padding) - image!!.setPadding(iconPadding, iconPadding, iconPadding, iconPadding) - image!!.setColorFilter(ATHUtil.resolveColor(activity, R.attr.iconColor), - PorterDuff.Mode.SRC_IN) + + image?.apply { + val iconPadding = activity.resources.getDimensionPixelSize(R.dimen.list_item_image_icon_padding) + setPadding(iconPadding, iconPadding, iconPadding, iconPadding) + setColorFilter(ATHUtil.resolveColor(activity, R.attr.iconColor), PorterDuff.Mode.SRC_IN) } - if (menu != null) { - menu!!.setOnClickListener { view -> - val playlist = dataSet[adapterPosition] - val popupMenu = PopupMenu(activity, view) - popupMenu.inflate(if (getItemViewType() == SMART_PLAYLIST) - R.menu.menu_item_smart_playlist - else - R.menu.menu_item_playlist) - if (playlist is LastAddedPlaylist) { - popupMenu.menu.findItem(R.id.action_clear_playlist).isVisible = false - } - popupMenu.setOnMenuItemClickListener { item -> - if (item.itemId == R.id.action_clear_playlist) { - if (playlist is AbsSmartPlaylist) { - ClearSmartPlaylistDialog.create(playlist) - .show(activity.supportFragmentManager, - "CLEAR_SMART_PLAYLIST_" + playlist.name) - return@setOnMenuItemClickListener true - } - } - PlaylistMenuHelper.handleMenuClick( - activity, dataSet[adapterPosition], item) - } - popupMenu.show() + + menu?.setOnClickListener { view -> + val playlist = dataSet[adapterPosition] + val popupMenu = PopupMenu(activity, view) + popupMenu.inflate(if (itemViewType == SMART_PLAYLIST) + R.menu.menu_item_smart_playlist + else + R.menu.menu_item_playlist) + if (playlist is LastAddedPlaylist) { + popupMenu.menu.findItem(R.id.action_clear_playlist).isVisible = false } + popupMenu.setOnMenuItemClickListener { item -> + if (item.itemId == R.id.action_clear_playlist) { + if (playlist is AbsSmartPlaylist) { + ClearSmartPlaylistDialog.create(playlist) + .show(activity.supportFragmentManager, + "CLEAR_SMART_PLAYLIST_" + playlist.name) + return@setOnMenuItemClickListener true + } + } + PlaylistMenuHelper.handleMenuClick( + activity, dataSet[adapterPosition], item) + } + popupMenu.show() } + + imageTextContainer?.cardElevation = 0f } override fun onClick(v: View?) { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/OrderablePlaylistSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/OrderablePlaylistSongAdapter.kt index 55ff8499..87b68f15 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/OrderablePlaylistSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/OrderablePlaylistSongAdapter.kt @@ -58,7 +58,7 @@ class OrderablePlaylistSongAdapter(activity: AppCompatActivity, override fun onCheckCanStartDrag(holder: ViewHolder, position: Int, x: Int, y: Int): Boolean { return onMoveItemListener != null && position > 0 && - (ViewUtil.hitTest(holder.dragView, x, y) || ViewUtil.hitTest(holder.image, x, y)) + (ViewUtil.hitTest(holder.dragView!!, x, y) || ViewUtil.hitTest(holder.image!!, x, y)) } override fun onGetItemDraggableRange(holder: ViewHolder, position: Int): ItemDraggableRange { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/PlayingQueueAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/PlayingQueueAdapter.kt index ee92dcc8..9ba99efc 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/PlayingQueueAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/PlayingQueueAdapter.kt @@ -127,7 +127,7 @@ class PlayingQueueAdapter : SongAdapter, DraggableItemAdapter, private fun setUpRecyclerView() { if (recyclerView is FastScrollRecyclerView) { - ViewUtil.setUpFastScrollRecyclerViewColor(activity, recyclerView as FastScrollRecyclerView, ThemeStore.accentColor(activity!!)) + ViewUtil.setUpFastScrollRecyclerViewColor(activity!!, recyclerView as FastScrollRecyclerView, ThemeStore.accentColor(activity!!)) } recyclerView.layoutManager = layoutManager recyclerView.adapter = adapter diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/folders/FoldersFragment.java b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/folders/FoldersFragment.java index 77e711f5..01f25f74 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/folders/FoldersFragment.java +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/folders/FoldersFragment.java @@ -253,7 +253,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements private void setUpRecyclerView() { //noinspection ConstantConditions - ViewUtil.setUpFastScrollRecyclerViewColor(getActivity(), recyclerView, + ViewUtil.INSTANCE.setUpFastScrollRecyclerViewColor(getActivity(), recyclerView, ThemeStore.Companion.accentColor(getActivity())); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); appBarLayout.addOnOffsetChangedListener(this); diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt index 8b5333e6..cb2ed355 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt @@ -40,13 +40,6 @@ import java.io.File import java.util.* class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks, HomeContract.HomeView { - override fun loadHomes(homes: ArrayList) { - recyclerView.apply { - val homeAdapter = HomeAdapter(mainActivity, homes, displayMetrics) - layoutManager = LinearLayoutManager(mainActivity) - adapter = homeAdapter - } - } val disposable: CompositeDisposable = CompositeDisposable() private lateinit var homePresenter: HomePresenter @@ -62,7 +55,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba return inflater.inflate(if (PreferenceUtil.getInstance().isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home, viewGroup, false) } - private val displayMetrics: DisplayMetrics get() { val display = mainActivity.windowManager.defaultDisplay @@ -205,77 +197,14 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba } - override fun showData(list: ArrayList) { - //homeAdapter.swapDataSet(homes); - } - - /*override fun recentArtist(artists: ArrayList) { - *//* recentArtistContainer.visibility = View.VISIBLE - recentArtist.apply { - val artistAdapter = ArtistAdapter(mainActivity, artists, PreferenceUtil.getInstance().getHomeGridStyle(context!!), false, null) - layoutManager = GridLayoutManager(mainActivity, 1, GridLayoutManager.HORIZONTAL, false) - adapter = artistAdapter - }*//* - } - - override fun recentAlbum(albums: ArrayList) { - recentAlbumsContainer.visibility = View.VISIBLE - val artistAdapter = AlbumFullWidthAdapter(mainActivity, albums, displayMetrics) - recentAlbum.adapter = artistAdapter - } - - override fun topArtists(artists: ArrayList) { - topArtistContainer.visibility = View.VISIBLE - topArtist.apply { - layoutManager = GridLayoutManager(mainActivity, 1, GridLayoutManager.HORIZONTAL, false) - val artistAdapter = ArtistAdapter(mainActivity, artists, PreferenceUtil.getInstance().getHomeGridStyle(context!!), false, null) - adapter = artistAdapter - } - - } - - override fun topAlbums(albums: ArrayList) { - topAlbumsContainer.visibility = View.VISIBLE - val artistAdapter = AlbumFullWidthAdapter(mainActivity, albums, displayMetrics) - topAlbum.adapter = artistAdapter - } - - override fun suggestions(songs: ArrayList) { - if (!songs.isEmpty()) { - suggestionContainer.visibility = View.VISIBLE - val artistAdapter = SpanSongsAdapter(mainActivity, songs, R.layout.image, false, null) - val manager = GridLayoutManager(mainActivity, 2, GridLayoutManager.HORIZONTAL, false) - manager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { - override fun getSpanSize(position: Int): Int { - return when (position) { - 0 -> 2 - else -> { - 1 - } - } - } - } - suggestionSongs.apply { - layoutManager = if (RetroUtil.isTablet()) GridLayoutManager(mainActivity, 2) else manager - adapter = artistAdapter - } + override fun showData(list: ArrayList) { + recyclerView.apply { + val homeAdapter = HomeAdapter(mainActivity, list, displayMetrics) + layoutManager = LinearLayoutManager(mainActivity) + adapter = homeAdapter } } - override fun playlists(playlists: ArrayList) { - - } - - override fun geners(songs: ArrayList) { - genreContainer.visibility = View.VISIBLE - genresRecyclerView.apply { - val genreAdapter = GenreAdapter(activity!!, songs, R.layout.item_list) - layoutManager = LinearLayoutManager(context) - adapter = genreAdapter - } - } -*/ - companion object { const val TAG: String = "BannerHomeFragment" diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/PlayerAlbumCoverFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/PlayerAlbumCoverFragment.kt index 38f424f2..482cabb5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/PlayerAlbumCoverFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/PlayerAlbumCoverFragment.kt @@ -44,8 +44,8 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan viewPager.addOnPageChangeListener(this) //noinspection ConstantConditions if (PreferenceUtil.getInstance().carouselEffect() && - !((PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.FULL) - || (PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.ADAPTIVE) + !((PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.FULL) || + (PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.ADAPTIVE) || (PreferenceUtil.getInstance().nowPlayingScreen == NowPlayingScreen.FIT))) { viewPager.clipToPadding = false viewPager.setPadding(96, 0, 96, 0) diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/adaptive/AdaptiveFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/adaptive/AdaptiveFragment.kt index ef8f8926..b741f228 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/adaptive/AdaptiveFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/adaptive/AdaptiveFragment.kt @@ -38,7 +38,8 @@ class AdaptiveFragment : AbsPlayerFragment(), PlayerAlbumCoverFragment.Callbacks val playerAlbumCoverFragment = childFragmentManager.findFragmentById(R.id.playerAlbumCoverFragment) as PlayerAlbumCoverFragment playerAlbumCoverFragment.apply { removeSlideEffect() - }.setCallbacks(this) + setCallbacks(this@AdaptiveFragment) + } } private fun setUpPlayerToolbar() { @@ -50,7 +51,8 @@ class AdaptiveFragment : AbsPlayerFragment(), PlayerAlbumCoverFragment.Callbacks ToolbarContentTintHelper.colorizeToolbar(this, primaryColor, activity) setTitleTextColor(primaryColor) setSubtitleTextColor(ThemeStore.textColorSecondary(context!!)) - }.setOnMenuItemClickListener(this) + setOnMenuItemClickListener(this@AdaptiveFragment) + } } override fun onServiceConnected() { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/blur/BlurPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/blur/BlurPlaybackControlsFragment.kt index 1bbeb328..0716809e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/blur/BlurPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/blur/BlurPlaybackControlsFragment.kt @@ -3,8 +3,6 @@ package code.name.monkey.retromusic.ui.fragments.player.blur import android.animation.ObjectAnimator import android.graphics.Color import android.graphics.PorterDuff -import android.graphics.drawable.ClipDrawable -import android.graphics.drawable.LayerDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -14,7 +12,6 @@ import android.view.animation.DecelerateInterpolator import android.view.animation.LinearInterpolator import android.widget.SeekBar import androidx.core.content.ContextCompat -import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper @@ -24,14 +21,13 @@ import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener import code.name.monkey.retromusic.service.MusicService +import code.name.monkey.retromusic.ui.fragments.VolumeFragment import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.util.MusicUtil +import code.name.monkey.retromusic.util.ViewUtil import kotlinx.android.synthetic.main.fragment_player_playback_controls.* import kotlinx.android.synthetic.main.media_button.* import kotlinx.android.synthetic.main.player_time.* -import code.name.monkey.retromusic.ui.fragments.VolumeFragment - - class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() { @@ -108,7 +104,7 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() { override fun setDark(color: Int) { lastPlaybackControlsColor = Color.WHITE - lastDisabledPlaybackControlsColor = ContextCompat.getColor(context!!, R.color.md_grey_500) + lastDisabledPlaybackControlsColor = ContextCompat.getColor(context!!, R.color.md_grey_200) title.setTextColor(lastPlaybackControlsColor) text.setTextColor(lastDisabledPlaybackControlsColor) @@ -129,13 +125,7 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() { } private fun setProgressBarColor(newColor: Int) { - val ld = progressSlider.progressDrawable as LayerDrawable - val clipDrawableProgress = ld.findDrawableByLayerId(android.R.id.progress) as ClipDrawable - clipDrawableProgress.setColorFilter(newColor, PorterDuff.Mode.SRC_IN) - - val clipDrawableBackground = ld.findDrawableByLayerId(android.R.id.background) - clipDrawableBackground.setColorFilter(MaterialValueHelper.getPrimaryDisabledTextColor(context!!, ColorUtil.isColorLight(ThemeStore.primaryColor(context!!))), PorterDuff.Mode.SRC_IN) - + ViewUtil.setProgressDrawable(progressSlider, newColor) } private fun setUpPlayPauseFab() { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorPlaybackControlsFragment.kt index b3dfc159..f2f43302 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorPlaybackControlsFragment.kt @@ -4,7 +4,6 @@ import android.animation.ObjectAnimator import android.content.res.ColorStateList import android.graphics.Color import android.graphics.PorterDuff -import android.graphics.drawable.ClipDrawable import android.graphics.drawable.LayerDrawable import android.os.Bundle import android.view.LayoutInflater @@ -121,7 +120,7 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() { progressSlider.thumbTintList = ColorStateList.valueOf(c1) val ld = progressSlider.progressDrawable as LayerDrawable - val clipDrawableProgress = ld.findDrawableByLayerId(android.R.id.progress) as ClipDrawable + val clipDrawableProgress = ld.findDrawableByLayerId(android.R.id.progress) clipDrawableProgress.setColorFilter(c1, PorterDuff.Mode.SRC_IN) val clipDrawableBackground = ld.findDrawableByLayerId(android.R.id.background) diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/flat/FlatPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/flat/FlatPlaybackControlsFragment.kt index cb4e9c8c..e692ed68 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/flat/FlatPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/flat/FlatPlaybackControlsFragment.kt @@ -24,6 +24,7 @@ import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.ViewUtil import kotlinx.android.synthetic.main.fragment_flat_player_playback_controls.* import kotlinx.android.synthetic.main.player_time.* import kotlinx.android.synthetic.main.volume_controls.* @@ -114,7 +115,7 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback { } private fun setProgressBarColor(dark: Int) { - TintHelper.setTintAuto(progressSlider!!, dark, false) + ViewUtil.setProgressDrawable(progressSlider, dark) } private fun updateTextColors(color: Int) { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/full/FullPlaybackControlsFragment.kt index 1d2f9ac9..aa69ccd6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/full/FullPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/full/FullPlaybackControlsFragment.kt @@ -3,8 +3,6 @@ package code.name.monkey.retromusic.ui.fragments.player.full import android.animation.ObjectAnimator import android.graphics.Color import android.graphics.PorterDuff -import android.graphics.drawable.ClipDrawable -import android.graphics.drawable.LayerDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -24,6 +22,7 @@ import code.name.monkey.retromusic.ui.fragments.VolumeFragment import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.ViewUtil import kotlinx.android.synthetic.main.fragment_full_player_controls.* import kotlinx.android.synthetic.main.player_time.* @@ -117,9 +116,7 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment() { } private fun setProgressBarColor(dark: Int) { - val ld = progressSlider!!.progressDrawable as LayerDrawable - val clipDrawable = ld.findDrawableByLayerId(android.R.id.progress) as ClipDrawable - clipDrawable.setColorFilter(dark, PorterDuff.Mode.SRC_IN) + ViewUtil.setProgressDrawable(progressSlider, dark) } override fun onServiceConnected() { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/normal/PlayerPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/normal/PlayerPlaybackControlsFragment.kt index d9073eef..24c7b96f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/normal/PlayerPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/normal/PlayerPlaybackControlsFragment.kt @@ -25,6 +25,7 @@ import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.ViewUtil import kotlinx.android.synthetic.main.fragment_player_playback_controls.* import kotlinx.android.synthetic.main.media_button.* import kotlinx.android.synthetic.main.player_time.* @@ -128,13 +129,7 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment() { private fun setProgressBarColor(newColor: Int) { - val ld = progressSlider.progressDrawable as LayerDrawable - - val clipDrawableProgress = ld.findDrawableByLayerId(android.R.id.progress) as ClipDrawable - clipDrawableProgress.setColorFilter(newColor, PorterDuff.Mode.SRC_IN) - - val clipDrawableBackground = ld.findDrawableByLayerId(android.R.id.background) - clipDrawableBackground.setColorFilter(MaterialValueHelper.getPrimaryDisabledTextColor(context!!, ColorUtil.isColorLight(ThemeStore.primaryColor(context!!))), PorterDuff.Mode.SRC_IN) + ViewUtil.setProgressDrawable(progressSlider, newColor) } private fun setUpPlayPauseFab() { diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/plain/PlainPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/plain/PlainPlaybackControlsFragment.kt index 5fb4bf61..9c158546 100644 --- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/plain/PlainPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/plain/PlainPlaybackControlsFragment.kt @@ -3,8 +3,6 @@ package code.name.monkey.retromusic.ui.fragments.player.plain import android.animation.ObjectAnimator import android.content.res.ColorStateList import android.graphics.PorterDuff -import android.graphics.drawable.ClipDrawable -import android.graphics.drawable.LayerDrawable import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -26,6 +24,7 @@ import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.PreferenceUtil +import code.name.monkey.retromusic.util.ViewUtil import kotlinx.android.synthetic.main.fragment_plain_controls_fragment.* import kotlinx.android.synthetic.main.media_button.* import kotlinx.android.synthetic.main.player_time.* @@ -139,9 +138,7 @@ class PlainPlaybackControlsFragment : AbsPlayerControlsFragment() { private fun setProgressBarColor(newColor: Int) { progressSlider.thumbTintList = ColorStateList.valueOf(newColor) - val ld = progressSlider.progressDrawable as LayerDrawable - val clipDrawable = ld.findDrawableByLayerId(android.R.id.progress) as ClipDrawable - clipDrawable.setColorFilter(newColor, PorterDuff.Mode.SRC_IN) + ViewUtil.setProgressDrawable(progressSlider, newColor) } private fun setUpShuffleButton() { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java index 5c1f5177..74736484 100755 --- a/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java +++ b/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java @@ -2,6 +2,7 @@ package code.name.monkey.retromusic.util; import android.app.Activity; import android.content.ActivityNotFoundException; +import android.content.Context; import android.content.Intent; import android.media.audiofx.AudioEffect; import android.widget.Toast; @@ -104,8 +105,8 @@ public class NavigationUtil { ActivityCompat.startActivity(activity, intent, null); } - public static void goToProVersion(@NonNull Activity activity) { - ActivityCompat.startActivity(activity, new Intent(activity, PurchaseActivity.class), null); + public static void goToProVersion(@NonNull Context context) { + ActivityCompat.startActivity(context, new Intent(context, PurchaseActivity.class), null); } public static void goToSettings(@NonNull Activity activity) { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java index 2e86a72b..cc3c464f 100755 --- a/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java +++ b/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java @@ -63,26 +63,6 @@ public class RetroUtil { return ContentUris.withAppendedId(Uri.parse("content://media/external/audio/albumart"), paramInt); } - public static String EncodeString(String string) { - return string.replace("%", "%25") - .replace(".", "%2E") - .replace("#", "%23") - .replace("$", "%24") - .replace("/", "%2F") - .replace("[", "%5B") - .replace("]", "%5D"); - } - - public static String DecodeString(String string) { - return string.replace("%25", "%") - .replace("%2E", ".") - .replace("%23", "#") - .replace("%24", "$") - .replace("%2F", "/") - .replace("%5B", "[") - .replace("%5D", "]"); - } - public static boolean isTablet() { return App.Companion.getContext().getResources().getConfiguration().smallestScreenWidthDp >= 600; } diff --git a/app/src/main/java/code/name/monkey/retromusic/util/ViewUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/ViewUtil.kt index 002f50ad..b34ecdf6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/ViewUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/ViewUtil.kt @@ -7,31 +7,38 @@ import android.content.Context import android.content.res.Resources import android.graphics.Color import android.graphics.PorterDuff +import android.graphics.drawable.LayerDrawable import android.os.Build -import android.util.DisplayMetrics import android.view.View -import android.view.ViewGroup import android.view.animation.PathInterpolator import android.widget.SeekBar import android.widget.TextView - -import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView - import androidx.annotation.ColorInt import androidx.core.view.ViewCompat import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper +import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView object ViewUtil { - val RETRO_MUSIC_ANIM_TIME = 1000 + const val RETRO_MUSIC_ANIM_TIME = 1000 fun createTextColorTransition(v: TextView, @ColorInt startColor: Int, @ColorInt endColor: Int): Animator { return createColorAnimator(v, "textColor", startColor, endColor) } - fun setProgressDrawable(progressSlider: SeekBar, newColor: Int) {} + fun setProgressDrawable(progressSlider: SeekBar, newColor: Int) { + val ld = progressSlider.progressDrawable as LayerDrawable + + val clipDrawableProgress = ld.findDrawableByLayerId(android.R.id.progress) + clipDrawableProgress.setColorFilter(newColor, PorterDuff.Mode.SRC_IN) + + val clipDrawableBackground = ld.findDrawableByLayerId(android.R.id.background) + clipDrawableBackground.setColorFilter(MaterialValueHelper.getPrimaryDisabledTextColor(progressSlider.context, ColorUtil.isColorLight(ThemeStore.primaryColor(progressSlider.context))), PorterDuff.Mode.SRC_IN) + + + } private fun createColorAnimator(target: Any, propertyName: String, @ColorInt startColor: Int, @ColorInt endColor: Int): Animator { val animator: ObjectAnimator @@ -89,8 +96,4 @@ object ViewUtil { val metrics = resources.displayMetrics return dp * metrics.density } - - fun createBackgroundColorTransition(colorGradientBackground: View?, lastColor: Int, newColor: Int): Animator { - return null - } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/views/MetalRecyclerViewPager.kt b/app/src/main/java/code/name/monkey/retromusic/views/MetalRecyclerViewPager.kt index 958637a1..0acfa535 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/MetalRecyclerViewPager.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/MetalRecyclerViewPager.kt @@ -59,20 +59,21 @@ class MetalRecyclerViewPager : RecyclerView { fun updateDisplayMetrics() { itemWidth = if (RetroUtil.isTablet()) { displayMetrics.widthPixels / 2 - itemMargin * 3 + } else if (RetroUtil.isLandscape()) { + ((displayMetrics.widthPixels / 1.5f) - itemMargin).toInt() } else { displayMetrics.widthPixels - itemMargin } } override fun onBindViewHolder(holder: VH, position: Int) { - var currentItemWidth = itemWidth - + val currentItemWidth = itemWidth if (position == 0) { - currentItemWidth += itemMargin - holder.rootLayout.setPadding(0, 0, 0, 0) + //currentItemWidth += itemMargin; + holder.rootLayout.setPadding(0, 0, 0, 0); } else if (position == itemCount - 1) { - currentItemWidth += itemMargin - holder.rootLayout.setPadding(0, 0, 0, 0) + //currentItemWidth += itemMargin; + holder.rootLayout.setPadding(0, 0, 0, 0); } val height = holder.rootLayout.layoutParams.height diff --git a/app/src/main/res/drawable/color_progress_seek.xml b/app/src/main/res/drawable/color_progress_seek.xml index 5ad5b9a6..b3c8c52c 100755 --- a/app/src/main/res/drawable/color_progress_seek.xml +++ b/app/src/main/res/drawable/color_progress_seek.xml @@ -1,26 +1,17 @@ - + - + - - - - - - - - - - - - + + + - + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_text_fields_black_24dp.xml b/app/src/main/res/drawable/ic_text_fields_black_24dp.xml index dd81ddfd..51bf61f1 100644 --- a/app/src/main/res/drawable/ic_text_fields_black_24dp.xml +++ b/app/src/main/res/drawable/ic_text_fields_black_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_time_lapse_white_24dp.xml b/app/src/main/res/drawable/ic_time_lapse_white_24dp.xml index a8b409b1..33025b21 100644 --- a/app/src/main/res/drawable/ic_time_lapse_white_24dp.xml +++ b/app/src/main/res/drawable/ic_time_lapse_white_24dp.xml @@ -1,4 +1,12 @@ - + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/promotional.webp b/app/src/main/res/drawable/promotional.webp index 82b50223..321f68d9 100644 Binary files a/app/src/main/res/drawable/promotional.webp and b/app/src/main/res/drawable/promotional.webp differ diff --git a/app/src/main/res/layout-land/fragment_banner_home.xml b/app/src/main/res/layout-land/fragment_banner_home.xml index c530f5ab..35e3c038 100644 --- a/app/src/main/res/layout-land/fragment_banner_home.xml +++ b/app/src/main/res/layout-land/fragment_banner_home.xml @@ -67,7 +67,10 @@ - + diff --git a/app/src/main/res/layout-land/fragment_home.xml b/app/src/main/res/layout-land/fragment_home.xml index c6851914..8fa9ba3d 100644 --- a/app/src/main/res/layout-land/fragment_home.xml +++ b/app/src/main/res/layout-land/fragment_home.xml @@ -68,7 +68,11 @@ - + diff --git a/app/src/main/res/layout-land/pager_item.xml b/app/src/main/res/layout-land/pager_item.xml index c2782744..920de1e1 100644 --- a/app/src/main/res/layout-land/pager_item.xml +++ b/app/src/main/res/layout-land/pager_item.xml @@ -10,7 +10,7 @@ diff --git a/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml b/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml index cd7ccfb7..9b2e3c53 100644 --- a/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml +++ b/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml @@ -69,7 +69,10 @@ - + diff --git a/app/src/main/res/layout-xlarge-land/fragment_home.xml b/app/src/main/res/layout-xlarge-land/fragment_home.xml index 6c216571..7afa5ed2 100644 --- a/app/src/main/res/layout-xlarge-land/fragment_home.xml +++ b/app/src/main/res/layout-xlarge-land/fragment_home.xml @@ -70,7 +70,11 @@ - + diff --git a/app/src/main/res/layout-xlarge/abs_playlists.xml b/app/src/main/res/layout-xlarge/abs_playlists.xml index 5ec995ee..d70df97d 100644 --- a/app/src/main/res/layout-xlarge/abs_playlists.xml +++ b/app/src/main/res/layout-xlarge/abs_playlists.xml @@ -5,9 +5,10 @@ android:layout_height="wrap_content" android:orientation="vertical"> - + android:text="@string/for_you" + android:textStyle="bold" /> - - + android:visibility="gone" + tools:visibility="visible" /> - + android:textColor="?android:attr/textColorPrimary" + android:textStyle="bold" /> - - + diff --git a/app/src/main/res/layout-xlarge/fragment_home.xml b/app/src/main/res/layout-xlarge/fragment_home.xml index efde06ca..5510cc12 100644 --- a/app/src/main/res/layout-xlarge/fragment_home.xml +++ b/app/src/main/res/layout-xlarge/fragment_home.xml @@ -72,7 +72,11 @@ - + diff --git a/app/src/main/res/layout-xlarge/fragment_mini_player.xml b/app/src/main/res/layout-xlarge/fragment_mini_player.xml index e6ea67e6..2330dc62 100644 --- a/app/src/main/res/layout-xlarge/fragment_mini_player.xml +++ b/app/src/main/res/layout-xlarge/fragment_mini_player.xml @@ -80,14 +80,12 @@ - + android:progressDrawable="@drawable/color_progress_seek" /> \ No newline at end of file diff --git a/app/src/main/res/layout/abs_playlists.xml b/app/src/main/res/layout/abs_playlists.xml index 18c49bbd..0188a6d1 100644 --- a/app/src/main/res/layout/abs_playlists.xml +++ b/app/src/main/res/layout/abs_playlists.xml @@ -7,6 +7,7 @@ - - - @@ -40,7 +41,7 @@ android:layout_height="wrap_content" android:nestedScrollingEnabled="false" /> - diff --git a/app/src/main/res/layout/activity_pro_version.xml b/app/src/main/res/layout/activity_pro_version.xml index c1780638..33ff9fc7 100644 --- a/app/src/main/res/layout/activity_pro_version.xml +++ b/app/src/main/res/layout/activity_pro_version.xml @@ -55,21 +55,168 @@ android:background="?dividerColor" /> - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_delete.xml b/app/src/main/res/layout/dialog_delete.xml index 1cb0d9ee..0366b40d 100644 --- a/app/src/main/res/layout/dialog_delete.xml +++ b/app/src/main/res/layout/dialog_delete.xml @@ -1,35 +1,42 @@ + android:orientation="vertical" + android:paddingTop="8dp"> + android:text="@string/remove_song_from_playlist_title" + android:textStyle="bold" /> + android:textAllCaps="false" + app:strokeWidth="2dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_playlist.xml b/app/src/main/res/layout/dialog_playlist.xml index 42d4c194..982a0175 100644 --- a/app/src/main/res/layout/dialog_playlist.xml +++ b/app/src/main/res/layout/dialog_playlist.xml @@ -39,28 +39,33 @@ android:textAppearance="@style/TextAppearance.AppCompat.Subhead" /> - + android:layout_marginStart="12dp" + android:layout_marginTop="8dp" + android:layout_marginEnd="12dp" + android:gravity="center_vertical" + android:paddingTop="12dp" + android:paddingBottom="12dp" + android:text="@string/create_action" + app:backgroundTint="@color/md_pink_A400" /> + + - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_remove_from_playlist.xml b/app/src/main/res/layout/dialog_remove_from_playlist.xml index 8b916c5e..52f00e3d 100644 --- a/app/src/main/res/layout/dialog_remove_from_playlist.xml +++ b/app/src/main/res/layout/dialog_remove_from_playlist.xml @@ -1,9 +1,10 @@ + android:orientation="vertical" + android:paddingTop="8dp"> - + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + android:gravity="start|center_vertical" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:text="@string/remove_action" + android:textAllCaps="false" /> - + android:layout_marginStart="8dp" + android:layout_marginEnd="8dp" + android:gravity="start|center_vertical" + android:paddingTop="16dp" + android:paddingBottom="16dp" + android:text="@android:string/cancel" + android:textAllCaps="false" + app:strokeWidth="2dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_sleep_timer.xml b/app/src/main/res/layout/dialog_sleep_timer.xml index e093f6b2..8c97801e 100644 --- a/app/src/main/res/layout/dialog_sleep_timer.xml +++ b/app/src/main/res/layout/dialog_sleep_timer.xml @@ -41,34 +41,34 @@ android:thumb="@drawable/switch_thumb_material" tools:progress="20" /> - - + android:layout_marginStart="12dp" + android:layout_marginEnd="12dp" + android:gravity="center_vertical" + android:paddingTop="12dp" + android:paddingBottom="12dp" + android:text="@string/action_set" + android:textColor="@color/md_white_1000" + app:backgroundTint="@color/md_pink_A400" /> - - + + - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_adaptive_player.xml b/app/src/main/res/layout/fragment_adaptive_player.xml index 1150691a..20b8aff3 100644 --- a/app/src/main/res/layout/fragment_adaptive_player.xml +++ b/app/src/main/res/layout/fragment_adaptive_player.xml @@ -47,13 +47,10 @@ - + android:layout_weight="1"> - + + android:layout_height="match_parent" + android:layout_gravity="center"> diff --git a/app/src/main/res/layout/fragment_banner_home.xml b/app/src/main/res/layout/fragment_banner_home.xml index 01032148..8378ba66 100644 --- a/app/src/main/res/layout/fragment_banner_home.xml +++ b/app/src/main/res/layout/fragment_banner_home.xml @@ -60,10 +60,13 @@ app:layout_scrollFlags="scroll|enterAlways" tools:ignore="UnusedAttribute"> - + + + + + + + + + + + + + + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mini_player.xml b/app/src/main/res/layout/fragment_mini_player.xml index f697c263..549e399f 100644 --- a/app/src/main/res/layout/fragment_mini_player.xml +++ b/app/src/main/res/layout/fragment_mini_player.xml @@ -83,13 +83,11 @@ - + android:progressDrawable="@drawable/color_progress_seek" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_player_playback_controls.xml b/app/src/main/res/layout/fragment_player_playback_controls.xml index 27ac1567..2109843f 100755 --- a/app/src/main/res/layout/fragment_player_playback_controls.xml +++ b/app/src/main/res/layout/fragment_player_playback_controls.xml @@ -1,6 +1,5 @@ diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml index b57c43f9..9f292d0d 100755 --- a/app/src/main/res/layout/item_list.xml +++ b/app/src/main/res/layout/item_list.xml @@ -38,8 +38,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - app:cardCornerRadius="6dp" - app:cardElevation="0dp"> + app:cardCornerRadius="6dp"> + android:textSize="16sp" /> + android:paddingLeft="16dp" + android:paddingEnd="0dp"> - + android:minHeight="40dp" /> @@ -33,37 +33,35 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:layout_marginBottom="12dp" - android:layout_marginTop="12dp" android:layout_weight="1.0" android:orientation="vertical" - android:paddingEnd="16dp" - android:paddingStart="16dp"> + android:paddingStart="16dp" + android:paddingEnd="0dp"> + android:paddingStart="6dp" + android:paddingEnd="0dp"> - - diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index da1f8f28..1c115df2 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -129,6 +129,8 @@ ?iconColor ?iconColor center_vertical + 12dp + 12dp