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

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

Issue 1226833010: Clean up custom tab toolbar ellisizing and animation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.toolbar; 5 package org.chromium.chrome.browser.toolbar;
6 6
7 import android.animation.Animator; 7 import android.animation.Animator;
8 import android.animation.AnimatorListenerAdapter; 8 import android.animation.AnimatorListenerAdapter;
9 import android.animation.AnimatorSet; 9 import android.animation.AnimatorSet;
10 import android.animation.ObjectAnimator; 10 import android.animation.ObjectAnimator;
11 import android.annotation.SuppressLint; 11 import android.annotation.SuppressLint;
12 import android.content.Context; 12 import android.content.Context;
13 import android.content.res.ColorStateList; 13 import android.content.res.ColorStateList;
14 import android.content.res.Configuration; 14 import android.content.res.Configuration;
15 import android.content.res.Resources; 15 import android.content.res.Resources;
16 import android.graphics.Bitmap; 16 import android.graphics.Bitmap;
17 import android.graphics.drawable.BitmapDrawable; 17 import android.graphics.drawable.BitmapDrawable;
18 import android.graphics.drawable.ColorDrawable; 18 import android.graphics.drawable.ColorDrawable;
19 import android.text.TextUtils; 19 import android.text.TextUtils;
20 import android.text.TextUtils.TruncateAt;
21 import android.util.AttributeSet; 20 import android.util.AttributeSet;
22 import android.util.Pair; 21 import android.util.Pair;
23 import android.util.TypedValue; 22 import android.util.TypedValue;
24 import android.view.KeyEvent; 23 import android.view.KeyEvent;
25 import android.view.MotionEvent; 24 import android.view.MotionEvent;
26 import android.view.View; 25 import android.view.View;
27 import android.widget.ImageButton; 26 import android.widget.ImageButton;
28 import android.widget.ImageView; 27 import android.widget.ImageView;
29 import android.widget.TextView; 28 import android.widget.TextView;
30 29
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 // ImageView#setImageResource is no-op if given resource is the current one. 362 // ImageView#setImageResource is no-op if given resource is the current one.
364 mSecurityButton.setImageResource(LocationBarLayout.getSecurityIconResour ce( 363 mSecurityButton.setImageResource(LocationBarLayout.getSecurityIconResour ce(
365 securityLevel, !shouldEmphasizeHttpsScheme())); 364 securityLevel, !shouldEmphasizeHttpsScheme()));
366 365
367 if (mSecurityIconType == securityLevel) return; 366 if (mSecurityIconType == securityLevel) return;
368 mSecurityIconType = securityLevel; 367 mSecurityIconType = securityLevel;
369 368
370 if (securityLevel == ConnectionSecurityLevel.NONE) { 369 if (securityLevel == ConnectionSecurityLevel.NONE) {
371 // TODO(yusufo): Add an animator for hiding as well. 370 // TODO(yusufo): Add an animator for hiding as well.
372 mSecurityButton.setVisibility(GONE); 371 mSecurityButton.setVisibility(GONE);
373 } else { 372 } else if (mSecurityButton.getVisibility() != View.VISIBLE) {
374 if (mSecurityButtonShowAnimator.isRunning()) mSecurityButtonShowAnim ator.cancel(); 373 if (mSecurityButtonShowAnimator.isRunning()) mSecurityButtonShowAnim ator.cancel();
375 mSecurityButtonShowAnimator.start(); 374 mSecurityButtonShowAnimator.start();
376 mUrlBar.deEmphasizeUrl(); 375 mUrlBar.deEmphasizeUrl();
377 } 376 }
378 mUrlBar.emphasizeUrl(); 377 mUrlBar.emphasizeUrl();
379 mUrlBar.invalidate(); 378 mUrlBar.invalidate();
380 } 379 }
381 380
382 /** 381 /**
383 * For extending classes to override and carry out the changes related with the primary color 382 * For extending classes to override and carry out the changes related with the primary color
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 464 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
466 updateLayoutParams(); 465 updateLayoutParams();
467 super.onMeasure(widthMeasureSpec, heightMeasureSpec); 466 super.onMeasure(widthMeasureSpec, heightMeasureSpec);
468 } 467 }
469 468
470 @Override 469 @Override
471 public LocationBar getLocationBar() { 470 public LocationBar getLocationBar() {
472 return this; 471 return this;
473 } 472 }
474 473
475 @Override
476 protected void onLayout(boolean changed, int left, int top, int right, int b ottom) {
477 if (changed) {
478 final int availWidth = mUrlInfoContainer.getMeasuredWidth()
479 - ApiCompatibilityUtils.getPaddingStart(mTitleBar)
480 - ApiCompatibilityUtils.getPaddingEnd(mTitleBar);
481 String currentText = mTitleBar.getText().toString();
482 String currentTitle;
483 Tab currentTab = getToolbarDataProvider().getTab();
484 if (currentTab == null || TextUtils.isEmpty(currentTab.getTitle())) {
485 currentTitle = "";
486 } else {
487 currentTitle = currentTab.getTitle();
488 }
489 String ellipsizedText = TextUtils.ellipsize(currentTitle,
490 mTitleBar.getPaint(), availWidth, TruncateAt.END).toString() ;
491 if (!ellipsizedText.equals(currentText)) mTitleBar.setText(ellipsize dText);
492 }
493 super.onLayout(changed, left, top, right, bottom);
494 }
495
496 // Toolbar and LocationBar calls that are not relevant here. 474 // Toolbar and LocationBar calls that are not relevant here.
497 475
498 @Override 476 @Override
499 public void setToolbarDataProvider(ToolbarDataProvider model) { } 477 public void setToolbarDataProvider(ToolbarDataProvider model) { }
500 478
501 @Override 479 @Override
502 public void onUrlPreFocusChanged(boolean gainFocus) { 480 public void onUrlPreFocusChanged(boolean gainFocus) {
503 } 481 }
504 482
505 @Override 483 @Override
(...skipping 23 matching lines...) Expand all
529 public void onTabLoadingNTP(NewTabPage ntp) { 507 public void onTabLoadingNTP(NewTabPage ntp) {
530 } 508 }
531 509
532 @Override 510 @Override
533 public void setAutocompleteProfile(Profile profile) { 511 public void setAutocompleteProfile(Profile profile) {
534 } 512 }
535 513
536 @Override 514 @Override
537 public void backKeyPressed() { } 515 public void backKeyPressed() { }
538 } 516 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698