| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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.widget; | 5 package org.chromium.chrome.browser.widget; |
| 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.content.Context; | 10 import android.content.Context; |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 public Tab getActiveTab() { | 439 public Tab getActiveTab() { |
| 440 return mTabModelSelector.getCurrentTab(); | 440 return mTabModelSelector.getCurrentTab(); |
| 441 } | 441 } |
| 442 | 442 |
| 443 @Override | 443 @Override |
| 444 public boolean isVisible() { | 444 public boolean isVisible() { |
| 445 return mCurrentState != SHEET_STATE_PEEK; | 445 return mCurrentState != SHEET_STATE_PEEK; |
| 446 } | 446 } |
| 447 | 447 |
| 448 /** | 448 /** |
| 449 * Gets the minimum offset of the bottom sheet. |
| 450 * @return The min offset. |
| 451 */ |
| 452 public float getMinOffset() { |
| 453 return getPeekRatio() * mContainerHeight; |
| 454 } |
| 455 |
| 456 /** |
| 457 * Gets the sheet's offset from the bottom of the screen. |
| 458 * @return The sheet's distance from the bottom of the screen. |
| 459 */ |
| 460 public float getSheetOffsetFromBottom() { |
| 461 return mContainerHeight - getTranslationY(); |
| 462 } |
| 463 |
| 464 /** |
| 449 * Determines if a touch event is inside the toolbar. This assumes the toolb
ar is the full | 465 * Determines if a touch event is inside the toolbar. This assumes the toolb
ar is the full |
| 450 * width of the screen and that the toolbar is at the top of the bottom shee
t. | 466 * width of the screen and that the toolbar is at the top of the bottom shee
t. |
| 451 * @param e The motion event to test. | 467 * @param e The motion event to test. |
| 452 * @return True if the event occured in the toolbar region. | 468 * @return True if the event occured in the toolbar region. |
| 453 */ | 469 */ |
| 454 private boolean isTouchEventInToolbar(MotionEvent e) { | 470 private boolean isTouchEventInToolbar(MotionEvent e) { |
| 455 if (mControlContainer == null) return false; | 471 if (mControlContainer == null) return false; |
| 456 | 472 |
| 457 mControlContainer.getLocationInWindow(mLocationArray); | 473 mControlContainer.getLocationInWindow(mLocationArray); |
| 458 | 474 |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 588 | 604 |
| 589 /** | 605 /** |
| 590 * Gets the maximum offset of the bottom sheet. | 606 * Gets the maximum offset of the bottom sheet. |
| 591 * @return The max offset. | 607 * @return The max offset. |
| 592 */ | 608 */ |
| 593 private float getMaxOffset() { | 609 private float getMaxOffset() { |
| 594 return getFullRatio() * mContainerHeight; | 610 return getFullRatio() * mContainerHeight; |
| 595 } | 611 } |
| 596 | 612 |
| 597 /** | 613 /** |
| 598 * Gets the minimum offset of the bottom sheet. | |
| 599 * @return The min offset. | |
| 600 */ | |
| 601 private float getMinOffset() { | |
| 602 return getPeekRatio() * mContainerHeight; | |
| 603 } | |
| 604 | |
| 605 /** | |
| 606 * Gets the sheet's offset from the bottom of the screen. | |
| 607 * @return The sheet's distance from the bottom of the screen. | |
| 608 */ | |
| 609 private float getSheetOffsetFromBottom() { | |
| 610 return mContainerHeight - getTranslationY(); | |
| 611 } | |
| 612 | |
| 613 /** | |
| 614 * Sets the sheet's offset relative to the bottom of the screen. | 614 * Sets the sheet's offset relative to the bottom of the screen. |
| 615 * @param offset The offset that the sheet should be. | 615 * @param offset The offset that the sheet should be. |
| 616 */ | 616 */ |
| 617 private void setSheetOffsetFromBottom(float offset) { | 617 private void setSheetOffsetFromBottom(float offset) { |
| 618 if (MathUtils.areFloatsEqual(getSheetOffsetFromBottom(), getMinOffset()) | 618 if (MathUtils.areFloatsEqual(getSheetOffsetFromBottom(), getMinOffset()) |
| 619 && offset > getMinOffset()) { | 619 && offset > getMinOffset()) { |
| 620 onSheetOpened(); | 620 onSheetOpened(); |
| 621 } else if (MathUtils.areFloatsEqual(offset, getMinOffset()) | 621 } else if (MathUtils.areFloatsEqual(offset, getMinOffset()) |
| 622 && getSheetOffsetFromBottom() > getMinOffset()) { | 622 && getSheetOffsetFromBottom() > getMinOffset()) { |
| 623 onSheetClosed(); | 623 onSheetClosed(); |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 @Override | 805 @Override |
| 806 public void onFadingViewVisibilityChanged(boolean visible) {} | 806 public void onFadingViewVisibilityChanged(boolean visible) {} |
| 807 | 807 |
| 808 private boolean canMoveSheet() { | 808 private boolean canMoveSheet() { |
| 809 boolean isInOverviewMode = mTabModelSelector != null | 809 boolean isInOverviewMode = mTabModelSelector != null |
| 810 && (mTabModelSelector.getCurrentTab() == null | 810 && (mTabModelSelector.getCurrentTab() == null |
| 811 || mTabModelSelector.getCurrentTab().getActivity().is
InOverviewMode()); | 811 || mTabModelSelector.getCurrentTab().getActivity().is
InOverviewMode()); |
| 812 return !isToolbarAndroidViewHidden() && !isInOverviewMode; | 812 return !isToolbarAndroidViewHidden() && !isInOverviewMode; |
| 813 } | 813 } |
| 814 } | 814 } |
| OLD | NEW |