Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3005)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java

Issue 2783363002: [Android,Cast] Report correctly when devices are not available. (Closed)
Patch Set: Fixed the test URLs Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java
index 594e5ffe8c4267eb694de33cddb64f14cf136841..fc92cfd941a5bb07b5f7f97af7ce9f8044c96645 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java
@@ -91,7 +91,6 @@ public class CastMediaRouteProvider implements MediaRouteProvider, DiscoveryDele
@Nullable
public static CastMediaRouteProvider create(MediaRouteManager manager) {
MediaRouter androidMediaRouter = ChromeMediaRouter.getAndroidMediaRouter();
- if (androidMediaRouter == null) return null;
return new CastMediaRouteProvider(androidMediaRouter, manager);
}
@@ -182,10 +181,19 @@ public class CastMediaRouteProvider implements MediaRouteProvider, DiscoveryDele
@Override
public void startObservingMediaSinks(String sourceId) {
- if (mAndroidMediaRouter == null) return;
+ if (mAndroidMediaRouter == null) {
+ // If the MediaRouter API is not available, report no devices so the page doesn't even
+ // try to cast.
+ onSinksReceived(sourceId, new ArrayList<MediaSink>());
+ return;
+ }
MediaSource source = MediaSource.from(sourceId);
- if (source == null) return;
+ if (source == null) {
+ // If the source is invalid, report no devices available.
+ onSinksReceived(sourceId, new ArrayList<MediaSink>());
+ return;
+ }
MediaRouteSelector routeSelector = source.buildRouteSelector();
if (routeSelector == null) {
@@ -322,7 +330,7 @@ public class CastMediaRouteProvider implements MediaRouteProvider, DiscoveryDele
}
ClientRecord client = getClientRecordByRouteId(routeId);
- if (client != null) {
+ if (client != null && mAndroidMediaRouter != null) {
MediaSink sink = MediaSink.fromSinkId(mSession.getSinkId(), mAndroidMediaRouter);
if (sink != null) sendReceiverAction(routeId, sink, client.clientId, "stop");
}

Powered by Google App Engine
This is Rietveld 408576698