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

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

Issue 2623583002: Fix title and url animation for media in CCT (Closed)
Patch Set: Changed to stateful Created 3 years, 11 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.ValueAnimator; 9 import android.animation.ValueAnimator;
10 import android.animation.ValueAnimator.AnimatorUpdateListener; 10 import android.animation.ValueAnimator.AnimatorUpdateListener;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 public boolean onTouchEvent(MotionEvent event) { 102 public boolean onTouchEvent(MotionEvent event) {
103 mGestureDetector.onTouchEvent(event); 103 mGestureDetector.onTouchEvent(event);
104 return super.onTouchEvent(event); 104 return super.onTouchEvent(event);
105 } 105 }
106 } 106 }
107 107
108 private static final int TITLE_ANIM_DELAY_MS = 800; 108 private static final int TITLE_ANIM_DELAY_MS = 800;
109 private static final int STATE_DOMAIN_ONLY = 0; 109 private static final int STATE_DOMAIN_ONLY = 0;
110 private static final int STATE_TITLE_ONLY = 1; 110 private static final int STATE_TITLE_ONLY = 1;
111 private static final int STATE_DOMAIN_AND_TITLE = 2; 111 private static final int STATE_DOMAIN_AND_TITLE = 2;
112 private static final int STATE_DOMAIN_AND_TITLE_NO_ANIM = 3;
112 113
113 private View mLocationBarFrameLayout; 114 private View mLocationBarFrameLayout;
114 private View mTitleUrlContainer; 115 private View mTitleUrlContainer;
115 private UrlBar mUrlBar; 116 private UrlBar mUrlBar;
116 private TextView mTitleBar; 117 private TextView mTitleBar;
117 private TintedImageButton mSecurityButton; 118 private TintedImageButton mSecurityButton;
118 private ImageButton mCustomActionButton; 119 private ImageButton mCustomActionButton;
119 private int mSecurityIconType; 120 private int mSecurityIconType;
120 private ImageButton mCloseButton; 121 private ImageButton mCloseButton;
121 122
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 253
253 @Override 254 @Override
254 public boolean shouldEmphasizeHttpsScheme() { 255 public boolean shouldEmphasizeHttpsScheme() {
255 int securityLevel = getSecurityLevel(); 256 int securityLevel = getSecurityLevel();
256 return securityLevel == ConnectionSecurityLevel.DANGEROUS 257 return securityLevel == ConnectionSecurityLevel.DANGEROUS
257 || securityLevel == ConnectionSecurityLevel.SECURE_WITH_POLICY_I NSTALLED_CERT; 258 || securityLevel == ConnectionSecurityLevel.SECURE_WITH_POLICY_I NSTALLED_CERT;
258 } 259 }
259 260
260 @Override 261 @Override
261 public void setShowTitle(boolean showTitle) { 262 public void setShowTitle(boolean showTitle) {
263 if (mState == STATE_DOMAIN_AND_TITLE_NO_ANIM) return;
264
262 if (showTitle) { 265 if (showTitle) {
263 mState = STATE_DOMAIN_AND_TITLE; 266 mState = STATE_DOMAIN_AND_TITLE;
264 mAnimDelegate.prepareTitleAnim(mUrlBar, mTitleBar); 267 mAnimDelegate.prepareTitleAnim(mUrlBar, mTitleBar);
265 } else { 268 } else {
266 mState = STATE_DOMAIN_ONLY; 269 mState = STATE_DOMAIN_ONLY;
267 } 270 }
268 } 271 }
269 272
270 @Override 273 @Override
271 public void setUrlBarHidden(boolean hideUrlBar) { 274 public void setUrlBarHidden(boolean hideUrlBar) {
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 DomDistillerUrlUtils.getValueForKeyInUrl(url, "entry_id" )); 378 DomDistillerUrlUtils.getValueForKeyInUrl(url, "entry_id" ));
376 displayText = 379 displayText =
377 DomDistillerTabUtils.getFormattedUrlFromOriginalDistille rUrl(originalUrl); 380 DomDistillerTabUtils.getFormattedUrlFromOriginalDistille rUrl(originalUrl);
378 } else if (DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url) != null) { 381 } else if (DomDistillerUrlUtils.getOriginalUrlFromDistillerUrl(url) != null) {
379 String originalUrl = DomDistillerUrlUtils.getOriginalUrlFromDist illerUrl(url); 382 String originalUrl = DomDistillerUrlUtils.getOriginalUrlFromDist illerUrl(url);
380 displayText = 383 displayText =
381 DomDistillerTabUtils.getFormattedUrlFromOriginalDistille rUrl(originalUrl); 384 DomDistillerTabUtils.getFormattedUrlFromOriginalDistille rUrl(originalUrl);
382 } 385 }
383 } 386 }
384 387
385 if (mUrlBar.setUrl(url, displayText)) { 388 boolean showUrl = true;
389
390 // For media viewer, title animation is disabled. Hence, set the URL and title bars to their
391 // final size.
392 if (mState == STATE_DOMAIN_AND_TITLE_NO_ANIM) {
393 mUrlBar.setTextSize(TypedValue.COMPLEX_UNIT_PX,
394 getResources().getDimension(R.dimen.custom_tabs_url_text_siz e));
395 mTitleBar.setTextSize(TypedValue.COMPLEX_UNIT_PX,
396 getResources().getDimension(R.dimen.custom_tabs_title_text_s ize));
397 mUrlBar.setVisibility(View.VISIBLE);
398 mTitleBar.setVisibility(View.VISIBLE);
399
400 // Show both url and title at the same time, or none if not availabl e yet.
401 if (TextUtils.isEmpty(getCurrentTab().getTitle())) {
Ian Wen 2017/01/10 20:04:52 How can we guarantee that the urlbar will be shown
402 showUrl = false;
403 }
404 }
405
406 if (showUrl && mUrlBar.setUrl(url, displayText)) {
386 mUrlBar.deEmphasizeUrl(); 407 mUrlBar.deEmphasizeUrl();
387 mUrlBar.emphasizeUrl(); 408 mUrlBar.emphasizeUrl();
388 } 409 }
389 } 410 }
390 411
391 private boolean isStoredArticle(String url) { 412 private boolean isStoredArticle(String url) {
392 DomDistillerService domDistillerService = 413 DomDistillerService domDistillerService =
393 DomDistillerServiceFactory.getForProfile(Profile.getLastUsedProf ile()); 414 DomDistillerServiceFactory.getForProfile(Profile.getLastUsedProf ile());
394 String entryIdFromUrl = DomDistillerUrlUtils.getValueForKeyInUrl(url, "e ntry_id"); 415 String entryIdFromUrl = DomDistillerUrlUtils.getValueForKeyInUrl(url, "e ntry_id");
395 if (TextUtils.isEmpty(entryIdFromUrl)) return false; 416 if (TextUtils.isEmpty(entryIdFromUrl)) return false;
(...skipping 23 matching lines...) Expand all
419 if (!ColorUtils.isUsingDefaultToolbarColor(getResources(), 440 if (!ColorUtils.isUsingDefaultToolbarColor(getResources(),
420 getBackground().getColor())) { 441 getBackground().getColor())) {
421 getProgressBar().setThemeColor(getBackground().getColor(), false ); 442 getProgressBar().setThemeColor(getBackground().getColor(), false );
422 } else { 443 } else {
423 getProgressBar().setBackgroundColor(ApiCompatibilityUtils.getCol or(resources, 444 getProgressBar().setBackgroundColor(ApiCompatibilityUtils.getCol or(resources,
424 R.color.progress_bar_background)); 445 R.color.progress_bar_background));
425 getProgressBar().setForegroundColor(ApiCompatibilityUtils.getCol or(resources, 446 getProgressBar().setForegroundColor(ApiCompatibilityUtils.getCol or(resources,
426 R.color.progress_bar_foreground)); 447 R.color.progress_bar_foreground));
427 } 448 }
428 } 449 }
450
451 if (mState == STATE_DOMAIN_AND_TITLE_NO_ANIM) {
452 getProgressBar().setVisibility(View.INVISIBLE);
453 }
429 } 454 }
430 455
431 private void updateButtonsTint() { 456 private void updateButtonsTint() {
432 mMenuButton.setTint(mUseDarkColors ? mDarkModeTint : mLightModeTint); 457 mMenuButton.setTint(mUseDarkColors ? mDarkModeTint : mLightModeTint);
433 if (mCloseButton.getDrawable() instanceof TintedDrawable) { 458 if (mCloseButton.getDrawable() instanceof TintedDrawable) {
434 ((TintedDrawable) mCloseButton.getDrawable()).setTint( 459 ((TintedDrawable) mCloseButton.getDrawable()).setTint(
435 mUseDarkColors ? mDarkModeTint : mLightModeTint); 460 mUseDarkColors ? mDarkModeTint : mLightModeTint);
436 } 461 }
437 if (mCustomActionButton.getDrawable() instanceof TintedDrawable) { 462 if (mCustomActionButton.getDrawable() instanceof TintedDrawable) {
438 ((TintedDrawable) mCustomActionButton.getDrawable()).setTint( 463 ((TintedDrawable) mCustomActionButton.getDrawable()).setTint(
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 @Override 504 @Override
480 public ColorDrawable getBackground() { 505 public ColorDrawable getBackground() {
481 return (ColorDrawable) super.getBackground(); 506 return (ColorDrawable) super.getBackground();
482 } 507 }
483 508
484 @Override 509 @Override
485 public void initializeControls(WindowDelegate windowDelegate, ActionBarDeleg ate delegate, 510 public void initializeControls(WindowDelegate windowDelegate, ActionBarDeleg ate delegate,
486 WindowAndroid windowAndroid) { 511 WindowAndroid windowAndroid) {
487 } 512 }
488 513
514 public void disableTitleAnimation() {
Ian Wen 2017/01/10 20:04:52 javadoc on public method. Besides, I would move th
515 mState = STATE_DOMAIN_AND_TITLE_NO_ANIM;
516 }
517
489 private int getSecurityLevel() { 518 private int getSecurityLevel() {
490 if (getCurrentTab() == null) return ConnectionSecurityLevel.NONE; 519 if (getCurrentTab() == null) return ConnectionSecurityLevel.NONE;
491 return getCurrentTab().getSecurityLevel(); 520 return getCurrentTab().getSecurityLevel();
492 } 521 }
493 522
494 @Override 523 @Override
495 public void updateSecurityIcon(int securityLevel) { 524 public void updateSecurityIcon(int securityLevel) {
496 if (mState == STATE_TITLE_ONLY) return; 525 if (mState == STATE_TITLE_ONLY) return;
497 526
498 mSecurityIconType = securityLevel; 527 mSecurityIconType = securityLevel;
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 784
756 @Override 785 @Override
757 protected void setAppMenuUpdateBadgeToVisible(boolean animate) {} 786 protected void setAppMenuUpdateBadgeToVisible(boolean animate) {}
758 787
759 @Override 788 @Override
760 public View getMenuButtonWrapper() { 789 public View getMenuButtonWrapper() {
761 // This class has no menu button wrapper, so return the menu button inst ead. 790 // This class has no menu button wrapper, so return the menu button inst ead.
762 return mMenuButton; 791 return mMenuButton;
763 } 792 }
764 } 793 }
OLDNEW
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698