Index: chrome/android/java_staging/src/org/chromium/chrome/browser/widget/newtab/NewTabButton.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/widget/newtab/NewTabButton.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/widget/newtab/NewTabButton.java |
deleted file mode 100644 |
index ef0d02b2c51426734408648def336b8f2ff797ab..0000000000000000000000000000000000000000 |
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/widget/newtab/NewTabButton.java |
+++ /dev/null |
@@ -1,164 +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.widget.newtab; |
- |
-import android.animation.Animator; |
-import android.animation.AnimatorSet; |
-import android.animation.ObjectAnimator; |
-import android.content.Context; |
-import android.graphics.Canvas; |
-import android.graphics.drawable.Drawable; |
-import android.util.AttributeSet; |
-import android.util.Property; |
-import android.widget.Button; |
- |
-import org.chromium.base.ApiCompatibilityUtils; |
-import org.chromium.chrome.R; |
- |
-import java.util.ArrayList; |
-import java.util.List; |
- |
-/** |
- * Button for creating new tabs. |
- */ |
-public class NewTabButton extends Button implements Drawable.Callback { |
- |
- private static final Property<Drawable, Integer> DRAWABLE_ALPHA_PROPERTY = |
- new Property<Drawable, Integer>(Integer.class, "alpha") { |
- @Override |
- public Integer get(Drawable d) { |
- // getAlpha() is only exposed on drawable in API 19+, so we rely on animations |
- // always setting the starting and ending values instead of relying on this |
- // property. |
- return 0; |
- } |
- |
- @Override |
- public void set(Drawable d, Integer alpha) { |
- d.setAlpha(alpha); |
- } |
- }; |
- |
- private final Drawable mNormalDrawable; |
- private final Drawable mIncognitoDrawable; |
- private boolean mIsIncognito; |
- private AnimatorSet mTransitionAnimation; |
- |
- /** |
- * Constructor for inflating from XML. |
- */ |
- public NewTabButton(Context context, AttributeSet attrs) { |
- super(context, attrs); |
- mNormalDrawable = ApiCompatibilityUtils.getDrawable( |
- getResources(), R.drawable.btn_new_tab_white); |
- mNormalDrawable.setBounds( |
- 0, 0, mNormalDrawable.getIntrinsicWidth(), mNormalDrawable.getIntrinsicHeight()); |
- mNormalDrawable.setCallback(this); |
- mIncognitoDrawable = ApiCompatibilityUtils.getDrawable( |
- getResources(), R.drawable.btn_new_tab_incognito); |
- mIncognitoDrawable.setBounds( |
- 0, 0, |
- mIncognitoDrawable.getIntrinsicWidth(), mIncognitoDrawable.getIntrinsicHeight()); |
- mIncognitoDrawable.setCallback(this); |
- mIsIncognito = false; |
- } |
- |
- @Override |
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { |
- int desiredWidth = Math.max( |
- mIncognitoDrawable.getIntrinsicWidth(), mNormalDrawable.getIntrinsicWidth()); |
- desiredWidth += getPaddingLeft() + getPaddingRight(); |
- widthMeasureSpec = MeasureSpec.makeMeasureSpec(desiredWidth, MeasureSpec.EXACTLY); |
- super.onMeasure(widthMeasureSpec, heightMeasureSpec); |
- } |
- |
- @Override |
- protected void onDraw(Canvas canvas) { |
- super.onDraw(canvas); |
- |
- boolean isRtl = ApiCompatibilityUtils.isLayoutRtl(this); |
- int paddingStart = ApiCompatibilityUtils.getPaddingStart(this); |
- int widthWithoutPadding = getWidth() - paddingStart; |
- |
- canvas.save(); |
- if (!isRtl) canvas.translate(paddingStart, 0); |
- |
- canvas.save(); |
- canvas.translate(0, (getHeight() - mNormalDrawable.getIntrinsicHeight()) / 2.f); |
- if (isRtl) { |
- canvas.translate(widthWithoutPadding - mNormalDrawable.getIntrinsicWidth(), 0); |
- } |
- mNormalDrawable.draw(canvas); |
- canvas.restore(); |
- |
- if (mIsIncognito || (mTransitionAnimation != null && mTransitionAnimation.isRunning())) { |
- canvas.save(); |
- canvas.translate(0, (getHeight() - mIncognitoDrawable.getIntrinsicHeight()) / 2.f); |
- if (isRtl) { |
- canvas.translate(widthWithoutPadding - mIncognitoDrawable.getIntrinsicWidth(), 0); |
- } |
- mIncognitoDrawable.draw(canvas); |
- canvas.restore(); |
- } |
- |
- canvas.restore(); |
- } |
- |
- @Override |
- public void invalidateDrawable(Drawable dr) { |
- if (dr == mIncognitoDrawable || dr == mNormalDrawable) { |
- invalidate(); |
- } else { |
- super.invalidateDrawable(dr); |
- } |
- } |
- |
- /** |
- * Updates the visual state based on whether incognito or normal tabs are being created. |
- * @param incognito Whether the button is now used for creating incognito tabs. |
- */ |
- public void setIsIncognito(boolean incognito) { |
- if (mIsIncognito == incognito) return; |
- mIsIncognito = incognito; |
- |
- if (mTransitionAnimation != null) { |
- mTransitionAnimation.cancel(); |
- mTransitionAnimation = null; |
- } |
- |
- Drawable fadeOutDrawable = incognito ? mNormalDrawable : mIncognitoDrawable; |
- Drawable fadeInDrawable = incognito ? mIncognitoDrawable : mNormalDrawable; |
- |
- if (getVisibility() != VISIBLE) { |
- fadeOutDrawable.setAlpha(0); |
- fadeInDrawable.setAlpha(255); |
- return; |
- } |
- |
- List<Animator> animations = new ArrayList<Animator>(); |
- Animator animation = ObjectAnimator.ofInt( |
- fadeOutDrawable, DRAWABLE_ALPHA_PROPERTY, 255, 0); |
- animation.setDuration(100); |
- animations.add(animation); |
- |
- animation = ObjectAnimator.ofInt( |
- fadeInDrawable, DRAWABLE_ALPHA_PROPERTY, 0, 255); |
- animation.setStartDelay(150); |
- animation.setDuration(100); |
- animations.add(animation); |
- |
- mTransitionAnimation = new AnimatorSet(); |
- mTransitionAnimation.playTogether(animations); |
- mTransitionAnimation.start(); |
- } |
- |
- @Override |
- protected void drawableStateChanged() { |
- super.drawableStateChanged(); |
- |
- mNormalDrawable.setState(getDrawableState()); |
- mIncognitoDrawable.setState(getDrawableState()); |
- } |
-} |