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

Unified Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlContainer.java

Issue 1206673003: Merge java_staging/src into java/src. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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
Index: chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlContainer.java
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlContainer.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlContainer.java
deleted file mode 100644
index 284bd8ea069c4d1665f0cceb9fd8db7b60579006..0000000000000000000000000000000000000000
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/omnibox/UrlContainer.java
+++ /dev/null
@@ -1,273 +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.omnibox;
-
-import android.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.AnimatorSet;
-import android.animation.ObjectAnimator;
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.os.SystemClock;
-import android.text.Layout;
-import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.LayoutDirection;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import org.chromium.base.ApiCompatibilityUtils;
-import org.chromium.chrome.R;
-import org.chromium.chrome.browser.util.MathUtils;
-import org.chromium.ui.interpolators.BakedBezierInterpolator;
-
-/**
- * Widget that handles displaying the URL. Adds the capability to show the trailing portion
- * of the URL in a separate text widget for animations.
- */
-public class UrlContainer extends ViewGroup {
- private static final int MIN_TRAILING_TEXT_SHOW_DURATION_MS = 3000;
- private static final int MAX_TRAILING_TEXT_SHOW_DURATION_MS = 6000;
- private static final int TRAILING_TEXT_ANIMATION_DURATION_MS = 200;
- private static final float TRAILING_TEXT_TRANSLATION_X = 50f;
-
- private final Runnable mTriggerHideRunnable;
- private final Runnable mTriggerHideAnimationRunnable;
-
- private UrlBar mUrlBarView;
- private TextView mTrailingTextView;
-
- private int mUrlBarTextWidth;
- private boolean mShowTrailingText;
- private Animator mTrailingTextAnimator;
- private long mLastShowRequestTime;
- private boolean mUseDarkColors;
-
- /**
- * Constructor used to inflate from XML.
- */
- public UrlContainer(Context context, AttributeSet attrs) {
- super(context, attrs);
-
- mTriggerHideRunnable = new Runnable() {
- @Override
- public void run() {
- setTrailingTextVisible(false);
- }
- };
- mTriggerHideAnimationRunnable = new Runnable() {
- @Override
- public void run() {
- hideTrailingText();
- }
- };
-
- mUseDarkColors = true;
- }
-
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
-
- mUrlBarView = (UrlBar) findViewById(R.id.url_bar);
- assert mUrlBarView != null : "url_bar is not defined as a child.";
-
- mTrailingTextView = (TextView) findViewById(R.id.trailing_text);
- assert mTrailingTextView != null : "trailing_text is not defined as a child.";
-
- setClickable(true);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
-
- int specWidth = MeasureSpec.getSize(widthMeasureSpec);
- mUrlBarView.measure(
- MeasureSpec.makeMeasureSpec(specWidth, MeasureSpec.EXACTLY), heightMeasureSpec);
-
- if (TextUtils.isEmpty(mUrlBarView.getText())) {
- mUrlBarTextWidth = specWidth;
- } else if (mUrlBarView.hasFocus()) {
- mUrlBarTextWidth = specWidth;
- } else {
- mUrlBarTextWidth = (int) Math.ceil(Math.min(specWidth,
- Layout.getDesiredWidth(mUrlBarView.getText(), mUrlBarView.getPaint())));
- }
- mTrailingTextView.measure(
- MeasureSpec.makeMeasureSpec(specWidth - mUrlBarTextWidth, MeasureSpec.EXACTLY),
- heightMeasureSpec);
- }
-
- @SuppressLint("NewApi")
- @Override
- public void onRtlPropertiesChanged(int layoutDirection) {
- super.onRtlPropertiesChanged(layoutDirection);
-
- // Layout direction is driven by the text direction of the URL bar, so we just force
- // the path text view to match.
- switch (layoutDirection) {
- case LayoutDirection.LTR:
- ApiCompatibilityUtils.setTextDirection(mTrailingTextView, TEXT_DIRECTION_LTR);
- break;
- case LayoutDirection.RTL:
- ApiCompatibilityUtils.setTextDirection(mTrailingTextView, TEXT_DIRECTION_RTL);
- break;
- case LayoutDirection.LOCALE:
- ApiCompatibilityUtils.setTextDirection(mTrailingTextView, TEXT_DIRECTION_LOCALE);
- break;
- case LayoutDirection.INHERIT:
- default:
- ApiCompatibilityUtils.setTextDirection(mTrailingTextView, TEXT_DIRECTION_INHERIT);
- break;
- }
- }
-
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- int height = b - t;
- layoutChild(mUrlBarView, height, 0);
- if (ApiCompatibilityUtils.isLayoutRtl(mUrlBarView)) {
- layoutChild(mTrailingTextView, height, 0);
- } else {
- layoutChild(mTrailingTextView, height, mUrlBarTextWidth);
- }
- }
-
- private static void layoutChild(View view, int parentHeight, int childLeft) {
- int childTop = (parentHeight - view.getMeasuredHeight()) / 2;
- view.layout(
- childLeft,
- childTop,
- childLeft + view.getMeasuredWidth(),
- childTop + view.getMeasuredHeight());
- }
-
- /**
- * Sets the text to be displayed.
- *
- * @param displayText The primary display text to be shown.
- * @param trailingText The additional trailing text to be shown after the display text.
- * @param originalText The text that will be displayed if no display text is specified, and
- * is also supplied to features such as cut and copy.
- * @return Whether any components of the URL have changed.
- */
- public boolean setUrlText(String displayText, String trailingText, String originalText) {
- boolean changed = mUrlBarView.setUrl(originalText, displayText);
- if (changed && mTrailingTextView.getVisibility() == VISIBLE) requestLayout();
-
- if (trailingText == null) trailingText = "";
- if (!trailingText.equals(mTrailingTextView.getText())) {
- mTrailingTextView.setText(trailingText);
- changed |= true;
- }
- return changed;
- }
-
- /**
- * Specifies whether the trailing URL text should use dark text colors or light colors.
- * @param useDarkColors Whether the text colors should be dark (i.e. appropriate for use
- * on a light background).
- */
- public void setUseDarkTextColors(boolean useDarkColors) {
- mUseDarkColors = useDarkColors;
- mUrlBarView.setUseDarkTextColors(mUseDarkColors);
-
- int trailingTextColorId = R.color.url_emphasis_non_emphasized_text;
- if (!mUseDarkColors) {
- trailingTextColorId = R.color.url_emphasis_light_non_emphasized_text;
- }
- mTrailingTextView.setTextColor(getResources().getColor(trailingTextColorId));
- }
-
- /**
- * Updates the visibility of the trailing text view.
- * @param visible Whether the trailing text view should be visible.
- */
- public void setTrailingTextVisible(boolean visible) {
- if (visible) mLastShowRequestTime = SystemClock.uptimeMillis();
-
- if (visible == mShowTrailingText) return;
- mShowTrailingText = visible;
-
- removeCallbacks(mTriggerHideRunnable);
- removeCallbacks(mTriggerHideAnimationRunnable);
-
- if (visible) {
- if (mTrailingTextAnimator != null && mTrailingTextAnimator.isRunning()) {
- mTrailingTextAnimator.cancel();
- } else {
- float translationX = MathUtils.flipSignIf(
- TRAILING_TEXT_TRANSLATION_X, ApiCompatibilityUtils.isLayoutRtl(this));
- mTrailingTextView.setAlpha(0f);
- mTrailingTextView.setTranslationX(translationX);
- }
- // Canceling the other animation will set the visibility to GONE, so only update
- // this to VISIBLE after the above call to cancel().
- mTrailingTextView.setVisibility(VISIBLE);
-
- if (!TextUtils.isEmpty(mTrailingTextView.getText())) {
- mUrlBarView.setAccessibilityTextOverride(
- TextUtils.concat(mUrlBarView.getText(), mTrailingTextView.getText())
- .toString());
- }
-
- AnimatorSet set = new AnimatorSet();
- set.playTogether(
- ObjectAnimator.ofFloat(mTrailingTextView, ALPHA, 1f),
- ObjectAnimator.ofFloat(mTrailingTextView, TRANSLATION_X, 0f));
- set.setDuration(TRAILING_TEXT_ANIMATION_DURATION_MS);
- set.setInterpolator(BakedBezierInterpolator.FADE_IN_CURVE);
- set.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- mTrailingTextAnimator = null;
- }
- });
- set.start();
- mTrailingTextAnimator = set;
-
- postDelayed(mTriggerHideRunnable, MAX_TRAILING_TEXT_SHOW_DURATION_MS);
- } else {
- long elapsedTime = SystemClock.uptimeMillis() - mLastShowRequestTime;
- if (elapsedTime >= MIN_TRAILING_TEXT_SHOW_DURATION_MS) {
- hideTrailingText();
- } else {
- postDelayed(mTriggerHideAnimationRunnable,
- MIN_TRAILING_TEXT_SHOW_DURATION_MS - elapsedTime);
- }
- }
- }
-
- private void hideTrailingText() {
- if (mTrailingTextAnimator != null && mTrailingTextAnimator.isRunning()) {
- mTrailingTextAnimator.cancel();
- }
-
- mUrlBarView.setAccessibilityTextOverride(null);
-
- float translationX = MathUtils.flipSignIf(
- TRAILING_TEXT_TRANSLATION_X, ApiCompatibilityUtils.isLayoutRtl(this));
-
- AnimatorSet set = new AnimatorSet();
- set.playTogether(
- ObjectAnimator.ofFloat(mTrailingTextView, ALPHA, 0f),
- ObjectAnimator.ofFloat(mTrailingTextView, TRANSLATION_X, translationX));
- set.setDuration(TRAILING_TEXT_ANIMATION_DURATION_MS);
- set.setInterpolator(BakedBezierInterpolator.FADE_OUT_CURVE);
- set.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- super.onAnimationEnd(animation);
- mTrailingTextView.setVisibility(GONE);
- mTrailingTextAnimator = null;
- }
- });
- set.start();
- mTrailingTextAnimator = set;
- }
-}

Powered by Google App Engine
This is Rietveld 408576698