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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/ReaderModeSceneLayer.java

Issue 2883643002: Clean up ReaderMode OverlayPanel classes (Closed)
Patch Set: remove extra enum Created 3 years, 6 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.compositor.scene_layer;
6
7 import org.chromium.base.annotations.JNINamespace;
8 import org.chromium.chrome.R;
9 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
10 import org.chromium.content_public.browser.WebContents;
11 import org.chromium.ui.resources.ResourceManager;
12
13 /**
14 * A SceneLayer to render layers for Reader Mode.
15 */
16 @JNINamespace("android")
17 public class ReaderModeSceneLayer extends SceneOverlayLayer {
18 /** Pointer to native ReaderModeSceneLayer. */
19 private long mNativePtr;
20
21 /** If the scene layer has been initialized. */
22 private boolean mIsInitialized;
23
24 /** The conversion multiple from dp to px. */
25 private final float mDpToPx;
26
27 /**
28 * @param dpToPx The conversion multiple from dp to px for the device.
29 */
30 public ReaderModeSceneLayer(float dpToPx) {
31 mDpToPx = dpToPx;
32 }
33
34 /**
35 * Update the scene layer to draw an OverlayPanel.
36 * @param resourceManager Manager to get view and image resources.
37 * @param panel The OverlayPanel to render.
38 * @param barTextViewId The ID of the view containing the Reader Mode text.
39 * @param barTextOpacity The opacity of the text specified by {@code barText ViewId}.
40 */
41 public void update(ResourceManager resourceManager, OverlayPanel panel, int barTextViewId,
42 float barTextOpacity) {
43 // Don't try to update the layer if not initialized or showing.
44 if (resourceManager == null || !panel.isShowing()) return;
45
46 if (!mIsInitialized) {
47 nativeCreateReaderModeLayer(mNativePtr, resourceManager);
48 // TODO(mdjones): Rename contextual search resources below to be gen eric to overlay
49 // panels.
50 nativeSetResourceIds(mNativePtr,
51 barTextViewId,
52 R.drawable.contextual_search_bar_background,
53 R.drawable.contextual_search_bar_shadow,
54 R.drawable.infobar_mobile_friendly,
55 R.drawable.btn_close);
56 mIsInitialized = true;
57 }
58
59 WebContents panelWebContents = panel.getContentViewCore() != null
60 ? panel.getContentViewCore().getWebContents() : null;
61
62 nativeUpdate(mNativePtr,
63 mDpToPx,
64 panel.getBasePageBrightness(),
65 panel.getBasePageY() * mDpToPx,
66 panelWebContents,
67 panel.getOffsetX() * mDpToPx,
68 panel.getOffsetY() * mDpToPx,
69 panel.getWidth() * mDpToPx,
70 panel.getHeight() * mDpToPx,
71 panel.getBarMarginSide() * mDpToPx,
72 panel.getBarHeight() * mDpToPx,
73 barTextOpacity,
74 panel.isBarBorderVisible(),
75 panel.getBarBorderHeight() * mDpToPx,
76 panel.getBarShadowVisible(),
77 panel.getBarShadowOpacity());
78 }
79
80 @Override
81 public void setContentTree(SceneLayer contentTree) {
82 nativeSetContentTree(mNativePtr, contentTree);
83 }
84
85 /**
86 * Hide the layer tree; for use if the panel is not being shown.
87 */
88 public void hideTree() {
89 if (!mIsInitialized) return;
90 nativeHideTree(mNativePtr);
91 }
92
93 @Override
94 protected void initializeNative() {
95 if (mNativePtr == 0) {
96 mNativePtr = nativeInit();
97 }
98 assert mNativePtr != 0;
99 }
100
101 /**
102 * Destroys this object and the corresponding native component.
103 */
104 @Override
105 public void destroy() {
106 super.destroy();
107 mIsInitialized = false;
108 mNativePtr = 0;
109 }
110
111 private native long nativeInit();
112 private native void nativeCreateReaderModeLayer(
113 long nativeReaderModeSceneLayer,
114 ResourceManager resourceManager);
115 private native void nativeSetContentTree(
116 long nativeReaderModeSceneLayer,
117 SceneLayer contentTree);
118 private native void nativeHideTree(
119 long nativeReaderModeSceneLayer);
120 private native void nativeSetResourceIds(
121 long nativeReaderModeSceneLayer,
122 int barTextResourceId,
123 int barBackgroundResourceId,
124 int barShadowResourceId,
125 int panelIconResourceId,
126 int closeIconResourceId);
127 private native void nativeUpdate(
128 long nativeReaderModeSceneLayer,
129 float dpToPx,
130 float basePageBrightness,
131 float basePageYOffset,
132 WebContents webContents,
133 float panelX,
134 float panelY,
135 float panelWidth,
136 float panelHeight,
137 float barMarginSide,
138 float barHeight,
139 float textOpacity,
140 boolean barBorderVisible,
141 float barBorderHeight,
142 boolean barShadowVisible,
143 float barShadowOpacity);
144 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698