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

Unified Diff: ui/android/java/src/org/chromium/ui/ViewAndroid.java

Issue 20125004: Use ContentViewCore's container view to keep screen on (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 7 years, 4 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: ui/android/java/src/org/chromium/ui/ViewAndroid.java
diff --git a/ui/android/java/src/org/chromium/ui/ViewAndroid.java b/ui/android/java/src/org/chromium/ui/ViewAndroid.java
index 0f0ca116a79c753f2058de2842c15b91ae4ebc2c..97c8e1dcfd3460dbdf857f5148653d079cd0f008 100644
--- a/ui/android/java/src/org/chromium/ui/ViewAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/ViewAndroid.java
@@ -4,6 +4,8 @@
package org.chromium.ui;
+import android.view.View;
+
import org.chromium.base.JNINamespace;
import org.chromium.ui.ViewAndroidDelegate;
import org.chromium.ui.WindowAndroid;
@@ -23,6 +25,8 @@ public class ViewAndroid {
private int mNativeViewAndroid = 0;
private final ViewAndroidDelegate mViewAndroidDelegate;
private final WindowAndroid mWindowAndroid;
+ private int mKeepScreenOnCount;
+ private View mKeepScreenOnView;
/**
* Constructs a View object.
@@ -55,6 +59,29 @@ public class ViewAndroid {
return mNativeViewAndroid;
}
+ /**
+ * Set KeepScreenOn flag. If the flag already set, increase mKeepScreenOnCount.
+ */
+ public void incrementKeepScreenOnCount() {
+ mKeepScreenOnCount++;
+ if (mKeepScreenOnCount == 1) {
+ mKeepScreenOnView = mViewAndroidDelegate.acquireAnchorView();
+ mKeepScreenOnView.setKeepScreenOn(true);
+ }
+ }
+
+ /**
+ * Decrease mKeepScreenOnCount, if it is decreased to 0, remove the flag.
+ */
+ public void decrementKeepScreenOnCount() {
+ assert mKeepScreenOnCount > 0;
+ mKeepScreenOnCount--;
+ if (mKeepScreenOnCount == 0) {
+ mViewAndroidDelegate.releaseAnchorView(mKeepScreenOnView);
+ mKeepScreenOnView = null;
+ }
+ }
+
private native int nativeInit(int windowPtr);
private native void nativeDestroy(int nativeViewAndroid);
}

Powered by Google App Engine
This is Rietveld 408576698