diff --git a/.gitignore b/.gitignore
index 1932b252c..a9135c63c 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 75e60e618..00485c9c3 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 3647f65b8..e3161cb7e 100644
--- a/app/src/main/assets/retro-changelog.html
+++ b/app/src/main/assets/retro-changelog.html
@@ -1 +1 @@
-
v3.0.540
Highlights
- Kotlin conversion from Good old Java
- Outline style system icons
- New Material Design principles and Guide lines
- Holiday Theme
Changelog
- Fixed app clear data when crash happens
- Updated translations
- By default theme will be dark
- Now you can add search app shortcut in home screen
- Last selected Lyrics options saved
- Fonts are removed to make it fast loading
- Now you can add plain text home screen widget
- Good old side navigation bar for options
- Bug report for better tracking with milestones
- Snow fall effect can be enable from other settings(Works only one normal theme)
- Click new music mix to play songs
- Gradient image option for gird list
- Clear button for playing queue
- Folder list back button
- New theme Fit
- On library click on toolbar for accessing main menu
- On home click on toolbar for accessing search
- BottomSheetDialogue is now adaptable to screens, background colour and text size
consistency.
- Removed coloured navigation bar option to making app adapt the primary colour
- Swipe up gesture for now playing removed, replaced with "tap to open", To achieve
transparent navigation bar for desired themes.
- Improved tablet UI and home screen by adding suggestions toggle banner issues.
- Improving lyrics page
- Updated image loading libraries(might loose your current artist images)
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
- Kotlin conversion from Good old Java
- Outline style system icons
- New Material Design principles and Guide lines
- Holiday Theme
Changelog
- Added favorite songs in home section
- Combined home sections to single Recycler View to make load faster
- Fixed app clear data when crash happens
- Updated translations
- By default theme will be dark
- Now you can add search app shortcut in home screen
- Last selected Lyrics options saved
- Fonts are removed to make it fast loading
- Now you can add plain text home screen widget
- Good old side navigation bar for options
- Bug report for better tracking with milestones
- Snow fall effect can be enable from other settings(Works only one normal theme)
- Click new music mix to play songs
- Gradient image option for gird list
- Clear button for playing queue
- Folder list back button
- New theme Fit
- On library click on toolbar for accessing main menu
- On home click on toolbar for accessing search
- BottomSheetDialogue is now adaptable to screens, background colour and text size
consistency.
- Removed coloured navigation bar option to making app adapt the primary colour
- Swipe up gesture for now playing removed, replaced with "tap to open", To achieve
transparent navigation bar for desired themes.
- Improved tablet UI and home screen by adding suggestions toggle banner issues.
- Improving lyrics page
- Updated image loading libraries(might loose your current artist images)
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 b6dcdc400..2f9c4a328 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 b8ac3b63f..2c8927476 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 229073340..2f9e44105 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 eeb3645a2..6ed76a962 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 4f9c7183b..369038593 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 41bf91ff1..266d6f0d8 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 12107ec36..a4679a591 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 96f778fef..70e479d0c 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 4602708fd..6d7371e5d 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 41aadb2cc..9c69ffebd 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 a96fcba9d..26a4c9c5f 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 29ca03577..1d5727689 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 fb64107b7..27405c44b 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 449d0c77f..0f5a5c35f 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 ba4b76572..a04f31263 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 ae7af07df..c44f1f6ac 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 32a346e0f..f80e53956 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 dad72616c..9e3291ba8 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 088560501..1ab5e0d7a 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 d2395c343..d4dd4c7ca 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 b62a4dd3d..18515d200 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 169a4a60d..e4b752f04 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 84c891916..9fbccfeeb 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 4557a47cc..65141292b 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 f77da5363..e75ee3727 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 e9037ec89..f4dd5a602 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 58c5f026e..af2bc1e8a 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 75b56b317..0309e9235 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 b0b667414..056a2e6f8 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 d72c50c47..5bad4115e 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 58784fab9..193448930 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 89910457e..c8e57945d 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 908d0ba54..70a876ae1 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 4cb289c2b..ea3f837c0 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 72dc020ed..d3b63896d 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 4fac4696f..fdecd3890 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 55ff84998..87b68f155 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 ee92dcc83..9ba99efcc 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 77e711f52..01f25f740 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 8b5333e6c..cb2ed355c 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 38f424f2f..482cabb5f 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 ef8f89262..b741f2289 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 1bbeb3285..0716809e5 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 b3dfc159f..f2f433028 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 cb4e9c8c9..e692ed685 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 1d2f9ac92..aa69ccd63 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 d9073eef4..24c7b96f0 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 5fb4bf614..9c1585468 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 5c1f5177c..74736484f 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 2e86a72b8..cc3c464f3 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 002f50add..b34ecdf67 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 958637a1f..0acfa535f 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 5ad5b9a65..b3c8c52c3 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 dd81ddfd3..51bf61f15 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 a8b409b1d..33025b217 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 82b502235..321f68d96 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 c530f5ab0..35e3c0382 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 c68519145..8fa9ba3d6 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 c2782744d..920de1e13 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 cd7ccfb76..9b2e3c53c 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 6c216571b..7afa5ed26 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 5ec995eee..d70df97dd 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 efde06cac..5510cc124 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 e6ea67e69..2330dc62b 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 18c49bbd5..0188a6d1d 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 c17806381..33ff9fc78 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 1cb0d9ee8..0366b40da 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 42d4c1941..982a01753 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 8b916c5e6..52f00e3d4 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 e093f6b28..8c97801ef 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 1150691a1..20b8aff3e 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 01032148d..8378ba662 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 f697c263b..549e399f2 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 27ac1567c..2109843fe 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 b57c43f9b..9f292d0da 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 da1f8f286..1c115df28 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