From 87954b43f2c45bdfdcc3bc933bb16b634ada2b36 Mon Sep 17 00:00:00 2001 From: h4h13 Date: Mon, 17 Feb 2020 16:50:08 +0530 Subject: [PATCH] Code refactor ArrayList to List --- .../activities/AlbumDetailsActivity.kt | 4 +- .../activities/ArtistDetailActivity.kt | 2 +- .../activities/GenreDetailsActivity.kt | 2 +- .../retromusic/activities/MainActivity.kt | 16 ++++- .../activities/PlaylistDetailActivity.kt | 2 +- .../monkey/retromusic/adapter/GenreAdapter.kt | 11 +--- .../monkey/retromusic/adapter/HomeAdapter.kt | 5 +- .../retromusic/adapter/album/AlbumAdapter.kt | 22 +------ .../adapter/album/AlbumFullWidthAdapter.kt | 2 +- .../adapter/album/HorizontalAlbumAdapter.kt | 9 +-- .../adapter/artist/ArtistAdapter.kt | 10 +--- .../adapter/playlist/PlaylistAdapter.kt | 5 +- .../adapter/song/AbsOffsetSongAdapter.kt | 3 +- .../song/OrderablePlaylistSongAdapter.kt | 4 +- .../adapter/song/PlaylistSongAdapter.kt | 3 +- .../adapter/song/ShuffleButtonSongAdapter.kt | 3 +- .../adapter/song/SimpleSongAdapter.kt | 5 +- .../retromusic/adapter/song/SongAdapter.kt | 12 ++-- .../retromusic/dialogs/AddToPlaylistDialog.kt | 11 ++-- .../retromusic/dialogs/DeleteSongsDialog.kt | 4 +- ...PagerRecyclerViewCustomGridSizeFragment.kt | 6 -- .../fragments/mainactivity/AlbumsFragment.kt | 29 +++------- .../fragments/mainactivity/ArtistsFragment.kt | 19 +----- .../fragments/mainactivity/GenresFragment.kt | 7 +-- .../mainactivity/PlaylistsFragment.kt | 4 +- .../fragments/mainactivity/SongsFragment.kt | 18 +----- .../mainactivity/home/BannerHomeFragment.kt | 3 +- .../retromusic/helper/MusicPlayerRemote.kt | 58 +++++++------------ .../name/monkey/retromusic/mvp/BaseView.kt | 1 + .../mvp/presenter/AlbumDetailsPresenter.kt | 5 +- .../mvp/presenter/AlbumPresenter.kt | 48 +++++++-------- .../mvp/presenter/ArtistDetailsPresenter.kt | 22 +++---- .../mvp/presenter/ArtistPresenter.kt | 18 ++++-- .../mvp/presenter/GenreDetailsPresenter.kt | 26 ++++----- .../mvp/presenter/GenrePresenter.kt | 22 ++++--- .../retromusic/mvp/presenter/HomePresenter.kt | 2 +- .../mvp/presenter/PlaylistPresenter.kt | 20 ++++--- .../mvp/presenter/PlaylistSongsPresenter.kt | 27 +++++---- .../retromusic/mvp/presenter/SongPresenter.kt | 57 ++++++++++-------- .../retromusic/service/MusicService.java | 2 +- app/src/main/res/layout-land/pager_item.xml | 4 +- .../res/layout-xlarge-land/pager_item.xml | 4 +- app/src/main/res/layout-xlarge/pager_item.xml | 4 +- 43 files changed, 236 insertions(+), 305 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt index a1318a86..64262a28 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt @@ -214,12 +214,12 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C albumDetailsPresenter.aboutAlbum(album.artistName!!, album.title!!) } - override fun moreAlbums(albums: ArrayList) { + override fun moreAlbums(albums: List) { moreTitle.show() moreRecyclerView.show() moreTitle.text = String.format(getString(R.string.label_more_from), album.artistName) - val albumAdapter = HorizontalAlbumAdapter(this, albums, false, null) + val albumAdapter = HorizontalAlbumAdapter(this, albums, null) moreRecyclerView.layoutManager = GridLayoutManager( this, 1, diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt index 359bfde6..a2e822fb 100755 --- a/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt @@ -154,7 +154,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView, } private fun setupRecyclerView() { - albumAdapter = HorizontalAlbumAdapter(this, ArrayList(), false, null) + albumAdapter = HorizontalAlbumAdapter(this, ArrayList(), null) albumRecyclerView.apply { itemAnimator = DefaultItemAnimator() layoutManager = GridLayoutManager(this.context, 1, GridLayoutManager.HORIZONTAL, false) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt index 23d0b851..b9238f83 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt @@ -129,7 +129,7 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder, GenreDet }) } - override fun songs(songs: ArrayList) { + override fun songs(songs: List) { songAdapter.swapDataSet(songs) } diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index 7a9513d7..01eb8532 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -220,8 +220,20 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP } override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) { - if (key == PreferenceUtil.GENERAL_THEME || key == PreferenceUtil.BLACK_THEME || key == PreferenceUtil.ADAPTIVE_COLOR_APP || key == PreferenceUtil.DOMINANT_COLOR || key == PreferenceUtil.USER_NAME || key == PreferenceUtil.TOGGLE_FULL_SCREEN || key == PreferenceUtil.TOGGLE_VOLUME || key == PreferenceUtil.ROUND_CORNERS || key == PreferenceUtil.CAROUSEL_EFFECT || key == PreferenceUtil.NOW_PLAYING_SCREEN_ID || key == PreferenceUtil.TOGGLE_GENRE || key == PreferenceUtil.BANNER_IMAGE_PATH || key == PreferenceUtil.PROFILE_IMAGE_PATH || key == PreferenceUtil.CIRCULAR_ALBUM_ART || key == PreferenceUtil.KEEP_SCREEN_ON || key == PreferenceUtil.TOGGLE_SEPARATE_LINE || key == PreferenceUtil.ALBUM_GRID_STYLE || key == PreferenceUtil.ARTIST_GRID_STYLE || key == PreferenceUtil.TOGGLE_HOME_BANNER || key == PreferenceUtil.TOGGLE_ADD_CONTROLS || key == PreferenceUtil.ALBUM_COVER_STYLE || key == PreferenceUtil.HOME_ARTIST_GRID_STYLE || key == PreferenceUtil.ALBUM_COVER_TRANSFORM || key == PreferenceUtil.DESATURATED_COLOR || key == PreferenceUtil.TAB_TEXT_MODE || key == PreferenceUtil.LIBRARY_CATEGORIES - ) postRecreate() + if (key == PreferenceUtil.GENERAL_THEME || key == PreferenceUtil.BLACK_THEME || + key == PreferenceUtil.ADAPTIVE_COLOR_APP || key == PreferenceUtil.DOMINANT_COLOR || + key == PreferenceUtil.USER_NAME || key == PreferenceUtil.TOGGLE_FULL_SCREEN || + key == PreferenceUtil.TOGGLE_VOLUME || key == PreferenceUtil.ROUND_CORNERS || + key == PreferenceUtil.CAROUSEL_EFFECT || key == PreferenceUtil.NOW_PLAYING_SCREEN_ID || + key == PreferenceUtil.TOGGLE_GENRE || key == PreferenceUtil.BANNER_IMAGE_PATH || + key == PreferenceUtil.PROFILE_IMAGE_PATH || key == PreferenceUtil.CIRCULAR_ALBUM_ART || + key == PreferenceUtil.KEEP_SCREEN_ON || key == PreferenceUtil.TOGGLE_SEPARATE_LINE || + key == PreferenceUtil.TOGGLE_HOME_BANNER || key == PreferenceUtil.TOGGLE_ADD_CONTROLS || + key == PreferenceUtil.ALBUM_COVER_STYLE || key == PreferenceUtil.HOME_ARTIST_GRID_STYLE || + key == PreferenceUtil.ALBUM_COVER_TRANSFORM || key == PreferenceUtil.DESATURATED_COLOR || + key == PreferenceUtil.TAB_TEXT_MODE || key == PreferenceUtil.LIBRARY_CATEGORIES + ) + postRecreate() } private fun selectedFragment(itemId: Int) { diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt index f09afd9a..ab22a62e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt @@ -238,7 +238,7 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli emptyText.visibility = View.VISIBLE } - override fun songs(songs: ArrayList) { + override fun songs(songs: List) { adapter.swapDataSet(songs) } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt index ae5ed811..df4bf73b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt @@ -9,7 +9,6 @@ import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder import code.name.monkey.retromusic.model.Genre import code.name.monkey.retromusic.util.NavigationUtil -import java.util.ArrayList import java.util.Locale /** @@ -18,16 +17,10 @@ import java.util.Locale class GenreAdapter( private val activity: Activity, - dataSet: ArrayList, + var dataSet: List, private val mItemLayoutRes: Int ) : RecyclerView.Adapter() { - var dataSet = ArrayList() - private set - - init { - this.dataSet = dataSet - } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder(LayoutInflater.from(activity).inflate(mItemLayoutRes, parent, false)) @@ -48,7 +41,7 @@ class GenreAdapter( return dataSet.size } - fun swapDataSet(list: ArrayList) { + fun swapDataSet(list: List) { dataSet = list notifyDataSetChanged() } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt index 10ce8b0a..cd86aa67 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt @@ -27,7 +27,7 @@ class HomeAdapter( private val displayMetrics: DisplayMetrics ) : RecyclerView.Adapter() { - private var list = ArrayList() + private var list = listOf() override fun getItemViewType(position: Int): Int { return list[position].homeSection @@ -81,7 +81,7 @@ class HomeAdapter( return list.size } - fun swapData(sections: ArrayList) { + fun swapData(sections: List) { list = sections notifyDataSetChanged() } @@ -121,7 +121,6 @@ class HomeAdapter( activity, list, PreferenceUtil.getInstance(activity).getHomeGridStyle(activity), - false, null ) adapter = artistAdapter diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt index 13f2fc89..11be9867 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt @@ -29,9 +29,8 @@ import me.zhanghai.android.fastscroll.PopupTextProvider open class AlbumAdapter( protected val activity: AppCompatActivity, - dataSet: ArrayList, + var dataSet: List, protected var itemLayoutRes: Int, - usePalette: Boolean, cabHolder: CabHolder? ) : AbsMultiSelectAdapter( activity, @@ -39,28 +38,11 @@ open class AlbumAdapter( R.menu.menu_media_selection ), PopupTextProvider { - var dataSet: ArrayList - protected set - - protected var usePalette = false - init { - this.dataSet = dataSet - this.usePalette = usePalette this.setHasStableIds(true) } - fun useItemLayout(itemLayoutRes: Int) { - this.itemLayoutRes = itemLayoutRes - notifyDataSetChanged() - } - - fun usePalette(usePalette: Boolean) { - this.usePalette = usePalette - notifyDataSetChanged() - } - - fun swapDataSet(dataSet: ArrayList) { + fun swapDataSet(dataSet: List) { this.dataSet = dataSet notifyDataSetChanged() } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumFullWidthAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumFullWidthAdapter.kt index 24c088c8..52864f2e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumFullWidthAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumFullWidthAdapter.kt @@ -32,7 +32,7 @@ import com.bumptech.glide.Glide class AlbumFullWidthAdapter( private val activity: Activity, - private val dataSet: ArrayList, + private val dataSet: List, metrics: DisplayMetrics ) : MetalRecyclerViewPager.MetalAdapter(metrics) { diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/album/HorizontalAlbumAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/album/HorizontalAlbumAdapter.kt index 5fb268b1..be289bab 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/album/HorizontalAlbumAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/album/HorizontalAlbumAdapter.kt @@ -12,15 +12,13 @@ import code.name.monkey.retromusic.interfaces.CabHolder import code.name.monkey.retromusic.model.Album import code.name.monkey.retromusic.util.MusicUtil import com.bumptech.glide.Glide -import java.util.ArrayList class HorizontalAlbumAdapter( activity: AppCompatActivity, - dataSet: ArrayList, - usePalette: Boolean, + dataSet: List, cabHolder: CabHolder? ) : AlbumAdapter( - activity, dataSet, HorizontalAdapterHelper.LAYOUT_RES, usePalette, cabHolder + activity, dataSet, HorizontalAdapterHelper.LAYOUT_RES, cabHolder ) { override fun createViewHolder(view: View, viewType: Int): ViewHolder { @@ -45,8 +43,7 @@ class HorizontalAlbumAdapter( } override fun onColorReady(color: Int) { - if (usePalette) setColors(color, holder) - else setColors(albumArtistFooterColor, holder) + setColors(color, holder) } }) } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt index 362299e3..fb183ece 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/artist/ArtistAdapter.kt @@ -28,24 +28,18 @@ import java.util.ArrayList class ArtistAdapter( val activity: AppCompatActivity, - var dataSet: ArrayList, + var dataSet: List, var itemLayoutRes: Int, - var usePalette: Boolean, cabHolder: CabHolder? ) : AbsMultiSelectAdapter( activity, cabHolder, R.menu.menu_media_selection ), PopupTextProvider { - fun swapDataSet(dataSet: ArrayList) { + fun swapDataSet(dataSet: List) { this.dataSet = dataSet notifyDataSetChanged() } - fun usePalette(usePalette: Boolean) { - this.usePalette = usePalette - notifyDataSetChanged() - } - override fun getItemId(position: Int): Long { return dataSet[position].id.toLong() } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt index 28f11ab3..c13f116c 100755 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt @@ -34,7 +34,7 @@ import java.util.ArrayList class PlaylistAdapter( private val activity: AppCompatActivity, - var dataSet: ArrayList, + var dataSet: List, private var itemLayoutRes: Int, cabHolder: CabHolder? ) : AbsMultiSelectAdapter( @@ -43,13 +43,12 @@ class PlaylistAdapter( R.menu.menu_playlists_selection ) { - var songs = ArrayList() init { setHasStableIds(true) } - fun swapDataSet(dataSet: ArrayList) { + fun swapDataSet(dataSet: List) { this.dataSet = dataSet notifyDataSetChanged() } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt index b3427584..89d3e511 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt @@ -9,11 +9,10 @@ import code.name.monkey.retromusic.R import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.CabHolder import code.name.monkey.retromusic.model.Song -import java.util.ArrayList abstract class AbsOffsetSongAdapter( activity: AppCompatActivity, - dataSet: ArrayList, + dataSet: MutableList, @LayoutRes itemLayoutRes: Int, cabHolder: CabHolder? ) : SongAdapter(activity, dataSet, itemLayoutRes, cabHolder) { diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt index 01879bb9..a8d764b9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/OrderablePlaylistSongAdapter.kt @@ -96,7 +96,7 @@ class OrderablePlaylistSongAdapter( private var mDragStateFlags: Int = 0 override var songMenuRes: Int - get() = code.name.monkey.retromusic.R.menu.menu_item_playlist_song + get() = R.menu.menu_item_playlist_song set(value) { super.songMenuRes = value } @@ -113,7 +113,7 @@ class OrderablePlaylistSongAdapter( override fun onSongMenuItemClick(item: MenuItem): Boolean { when (item.itemId) { - code.name.monkey.retromusic.R.id.action_remove_from_playlist -> { + R.id.action_remove_from_playlist -> { RemoveFromPlaylistDialog.create(song as PlaylistSong) .show(activity.supportFragmentManager, "REMOVE_FROM_PLAYLIST") return true diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt index 44a29b28..6ffc8942 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt @@ -10,11 +10,10 @@ import code.name.monkey.retromusic.interfaces.CabHolder import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.NavigationUtil import com.google.android.material.button.MaterialButton -import java.util.ArrayList open class PlaylistSongAdapter( activity: AppCompatActivity, - dataSet: ArrayList, + dataSet: MutableList, itemLayoutRes: Int, cabHolder: CabHolder? ) : AbsOffsetSongAdapter(activity, dataSet, itemLayoutRes, cabHolder) { diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/ShuffleButtonSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/ShuffleButtonSongAdapter.kt index 785a6925..4f3935ad 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/ShuffleButtonSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/ShuffleButtonSongAdapter.kt @@ -7,11 +7,10 @@ import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.CabHolder import code.name.monkey.retromusic.model.Song import com.google.android.material.button.MaterialButton -import java.util.ArrayList class ShuffleButtonSongAdapter( activity: AppCompatActivity, - dataSet: ArrayList, + dataSet: MutableList, itemLayoutRes: Int, cabHolder: CabHolder? ) : AbsOffsetSongAdapter(activity, dataSet, itemLayoutRes, cabHolder) { diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/SimpleSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/SimpleSongAdapter.kt index 7bc79e95..ffe273e0 100755 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/SimpleSongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/SimpleSongAdapter.kt @@ -15,9 +15,8 @@ class SimpleSongAdapter( cabHolder: CabHolder? ) : SongAdapter(context, songs, layoutRes, cabHolder) { - override fun swapDataSet(dataSet: ArrayList) { - this.dataSet.clear() - this.dataSet = dataSet + override fun swapDataSet(dataSet: List) { + this.dataSet = dataSet.toMutableList() notifyDataSetChanged() } diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/SongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/SongAdapter.kt index adda7308..9835e8c2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/SongAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/SongAdapter.kt @@ -34,25 +34,25 @@ import java.util.ArrayList open class SongAdapter( protected val activity: AppCompatActivity, - dataSet: ArrayList, + var dataSet: MutableList, protected var itemLayoutRes: Int, cabHolder: CabHolder?, showSectionName: Boolean = true ) : AbsMultiSelectAdapter( - activity, cabHolder, R.menu.menu_media_selection + activity, + cabHolder, + R.menu.menu_media_selection ), MaterialCab.Callback, PopupTextProvider { - var dataSet: ArrayList private var showSectionName = true init { - this.dataSet = dataSet this.showSectionName = showSectionName this.setHasStableIds(true) } - open fun swapDataSet(dataSet: ArrayList) { - this.dataSet = dataSet + open fun swapDataSet(dataSet: List) { + this.dataSet = dataSet.toMutableList() notifyDataSetChanged() } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt index 0cf5f072..9ae8af57 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt @@ -27,11 +27,10 @@ import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.bottomsheets.BottomSheet import com.afollestad.materialdialogs.list.listItems - class AddToPlaylistDialog : DialogFragment() { override fun onCreateDialog( - savedInstanceState: Bundle? + savedInstanceState: Bundle? ): Dialog { val playlists = PlaylistLoader.getAllPlaylists(requireContext()) val playlistNames: MutableList = mutableListOf() @@ -47,7 +46,9 @@ class AddToPlaylistDialog : DialogFragment() { val songs = arguments!!.getParcelableArrayList("songs") ?: return@listItems if (index == 0) { dialog.dismiss() - activity?.supportFragmentManager?.let { CreatePlaylistDialog.create(songs).show(it, "ADD_TO_PLAYLIST") } + activity?.supportFragmentManager?.let { + CreatePlaylistDialog.create(songs).show(it, "ADD_TO_PLAYLIST") + } } else { dialog.dismiss() PlaylistsUtil.addToPlaylist(requireContext(), songs, playlists[index - 1].id, true) @@ -64,10 +65,10 @@ class AddToPlaylistDialog : DialogFragment() { return create(list) } - fun create(songs: ArrayList): AddToPlaylistDialog { + fun create(songs: List): AddToPlaylistDialog { val dialog = AddToPlaylistDialog() val args = Bundle() - args.putParcelableArrayList("songs", songs) + args.putParcelableArrayList("songs", ArrayList(songs)) dialog.arguments = args return dialog } 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 267993db..902c245e 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 @@ -104,10 +104,10 @@ class DeleteSongsDialog : DialogFragment() { return create(list) } - fun create(songs: ArrayList): DeleteSongsDialog { + fun create(songs: List): DeleteSongsDialog { val dialog = DeleteSongsDialog() val args = Bundle() - args.putParcelableArrayList("songs", songs) + args.putParcelableArrayList("songs", ArrayList(songs)) dialog.arguments = args return dialog } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt index 60ba8e84..051f0d3f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt @@ -118,12 +118,6 @@ abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment(), +class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment(), AlbumsView { @Inject @@ -41,7 +41,7 @@ open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment) { + override fun albums(albums: List) { adapter?.swapDataSet(albums) } @@ -53,21 +53,13 @@ open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment(), ArtistsView { - override fun artists(artists: ArrayList) { + override fun artists(artists: List) { adapter?.swapDataSet(artists) } @@ -66,7 +66,6 @@ class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment(), GenresView { - override fun genres(genres: ArrayList) { + override fun genres(genres: List) { adapter?.swapDataSet(genres) } override fun showEmptyView() { - } override fun createLayoutManager(): LinearLayoutManager { @@ -48,11 +46,9 @@ class GenresFragment : AbsLibraryPagerRecyclerViewFragment) { + override fun playlists(playlists: List) { adapter?.swapDataSet(playlists) } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/SongsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/SongsFragment.kt index d58e0365..c15f1610 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/SongsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/SongsFragment.kt @@ -40,7 +40,7 @@ class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment) { + override fun songs(songs: List) { adapter?.swapDataSet(songs) } @@ -73,26 +73,14 @@ class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment) { + override fun sections(sections: List) { println(sections.size) homeAdapter.swapData(sections) } diff --git a/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt b/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt index d5ee3329..7fd9f598 100644 --- a/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt +++ b/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt @@ -29,7 +29,6 @@ import android.os.Environment import android.os.IBinder import android.provider.DocumentsContract import android.provider.MediaStore -import android.util.Log import android.widget.Toast import androidx.core.content.ContextCompat import code.name.monkey.retromusic.loaders.SongLoader @@ -158,7 +157,7 @@ object MusicPlayerRemote { return cursor.getString(columnIndex) } } catch (e: Exception) { - Log.e(TAG, e.message) + println(e.message) } finally { cursor?.close() } @@ -166,65 +165,51 @@ object MusicPlayerRemote { } fun getQueueDurationSongs(): Int { - return if (musicService != null) { - musicService!!.playingQueue!!.size - } else -1 + return musicService?.playingQueue?.size ?: -1 } /** * Async */ fun playSongAt(position: Int) { - if (musicService != null) { - musicService!!.playSongAt(position) - } + musicService?.playSongAt(position) } fun pauseSong() { - if (musicService != null) { - musicService!!.pause() - } + musicService?.pause() } /** * Async */ fun playNextSong() { - if (musicService != null) { - musicService!!.playNextSong(true) - } + musicService?.playNextSong(true) } /** * Async */ fun playPreviousSong() { - if (musicService != null) { - musicService!!.playPreviousSong(true) - } + musicService?.playPreviousSong(true) } /** * Async */ fun back() { - if (musicService != null) { - musicService!!.back(true) - } + musicService?.back(true) } fun resumePlaying() { - if (musicService != null) { - musicService!!.play() - } + musicService?.play() } /** * Async */ - fun openQueue(queue: ArrayList, startPosition: Int, startPlaying: Boolean) { + fun openQueue(queue: List, startPosition: Int, startPlaying: Boolean) { if (!tryToHandleOpenPlayingQueue(queue, startPosition, startPlaying) && musicService != null) { - musicService!!.openQueue(queue, startPosition, startPlaying) + musicService?.openQueue(queue, startPosition, startPlaying) if (PreferenceUtil.getInstance(musicService).isShuffleModeOn) setShuffleMode(MusicService.SHUFFLE_MODE_NONE) } @@ -233,7 +218,7 @@ object MusicPlayerRemote { /** * Async */ - fun openAndShuffleQueue(queue: ArrayList, startPlaying: Boolean) { + fun openAndShuffleQueue(queue: List, startPlaying: Boolean) { var startPosition = 0 if (queue.isNotEmpty()) { startPosition = Random().nextInt(queue.size) @@ -246,7 +231,7 @@ object MusicPlayerRemote { } private fun tryToHandleOpenPlayingQueue( - queue: ArrayList, + queue: List, startPosition: Int, startPlaying: Boolean ): Boolean { @@ -275,7 +260,7 @@ object MusicPlayerRemote { fun cycleRepeatMode(): Boolean { if (musicService != null) { - musicService!!.cycleRepeatMode() + musicService?.cycleRepeatMode() return true } return false @@ -283,7 +268,7 @@ object MusicPlayerRemote { fun toggleShuffleMode(): Boolean { if (musicService != null) { - musicService!!.toggleShuffle() + musicService?.toggleShuffle() return true } return false @@ -300,7 +285,7 @@ object MusicPlayerRemote { fun playNext(song: Song): Boolean { if (musicService != null) { if (playingQueue.size > 0) { - musicService!!.addSong(position + 1, song) + musicService?.addSong(position + 1, song) } else { val queue = ArrayList() queue.add(song) @@ -316,10 +301,10 @@ object MusicPlayerRemote { return false } - fun playNext(songs: ArrayList): Boolean { + fun playNext(songs: List): Boolean { if (musicService != null) { if (playingQueue.size > 0) { - musicService!!.addSongs(position + 1, songs) + musicService?.addSongs(position + 1, songs) } else { openQueue(songs, 0, false) } @@ -337,7 +322,7 @@ object MusicPlayerRemote { fun enqueue(song: Song): Boolean { if (musicService != null) { if (playingQueue.size > 0) { - musicService!!.addSong(song) + musicService?.addSong(song) } else { val queue = ArrayList() queue.add(song) @@ -353,10 +338,10 @@ object MusicPlayerRemote { return false } - fun enqueue(songs: ArrayList): Boolean { + fun enqueue(songs: List): Boolean { if (musicService != null) { if (playingQueue.size > 0) { - musicService!!.addSongs(songs) + musicService?.addSongs(songs) } else { openQueue(songs, 0, false) } @@ -407,7 +392,7 @@ object MusicPlayerRemote { fun playFromUri(uri: Uri) { if (musicService != null) { - var songs: ArrayList? = null + var songs: List? = null if (uri.scheme != null && uri.authority != null) { if (uri.scheme == ContentResolver.SCHEME_CONTENT) { var songId: String? = null @@ -455,6 +440,7 @@ object MusicPlayerRemote { openQueue(songs, 0, true) } else { //TODO the file is not listed in the media store + println("The file is not listed in the media store") } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/BaseView.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/BaseView.kt index 818853fc..72507aa1 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/BaseView.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/BaseView.kt @@ -19,5 +19,6 @@ package code.name.monkey.retromusic.mvp */ interface BaseView { + fun showEmptyView() } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumDetailsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumDetailsPresenter.kt index 3fcfefd6..d6fde1bb 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumDetailsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumDetailsPresenter.kt @@ -40,9 +40,7 @@ interface AlbumDetailsView { fun loadArtistImage(artist: Artist) - fun moreAlbums( - albums: ArrayList - ) + fun moreAlbums(albums: List) fun aboutAlbum(lastFmAlbum: LastFmAlbum) } @@ -51,6 +49,7 @@ interface AlbumDetailsPresenter : Presenter { fun loadAlbum(albumId: Int) fun loadMore(artistId: Int) + fun aboutAlbum(artist: String, album: String) class AlbumDetailsPresenterImpl @Inject constructor( diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt index 093087dd..e0b632b9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt @@ -14,7 +14,8 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.Result +import code.name.monkey.retromusic.Result.Error +import code.name.monkey.retromusic.Result.Success import code.name.monkey.retromusic.model.Album import code.name.monkey.retromusic.mvp.BaseView import code.name.monkey.retromusic.mvp.Presenter @@ -25,7 +26,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.launch import kotlinx.coroutines.withContext -import java.util.ArrayList import javax.inject.Inject import kotlin.coroutines.CoroutineContext @@ -33,35 +33,35 @@ import kotlin.coroutines.CoroutineContext * Created by hemanths on 12/08/17. */ interface AlbumsView : BaseView { - fun albums(albums: ArrayList) + + fun albums(albums: List) } interface AlbumsPresenter : Presenter { - fun loadAlbums() + fun loadAlbums() - class AlbumsPresenterImpl @Inject constructor( + class AlbumsPresenterImpl @Inject constructor( private val repository: Repository - ) : PresenterImpl(), AlbumsPresenter, CoroutineScope { - private val job = Job() + ) : PresenterImpl(), AlbumsPresenter, CoroutineScope { - override val coroutineContext: CoroutineContext - get() = Dispatchers.IO + job + private val job = Job() - override fun detachView() { - super.detachView() - job.cancel() - } + override val coroutineContext: CoroutineContext + get() = Dispatchers.IO + job - override fun loadAlbums() { - launch { - when (val result = repository.allAlbums()) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.albums(result.data) - } - is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } - } - } - } - } + override fun detachView() { + super.detachView() + job.cancel() + } + + override fun loadAlbums() { + launch { + when (val result = repository.allAlbums()) { + is Success -> withContext(Dispatchers.Main) { view?.albums(result.data) } + is Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } + } + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt index 80f1eafc..888114b6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt @@ -14,7 +14,8 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.Result +import code.name.monkey.retromusic.Result.Error +import code.name.monkey.retromusic.Result.Success import code.name.monkey.retromusic.model.Artist import code.name.monkey.retromusic.mvp.BaseView import code.name.monkey.retromusic.mvp.Presenter @@ -36,7 +37,9 @@ import kotlin.coroutines.CoroutineContext interface ArtistDetailsView : BaseView { fun artist(artist: Artist) + fun artistInfo(lastFmArtist: LastFmArtist?) + fun complete() } @@ -62,12 +65,8 @@ interface ArtistDetailsPresenter : Presenter { override fun loadBiography(name: String, lang: String?, cache: String?) { launch { when (val result = repository.artistInfo(name, lang, cache)) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.artistInfo(result.data) - } - is Result.Error -> withContext(Dispatchers.Main) { - - } + is Success -> withContext(Dispatchers.Main) { view?.artistInfo(result.data) } + is Error -> withContext(Dispatchers.Main) {} } } } @@ -75,13 +74,8 @@ interface ArtistDetailsPresenter : Presenter { override fun loadArtist(artistId: Int) { launch { when (val result = repository.artistById(artistId)) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.artist(result.data) - - } - is Result.Error -> withContext(Dispatchers.Main) { - view?.showEmptyView() - } + is Success -> withContext(Dispatchers.Main) { view?.artist(result.data) } + is Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt index 7af0365e..d78e12d6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt @@ -14,18 +14,23 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.Result +import code.name.monkey.retromusic.Result.Error +import code.name.monkey.retromusic.Result.Success import code.name.monkey.retromusic.model.Artist import code.name.monkey.retromusic.mvp.BaseView import code.name.monkey.retromusic.mvp.Presenter import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject import kotlin.coroutines.CoroutineContext interface ArtistsView : BaseView { - fun artists(artists: ArrayList) + fun artists(artists: List) } interface ArtistsPresenter : Presenter { @@ -33,8 +38,9 @@ interface ArtistsPresenter : Presenter { fun loadArtists() class ArtistsPresenterImpl @Inject constructor( - private val repository: Repository + private val repository: Repository ) : PresenterImpl(), ArtistsPresenter, CoroutineScope { + private val job = Job() override val coroutineContext: CoroutineContext @@ -48,8 +54,8 @@ interface ArtistsPresenter : Presenter { override fun loadArtists() { launch { when (val result = repository.allArtists()) { - is Result.Success -> withContext(Dispatchers.Main) { view?.artists(result.data) } - is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } + is Success -> withContext(Dispatchers.Main) { view?.artists(result.data) } + is Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt index 4fe21bf7..5469ddf9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt @@ -14,32 +14,37 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.Result +import code.name.monkey.retromusic.Result.Error +import code.name.monkey.retromusic.Result.Success import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.mvp.BaseView import code.name.monkey.retromusic.mvp.Presenter import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository -import kotlinx.coroutines.* -import java.util.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject import kotlin.coroutines.CoroutineContext - /** * Created by hemanths on 20/08/17. */ interface GenreDetailsView : BaseView { - fun songs(songs: ArrayList) + + fun songs(songs: List) } interface GenreDetailsPresenter : Presenter { fun loadGenreSongs(genreId: Int) class GenreDetailsPresenterImpl @Inject constructor( - private val repository: Repository + private val repository: Repository ) : PresenterImpl(), GenreDetailsPresenter, CoroutineScope { + private val job = Job() override val coroutineContext: CoroutineContext @@ -50,16 +55,11 @@ interface GenreDetailsPresenter : Presenter { job.cancel() } - override fun loadGenreSongs(genreId: Int) { launch { when (val result = repository.getGenre(genreId)) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.songs(result.data) - } - is Result.Error -> withContext(Dispatchers.Main) { - view?.showEmptyView() - } + is Success -> withContext(Dispatchers.Main) { view?.songs(result.data) } + is Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt index c929ab22..62d2474c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt @@ -14,14 +14,18 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.Result +import code.name.monkey.retromusic.Result.Error +import code.name.monkey.retromusic.Result.Success import code.name.monkey.retromusic.model.Genre import code.name.monkey.retromusic.mvp.BaseView import code.name.monkey.retromusic.mvp.Presenter import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository -import kotlinx.coroutines.* -import java.util.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject import kotlin.coroutines.CoroutineContext @@ -29,15 +33,17 @@ import kotlin.coroutines.CoroutineContext * @author Hemanth S (h4h13). */ interface GenresView : BaseView { - fun genres(genres: ArrayList) + + fun genres(genres: List) } interface GenresPresenter : Presenter { fun loadGenres() class GenresPresenterImpl @Inject constructor( - private val repository: Repository + private val repository: Repository ) : PresenterImpl(), GenresPresenter, CoroutineScope { + private val job = Job() override val coroutineContext: CoroutineContext @@ -51,10 +57,8 @@ interface GenresPresenter : Presenter { override fun loadGenres() { launch { when (val result = repository.allGenres()) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.genres(result.data) - } - is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } + is Success -> withContext(Dispatchers.Main) { view?.genres(result.data) } + is Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } } } } 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 318941b9..1d1f81a9 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 @@ -29,7 +29,7 @@ import javax.inject.Inject import kotlin.coroutines.CoroutineContext interface HomeView : BaseView { - fun sections(sections: ArrayList) + fun sections(sections: List) } interface HomePresenter : Presenter { diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt index e41deeb7..2767dc44 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt @@ -16,19 +16,25 @@ package code.name.monkey.retromusic.mvp.presenter import code.name.monkey.retromusic.Result import code.name.monkey.retromusic.model.Playlist -import code.name.monkey.retromusic.mvp.* +import code.name.monkey.retromusic.mvp.BaseView +import code.name.monkey.retromusic.mvp.Presenter +import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject import kotlin.coroutines.CoroutineContext - /** * Created by hemanths on 19/08/17. */ interface PlaylistView : BaseView { - fun playlists(playlists: ArrayList) + + fun playlists(playlists: List) } interface PlaylistsPresenter : Presenter { @@ -36,7 +42,7 @@ interface PlaylistsPresenter : Presenter { fun playlists() class PlaylistsPresenterImpl @Inject constructor( - private val repository: Repository + private val repository: Repository ) : PresenterImpl(), PlaylistsPresenter, CoroutineScope { private val job = Job() @@ -52,9 +58,7 @@ interface PlaylistsPresenter : Presenter { override fun playlists() { launch { when (val result = repository.allPlaylists()) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.playlists(result.data) - } + is Result.Success -> withContext(Dispatchers.Main) { view?.playlists(result.data) } is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt index 407c4b83..20b43388 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt @@ -14,11 +14,19 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.Result -import code.name.monkey.retromusic.model.* -import code.name.monkey.retromusic.mvp.* +import code.name.monkey.retromusic.Result.Error +import code.name.monkey.retromusic.Result.Success +import code.name.monkey.retromusic.model.Playlist +import code.name.monkey.retromusic.model.Song +import code.name.monkey.retromusic.mvp.BaseView +import code.name.monkey.retromusic.mvp.Presenter +import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject import kotlin.coroutines.CoroutineContext @@ -26,14 +34,15 @@ import kotlin.coroutines.CoroutineContext * Created by hemanths on 20/08/17. */ interface PlaylistSongsView : BaseView { - fun songs(songs: ArrayList) + + fun songs(songs: List) } interface PlaylistSongsPresenter : Presenter { fun loadPlaylistSongs(playlist: Playlist) class PlaylistSongsPresenterImpl @Inject constructor( - private val repository: Repository + private val repository: Repository ) : PresenterImpl(), PlaylistSongsPresenter, CoroutineScope { private var job: Job = Job() @@ -44,10 +53,8 @@ interface PlaylistSongsPresenter : Presenter { override fun loadPlaylistSongs(playlist: Playlist) { launch { when (val songs = repository.getPlaylistSongs(playlist)) { - is Result.Success -> withContext(Dispatchers.Main) { - view?.songs(songs.data) - } - is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } + is Success -> withContext(Dispatchers.Main) { view?.songs(songs.data) } + is Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt index 89ab6351..bf076302 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt @@ -16,10 +16,14 @@ package code.name.monkey.retromusic.mvp.presenter import code.name.monkey.retromusic.Result import code.name.monkey.retromusic.model.Song -import code.name.monkey.retromusic.mvp.* +import code.name.monkey.retromusic.mvp.Presenter +import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository -import kotlinx.coroutines.* -import java.util.* +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import javax.inject.Inject import kotlin.coroutines.CoroutineContext @@ -27,36 +31,39 @@ import kotlin.coroutines.CoroutineContext * Created by hemanths on 10/08/17. */ interface SongView { - fun songs(songs: ArrayList) - fun showEmptyView() + fun songs(songs: List) + + fun showEmptyView() } interface SongPresenter : Presenter { - fun loadSongs() - class SongPresenterImpl @Inject constructor( - private val repository: Repository - ) : PresenterImpl(), SongPresenter, CoroutineScope { - private var job: Job = Job() + fun loadSongs() - override val coroutineContext: CoroutineContext - get() = Dispatchers.IO + job + class SongPresenterImpl @Inject constructor( + private val repository: Repository + ) : PresenterImpl(), SongPresenter, CoroutineScope { - override fun loadSongs() { - launch { - when (val songs = repository.allSongs()) { - is Result.Success -> withContext(Dispatchers.Main) { view?.songs(songs.data) } - is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } - } - } - } + private var job: Job = Job() - override fun detachView() { - super.detachView() - job.cancel(); - } - } + override val coroutineContext: CoroutineContext + get() = Dispatchers.IO + job + + override fun loadSongs() { + launch { + when (val songs = repository.allSongs()) { + is Result.Success -> withContext(Dispatchers.Main) { view?.songs(songs.data) } + is Result.Error -> withContext(Dispatchers.Main) { view?.showEmptyView() } + } + } + } + + override fun detachView() { + super.detachView() + job.cancel() + } + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java index a05b9701..2d2f1116 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java @@ -844,7 +844,7 @@ public class MusicService extends Service implements return true; } - public void openQueue(@Nullable final ArrayList playingQueue, final int startPosition, + public void openQueue(@Nullable final List playingQueue, final int startPosition, final boolean startPlaying) { if (playingQueue != null && !playingQueue.isEmpty() && startPosition >= 0 && startPosition < playingQueue .size()) { diff --git a/app/src/main/res/layout-land/pager_item.xml b/app/src/main/res/layout-land/pager_item.xml index b834b779..02c76dd9 100644 --- a/app/src/main/res/layout-land/pager_item.xml +++ b/app/src/main/res/layout-land/pager_item.xml @@ -12,8 +12,8 @@ android:id="@+id/imageContainer" android:layout_width="match_parent" android:layout_height="156dp" - app:cardCornerRadius="16dp" - app:cardUseCompatPadding="true"> + android:layout_margin="8dp" + app:cardCornerRadius="16dp"> + android:layout_margin="8dp" + app:cardCornerRadius="16dp"> + android:layout_margin="8dp" + app:cardCornerRadius="16dp">