438e81a117
android / Build + lint + test (push) Failing after 1m32s
Tapping the system media notification previously landed on whatever shell route MainActivity last rendered (Home / Library / Search) because MinstrelPlayerService never configured the session-activity PendingIntent, so Media3 defaulted to the launcher activity entry point. Operator request: tap should go straight to the full player. MinstrelPlayerService.onCreate now builds a PendingIntent targeting MainActivity with an EXTRA_OPEN_NOW_PLAYING flag and passes it to MediaSession.Builder.setSessionActivity. The flag also covers the lock-screen card and the Pixel Watch tile — both use the same session-activity PendingIntent. MainActivity reads the extra in onCreate AND onNewIntent (so a warm app gets the navigation too, not just cold launches), flips a pendingOpenNowPlaying StateFlow, then strips the extra so a config-change recreation doesn't re-trigger. The App composable observes the flag and runs a LaunchedEffect to navigate once the NavHost is mounted — handles both cold start (BootSplash → resolved → navigate) and warm start. launchSingleTop avoids stacking copies if NowPlaying is already on top, and the onOpenedNowPlaying callback clears the flag post-navigation so later recompositions don't re-fire. Divergence from Flutter (intentional): audio_service's default notification tap behavior just opens the launcher activity at whatever screen it was on — exactly the behavior the operator asked to improve.