OLD | NEW |
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.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
8 import android.content.Context; | 8 import android.content.Context; |
9 import android.graphics.Bitmap; | 9 import android.graphics.Bitmap; |
10 import android.graphics.Canvas; | 10 import android.graphics.Canvas; |
11 import android.graphics.Rect; | 11 import android.graphics.Rect; |
12 import android.graphics.drawable.Drawable; | 12 import android.graphics.drawable.Drawable; |
13 import android.os.SystemClock; | 13 import android.os.SystemClock; |
14 import android.util.AttributeSet; | 14 import android.util.AttributeSet; |
15 import android.view.MotionEvent; | 15 import android.view.MotionEvent; |
16 import android.view.View; | 16 import android.view.View; |
17 import android.view.ViewGroup; | 17 import android.view.ViewGroup; |
18 import android.widget.FrameLayout; | 18 import android.widget.FrameLayout; |
19 import android.widget.ProgressBar; | 19 import android.widget.ProgressBar; |
20 | 20 |
21 import org.chromium.chrome.R; | 21 import org.chromium.chrome.R; |
22 import org.chromium.chrome.browser.Tab; | 22 import org.chromium.chrome.browser.Tab; |
23 import org.chromium.chrome.browser.appmenu.AppMenuButtonHelper; | 23 import org.chromium.chrome.browser.appmenu.AppMenuButtonHelper; |
24 import org.chromium.chrome.browser.compositor.Invalidator; | 24 import org.chromium.chrome.browser.compositor.Invalidator; |
25 import org.chromium.chrome.browser.ntp.NewTabPage; | 25 import org.chromium.chrome.browser.ntp.NewTabPage; |
26 import org.chromium.chrome.browser.omnibox.LocationBar; | 26 import org.chromium.chrome.browser.omnibox.LocationBar; |
27 import org.chromium.chrome.browser.util.ViewUtils; | 27 import org.chromium.chrome.browser.util.ViewUtils; |
28 import org.chromium.chrome.browser.widget.SmoothProgressBar; | 28 import org.chromium.chrome.browser.widget.SmoothProgressBar; |
29 import org.chromium.chrome.browser.widget.TintedImageButton; | 29 import org.chromium.chrome.browser.widget.TintedImageButton; |
| 30 import org.chromium.chrome.browser.widget.ViewResourceFrameLayout; |
30 import org.chromium.ui.UiUtils; | 31 import org.chromium.ui.UiUtils; |
| 32 import org.chromium.ui.resources.dynamics.ViewResourceAdapter; |
31 | 33 |
32 /** | 34 /** |
33 * Layout class that contains the base shared logic for manipulating the toolbar
component. For | 35 * Layout class that contains the base shared logic for manipulating the toolbar
component. For |
34 * interaction that are not from Views inside Toolbar hierarchy all interactions
should be done | 36 * interaction that are not from Views inside Toolbar hierarchy all interactions
should be done |
35 * through {@link Toolbar} rather than using this class directly. | 37 * through {@link Toolbar} rather than using this class directly. |
36 */ | 38 */ |
37 abstract class ToolbarLayout extends FrameLayout implements Toolbar { | 39 abstract class ToolbarLayout extends ViewResourceFrameLayout implements Toolbar
{ |
38 protected static final int BACKGROUND_TRANSITION_DURATION_MS = 400; | 40 protected static final int BACKGROUND_TRANSITION_DURATION_MS = 400; |
39 | 41 |
40 private Invalidator mInvalidator; | 42 private Invalidator mInvalidator; |
41 | 43 |
42 private final int[] mTempPosition = new int[2]; | 44 private final int[] mTempPosition = new int[2]; |
43 | 45 |
44 /** | 46 /** |
45 * The ImageButton view that represents the menu button. | 47 * The ImageButton view that represents the menu button. |
46 */ | 48 */ |
47 protected TintedImageButton mMenuButton; | 49 protected TintedImageButton mMenuButton; |
(...skipping 12 matching lines...) Expand all Loading... |
60 | 62 |
61 private boolean mFindInPageToolbarShowing; | 63 private boolean mFindInPageToolbarShowing; |
62 | 64 |
63 /** | 65 /** |
64 * Basic constructor for {@link ToolbarLayout}. | 66 * Basic constructor for {@link ToolbarLayout}. |
65 */ | 67 */ |
66 public ToolbarLayout(Context context, AttributeSet attrs) { | 68 public ToolbarLayout(Context context, AttributeSet attrs) { |
67 super(context, attrs); | 69 super(context, attrs); |
68 mToolbarHeightWithoutShadow = getResources().getDimensionPixelOffset( | 70 mToolbarHeightWithoutShadow = getResources().getDimensionPixelOffset( |
69 getToolbarHeightWithoutShadowResId()); | 71 getToolbarHeightWithoutShadowResId()); |
| 72 setInitializedForCapture(false); |
70 } | 73 } |
71 | 74 |
72 @Override | 75 @Override |
73 protected void onFinishInflate() { | 76 protected void onFinishInflate() { |
74 super.onFinishInflate(); | 77 super.onFinishInflate(); |
75 | 78 |
76 mProgressBar = (SmoothProgressBar) findViewById(R.id.progress); | 79 mProgressBar = (SmoothProgressBar) findViewById(R.id.progress); |
77 if (mProgressBar != null) { | 80 if (mProgressBar != null) { |
78 removeView(mProgressBar); | 81 removeView(mProgressBar); |
79 Drawable progressDrawable = mProgressBar.getProgressDrawable(); | 82 Drawable progressDrawable = mProgressBar.getProgressDrawable(); |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 protected void onTabContentViewChanged() { | 355 protected void onTabContentViewChanged() { |
353 NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); | 356 NewTabPage ntp = getToolbarDataProvider().getNewTabPageForCurrentTab(); |
354 if (ntp != null) getLocationBar().onTabLoadingNTP(ntp); | 357 if (ntp != null) getLocationBar().onTabLoadingNTP(ntp); |
355 } | 358 } |
356 | 359 |
357 @Override | 360 @Override |
358 public boolean isReadyForTextureCapture() { | 361 public boolean isReadyForTextureCapture() { |
359 return true; | 362 return true; |
360 } | 363 } |
361 | 364 |
| 365 @Override |
| 366 protected ViewResourceAdapter createResourceAdapter() { |
| 367 return new ToolbarViewResourceAdapter((ViewGroup) getParent(), this); |
| 368 } |
| 369 |
362 /** | 370 /** |
363 * @param attached Whether or not the web content is attached to the view he
irarchy. | 371 * @param attached Whether or not the web content is attached to the view he
irarchy. |
364 */ | 372 */ |
365 protected void setContentAttached(boolean attached) { } | 373 protected void setContentAttached(boolean attached) { } |
366 | 374 |
367 /** | 375 /** |
368 * Gives inheriting classes the chance to show or hide the TabSwitcher mode
of this toolbar. | 376 * Gives inheriting classes the chance to show or hide the TabSwitcher mode
of this toolbar. |
369 * @param inTabSwitcherMode Whether or not TabSwitcher mode should be shown
or hidden. | 377 * @param inTabSwitcherMode Whether or not TabSwitcher mode should be shown
or hidden. |
370 * @param showToolbar Whether or not to show the normal toolbar while ani
mating. | 378 * @param showToolbar Whether or not to show the normal toolbar while ani
mating. |
371 * @param delayAnimation Whether or not to delay the animation until after t
he transition has | 379 * @param delayAnimation Whether or not to delay the animation until after t
he transition has |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 } | 522 } |
515 | 523 |
516 /** | 524 /** |
517 * Opens hompage in the current tab. | 525 * Opens hompage in the current tab. |
518 */ | 526 */ |
519 protected void openHomepage() { | 527 protected void openHomepage() { |
520 getLocationBar().hideSuggestions(); | 528 getLocationBar().hideSuggestions(); |
521 if (mToolbarTabController != null) mToolbarTabController.openHomepage(); | 529 if (mToolbarTabController != null) mToolbarTabController.openHomepage(); |
522 } | 530 } |
523 } | 531 } |
OLD | NEW |