diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index ef52b9bde..1ab0c8729 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -38,9 +38,6 @@ class MainActivity : AppCompatActivity() { // Apply the theme setTheme(accent.theme) - // onNewIntent doesnt automatically call on startup, so call it here. - onNewIntent(intent) - if (isEdgeOn()) { doEdgeToEdgeSetup(binding) } @@ -51,6 +48,9 @@ class MainActivity : AppCompatActivity() { // Start PlaybackService startService(Intent(this, PlaybackService::class.java)) + + // onNewIntent doesnt automatically call on startup, so call it here. + onNewIntent(intent) } override fun onNewIntent(intent: Intent?) { diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt index 9803fb881..972edc5b6 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicStore.kt @@ -88,15 +88,17 @@ class MusicStore private constructor() { * Get the song for a file [uri]. * @return The corresponding [Song] for this [uri], null if there isnt one. */ - suspend fun getSongForUri(uri: Uri, resolver: ContentResolver): Song? { - return withContext(Dispatchers.IO) { - resolver.query(uri, null, null, null, null)?.use { cursor -> - cursor.moveToFirst() - val fileName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)) + fun getSongForUri(uri: Uri, resolver: ContentResolver): Song? { + resolver.query( + uri, arrayOf(OpenableColumns.DISPLAY_NAME), null, null, null + )?.use { cursor -> + cursor.moveToFirst() + val fileName = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)) - return@withContext songs.find { it.fileName == fileName } - } + return songs.find { it.fileName == fileName } } + + return null } /** 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 74517c04f..ceb08ad58 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/CompactPlaybackFragment.kt @@ -55,8 +55,6 @@ class CompactPlaybackFragment : Fragment() { // --- VIEWMODEL SETUP --- - playbackModel.disableAnimation() - playbackModel.song.observe(viewLifecycleOwner) { song -> if (song != null) { logD("Updating song display to ${song.name}") @@ -76,4 +74,10 @@ class CompactPlaybackFragment : Fragment() { return binding.root } + + override fun onStart() { + super.onStart() + + playbackModel.disableAnimation() + } } diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt index 68ca95298..55854f903 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlayPauseButton.kt @@ -8,6 +8,7 @@ import android.util.AttributeSet import androidx.annotation.RequiresApi import androidx.appcompat.widget.AppCompatImageButton import org.oxycblt.auxio.R +import org.oxycblt.auxio.logD import org.oxycblt.auxio.ui.toAnimDrawable /** @@ -45,6 +46,7 @@ class PlayPauseButton @JvmOverloads constructor( setImageDrawable(iconPauseToPlay) iconPauseToPlay.start() } else { + logD("what the FUCK WHY ARENT YOU DOING THIS") setImageResource(R.drawable.ic_play_large) } } 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 4f454e02b..34ad21202 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackFragment.kt @@ -77,9 +77,6 @@ class PlaybackFragment : Fragment(), SeekBar.OnSeekBarChangeListener { binding.playbackSeekBar.setOnSeekBarChangeListener(this) // --- VIEWMODEL SETUP -- - - playbackModel.disableAnimation() - playbackModel.song.observe(viewLifecycleOwner) { song -> if (song != null) { logD("Updating song display to ${song.name}.") @@ -158,8 +155,13 @@ class PlaybackFragment : Fragment(), SeekBar.OnSeekBarChangeListener { playbackModel.isPlaying.observe(viewLifecycleOwner) { binding.playbackPlayPause.apply { - backgroundTintList = if (it) accentColor else controlColor - setPlaying(it, playbackModel.canAnimate) + if (it) { + backgroundTintList = accentColor + setPlaying(true, playbackModel.canAnimate) + } else { + backgroundTintList = controlColor + setPlaying(false, playbackModel.canAnimate) + } } playbackModel.enableAnimation() @@ -176,6 +178,12 @@ class PlaybackFragment : Fragment(), SeekBar.OnSeekBarChangeListener { return binding.root } + override fun onStart() { + super.onStart() + + playbackModel.disableAnimation() + } + // --- SEEK CALLBACKS --- override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { diff --git a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt index 3f8d4d14f..4a6179839 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/PlaybackViewModel.kt @@ -181,10 +181,8 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback { * This is called after [playWithUri] once its deemed safe to do so. */ private fun playWithUriInternal(uri: Uri, context: Context) { - viewModelScope.launch { - musicStore.getSongForUri(uri, context.contentResolver)?.let { song -> - playSong(song) - } + musicStore.getSongForUri(uri, context.contentResolver)?.let { song -> + playSong(song) } }