package code.name.monkey.retromusic.fragments.player.material import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.Toolbar import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.retromusic.R import code.name.monkey.retromusic.fragments.base.AbsPlayerFragment import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment import code.name.monkey.retromusic.fragments.player.normal.PlayerFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.model.Song import kotlinx.android.synthetic.main.fragment_material.* /** * @author Hemanth S (h4h13). */ class MaterialFragment : AbsPlayerFragment() { override fun playerToolbar(): Toolbar { return playerToolbar } private var lastColor: Int = 0 override val paletteColor: Int get() = lastColor private lateinit var playbackControlsFragment: MaterialControlsFragment override fun onShow() { playbackControlsFragment.show() } override fun onHide() { playbackControlsFragment.hide() onBackPressed() } override fun onBackPressed(): Boolean { return false } override fun toolbarIconColor(): Int { return ATHUtil.resolveColor(requireContext(), R.attr.iconColor) } override fun onColorChanged(color: Int) { playbackControlsFragment.setDark(color) lastColor = color callbacks?.onPaletteColorChanged() ToolbarContentTintHelper.colorizeToolbar(playerToolbar, ATHUtil.resolveColor(requireContext(), R.attr.iconColor), requireActivity()) } override fun toggleFavorite(song: Song) { super.toggleFavorite(song) if (song.id == MusicPlayerRemote.currentSong.id) { updateIsFavorite() } } override fun onFavoriteToggled() { toggleFavorite(MusicPlayerRemote.currentSong) } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_material, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) setUpSubFragments() setUpPlayerToolbar() } private fun setUpSubFragments() { playbackControlsFragment = childFragmentManager.findFragmentById(R.id.playbackControlsFragment) as MaterialControlsFragment val playerAlbumCoverFragment = childFragmentManager.findFragmentById(R.id.playerAlbumCoverFragment) as PlayerAlbumCoverFragment playerAlbumCoverFragment.setCallbacks(this) } private fun setUpPlayerToolbar() { playerToolbar.apply { inflateMenu(R.menu.menu_player) setNavigationOnClickListener { requireActivity().onBackPressed() } setOnMenuItemClickListener(this@MaterialFragment) ToolbarContentTintHelper.colorizeToolbar(this, ATHUtil.resolveColor(context, R.attr.iconColor), requireActivity()) } } override fun onServiceConnected() { updateIsFavorite() } override fun onPlayingMetaChanged() { updateIsFavorite() } companion object { fun newInstance(): PlayerFragment { return PlayerFragment() } } }