Index: chrome/android/java/src/org/chromium/chrome/browser/media/remote/RemoteMediaPlayerBridge.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/remote/RemoteMediaPlayerBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/media/remote/RemoteMediaPlayerBridge.java |
index 0bf0d0bc33eba17feb91b1747eca12355803f634..d5cb4ed8e8d1dea08bb52b4fff4783d92f7a283d 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/remote/RemoteMediaPlayerBridge.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/remote/RemoteMediaPlayerBridge.java |
@@ -202,6 +202,7 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
@CalledByNative |
private void requestRemotePlayback() { |
if (mDebug) Log.i(TAG, "requestRemotePlayback"); |
+ if (mRouteController == null) return; |
// Clear out the state |
mPauseRequested = false; |
mSeekRequested = false; |
@@ -221,6 +222,7 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
@CalledByNative |
private void setNativePlayer() { |
if (mDebug) Log.i(TAG, "setNativePlayer"); |
+ if (mRouteController == null) return; |
mRouteController.setMediaStateListener(mMediaStateListener); |
mActive = true; |
} |
@@ -228,17 +230,15 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
@CalledByNative |
private void onPlayerCreated() { |
if (mDebug) Log.i(TAG, "onPlayerCreated"); |
- if (mRouteController != null) { |
- mRouteController.addMediaStateListener(mMediaStateListener); |
- } |
+ if (mRouteController == null) return; |
+ mRouteController.addMediaStateListener(mMediaStateListener); |
} |
@CalledByNative |
private void onPlayerDestroyed() { |
if (mDebug) Log.i(TAG, "onPlayerDestroyed"); |
- if (mRouteController != null) { |
- mRouteController.removeMediaStateListener(mMediaStateListener); |
- } |
+ if (mRouteController == null) return; |
+ mRouteController.removeMediaStateListener(mMediaStateListener); |
} |
/** |
@@ -250,24 +250,28 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
*/ |
@CalledByNative |
private void setPosterBitmap(Bitmap bitmap) { |
+ if (mRouteController == null) return; |
mPosterBitmap = bitmap; |
} |
@Override |
@CalledByNative |
protected boolean isPlaying() { |
+ if (mRouteController == null) return false; |
return mRouteController.isPlaying(); |
} |
@Override |
@CalledByNative |
protected int getCurrentPosition() { |
+ if (mRouteController == null) return 0; |
return mRouteController.getPosition(); |
} |
@Override |
@CalledByNative |
protected int getDuration() { |
+ if (mRouteController == null) return 0; |
return mRouteController.getDuration(); |
} |
@@ -276,7 +280,7 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
protected void release() { |
// Remove the state change listeners. Release does mean that Chrome is no longer interested |
// in events from the media player. |
- mRouteController.setMediaStateListener(null); |
+ if (mRouteController != null) mRouteController.setMediaStateListener(null); |
mActive = false; |
} |
@@ -289,14 +293,14 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
@CalledByNative |
protected void start() throws IllegalStateException { |
mPauseRequested = false; |
- if (mRouteController.isBeingCast()) mRouteController.resume(); |
+ if (mRouteController != null && mRouteController.isBeingCast()) mRouteController.resume(); |
} |
@Override |
@CalledByNative |
protected void pause() throws IllegalStateException { |
mPauseRequested = true; |
- if (mRouteController.isBeingCast()) mRouteController.pause(); |
+ if (mRouteController != null && mRouteController.isBeingCast()) mRouteController.pause(); |
} |
@Override |
@@ -304,7 +308,9 @@ public class RemoteMediaPlayerBridge extends MediaPlayerBridge { |
protected void seekTo(int msec) throws IllegalStateException { |
mSeekRequested = true; |
mSeekLocation = msec; |
- if (mRouteController.isBeingCast()) mRouteController.seekTo(msec); |
+ if (mRouteController != null && mRouteController.isBeingCast()) { |
+ mRouteController.seekTo(msec); |
+ } |
} |
@Override |