Index: chrome/android/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java |
index 8797414bd0697d13270384e42433010cf79419cf..b281916b4adc61956103f82298b885fd6dd22dcb 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/ChromeMediaRouter.java |
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.media.router; |
import android.content.Context; |
import android.support.v7.media.MediaRouter; |
+import org.chromium.base.SysUtils; |
import org.chromium.base.VisibleForTesting; |
import org.chromium.base.annotations.CalledByNative; |
import org.chromium.base.annotations.JNINamespace; |
@@ -54,6 +55,9 @@ public class ChromeMediaRouter implements MediaRouteManager { |
return MediaRouter.getInstance(applicationContext); |
} catch (NoSuchMethodError e) { |
return null; |
+ } catch (NoClassDefFoundError e) { |
+ // TODO(mlamouri): happens with Robolectric. |
+ return null; |
} |
} |
@@ -129,14 +133,19 @@ public class ChromeMediaRouter implements MediaRouteManager { |
/** |
* Starts background monitoring for available media sinks compatible with the given |
- * |sourceUrn| |
+ * |sourceUrn| if the device is in a state that allows it. |
* @param sourceId a URL to use for filtering of the available media sinks |
+ * @return whether the monitoring started (ie. was allowed). |
*/ |
@CalledByNative |
- public void startObservingMediaSinks(String sourceId) { |
+ public boolean startObservingMediaSinks(String sourceId) { |
+ if (SysUtils.isLowEndDevice()) return false; |
+ |
for (MediaRouteProvider provider : mRouteProviders) { |
provider.startObservingMediaSinks(sourceId); |
} |
+ |
+ return true; |
} |
/** |
@@ -266,4 +275,4 @@ public class ChromeMediaRouter implements MediaRouteManager { |
native void nativeOnMessageSentResult( |
long nativeMediaRouterAndroid, boolean success, int callbackId); |
native void nativeOnMessage(long nativeMediaRouterAndroid, String mediaRouteId, String message); |
-} |
+} |