Index: chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java b/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java |
deleted file mode 100644 |
index eab406d7cb5af4ce816efbbe222a5c7e5297c8ff..0000000000000000000000000000000000000000 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ContextualMenuBar.java |
+++ /dev/null |
@@ -1,197 +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; |
- |
-import android.animation.Animator; |
-import android.animation.AnimatorListenerAdapter; |
-import android.animation.ObjectAnimator; |
-import android.animation.ValueAnimator; |
-import android.content.Context; |
-import android.content.res.TypedArray; |
-import android.support.v7.app.ActionBar; |
-import android.util.Property; |
- |
-import org.chromium.chrome.R; |
- |
-/** |
- * This class handles the animation for the contextual menu bar and adds a custom |
- * ActionMode.Callback to the menu bar. |
- */ |
-public class ContextualMenuBar { |
- |
- private static final int SLIDE_DURATION_MS = 200; |
- |
- private CustomSelectionActionModeCallback mCustomSelectionActionModeCallback; |
- private ObjectAnimator mCurrentAnimation = null; |
- private boolean mShowingContextualActionBar = false; |
- private float mTabStripHeight; |
- private final Context mContext; |
- private final ActionBarDelegate mActionBarDelegate; |
- |
- /** Property for animating the top margin of ActionBarDelegate. */ |
- public static final Property<ActionBarDelegate, Integer> TOP_MARGIN_ANIM_PROPERTY = |
- new Property<ActionBarDelegate, Integer>(Integer.class, "controlTopMargin") { |
- @Override |
- public Integer get(ActionBarDelegate delegate) { |
- return delegate.getControlTopMargin(); |
- } |
- @Override |
- public void set(ActionBarDelegate delegate, Integer value) { |
- delegate.setControlTopMargin(value); |
- } |
- }; |
- |
- /** |
- * This is an interface for objects that the contextualMenuBar can use for animating the action |
- * bar. |
- */ |
- public interface ActionBarDelegate { |
- |
- /** |
- * Sets the top margin of the control container. |
- * @param margin The new top margin of the control container. |
- */ |
- public void setControlTopMargin(int margin); |
- |
- /** |
- * @return The top margin of the control container. |
- */ |
- public int getControlTopMargin(); |
- |
- /** |
- * @return The action bar that will be animated in and out. |
- */ |
- public ActionBar getSupportActionBar(); |
- |
- /** |
- * Change the background visibility for the action bar. |
- * @param visible Whether the background should be visible. |
- */ |
- public void setActionBarBackgroundVisibility(boolean visible); |
- } |
- |
- /** |
- * Creates the contextual menu bar and ties it to an action bar using the given action bar |
- * delegate. |
- * @param context The context which the contextual action menu bar should be using for accessing |
- * resources. |
- * @param actionBarDelegate The delegate for communicating with the action bar while animating |
- * it. |
- */ |
- public ContextualMenuBar(Context context, ActionBarDelegate actionBarDelegate) { |
- mActionBarDelegate = actionBarDelegate; |
- mContext = context; |
- mTabStripHeight = mContext.getResources().getDimension(R.dimen.tab_strip_height); |
- } |
- |
- /** |
- * Overrides the preset height of the tab strip. |
- */ |
- public void setTabStripHeight(int tabStripHeight) { |
- mTabStripHeight = tabStripHeight; |
- } |
- |
- /** |
- * @return The delegate handling action bar positioning for the contextual menu bar. |
- */ |
- public ActionBarDelegate getActionBarDelegate() { |
- return mActionBarDelegate; |
- } |
- |
- /** |
- * Sets the custom ActionMode.Callback |
- * @param customSelectionActionModeCallback |
- */ |
- public void setCustomSelectionActionModeCallback( |
- CustomSelectionActionModeCallback customSelectionActionModeCallback) { |
- if (customSelectionActionModeCallback.equals(mCustomSelectionActionModeCallback)) return; |
- mCustomSelectionActionModeCallback = customSelectionActionModeCallback; |
- mCustomSelectionActionModeCallback.setContextualMenuBar(this); |
- } |
- |
- /** |
- * @return The custom ActionMode.Callback. |
- */ |
- public CustomSelectionActionModeCallback getCustomSelectionActionModeCallback() { |
- return mCustomSelectionActionModeCallback; |
- } |
- |
- /** |
- * @return The current action bar height. |
- */ |
- private int queryCurrentActionBarHeight() { |
- ActionBar actionBar = mActionBarDelegate.getSupportActionBar(); |
- if (actionBar != null) return actionBar.getHeight(); |
- |
- TypedArray styledAttributes = |
- mContext.obtainStyledAttributes(new int[] {R.attr.actionBarSize}); |
- int height = styledAttributes.getDimensionPixelSize(0, 0); |
- styledAttributes.recycle(); |
- return height; |
- } |
- |
- /** |
- * Show controls after orientation change if previously visible. |
- */ |
- public void showControlsOnOrientationChange() { |
- if (mShowingContextualActionBar && mCurrentAnimation == null) { |
- showControls(); |
- } |
- } |
- |
- /** |
- * Animation for the textview if the action bar is visible. |
- */ |
- public void showControls() { |
- if (mCurrentAnimation != null) mCurrentAnimation.cancel(); |
- |
- mCurrentAnimation = ObjectAnimator.ofInt(mActionBarDelegate, TOP_MARGIN_ANIM_PROPERTY, |
- (int) (Math.max(0, queryCurrentActionBarHeight() - mTabStripHeight))).setDuration( |
- SLIDE_DURATION_MS); |
- |
- mCurrentAnimation.addListener(new AnimatorListenerAdapter() { |
- @Override |
- public void onAnimationEnd(Animator animation) { |
- mCurrentAnimation = null; |
- } |
- }); |
- |
- mCurrentAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { |
- @Override |
- public void onAnimationUpdate(ValueAnimator animation) { |
- ActionBar actionBar = mActionBarDelegate.getSupportActionBar(); |
- if (actionBar != null) { |
- animation.setIntValues((int) (Math.max(0, |
- queryCurrentActionBarHeight() - mTabStripHeight))); |
- } |
- } |
- }); |
- |
- mActionBarDelegate.setActionBarBackgroundVisibility(true); |
- mCurrentAnimation.start(); |
- mShowingContextualActionBar = true; |
- } |
- |
- /** |
- * Hide animation for the textview if the action bar is not visible. |
- */ |
- public void hideControls() { |
- if (mCurrentAnimation != null) mCurrentAnimation.cancel(); |
- |
- mCurrentAnimation = ObjectAnimator.ofInt(mActionBarDelegate, TOP_MARGIN_ANIM_PROPERTY, |
- 0).setDuration(SLIDE_DURATION_MS); |
- |
- mCurrentAnimation.addListener(new AnimatorListenerAdapter() { |
- @Override |
- public void onAnimationEnd(Animator animation) { |
- mCurrentAnimation = null; |
- mActionBarDelegate.setActionBarBackgroundVisibility(false); |
- } |
- }); |
- |
- mCurrentAnimation.start(); |
- mShowingContextualActionBar = false; |
- } |
-} |