Index: chrome/android/java_staging/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java |
deleted file mode 100644 |
index cdfe60b2240844223c92905ae94cab9581821a4f..0000000000000000000000000000000000000000 |
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java |
+++ /dev/null |
@@ -1,380 +0,0 @@ |
-// Copyright 2015 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.chrome.browser.compositor.overlays.strip; |
- |
-import android.content.Context; |
-import android.content.res.Resources; |
-import android.graphics.RectF; |
- |
-import org.chromium.base.VisibleForTesting; |
-import org.chromium.chrome.R; |
-import org.chromium.chrome.browser.compositor.LayerTitleCache; |
-import org.chromium.chrome.browser.compositor.layouts.LayoutRenderHost; |
-import org.chromium.chrome.browser.compositor.layouts.LayoutUpdateHost; |
-import org.chromium.chrome.browser.compositor.layouts.components.CompositorButton; |
-import org.chromium.chrome.browser.compositor.layouts.components.VirtualView; |
-import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; |
-import org.chromium.chrome.browser.compositor.layouts.eventfilter.AreaGestureEventFilter; |
-import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter; |
-import org.chromium.chrome.browser.compositor.overlays.SceneOverlay; |
-import org.chromium.chrome.browser.compositor.scene_layer.SceneOverlayLayer; |
-import org.chromium.chrome.browser.compositor.scene_layer.TabStripSceneLayer; |
-import org.chromium.chrome.browser.tabmodel.TabCreatorManager; |
-import org.chromium.chrome.browser.tabmodel.TabModelSelector; |
-import org.chromium.ui.resources.ResourceManager; |
- |
-import java.util.List; |
- |
-/** |
- * This class handles managing which {@link StripLayoutHelper} is currently active and dispatches |
- * all input and model events to the proper destination. |
- */ |
-public class StripLayoutHelperManager implements SceneOverlay { |
- // Visibility Constants |
- private static final float TAB_STRIP_HEIGHT_DP = 40.f; |
- |
- // Caching Variables |
- private final RectF mStripFilterArea = new RectF(); |
- |
- // 1px border colors |
- private static final float BORDER_OPACITY = 0.2f; |
- private static final float BORDER_OPACITY_INCOGNITO = 0.4f; |
- |
- // Model selector buttons constants. |
- private static final float MODEL_SELECTOR_BUTTON_Y_OFFSET_DP = 10.f; |
- private static final float MODEL_SELECTOR_BUTTON_RIGHT_PADDING_DP = 6.f; |
- private static final float MODEL_SELECTOR_BUTTON_LEFT_PADDING_DP = 3.f; |
- private static final float MODEL_SELECTOR_BUTTON_WIDTH_DP = 24.f; |
- private static final float MODEL_SELECTOR_BUTTON_HEIGHT_DP = 24.f; |
- |
- // External influences |
- private TabModelSelector mTabModelSelector; |
- private final LayoutUpdateHost mUpdateHost; |
- private final LayoutRenderHost mRenderHost; |
- |
- // Event Filters |
- private final AreaGestureEventFilter mEventFilter; |
- |
- // Internal state |
- private boolean mIsIncognito; |
- private final StripLayoutHelper mNormalHelper; |
- private final StripLayoutHelper mIncognitoHelper; |
- |
- // UI State |
- private float mWidth; |
- private final float mHeight; |
- private final CompositorButton mModelSelectorButton; |
- |
- private TabStripSceneLayer mTabStripTreeProvider; |
- |
- /** |
- * Creates an instance of the {@link StripLayoutHelperManager}. |
- * @param context The current Android {@link Context}. |
- * @param updateHost The parent {@link LayoutUpdateHost}. |
- * @param renderHost The {@link LayoutRenderHost}. |
- */ |
- public StripLayoutHelperManager(Context context, LayoutUpdateHost updateHost, |
- LayoutRenderHost renderHost, AreaGestureEventFilter eventFilter) { |
- mHeight = TAB_STRIP_HEIGHT_DP; |
- |
- mUpdateHost = updateHost; |
- mRenderHost = renderHost; |
- mTabStripTreeProvider = new TabStripSceneLayer(context); |
- |
- mEventFilter = eventFilter; |
- |
- mNormalHelper = new StripLayoutHelper(context, updateHost, renderHost, false); |
- mIncognitoHelper = new StripLayoutHelper(context, updateHost, renderHost, true); |
- |
- mModelSelectorButton = new CompositorButton( |
- context, MODEL_SELECTOR_BUTTON_WIDTH_DP, MODEL_SELECTOR_BUTTON_HEIGHT_DP); |
- mModelSelectorButton.setIncognito(false); |
- mModelSelectorButton.setVisible(false); |
- // Pressed resources are the same as the unpressed resources. |
- mModelSelectorButton.setResources(R.drawable.btn_tabstrip_switch_normal, |
- R.drawable.btn_tabstrip_switch_normal, R.drawable.btn_tabstrip_switch_incognito, |
- R.drawable.btn_tabstrip_switch_incognito); |
- mModelSelectorButton.setY(MODEL_SELECTOR_BUTTON_Y_OFFSET_DP); |
- |
- Resources res = context.getResources(); |
- mModelSelectorButton.setAccessibilityDescription( |
- res.getString(R.string.accessibility_tabstrip_btn_incognito_toggle_standard), |
- res.getString(R.string.accessibility_tabstrip_btn_incognito_toggle_incognito)); |
- |
- onContextChanged(context); |
- } |
- |
- /** |
- * Cleans up internal state. |
- */ |
- public void destroy() { |
- mTabStripTreeProvider.destroy(); |
- mTabStripTreeProvider = null; |
- } |
- |
- @Override |
- public SceneOverlayLayer getUpdatedSceneOverlayTree(LayerTitleCache layerTitleCache, |
- ResourceManager resourceManager, float yOffset) { |
- assert mTabStripTreeProvider != null; |
- |
- mTabStripTreeProvider.pushAndUpdateStrip(this, layerTitleCache, resourceManager, |
- getActiveStripLayoutHelper().getStripLayoutTabsToRender(), yOffset); |
- return mTabStripTreeProvider; |
- } |
- |
- @Override |
- public EventFilter getEventFilter() { |
- return mEventFilter; |
- } |
- |
- @Override |
- public void onSizeChanged(float width, float height, float visibleViewportOffsetY) { |
- mWidth = width; |
- mModelSelectorButton.setX( |
- mWidth - MODEL_SELECTOR_BUTTON_WIDTH_DP - MODEL_SELECTOR_BUTTON_RIGHT_PADDING_DP); |
- mNormalHelper.onSizeChanged(mWidth, mHeight); |
- mIncognitoHelper.onSizeChanged(mWidth, mHeight); |
- |
- mStripFilterArea.set(0, 0, mWidth, Math.min(getHeight(), visibleViewportOffsetY)); |
- mEventFilter.setEventArea(mStripFilterArea); |
- } |
- |
- public CompositorButton getNewTabButton() { |
- return getActiveStripLayoutHelper().getNewTabButton(); |
- } |
- |
- public CompositorButton getModelSelectorButton() { |
- return mModelSelectorButton; |
- } |
- |
- @Override |
- public void getVirtualViews(List<VirtualView> views) { |
- if (mModelSelectorButton.isVisible()) views.add(mModelSelectorButton); |
- getActiveStripLayoutHelper().getVirtualViews(views); |
- } |
- |
- public float getStripBrightness() { |
- return getActiveStripLayoutHelper().getStripBrightness(); |
- } |
- |
- /** |
- * Sets the {@link TabModelSelector} that this {@link StripLayoutHelperManager} will visually |
- * represent, and various objects associated with it. |
- * @param modelSelector The {@link TabModelSelector} to visually represent. |
- * @param tabCreatorManager The {@link TabCreatorManager}, used to create new tabs. |
- * @param tabContentManager The {@link TabContentManager}, used to provide display content for |
- * tabs. |
- */ |
- public void setTabModelSelector(TabModelSelector modelSelector, |
- TabCreatorManager tabCreatorManager, TabContentManager tabContentManager) { |
- if (mTabModelSelector == modelSelector) return; |
- mTabModelSelector = modelSelector; |
- mNormalHelper.setTabModel(mTabModelSelector.getModel(false), tabContentManager, |
- tabCreatorManager.getTabCreator(false)); |
- mIncognitoHelper.setTabModel(mTabModelSelector.getModel(true), tabContentManager, |
- tabCreatorManager.getTabCreator(true)); |
- tabModelSwitched(mTabModelSelector.isIncognitoSelected()); |
- } |
- |
- @Override |
- public void tabTitleChanged(int tabId, String title) { |
- getActiveStripLayoutHelper().tabTitleChanged(tabId, title); |
- } |
- |
- public float getHeight() { |
- return mHeight; |
- } |
- |
- public float getWidth() { |
- return mWidth; |
- } |
- |
- public float getBorderOpacity() { |
- return mIsIncognito ? BORDER_OPACITY_INCOGNITO : BORDER_OPACITY; |
- } |
- |
- /** |
- * Updates all internal resources and dimensions. |
- * @param context The current Android {@link Context}. |
- */ |
- public void onContextChanged(Context context) { |
- mNormalHelper.onContextChanged(context); |
- mIncognitoHelper.onContextChanged(context); |
- } |
- |
- @Override |
- public boolean updateOverlay(long time, long dt) { |
- getInactiveStripLayoutHelper().finishAnimation(); |
- return getActiveStripLayoutHelper().updateLayout(time, dt); |
- } |
- |
- @Override |
- public void tabModelSwitched(boolean incognito) { |
- if (incognito == mIsIncognito) return; |
- mIsIncognito = incognito; |
- |
- updateModelSwitcherButton(); |
- |
- mUpdateHost.requestUpdate(); |
- } |
- |
- private void updateModelSwitcherButton() { |
- mModelSelectorButton.setIncognito(mIsIncognito); |
- if (mTabModelSelector != null) { |
- boolean isVisible = mTabModelSelector.getModel(true).getCount() != 0; |
- mModelSelectorButton.setVisible(isVisible); |
- |
- float rightMargin = isVisible |
- ? MODEL_SELECTOR_BUTTON_WIDTH_DP + MODEL_SELECTOR_BUTTON_RIGHT_PADDING_DP |
- + MODEL_SELECTOR_BUTTON_LEFT_PADDING_DP |
- : 0.0f; |
- mNormalHelper.setRightMargin(rightMargin); |
- mIncognitoHelper.setRightMargin(rightMargin); |
- } |
- } |
- |
- @Override |
- public void tabSelected(long time, boolean incognito, int id, int prevId) { |
- getStripLayoutHelper(incognito).tabSelected(time, id, prevId); |
- } |
- |
- @Override |
- public void tabMoved(long time, boolean incognito, int id, int oldIndex, int newIndex) { |
- getStripLayoutHelper(incognito).tabMoved(time, id, oldIndex, newIndex); |
- } |
- |
- @Override |
- public void tabClosed(long time, boolean incognito, int id) { |
- getStripLayoutHelper(incognito).tabClosed(time, id); |
- updateModelSwitcherButton(); |
- } |
- |
- @Override |
- public void tabClosureCancelled(long time, boolean incognito, int id) { |
- getStripLayoutHelper(incognito).tabClosureCancelled(time, id); |
- updateModelSwitcherButton(); |
- } |
- |
- @Override |
- public void tabCreated(long time, boolean incognito, int id, int prevId, boolean selected) { |
- getStripLayoutHelper(incognito).tabCreated(time, id, prevId, selected); |
- } |
- |
- @Override |
- public void tabPageLoadStarted(int id, boolean incognito) { |
- getStripLayoutHelper(incognito).tabPageLoadStarted(id); |
- } |
- |
- @Override |
- public void tabPageLoadFinished(int id, boolean incognito) { |
- getStripLayoutHelper(incognito).tabPageLoadFinished(id); |
- } |
- |
- @Override |
- public void tabLoadStarted(int id, boolean incognito) { |
- getStripLayoutHelper(incognito).tabLoadStarted(id); |
- } |
- |
- @Override |
- public void tabLoadFinished(int id, boolean incognito) { |
- getStripLayoutHelper(incognito).tabLoadFinished(id); |
- } |
- |
- /** |
- * Called on touch drag event. |
- * @param time The current time of the app in ms. |
- * @param x The y coordinate of the end of the drag event. |
- * @param y The y coordinate of the end of the drag event. |
- * @param deltaX The number of pixels dragged in the x direction. |
- * @param deltaY The number of pixels dragged in the y direction. |
- * @param totalX The total delta x since the drag started. |
- * @param totalY The total delta y since the drag started. |
- */ |
- public void drag( |
- long time, float x, float y, float deltaX, float deltaY, float totalX, float totalY) { |
- mModelSelectorButton.drag(x, y); |
- getActiveStripLayoutHelper().drag(time, x, y, deltaX, deltaY, totalX, totalY); |
- } |
- |
- /** |
- * Called on touch fling event. This is called before the onUpOrCancel event. |
- * @param time The current time of the app in ms. |
- * @param x The y coordinate of the start of the fling event. |
- * @param y The y coordinate of the start of the fling event. |
- * @param velocityX The amount of velocity in the x direction. |
- * @param velocityY The amount of velocity in the y direction. |
- */ |
- public void fling(long time, float x, float y, float velocityX, float velocityY) { |
- getActiveStripLayoutHelper().fling(time, x, y, velocityX, velocityY); |
- } |
- |
- /** |
- * Called on onDown event. |
- * @param time The time stamp in millisecond of the event. |
- * @param x The x position of the event. |
- * @param y The y position of the event. |
- */ |
- public void onDown(long time, float x, float y) { |
- if (mModelSelectorButton.onDown(x, y)) return; |
- getActiveStripLayoutHelper().onDown(time, x, y); |
- } |
- |
- /** |
- * Called on long press touch event. |
- * @param time The current time of the app in ms. |
- * @param x The x coordinate of the position of the press event. |
- * @param y The y coordinate of the position of the press event. |
- */ |
- public void onLongPress(long time, float x, float y) { |
- getActiveStripLayoutHelper().onLongPress(time, x, y); |
- } |
- |
- /** |
- * Called on click. This is called before the onUpOrCancel event. |
- * @param time The current time of the app in ms. |
- * @param x The x coordinate of the position of the click. |
- * @param y The y coordinate of the position of the click. |
- */ |
- public void click(long time, float x, float y) { |
- if (mModelSelectorButton.click(x, y) && mTabModelSelector != null) { |
- mTabModelSelector.selectModel(!mTabModelSelector.isIncognitoSelected()); |
- return; |
- } |
- getActiveStripLayoutHelper().click(time, x, y); |
- } |
- |
- /** |
- * Called on up or cancel touch events. This is called after the click and fling event if any. |
- * @param time The current time of the app in ms. |
- */ |
- public void onUpOrCancel(long time) { |
- if (mModelSelectorButton.onUpOrCancel() && mTabModelSelector != null) { |
- mTabModelSelector.selectModel(!mTabModelSelector.isIncognitoSelected()); |
- return; |
- } |
- getActiveStripLayoutHelper().onUpOrCancel(time); |
- } |
- |
- /** |
- * @param incognito Whether or not you want the incognito StripLayoutHelper |
- * @return The requested StripLayoutHelper. |
- */ |
- @VisibleForTesting |
- public StripLayoutHelper getStripLayoutHelper(boolean incognito) { |
- return incognito ? mIncognitoHelper : mNormalHelper; |
- } |
- |
- /** |
- * @return The currently visible strip layout helper. |
- */ |
- @VisibleForTesting |
- public StripLayoutHelper getActiveStripLayoutHelper() { |
- return getStripLayoutHelper(mIsIncognito); |
- } |
- |
- private StripLayoutHelper getInactiveStripLayoutHelper() { |
- return mIsIncognito ? mNormalHelper : mIncognitoHelper; |
- } |
-} |