diff --git a/CHANGELOG.md b/CHANGELOG.md index 11e2763f..90d0cc50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed +- Tapping notification now launches the "Now playing" screen ([#179]) ## [1.6.0] - 2025-11-09 ### Changed @@ -90,6 +92,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#47]: https://github.com/FossifyOrg/Music-Player/issues/47 [#65]: https://github.com/FossifyOrg/Music-Player/issues/65 [#97]: https://github.com/FossifyOrg/Music-Player/issues/97 +[#179]: https://github.com/FossifyOrg/Music-Player/issues/179 [#206]: https://github.com/FossifyOrg/Music-Player/issues/206 [#209]: https://github.com/FossifyOrg/Music-Player/issues/209 [#228]: https://github.com/FossifyOrg/Music-Player/issues/228 diff --git a/app/src/main/kotlin/org/fossify/musicplayer/activities/MainActivity.kt b/app/src/main/kotlin/org/fossify/musicplayer/activities/MainActivity.kt index 7c4c4ffa..9865320b 100644 --- a/app/src/main/kotlin/org/fossify/musicplayer/activities/MainActivity.kt +++ b/app/src/main/kotlin/org/fossify/musicplayer/activities/MainActivity.kt @@ -10,6 +10,7 @@ import android.os.Bundle import android.widget.Toast import androidx.viewpager.widget.ViewPager import me.grantland.widget.AutofitHelper +import org.fossify.musicplayer.BuildConfig import org.fossify.commons.databinding.BottomTablayoutItemBinding import org.fossify.commons.dialogs.FilePickerDialog import org.fossify.commons.dialogs.RadioGroupDialog @@ -18,7 +19,6 @@ import org.fossify.commons.helpers.* import org.fossify.commons.models.FAQItem import org.fossify.commons.models.RadioItem import org.fossify.commons.models.Release -import org.fossify.musicplayer.BuildConfig import org.fossify.musicplayer.R import org.fossify.musicplayer.adapters.ViewPagerAdapter import org.fossify.musicplayer.databinding.ActivityMainBinding @@ -80,6 +80,7 @@ class MainActivity : SimpleMusicActivity() { override fun onResume() { super.onResume() + handleNotificationIntent(intent) if (storedShowTabs != config.showTabs) { config.lastUsedViewPagerPage = 0 System.exit(0) @@ -105,6 +106,12 @@ class MainActivity : SimpleMusicActivity() { } } + override fun onNewIntent(intent: Intent) { + super.onNewIntent(intent) + setIntent(intent) + handleNotificationIntent(intent) + } + override fun onPause() { super.onPause() storeStateVariables() @@ -549,4 +556,15 @@ class MainActivity : SimpleMusicActivity() { checkWhatsNew(this, BuildConfig.VERSION_CODE) } } + + private fun handleNotificationIntent(intent: Intent) { + val shouldOpenPlayer = intent.getBooleanExtra(EXTRA_OPEN_PLAYER, false) + + if (shouldOpenPlayer) { + intent.removeExtra(EXTRA_OPEN_PLAYER) + Intent(this, TrackActivity::class.java).apply { + startActivity(this) + } + } + } } diff --git a/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt b/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt index efda382d..ad918088 100644 --- a/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt +++ b/app/src/main/kotlin/org/fossify/musicplayer/helpers/Constants.kt @@ -16,6 +16,8 @@ const val FOLDER = "folder" const val GENRE = "genre" const val PATH = "org.fossify.musicplayer.action." + +const val EXTRA_OPEN_PLAYER = "org.fossify.musicplayer.OPEN_PLAYER" val artworkUri = "content://media/external/audio/albumart".toUri() const val PREVIOUS = PATH + "PREVIOUS" diff --git a/app/src/main/kotlin/org/fossify/musicplayer/playback/player/Player.kt b/app/src/main/kotlin/org/fossify/musicplayer/playback/player/Player.kt index 746f9c82..14adaf78 100644 --- a/app/src/main/kotlin/org/fossify/musicplayer/playback/player/Player.kt +++ b/app/src/main/kotlin/org/fossify/musicplayer/playback/player/Player.kt @@ -15,6 +15,7 @@ import org.fossify.musicplayer.extensions.broadcastUpdateWidgetState import org.fossify.musicplayer.extensions.config import org.fossify.musicplayer.extensions.currentMediaItems import org.fossify.musicplayer.extensions.setRepeatMode +import org.fossify.musicplayer.helpers.EXTRA_OPEN_PLAYER import org.fossify.musicplayer.helpers.SEEK_INTERVAL_MS import org.fossify.musicplayer.playback.PlaybackService import org.fossify.musicplayer.playback.PlaybackService.Companion.updatePlaybackInfo @@ -69,10 +70,15 @@ private fun PlaybackService.initializePlayer( } private fun Context.getSessionActivityIntent(): PendingIntent { + val intent = Intent(this, MainActivity::class.java).apply { + putExtra(EXTRA_OPEN_PLAYER, true) + flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP + } + return PendingIntent.getActivity( this, 0, - Intent(this, MainActivity::class.java), + intent, PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT ) }