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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/widget/FadingBackgroundView.java

Issue 2709883002: Fix fading overlay events (Closed)
Patch Set: rearrange null check Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+ }
}
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698