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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.ui; 5 package org.chromium.ui;
6 6
7 import android.view.View;
8
7 import org.chromium.base.JNINamespace; 9 import org.chromium.base.JNINamespace;
8 import org.chromium.ui.ViewAndroidDelegate; 10 import org.chromium.ui.ViewAndroidDelegate;
9 import org.chromium.ui.WindowAndroid; 11 import org.chromium.ui.WindowAndroid;
10 12
11 /** 13 /**
12 * From the Chromium architecture point of view, ViewAndroid and its native coun terpart 14 * From the Chromium architecture point of view, ViewAndroid and its native coun terpart
13 * serve purpose of representing Android view where Chrome expects to have a cro ss platform 15 * serve purpose of representing Android view where Chrome expects to have a cro ss platform
14 * handle to the system view type. As Views are Java object on Android, this Vie wAndroid 16 * handle to the system view type. As Views are Java object on Android, this Vie wAndroid
15 * and its native counterpart provide the expected abstractions on the C++ side and allow 17 * and its native counterpart provide the expected abstractions on the C++ side and allow
16 * it to be flexibly glued to an actual Android Java View at runtime. 18 * it to be flexibly glued to an actual Android Java View at runtime.
17 * 19 *
18 * It should only be used where access to Android Views is needed from the C++ c ode. 20 * It should only be used where access to Android Views is needed from the C++ c ode.
19 */ 21 */
20 @JNINamespace("ui") 22 @JNINamespace("ui")
21 public class ViewAndroid { 23 public class ViewAndroid {
22 // Native pointer to the c++ ViewAndroid object. 24 // Native pointer to the c++ ViewAndroid object.
23 private int mNativeViewAndroid = 0; 25 private int mNativeViewAndroid = 0;
24 private final ViewAndroidDelegate mViewAndroidDelegate; 26 private final ViewAndroidDelegate mViewAndroidDelegate;
25 private final WindowAndroid mWindowAndroid; 27 private final WindowAndroid mWindowAndroid;
28 private int mKeepScreenOnCount;
29 private View mKeepScreenOnView;
26 30
27 /** 31 /**
28 * Constructs a View object. 32 * Constructs a View object.
29 */ 33 */
30 public ViewAndroid(WindowAndroid nativeWindow, ViewAndroidDelegate viewAndro idDelegate) { 34 public ViewAndroid(WindowAndroid nativeWindow, ViewAndroidDelegate viewAndro idDelegate) {
31 mWindowAndroid = nativeWindow; 35 mWindowAndroid = nativeWindow;
32 mViewAndroidDelegate = viewAndroidDelegate; 36 mViewAndroidDelegate = viewAndroidDelegate;
33 mNativeViewAndroid = nativeInit(mWindowAndroid.getNativePointer()); 37 mNativeViewAndroid = nativeInit(mWindowAndroid.getNativePointer());
34 } 38 }
35 39
(...skipping 12 matching lines...) Expand all
48 } 52 }
49 53
50 /** 54 /**
51 * Returns a pointer to the c++ AndroidWindow object. 55 * Returns a pointer to the c++ AndroidWindow object.
52 * @return A pointer to the c++ AndroidWindow. 56 * @return A pointer to the c++ AndroidWindow.
53 */ 57 */
54 public int getNativePointer() { 58 public int getNativePointer() {
55 return mNativeViewAndroid; 59 return mNativeViewAndroid;
56 } 60 }
57 61
62 /**
63 * Set whether to keep screen on when this view is in foreground.
64 * @param keepScreenOn true if the screen needs to keep on.
65 */
66 public void setKeepScreenOn(boolean keepScreenOn) {
newt (away) 2013/08/09 20:57:21 I think it should be more clear that this method i
michaelbai 2013/08/09 23:06:50 It was named by Android's convention, but yes, the
67 if (keepScreenOn) {
68 mKeepScreenOnCount++;
69 if (mKeepScreenOnCount == 1) {
70 mKeepScreenOnView = mViewAndroidDelegate.acquireAnchorView();
71 mKeepScreenOnView.setKeepScreenOn(true);
72 }
73 } else {
74 assert mKeepScreenOnCount > 0;
75 mKeepScreenOnCount--;
76 if (mKeepScreenOnCount == 0) {
77 mViewAndroidDelegate.releaseAnchorView(mKeepScreenOnView);
78 mKeepScreenOnView = null;
79 }
80 }
81 }
82
58 private native int nativeInit(int windowPtr); 83 private native int nativeInit(int windowPtr);
59 private native void nativeDestroy(int nativeViewAndroid); 84 private native void nativeDestroy(int nativeViewAndroid);
60 } 85 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698