| 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);
|
| -}
|
| +}
|
|
|