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