| Index: chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java
|
| index 9135e60c67986ea38870770a5f8bd26e8e1cc088..8eaf26554436930ea44ac543bc9b35c1acda1da1 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java
|
| @@ -82,10 +82,31 @@ public class FadingBackgroundView extends View implements View.OnClickListener,
|
| super.setAlpha(alpha);
|
|
|
| int newVisibility = alpha <= 0f ? View.GONE : View.VISIBLE;
|
| -
|
| setVisibility(newVisibility);
|
| - for (FadingViewObserver o : mObservers) {
|
| - o.onFadingViewVisibilityChanged(newVisibility == View.VISIBLE);
|
| + }
|
| +
|
| + @Override
|
| + public void setVisibility(int visibility) {
|
| + if (getAlpha() <= 0f && visibility == View.VISIBLE) return;
|
| + super.setVisibility(visibility);
|
| + }
|
| +
|
| + @Override
|
| + protected void dispatchVisibilityChanged(View view, int visibility) {
|
| + if (getAlpha() <= 0f && visibility == View.VISIBLE) return;
|
| + super.dispatchVisibilityChanged(view, visibility);
|
| + }
|
| +
|
| + @Override
|
| + public void onVisibilityChanged(View view, int visibility) {
|
| + super.onVisibilityChanged(view, visibility);
|
| +
|
| + // This check is added for the exclusive purpose of testing on Android K. Later versions
|
| + // of Android do not run into the problem of the observer list being null.
|
| + if (mObservers != null) {
|
| + for (FadingViewObserver o : mObservers) {
|
| + o.onFadingViewVisibilityChanged(visibility == View.VISIBLE);
|
| + }
|
| }
|
| }
|
|
|
|
|