private boolean onPlayRequest(Intent i, ControlRequestCallback cb) { Log.d(getClass().getSimpleName(), "play: " + i.getData().toString()); MediaItemStatus.Builder statusBuilder= new MediaItemStatus.Builder( MediaItemStatus.PLAYBACK_STATE_PLAYING); Bundle b=new Bundle(); b.putString(MediaControlIntent.EXTRA_SESSION_ID, DemoRouteProvider.DEMO_SESSION_ID); b.putString(MediaControlIntent.EXTRA_ITEM_ID, DemoRouteProvider.DEMO_ITEM_ID); b.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, statusBuilder.build().asBundle()); cb.onResult(b); return(true); }
public MediaItemStatusAssert hasContentDuration(long duration) { isNotNull(); long actualDuration = actual.getContentDuration(); assertThat(actualDuration) // .overridingErrorMessage("Expected content duration <%s> but was <%s>.", duration, actualDuration) // .isEqualTo(duration); return this; }
public MediaItemStatusAssert hasContentPosition(long position) { isNotNull(); long actualPosition = actual.getContentPosition(); assertThat(actualPosition) // .overridingErrorMessage("Expected content position <%s> but was <%s>.", position, actualPosition) // .isEqualTo(position); return this; }
@Override public void onResult(Bundle data, String sessionId, MediaSessionStatus sessionStatus, String itemId, MediaItemStatus itemStatus) { logStatus("getStatus: succeeded", sessionId, sessionStatus, itemId, itemStatus); int state = itemStatus.getPlaybackState(); if (state == MediaItemStatus.PLAYBACK_STATE_PLAYING || state == MediaItemStatus.PLAYBACK_STATE_PAUSED || state == MediaItemStatus.PLAYBACK_STATE_PENDING) { item.setState(state); item.setPosition(itemStatus.getContentPosition()); item.setDuration(itemStatus.getContentDuration()); item.setTimestamp(itemStatus.getTimestamp()); } if (update && mCallback != null) { mCallback.onPlaylistReady(); } }
Bundle itemStatusBundle = (Bundle) statusBundle.getParcelable(MediaControlIntent.EXTRA_ITEM_STATUS); MediaItemStatus itemStatus = MediaItemStatus.fromBundle(itemStatusBundle); updateState(itemStatus.getPlaybackState()); if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_PLAYING) { mPositionExtrapolator.onResumed(); } else if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_FINISHED) { mPositionExtrapolator.onFinished(); } else { long duration = Math.max(itemStatus.getContentDuration(), 0); long position = Math.min(Math.max(itemStatus.getContentPosition(), 0), duration); logExtraHttpInfo(itemStatus.getExtras());
public MediaItemStatusAssert hasPlaybackState(@MediaItemStatusPlaybackState int state) { isNotNull(); int actualState = actual.getPlaybackState(); //noinspection ResourceType assertThat(actualState) // .overridingErrorMessage("Expected playback state <%s> but was <%s>.", playbackStateToString(state), playbackStateToString(actualState)) // .isEqualTo(state); return this; }
public MediaItemStatusAssert hasTimestamp(long timestamp) { isNotNull(); long actualTimestamp = actual.getTimestamp(); assertThat(actualTimestamp) // .overridingErrorMessage("Expected timestamp <%s> but was <%s>.", timestamp, actualTimestamp) .isEqualTo(timestamp); return this; }
@Override public void onItemStatusChanged(Bundle data, String sessionId, MediaSessionStatus sessionStatus, String itemId, MediaItemStatus itemStatus) { logStatus("onItemStatusChanged", sessionId, sessionStatus, itemId, itemStatus); if (mCallback != null) { if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_FINISHED) { mCallback.onCompletion(); } else if (itemStatus.getPlaybackState() == MediaItemStatus.PLAYBACK_STATE_ERROR) { mCallback.onError(); } } }
private boolean onPlayRequest(Intent i, ControlRequestCallback cb) { Log.d(getClass().getSimpleName(), "play: " + i.getData().toString()); MediaItemStatus.Builder statusBuilder= new MediaItemStatus.Builder( MediaItemStatus.PLAYBACK_STATE_PLAYING); Bundle b=new Bundle(); b.putString(MediaControlIntent.EXTRA_SESSION_ID, DemoRouteProvider.DEMO_SESSION_ID); b.putString(MediaControlIntent.EXTRA_ITEM_ID, DemoRouteProvider.DEMO_ITEM_ID); b.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, statusBuilder.build().asBundle()); cb.onResult(b); return(true); }
private boolean onSeekRequest(Intent i, ControlRequestCallback cb) { Log.d(getClass().getSimpleName(), "seek"); MediaItemStatus.Builder statusBuilder= new MediaItemStatus.Builder( MediaItemStatus.PLAYBACK_STATE_PLAYING); Bundle b=new Bundle(); b.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, statusBuilder.build().asBundle()); cb.onResult(b); return(true); } }
private boolean onSeekRequest(Intent i, ControlRequestCallback cb) { Log.d(getClass().getSimpleName(), "seek"); MediaItemStatus.Builder statusBuilder= new MediaItemStatus.Builder( MediaItemStatus.PLAYBACK_STATE_PLAYING); Bundle b=new Bundle(); b.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, statusBuilder.build().asBundle()); cb.onResult(b); return(true); } }
private boolean onGetStatusRequest(Intent i, ControlRequestCallback cb) { Log.d(getClass().getSimpleName(), "get-status"); MediaItemStatus.Builder statusBuilder= new MediaItemStatus.Builder( MediaItemStatus.PLAYBACK_STATE_PLAYING); Bundle b=new Bundle(); b.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, statusBuilder.build().asBundle()); cb.onResult(b); return(true); }
private boolean onGetStatusRequest(Intent i, ControlRequestCallback cb) { Log.d(getClass().getSimpleName(), "get-status"); MediaItemStatus.Builder statusBuilder= new MediaItemStatus.Builder( MediaItemStatus.PLAYBACK_STATE_PLAYING); Bundle b=new Bundle(); b.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, statusBuilder.build().asBundle()); cb.onResult(b); return(true); }
private boolean handleGetStatus(Intent intent, ControlRequestCallback callback) { String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID); String iid = intent.getStringExtra(MediaControlIntent.EXTRA_ITEM_ID); Log.d(TAG, mRouteId + ": Received getStatus request, sid=" + sid + ", iid=" + iid); PlaylistItem item = mSessionManager.getStatus(iid); if (callback != null) { if (item != null) { Bundle result = new Bundle(); result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, item.getStatus().asBundle()); callback.onResult(result); } else { callback.onError("Failed to get status" + ", sid=" + sid + ", iid=" + iid, null); } } return (item != null); }
private void handleStatusChange(PlaylistItem item) { if (item == null) { item = mSessionManager.getCurrentItem(); } if (item != null) { PendingIntent receiver = item.getUpdateReceiver(); if (receiver != null) { Intent intent = new Intent(); intent.putExtra(MediaControlIntent.EXTRA_SESSION_ID, item.getSessionId()); intent.putExtra(MediaControlIntent.EXTRA_ITEM_ID, item.getItemId()); intent.putExtra(MediaControlIntent.EXTRA_ITEM_STATUS, item.getStatus().asBundle()); try { receiver.send(getContext(), 0, intent); Log.d(TAG, mRouteId + ": Sending status update from provider"); } catch (PendingIntent.CanceledException e) { Log.d(TAG, mRouteId + ": Failed to send status update!"); } } } }
private boolean handleRemove(Intent intent, ControlRequestCallback callback) { String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID); if (sid == null || !sid.equals(mSessionManager.getSessionId())) { return false; } String iid = intent.getStringExtra(MediaControlIntent.EXTRA_ITEM_ID); PlaylistItem item = mSessionManager.remove(iid); if (callback != null) { if (item != null) { Bundle result = new Bundle(); result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, item.getStatus().asBundle()); callback.onResult(result); } else { callback.onError("Failed to remove" + ", sid=" + sid + ", iid=" + iid, null); } } return (item != null); }
private boolean handleSeek(Intent intent, ControlRequestCallback callback) { String sid = intent.getStringExtra(MediaControlIntent.EXTRA_SESSION_ID); if (sid == null || !sid.equals(mSessionManager.getSessionId())) { return false; } String iid = intent.getStringExtra(MediaControlIntent.EXTRA_ITEM_ID); long pos = intent.getLongExtra(MediaControlIntent.EXTRA_ITEM_CONTENT_POSITION, 0); Log.d(TAG, mRouteId + ": Received seek request, pos=" + pos); PlaylistItem item = mSessionManager.seek(iid, pos); if (callback != null) { if (item != null) { Bundle result = new Bundle(); result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, item.getStatus().asBundle()); callback.onResult(result); } else { callback.onError("Failed to seek" + ", sid=" + sid + ", iid=" + iid + ", pos=" + pos, null); } } return (item != null); }
result.putString(MediaControlIntent.EXTRA_ITEM_ID, item.getItemId()); result.putBundle(MediaControlIntent.EXTRA_ITEM_STATUS, item.getStatus().asBundle()); callback.onResult(result); } else {