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

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

Issue 1376703002: Presentation API: reject screen availability observing on Android low ram devices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review comments and compile fix Created 5 years, 3 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/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 6c71da45feef9b2ba22c822926f41b07415c9bb1..4f4c198b11afe0cbc6088eb0c246e4fce31f5f16 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
@@ -4,7 +4,9 @@
package org.chromium.chrome.browser.media.router;
+import android.app.ActivityManager;
import android.content.Context;
+import android.os.Build;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
@@ -27,6 +29,7 @@ public class ChromeMediaRouter implements MediaRouteManager {
private static final String TAG = "cr.MediaRouter";
private final long mNativeMediaRouterAndroid;
+ private final Context mApplicationContext;
private final List<MediaRouteProvider> mRouteProviders = new ArrayList<MediaRouteProvider>();
private final Map<String, MediaRouteProvider> mSinkIdsToProviders =
new HashMap<String, MediaRouteProvider>();
@@ -109,14 +112,26 @@ 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) {
+ // Do not allow observing on Low-Ram devices.
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
whywhat 2015/09/29 12:29:22 Please, use org.chromium.base.SysUtils.isLowEndDev
mlamouri (slow - plz ping) 2015/09/29 14:44:52 Ok. It does simplify a few things.
+ ActivityManager activityManager = (ActivityManager)
+ mApplicationContext.getSystemService(Context.ACTIVITY_SERVICE);
+ if (activityManager.isLowRamDevice()) {
+ return false;
+ }
+ }
+
for (MediaRouteProvider provider : mRouteProviders) {
provider.startObservingMediaSinks(sourceId);
}
+
+ return true;
}
/**
@@ -211,6 +226,7 @@ public class ChromeMediaRouter implements MediaRouteManager {
MediaRouteProvider provider = CastMediaRouteProvider.create(applicationContext, this);
if (provider != null) mRouteProviders.add(provider);
+ mApplicationContext = applicationContext;
mNativeMediaRouterAndroid = nativeMediaRouter;
}
@@ -246,4 +262,4 @@ public class ChromeMediaRouter implements MediaRouteManager {
native void nativeOnMessageSentResult(
long nativeMediaRouterAndroid, boolean success, int callbackId);
native void nativeOnMessage(long nativeMediaRouterAndroid, String mediaRouteId, String message);
-}
+}

Powered by Google App Engine
This is Rietveld 408576698