Refactoring and extra logging in MediaRouterPlayService.
This commit is contained in:
parent
499390b679
commit
8186a48d1e
1 changed files with 22 additions and 8 deletions
|
@ -116,7 +116,7 @@ public class MediaRouterPlayService extends Service {
|
||||||
* Stops foreground mode and notification if the current route
|
* Stops foreground mode and notification if the current route
|
||||||
* has been removed. If the service is not bound, stops it.
|
* has been removed. If the service is not bound, stops it.
|
||||||
*/
|
*/
|
||||||
private MediaRouter.Callback mRouteRemovedCallback =
|
private MediaRouter.Callback mMediaRouterCallback =
|
||||||
new MediaRouter.Callback() {
|
new MediaRouter.Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void onRouteRemoved(MediaRouter router, RouteInfo route) {
|
public void onRouteRemoved(MediaRouter router, RouteInfo route) {
|
||||||
|
@ -131,7 +131,7 @@ public class MediaRouterPlayService extends Service {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRouteAdded(MediaRouter router, RouteInfo route) {
|
public void onRouteAdded(MediaRouter router, RouteInfo route) {
|
||||||
if (route.getId().equals(mCurrentRoute.getId())) {
|
if (mCurrentRoute != null && route.getId().equals(mCurrentRoute.getId())) {
|
||||||
selectRoute(route);
|
selectRoute(route);
|
||||||
if (mCurrentTrack >= 0 && mCurrentTrack < mPlaylist.size()) {
|
if (mCurrentTrack >= 0 && mCurrentTrack < mPlaylist.size()) {
|
||||||
new CreateNotificationTask().execute(mPlaylist.get(mCurrentTrack)
|
new CreateNotificationTask().execute(mPlaylist.get(mCurrentTrack)
|
||||||
|
@ -215,6 +215,18 @@ public class MediaRouterPlayService extends Service {
|
||||||
TelephonyManager telephonyManager =
|
TelephonyManager telephonyManager =
|
||||||
(TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
|
(TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
|
telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);
|
||||||
|
|
||||||
|
MediaRouteSelector selector = new MediaRouteSelector.Builder()
|
||||||
|
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
|
||||||
|
.build();
|
||||||
|
mMediaRouter.addCallback(selector, mMediaRouterCallback,
|
||||||
|
MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
mMediaRouter.removeCallback(mMediaRouterCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -241,13 +253,7 @@ public class MediaRouterPlayService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void selectRoute(RouteInfo route) {
|
public void selectRoute(RouteInfo route) {
|
||||||
mMediaRouter.removeCallback(mRouteRemovedCallback);
|
|
||||||
mMediaRouter.selectRoute(route);
|
mMediaRouter.selectRoute(route);
|
||||||
MediaRouteSelector selector = new MediaRouteSelector.Builder()
|
|
||||||
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
mMediaRouter.addCallback(selector, mRouteRemovedCallback, 0);
|
|
||||||
mCurrentRoute = route;
|
mCurrentRoute = route;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -442,6 +448,14 @@ public class MediaRouterPlayService extends Service {
|
||||||
i.putExtra(MediaControlIntent.EXTRA_ITEM_ID, mItemId);
|
i.putExtra(MediaControlIntent.EXTRA_ITEM_ID, mItemId);
|
||||||
mMediaRouter.getSelectedRoute().sendControlRequest(i,
|
mMediaRouter.getSelectedRoute().sendControlRequest(i,
|
||||||
new ControlRequestCallback() {
|
new ControlRequestCallback() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error, Bundle data) {
|
||||||
|
if (error != null) {
|
||||||
|
Log.w(TAG, "Failed to get status: " + error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResult(Bundle data) {
|
public void onResult(Bundle data) {
|
||||||
MediaItemStatus status = MediaItemStatus.fromBundle(data);
|
MediaItemStatus status = MediaItemStatus.fromBundle(data);
|
||||||
|
|
Reference in a new issue