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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java

Issue 1218923002: Add a slide animation to security lock appearing on a custom tab (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changed duration and added spaces Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
index a7674a56f9a187651a118df069e0a8a3603fa31a..8181d42e9ffcd575b5c9a2180d1ec2dc8e7eb74b 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/CustomTabToolbar.java
@@ -5,6 +5,8 @@
package org.chromium.chrome.browser.toolbar;
import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.content.Context;
@@ -51,11 +53,14 @@ import org.chromium.chrome.browser.widget.TintedImageButton;
import org.chromium.components.dom_distiller.core.DomDistillerService;
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
import org.chromium.ui.base.WindowAndroid;
+import org.chromium.ui.interpolators.BakedBezierInterpolator;
/**
* The Toolbar layout to be used for a custom tab. This is used for both phone and tablet UIs.
*/
public class CustomTabToolbar extends ToolbarLayout implements LocationBar {
+ private static final int CUSTOM_TAB_TOOLBAR_SLIDE_DURATION_MS = 200;
+ private static final int CUSTOM_TAB_TOOLBAR_FADE_DURATION_MS = 150;
private View mUrlInfoContainer;
private UrlBar mUrlBar;
private TextView mTitleBar;
@@ -64,7 +69,8 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar {
private int mSecurityIconType;
private boolean mUseDarkColors;
private TintedImageButton mCloseButton;
- private Animator mSecurityButtonShowAnimator;
+
+ private AnimatorSet mSecurityButtonShowAnimator;
private boolean mBackgroundColorSet;
/**
@@ -89,9 +95,31 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar {
mSecurityIconType = ConnectionSecurityLevel.NONE;
mCustomActionButton = (ImageButton) findViewById(R.id.action_button);
mCloseButton = (TintedImageButton) findViewById(R.id.close_button);
- mSecurityButtonShowAnimator = ObjectAnimator.ofFloat(mSecurityButton, ALPHA, 1);
- mSecurityButtonShowAnimator
- .setDuration(ToolbarPhone.URL_FOCUS_CHANGE_ANIMATION_DURATION_MS);
+ populateToolbarAnimations();
+ }
+
+ private void populateToolbarAnimations() {
+ mSecurityButtonShowAnimator = new AnimatorSet();
+ int securityIconButtonWidth =
+ getResources().getDimensionPixelSize(R.dimen.location_bar_icon_width);
+ Animator urlInfoContainerTranslateAnimator =
+ ObjectAnimator.ofFloat(mUrlInfoContainer, TRANSLATION_X, securityIconButtonWidth);
+ urlInfoContainerTranslateAnimator.setInterpolator(BakedBezierInterpolator.TRANSFORM_CURVE);
+ urlInfoContainerTranslateAnimator.setDuration(CUSTOM_TAB_TOOLBAR_SLIDE_DURATION_MS);
+
+ Animator securityButtonAlphaAnimator = ObjectAnimator.ofFloat(mSecurityButton, ALPHA, 1);
+ securityButtonAlphaAnimator.setInterpolator(BakedBezierInterpolator.FADE_IN_CURVE);
+ securityButtonAlphaAnimator.setDuration(CUSTOM_TAB_TOOLBAR_FADE_DURATION_MS);
+ securityButtonAlphaAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animation) {
+ mSecurityButton.setVisibility(VISIBLE);
+ mUrlInfoContainer.setTranslationX(0);
+ }
+ });
+
+ mSecurityButtonShowAnimator.playSequentially(
+ urlInfoContainerTranslateAnimator, securityButtonAlphaAnimator);
}
@Override
@@ -344,7 +372,6 @@ public class CustomTabToolbar extends ToolbarLayout implements LocationBar {
mSecurityButton.setVisibility(GONE);
} else {
if (mSecurityButtonShowAnimator.isRunning()) mSecurityButtonShowAnimator.cancel();
- mSecurityButton.setVisibility(VISIBLE);
mSecurityButtonShowAnimator.start();
mUrlBar.deEmphasizeUrl();
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698