Added Dagger

This commit is contained in:
h4h13 2019-09-05 01:00:24 +05:30
parent 074298dcb0
commit 6cdea14316
47 changed files with 1130 additions and 826 deletions

View file

@ -2,18 +2,23 @@ package code.name.monkey.retromusic.fragments.mainactivity
import android.os.Bundle
import androidx.recyclerview.widget.GridLayoutManager
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.album.AlbumAdapter
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
import code.name.monkey.retromusic.model.Album
import code.name.monkey.retromusic.mvp.contract.AlbumContract
import code.name.monkey.retromusic.mvp.presenter.AlbumPresenter
import code.name.monkey.retromusic.mvp.presenter.AlbumsPresenter
import code.name.monkey.retromusic.mvp.presenter.AlbumsView
import code.name.monkey.retromusic.util.PreferenceUtil
import javax.inject.Inject
open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<AlbumAdapter, GridLayoutManager>(), AlbumContract.AlbumView {
private lateinit var presenter: AlbumPresenter
open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<AlbumAdapter, GridLayoutManager>(), AlbumsView {
override fun albums(albums: java.util.ArrayList<Album>) {
adapter?.swapDataSet(albums)
}
@Inject
lateinit var albumsPresenter: AlbumsPresenter
override val emptyMessage: Int
get() = R.string.no_albums
@ -26,15 +31,13 @@ open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Al
var itemLayoutRes = itemLayoutRes
notifyLayoutResChanged(itemLayoutRes)
if (itemLayoutRes != R.layout.item_list) {
itemLayoutRes = PreferenceUtil.getInstance().getAlbumGridStyle(context!!)
itemLayoutRes = PreferenceUtil.getInstance().getAlbumGridStyle(requireContext())
}
val dataSet = if (adapter == null) ArrayList() else adapter!!.dataSet
return AlbumAdapter(libraryFragment.mainActivity, dataSet, itemLayoutRes, loadUsePalette(), libraryFragment)
}
public override fun loadUsePalette(): Boolean {
return PreferenceUtil.getInstance().albumColoredFooters()
}
@ -43,13 +46,10 @@ open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Al
}
override fun setGridSize(gridSize: Int) {
layoutManager!!.spanCount = gridSize
adapter!!.notifyDataSetChanged()
layoutManager?.spanCount = gridSize
adapter?.notifyDataSetChanged()
}
override fun setSortOrder(sortOrder: String) {
presenter.loadAlbums()
}
override fun loadSortOrder(): String {
@ -86,38 +86,36 @@ open class AlbumsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Al
PreferenceUtil.getInstance().setAlbumColoredFooters(usePalette)
}
override fun onMediaStoreChanged() {
presenter.loadAlbums()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = AlbumPresenter(this)
}
App.musicComponent.inject(this)
albumsPresenter.attachView(this)
}
override fun onResume() {
super.onResume()
if (adapter!!.dataSet.isEmpty()) {
presenter.subscribe()
albumsPresenter.loadAlbums()
}
}
override fun onDestroy() {
super.onDestroy()
presenter.unsubscribe()
override fun onMediaStoreChanged() {
albumsPresenter.loadAlbums()
}
override fun setSortOrder(sortOrder: String) {
albumsPresenter.loadAlbums()
}
override fun onDestroyView() {
super.onDestroyView()
albumsPresenter.detachView()
}
override fun loading() {}
override fun showEmptyView() {
adapter!!.swapDataSet(ArrayList())
}
override fun completed() {}
override fun showData(list: ArrayList<Album>) {
adapter!!.swapDataSet(list)
adapter?.swapDataSet(ArrayList())
}
companion object {

View file

@ -2,24 +2,46 @@ package code.name.monkey.retromusic.fragments.mainactivity
import android.os.Bundle
import androidx.recyclerview.widget.GridLayoutManager
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.artist.ArtistAdapter
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
import code.name.monkey.retromusic.model.Artist
import code.name.monkey.retromusic.mvp.contract.ArtistContract
import code.name.monkey.retromusic.mvp.presenter.ArtistPresenter
import code.name.monkey.retromusic.mvp.presenter.ArtistsPresenter
import code.name.monkey.retromusic.mvp.presenter.ArtistsView
import code.name.monkey.retromusic.util.PreferenceUtil
import java.util.*
import javax.inject.Inject
class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<ArtistAdapter, GridLayoutManager>(), ArtistContract.ArtistView {
private lateinit var presenter: ArtistPresenter
class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<ArtistAdapter, GridLayoutManager>(), ArtistsView {
override fun artists(artists: ArrayList<Artist>) {
adapter?.swapDataSet(artists)
}
@Inject
lateinit var artistsPresenter: ArtistsPresenter
override val emptyMessage: Int
get() = R.string.no_artists
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = ArtistPresenter(this)
App.musicComponent.inject(this)
artistsPresenter.attachView(this)
}
override fun onResume() {
super.onResume()
if (adapter!!.dataSet.isEmpty()) {
artistsPresenter.loadArtists()
}
}
override fun onMediaStoreChanged() {
artistsPresenter.loadArtists()
}
override fun setSortOrder(sortOrder: String) {
artistsPresenter.loadArtists()
}
override fun createLayoutManager(): GridLayoutManager {
@ -30,15 +52,12 @@ class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Artist
var itemLayoutRes = itemLayoutRes
notifyLayoutResChanged(itemLayoutRes)
if (itemLayoutRes != R.layout.item_list) {
itemLayoutRes = PreferenceUtil.getInstance().getArtistGridStyle(context!!)
itemLayoutRes = PreferenceUtil.getInstance().getArtistGridStyle(requireContext())
}
val dataSet = if (adapter == null) ArrayList() else adapter!!.dataSet
return ArtistAdapter(libraryFragment.mainActivity, dataSet, itemLayoutRes, loadUsePalette(), libraryFragment)
}
override fun onMediaStoreChanged() {
presenter.loadArtists()
}
override fun loadGridSize(): Int {
return PreferenceUtil.getInstance().getArtistGridSize(activity!!)
@ -65,12 +84,12 @@ class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Artist
}
override fun setUsePalette(usePalette: Boolean) {
adapter!!.usePalette(usePalette)
adapter?.usePalette(usePalette)
}
override fun setGridSize(gridSize: Int) {
layoutManager!!.spanCount = gridSize
adapter!!.notifyDataSetChanged()
layoutManager?.spanCount = gridSize
adapter?.notifyDataSetChanged()
}
@ -82,34 +101,13 @@ class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Artist
PreferenceUtil.getInstance().artistSortOrder = sortOrder
}
override fun setSortOrder(sortOrder: String) {
presenter.loadArtists()
override fun onDestroyView() {
super.onDestroyView()
artistsPresenter.detachView()
}
override fun onResume() {
super.onResume()
if (adapter!!.dataSet.isEmpty()) {
presenter.subscribe()
}
}
override fun onDestroy() {
super.onDestroy()
presenter.unsubscribe()
}
override fun loading() {}
override fun showEmptyView() {
adapter!!.swapDataSet(ArrayList())
}
override fun completed() {
}
override fun showData(list: ArrayList<Artist>) {
adapter!!.swapDataSet(list)
adapter?.swapDataSet(ArrayList())
}
companion object {
@ -125,5 +123,4 @@ class ArtistsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<Artist
return fragment
}
}
}

View file

@ -16,31 +16,25 @@ package code.name.monkey.retromusic.fragments.mainactivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.GenreAdapter
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewFragment
import code.name.monkey.retromusic.model.Genre
import code.name.monkey.retromusic.mvp.contract.GenreContract
import code.name.monkey.retromusic.mvp.presenter.GenrePresenter
import code.name.monkey.retromusic.mvp.presenter.GenresPresenter
import code.name.monkey.retromusic.mvp.presenter.GenresView
import javax.inject.Inject
class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearLayoutManager>(), GenreContract.GenreView {
override fun loading() {
}
override fun showData(list: ArrayList<Genre>) {
adapter?.swapDataSet(list)
class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearLayoutManager>(), GenresView {
override fun genres(genres: ArrayList<Genre>) {
adapter?.swapDataSet(genres)
}
override fun showEmptyView() {
}
override fun completed() {
}
override fun createLayoutManager(): LinearLayoutManager {
return LinearLayoutManager(activity)
}
@ -53,28 +47,31 @@ class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearL
override val emptyMessage: Int
get() = R.string.no_genres
private lateinit var presenter: GenrePresenter
@Inject
lateinit var genresPresenter: GenresPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = GenrePresenter(this)
App.musicComponent.inject(this)
genresPresenter.attachView(this)
}
override fun onResume() {
super.onResume()
if (adapter!!.dataSet.isEmpty()) {
presenter.subscribe()
genresPresenter.loadGenres()
}
}
override fun onDestroy() {
presenter.unsubscribe()
super.onDestroy()
override fun onDestroyView() {
super.onDestroyView()
genresPresenter.detachView()
}
override fun onMediaStoreChanged() {
presenter.loadGenre()
genresPresenter.loadGenres()
}
companion object {

View file

@ -4,26 +4,28 @@ import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import androidx.recyclerview.widget.LinearLayoutManager
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.playlist.PlaylistAdapter
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewFragment
import code.name.monkey.retromusic.model.Playlist
import code.name.monkey.retromusic.mvp.contract.PlaylistContract
import code.name.monkey.retromusic.mvp.presenter.PlaylistPresenter
import java.util.*
import code.name.monkey.retromusic.mvp.presenter.PlaylistView
import code.name.monkey.retromusic.mvp.presenter.PlaylistsPresenter
import javax.inject.Inject
class PlaylistsFragment : AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager>(), PlaylistContract.PlaylistView {
class PlaylistsFragment : AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, LinearLayoutManager>(), PlaylistView {
private lateinit var presenter: PlaylistPresenter
@Inject
lateinit var playlistsPresenter: PlaylistsPresenter
override val emptyMessage: Int
get() = R.string.no_playlists
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
presenter = PlaylistPresenter(this)
App.musicComponent.inject(this)
playlistsPresenter.attachView(this)
}
override fun createLayoutManager(): LinearLayoutManager {
@ -38,33 +40,25 @@ class PlaylistsFragment : AbsLibraryPagerRecyclerViewFragment<PlaylistAdapter, L
override fun onResume() {
super.onResume()
if (adapter!!.dataSet.isEmpty()) {
presenter.subscribe()
playlistsPresenter.playlists()
}
}
override fun onDestroy() {
presenter.unsubscribe()
super.onDestroy()
override fun onDestroyView() {
super.onDestroyView()
playlistsPresenter.detachView()
}
override fun onMediaStoreChanged() {
super.onMediaStoreChanged()
presenter.loadPlaylists()
}
override fun loading() {
playlistsPresenter.playlists()
}
override fun showEmptyView() {
adapter!!.swapDataSet(ArrayList())
}
override fun completed() {
}
override fun showData(list: ArrayList<Playlist>) {
override fun playlists(list: ArrayList<Playlist>) {
adapter!!.swapDataSet(list)
}

View file

@ -2,27 +2,32 @@ package code.name.monkey.retromusic.fragments.mainactivity
import android.os.Bundle
import androidx.recyclerview.widget.GridLayoutManager
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter
import code.name.monkey.retromusic.adapter.song.SongAdapter
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.mvp.contract.SongContract
import code.name.monkey.retromusic.mvp.presenter.SongPresenter
import code.name.monkey.retromusic.mvp.presenter.SongView
import code.name.monkey.retromusic.util.PreferenceUtil
import java.util.*
import javax.inject.Inject
class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>(), SongContract.SongView {
class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdapter, GridLayoutManager>(), SongView {
@Inject
lateinit var songPresenter: SongPresenter
private lateinit var presenter: SongPresenter
override val emptyMessage: Int
get() = R.string.no_songs
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = SongPresenter(this)
App.musicComponent.inject(this)
songPresenter.attachView(this)
}
override fun createLayoutManager(): GridLayoutManager {
@ -41,8 +46,12 @@ class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdap
} else SongAdapter(libraryFragment.mainActivity, dataSet, itemLayoutRes, usePalette, libraryFragment)
}
override fun songs(songs: ArrayList<Song>) {
adapter?.swapDataSet(songs)
}
override fun onMediaStoreChanged() {
presenter.loadSongs()
songPresenter.loadSongs()
}
override fun loadGridSize(): Int {
@ -81,31 +90,19 @@ class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdap
override fun onResume() {
super.onResume()
if (adapter!!.dataSet.isEmpty()) {
presenter.subscribe()
songPresenter.loadSongs()
}
}
override fun onDestroy() {
presenter.unsubscribe()
super.onDestroy()
}
override fun loading() {
}
override fun showData(list: ArrayList<Song>) {
adapter!!.swapDataSet(list)
override fun onDestroyView() {
super.onDestroyView()
songPresenter.detachView()
}
override fun showEmptyView() {
adapter!!.swapDataSet(ArrayList())
}
override fun completed() {
}
override fun loadSortOrder(): String {
return PreferenceUtil.getInstance().songSortOrder
}
@ -115,7 +112,7 @@ class SongsFragment : AbsLibraryPagerRecyclerViewCustomGridSizeFragment<SongAdap
}
override fun setSortOrder(sortOrder: String) {
presenter.loadSongs()
songPresenter.loadSongs()
}
companion object {

View file

@ -13,6 +13,7 @@ import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.common.ATHToolbarActivity
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.Constants
import code.name.monkey.retromusic.Constants.USER_BANNER
import code.name.monkey.retromusic.R
@ -29,8 +30,8 @@ import code.name.monkey.retromusic.model.Home
import code.name.monkey.retromusic.model.smartplaylist.HistoryPlaylist
import code.name.monkey.retromusic.model.smartplaylist.LastAddedPlaylist
import code.name.monkey.retromusic.model.smartplaylist.MyTopTracksPlaylist
import code.name.monkey.retromusic.mvp.contract.HomeContract
import code.name.monkey.retromusic.mvp.presenter.HomePresenter
import code.name.monkey.retromusic.mvp.presenter.HomeView
import code.name.monkey.retromusic.util.*
import com.bumptech.glide.load.engine.DiskCacheStrategy
import io.reactivex.android.schedulers.AndroidSchedulers
@ -41,12 +42,29 @@ import kotlinx.android.synthetic.main.fragment_banner_home.*
import kotlinx.android.synthetic.main.home_content.*
import java.io.File
import java.util.*
import javax.inject.Inject
import kotlin.collections.ArrayList
class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks, HomeContract.HomeView {
class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks, HomeView {
override fun sections(sections: ArrayList<Home>) {
val finalList = sections.sortedWith(compareBy { it.priority })
homeAdapter.swapData(finalList)
recyclerView.apply {
layoutManager = LinearLayoutManager(mainActivity)
adapter = homeAdapter
}
if (sections.isEmpty()) {
showEmptyView()
} else {
emptyContainer.hide()
}
}
@Inject
lateinit var homePresenter: HomePresenter
private var disposable: CompositeDisposable = CompositeDisposable()
private lateinit var homePresenter: HomePresenter
private lateinit var toolbar: Toolbar
override fun onCreateView(inflater: LayoutInflater, viewGroup: ViewGroup?, savedInstanceState: Bundle?): View? {
@ -83,7 +101,8 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
homePresenter = HomePresenter(this)
App.musicComponent.inject(this)
homePresenter.attachView(this)
}
@ -108,22 +127,18 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
}
actionShuffle.setOnClickListener {
MusicPlayerRemote.openAndShuffleQueue(SongLoader.getAllSongs(requireActivity()) , true)
MusicPlayerRemote.openAndShuffleQueue(SongLoader.getAllSongs(requireActivity()), true)
}
history.setOnClickListener {
NavigationUtil.goToPlaylistNew(requireActivity(), HistoryPlaylist(requireActivity()))
}
homePresenter = HomePresenter(this)
contentContainer.setBackgroundColor(ThemeStore.primaryColor(requireContext()))
setupToolbar()
homeAdapter = HomeAdapter(mainActivity, ArrayList(), displayMetrics)
homePresenter.subscribe()
checkPadding()
userInfoContainer.setOnClickListener {
@ -131,6 +146,8 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
}
titleWelcome.setTextColor(ThemeStore.textColorPrimary(requireContext()))
titleWelcome.text = String.format("%s", PreferenceUtil.getInstance().userName)
homePresenter.loadSections()
}
private fun checkPadding() {
@ -177,21 +194,13 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
override fun onDestroyView() {
super.onDestroyView()
disposable.dispose()
homePresenter.unsubscribe()
}
override fun loading() {
homePresenter.detachView()
}
override fun showEmptyView() {
emptyContainer.show()
}
override fun completed() {
}
override fun onServiceConnected() {
super.onServiceConnected()
checkPadding()
@ -204,20 +213,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
private lateinit var homeAdapter: HomeAdapter
override fun showData(list: ArrayList<Home>) {
val finalList = list.sortedWith(compareBy { it.priority })
homeAdapter.swapData(finalList)
recyclerView.apply {
layoutManager = LinearLayoutManager(mainActivity)
adapter = homeAdapter
}
if (list.isEmpty()) {
showEmptyView()
} else {
emptyContainer.hide()
}
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.menu_search, menu)