diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 22df92ba4..89aca4140 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -15,7 +15,6 @@ import com.google.android.material.tabs.TabLayoutMediator import org.oxycblt.auxio.databinding.FragmentMainBinding import org.oxycblt.auxio.library.LibraryFragment import org.oxycblt.auxio.music.MusicViewModel -import org.oxycblt.auxio.playback.PlaybackFragment import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.songs.SongsFragment import org.oxycblt.auxio.theme.accent @@ -94,14 +93,6 @@ class MainFragment : Fragment() { // --- VIEWMODEL SETUP --- - playbackModel.shouldOpenPlayback.observe(viewLifecycleOwner) { - if (it) { - PlaybackFragment().show(requireActivity().supportFragmentManager, "TAG_PLAYBACK") - - playbackModel.doneWithOpenPlayback() - } - } - Log.d(this::class.simpleName, "Fragment Created.") return binding.root diff --git a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt index 750b49d29..be39fc250 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt @@ -9,6 +9,8 @@ import android.view.ViewGroup import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.navigation.fragment.findNavController +import org.oxycblt.auxio.MainFragmentDirections import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentCompactPlaybackBinding import org.oxycblt.auxio.music.MusicViewModel @@ -46,7 +48,9 @@ class CompactPlaybackFragment : Fragment() { binding.root.visibility = View.GONE binding.root.setOnClickListener { - playbackModel.openPlayback() + findNavController().navigate( + MainFragmentDirections.actionGoToPlayback() + ) } // --- VIEWMODEL SETUP --- diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt index bc891bdff..e997c68df 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -7,14 +7,15 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.core.content.ContextCompat +import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels -import com.google.android.material.bottomsheet.BottomSheetDialogFragment +import androidx.navigation.fragment.findNavController import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentPlaybackBinding import org.oxycblt.auxio.theme.accent import org.oxycblt.auxio.theme.toColor -class PlaybackFragment : BottomSheetDialogFragment() { +class PlaybackFragment : Fragment() { private val playbackModel: PlaybackViewModel by activityViewModels() // TODO: Implement nav to artists/albums @@ -27,6 +28,7 @@ class PlaybackFragment : BottomSheetDialogFragment() { ): View? { val binding = FragmentPlaybackBinding.inflate(inflater) + // Create accents & icons to use val accentColor = ColorStateList.valueOf(accent.first.toColor(requireContext())) val inactiveColor = ColorStateList.valueOf(R.color.control_color.toColor(requireContext())) @@ -42,16 +44,15 @@ class PlaybackFragment : BottomSheetDialogFragment() { binding.playbackModel = playbackModel + binding.playbackToolbar.setNavigationOnClickListener { + findNavController().navigateUp() + } + // Make marquee scroll work binding.playbackSong.isSelected = true binding.playbackAlbum.isSelected = true binding.playbackArtist.isSelected = true - // Override the accents manually because the BottomSheetFragment is too dumb to do it themselves. - binding.playbackSeekBar.thumbTintList = accentColor - binding.playbackSeekBar.progressTintList = accentColor - binding.playbackSeekBar.progressBackgroundTintList = accentColor - // --- VIEWMODEL SETUP -- playbackModel.currentSong.observe(viewLifecycleOwner) { diff --git a/app/src/main/res/anim/anim_nav_slide_down.xml b/app/src/main/res/anim/anim_nav_slide_down.xml new file mode 100644 index 000000000..9f197d5ce --- /dev/null +++ b/app/src/main/res/anim/anim_nav_slide_down.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/app/src/main/res/anim/anim_nav_slide_up.xml b/app/src/main/res/anim/anim_nav_slide_up.xml new file mode 100644 index 000000000..b83a64bc6 --- /dev/null +++ b/app/src/main/res/anim/anim_nav_slide_up.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_down.xml b/app/src/main/res/drawable/ic_down.xml new file mode 100644 index 000000000..570a79901 --- /dev/null +++ b/app/src/main/res/drawable/ic_down.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_playback.xml b/app/src/main/res/layout/fragment_playback.xml index 9bbf74aa1..d06d933c3 100644 --- a/app/src/main/res/layout/fragment_playback.xml +++ b/app/src/main/res/layout/fragment_playback.xml @@ -17,38 +17,53 @@ + android:layout_height="match_parent" + android:background="@color/background"> + + @@ -56,60 +71,60 @@ android:id="@+id/playback_artist" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/margin_medium" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" + android:layout_marginStart="@dimen/margin_large" + android:layout_marginEnd="@dimen/margin_large" android:text="@{song.album.artist.name}" android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle1" android:textColor="?android:attr/textColorSecondary" app:layout_constraintBottom_toTopOf="@+id/playback_album" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintHorizontal_bias="0.0" - app:layout_constraintStart_toEndOf="@+id/playback_cover" - app:layout_constraintTop_toBottomOf="@+id/playback_song" + app:layout_constraintStart_toStartOf="parent" tools:text="Artist Name" /> diff --git a/app/src/main/res/navigation/nav_main.xml b/app/src/main/res/navigation/nav_main.xml index beac67e46..c98d717ea 100644 --- a/app/src/main/res/navigation/nav_main.xml +++ b/app/src/main/res/navigation/nav_main.xml @@ -51,6 +51,13 @@ app:destination="@id/loading_fragment" app:popUpTo="@id/main_fragment" app:popUpToInclusive="true" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 84ea1dbcd..568c32467 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,5 +1,6 @@ + 4dp 8dp 16dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 888552425..1d6258741 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,6 +5,7 @@ Library All Songs + Now Playing No music found. diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 71383747f..941e70ed7 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,5 +1,6 @@ +