Added navigation graph for settings

This commit is contained in:
Hemanth S 2020-07-24 23:58:15 +05:30
parent 0ebcbd9434
commit 373befcd83
39 changed files with 713 additions and 114 deletions

View file

@ -24,13 +24,15 @@ class LibraryViewModel(
private val _playlist = MutableLiveData<List<Playlist>>()
private val _genre = MutableLiveData<List<Genre>>()
private val _homeSections = MutableLiveData<List<Home>>()
private val _paletteColor = MutableLiveData<Int>()
fun homeSections(): LiveData<List<Home>> = _homeSections
fun allAlbums(): LiveData<List<Album>> = _albums
fun allSongs(): LiveData<List<Song>> = _songs
fun allArtists(): LiveData<List<Artist>> = _artists
fun allPlaylisits(): LiveData<List<Playlist>> = _playlist
fun allGenres(): LiveData<List<Genre>> = _genre
val paletteColor: LiveData<Int> = _paletteColor
val homeSections: LiveData<List<Home>> = _homeSections
val allAlbums: LiveData<List<Album>> = _albums
val allSongs: LiveData<List<Song>> = _songs
val allArtists: LiveData<List<Artist>> = _artists
val allPlaylisits: LiveData<List<Playlist>> = _playlist
val allGenres: LiveData<List<Genre>> = _genre
init {
viewModelScope.launch {

View file

@ -17,7 +17,7 @@ class AlbumsFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allAlbums()
mainActivity.libraryViewModel.allAlbums
.observe(viewLifecycleOwner, Observer { albums ->
if (albums.isNotEmpty())
adapter?.swapDataSet(albums)

View file

@ -16,8 +16,8 @@ class ArtistsFragment :
MainActivityFragmentCallbacks {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allArtists().observe(
viewLifecycleOwner, Observer { artists ->
mainActivity.libraryViewModel.allArtists
.observe(viewLifecycleOwner, Observer { artists ->
if (artists.isNotEmpty()) {
adapter?.swapDataSet(artists)
} else {

View file

@ -12,7 +12,7 @@
* See the GNU General Public License for more details.
*/
package code.name.monkey.retromusic.fragments.mainactivity;
package code.name.monkey.retromusic.fragments.folder;
import android.app.Dialog;
import android.content.Context;

View file

@ -28,8 +28,8 @@ class GenresFragment : AbsLibraryPagerRecyclerViewFragment<GenreAdapter, LinearL
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allGenres().observe(
viewLifecycleOwner, Observer { genres ->
mainActivity.libraryViewModel.allGenres
.observe(viewLifecycleOwner, Observer { genres ->
if (genres.isNotEmpty()) {
adapter?.swapDataSet(genres)
} else {

View file

@ -112,7 +112,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
adapter = homeAdapter
}
mainActivity.libraryViewModel.homeSections()
mainActivity.libraryViewModel.homeSections
.observe(viewLifecycleOwner, Observer { sections ->
homeAdapter.swapData(sections)
})

View file

@ -0,0 +1,18 @@
package code.name.monkey.retromusic.fragments.main
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.fragments.base.AbsMusicServiceFragment
class MainFragment : AbsMusicServiceFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_main, container, false)
}
}

View file

@ -0,0 +1,16 @@
package code.name.monkey.retromusic.fragments.player
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.util.PreferenceUtil
class MainPlayerFragment : Fragment(R.layout.fragment_main_player) {
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
when (PreferenceUtil.nowPlayingScreen) {
else -> findNavController().navigate(R.id.action_mainPlayerFragment_to_adaptiveFragment)
}
}
}

View file

@ -50,7 +50,7 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(), ViewPager.OnPageChan
val metrics = resources.displayMetrics
val ratio = metrics.heightPixels.toFloat() / metrics.widthPixels.toFloat()
if (nps == Full || nps == Classic || nps == Fit || nps == Gradient) {
if (nps == Full || nps == Classic || nps == Fit || nps == Gradient || nps == Peak) {
viewPager.offscreenPageLimit = 2
} else if (PreferenceUtil.isCarouselEffect) {
viewPager.clipToPadding = false

View file

@ -18,7 +18,7 @@ class PlaylistsFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allPlaylisits()
mainActivity.libraryViewModel.allPlaylisits
.observe(viewLifecycleOwner, Observer { playlists ->
if (playlists.isNotEmpty()) {
adapter?.swapDataSet(playlists)

View file

@ -21,6 +21,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.annotation.StringRes
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.App
import code.name.monkey.retromusic.R
@ -33,29 +34,14 @@ import kotlinx.android.synthetic.main.fragment_main_settings.*
class MainSettingsFragment : Fragment(), View.OnClickListener {
override fun onClick(view: View) {
when (view.id) {
R.id.generalSettings -> inflateFragment(
ThemeSettingsFragment(),
R.string.general_settings_title
)
R.id.audioSettings -> inflateFragment(AudioSettings(), R.string.pref_header_audio)
R.id.nowPlayingSettings -> inflateFragment(
NowPlayingSettingsFragment(),
R.string.now_playing
)
R.id.personalizeSettings -> inflateFragment(
PersonalizeSettingsFragment(),
R.string.personalize
)
R.id.imageSettings -> inflateFragment(
ImageSettingFragment(),
R.string.pref_header_images
)
R.id.notificationSettings -> inflateFragment(
NotificationSettingsFragment(),
R.string.notification
)
R.id.otherSettings -> inflateFragment(OtherSettingsFragment(), R.string.others)
R.id.generalSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_themeSettingsFragment)
R.id.audioSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_audioSettings)
R.id.personalizeSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_personalizeSettingsFragment)
R.id.imageSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_imageSettingFragment)
R.id.notificationSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_notificationSettingsFragment)
R.id.otherSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_otherSettingsFragment)
R.id.aboutSettings -> NavigationUtil.goToAbout(requireActivity())
R.id.nowPlayingSettings -> findNavController().navigate(R.id.action_mainSettingsFragment_to_nowPlayingSettingsFragment)
}
}

View file

@ -3,6 +3,7 @@ package code.name.monkey.retromusic.fragments.songs
import android.os.Bundle
import android.view.View
import androidx.annotation.LayoutRes
import androidx.lifecycle.Observer
import androidx.recyclerview.widget.GridLayoutManager
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter
@ -17,8 +18,8 @@ class SongsFragment :
MainActivityFragmentCallbacks {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allSongs()
.observe(viewLifecycleOwner, androidx.lifecycle.Observer {
mainActivity.libraryViewModel.allSongs
.observe(viewLifecycleOwner, Observer {
if (it.isNotEmpty()) {
adapter?.swapDataSet(it)
} else {
@ -73,7 +74,7 @@ class SongsFragment :
override fun setGridSize(gridSize: Int) {
adapter?.notifyDataSetChanged()
}
override fun loadSortOrder(): String {
return PreferenceUtil.songSortOrder
}