private void assertMediaStateIs(@PlaybackStateCompat.State int expectedState) { PlaybackState state = rule.getActivity().getMediaController().getPlaybackState(); assertNotNull(state); assertThat( "MediaSession is not in the correct state", state.getState(), is(equalTo(expectedState))); }
public static void registerCallback(Object controllerObj, Object callbackObj, Handler handler) { ((MediaController) controllerObj).registerCallback( (MediaController.Callback)callbackObj, handler); }
public static boolean dispatchMediaButtonEvent(Object controllerObj, KeyEvent event) { return ((MediaController)controllerObj).dispatchMediaButtonEvent(event); }
private void updateMediaSessionCallback(MediaController activeController) { boolean clearing = false; if (activeController != this.mLastMediaController) { if (this.mLastMediaController != null) { this.mLastMediaController.unregisterCallback(this.mMediaSessionCallback); } if (activeController != null) { activeController.registerCallback(this.mMediaSessionCallback); } this.mLastMediaController = activeController; } if (this.mLastMediaController == null) { clearing = true; } if (this.mNowPlayCardListener != null) { this.mNowPlayCardListener.onClientChanged(clearing); } if (!clearing) { updateMetadata(this.mLastMediaController.getMetadata()); updatePlayback(this.mLastMediaController.getPlaybackState()); } }
public void forceUpdate() { if (this.mLastMediaController != null) { updateMetadata(this.mLastMediaController.getMetadata()); updatePlayback(this.mLastMediaController.getPlaybackState()); } }
private void createPlayer(MediaController controller) { MprisReceiverPlayer player = new MprisReceiverPlayer(controller, AppsHelper.appNameLookup(context, controller.getPackageName())); controller.registerCallback(new MprisReceiverCallback(this, player), new Handler(Looper.getMainLooper())); players.put(player.getName(), player); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) void sendHeadsetHookLollipop() { MediaSessionManager mediaSessionManager = (MediaSessionManager) getApplicationContext().getSystemService(Context.MEDIA_SESSION_SERVICE); try { List<MediaController> mediaControllerList = mediaSessionManager.getActiveSessions (new ComponentName(getApplicationContext(), NotificationReceiverService.class)); for (MediaController m : mediaControllerList) { if ("com.android.server.telecom".equals(m.getPackageName())) { m.dispatchMediaButtonEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK)); log.info("HEADSETHOOK sent to telecom server"); break; } } } catch (SecurityException e) { log.error("Permission error. Access to notification not granted to the app."); } }
private void setPendingIntentAndPackage(NowPlayingCardData data, MediaSessionManager sessionManager) { data.clickIntent = null; data.playerPackage = null; List<MediaController> controllers = sessionManager.getActiveSessions(null); MediaController controller = null; for (int i = 0; i < controllers.size(); i++) { MediaController aController = (MediaController) controllers.get(i); if ((aController.getFlags() & 2) != 0) { controller = aController; break; } } if (controller != null) { data.playerPackage = controller.getPackageName(); data.clickIntent = controller.getSessionActivity(); if (data.clickIntent == null) { data.clickIntent = getPendingIntentFallback(data.playerPackage); } } }
public static Object getTransportControls(Object controllerObj) { return ((MediaController)controllerObj).getTransportControls(); }
public static Object getMetadata(Object controllerObj) { return ((MediaController)controllerObj).getMetadata(); }
public static void unregisterCallback(Object controllerObj, Object callbackObj) { ((MediaController) controllerObj) .unregisterCallback((MediaController.Callback) callbackObj); }
public static Object getPlaybackInfo(Object controllerObj) { return ((MediaController)controllerObj).getPlaybackInfo(); }
private void setPendingIntentAndPackage(NowPlayingCardData data, MediaSessionManager sessionManager) { data.clickIntent = null; data.playerPackage = null; List<MediaController> controllers = sessionManager.getActiveSessions(null); MediaController controller = null; for (int i = 0; i < controllers.size(); i++) { MediaController aController = (MediaController) controllers.get(i); if ((aController.getFlags() & 2) != 0) { controller = aController; break; } } if (controller != null) { data.playerPackage = controller.getPackageName(); data.clickIntent = controller.getSessionActivity(); if (data.clickIntent == null) { data.clickIntent = getPendingIntentFallback(data.playerPackage); } } }
void playPause() { if (isPlaying) { controller.getTransportControls().pause(); } else { controller.getTransportControls().play(); } }
String getArtist() { if (controller.getMetadata() == null) return ""; String artist = controller.getMetadata().getString(MediaMetadata.METADATA_KEY_ALBUM_ARTIST); return artist != null ? artist : ""; }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void unregisterSessionCallbacks() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mSessionCallback != null) { for (MediaController controller : mActiveSessions) { controller.unregisterCallback(mSessionCallback); } } }
int getVolume() { if (controller.getPlaybackInfo() == null) return 0; return 100 * controller.getPlaybackInfo().getCurrentVolume() / controller.getPlaybackInfo().getMaxVolume(); }
public static Object getPlaybackState(Object controllerObj) { return ((MediaController)controllerObj).getPlaybackState(); }
void previous() { controller.getTransportControls().skipToPrevious(); }
String getAlbum() { if (controller.getMetadata() == null) return ""; String album = controller.getMetadata().getString(MediaMetadata.METADATA_KEY_ALBUM); return album != null ? album : ""; }