Index: chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java |
index dc42b4afeffe9fc8055a8cd401a9892b713e602a..527551894b4cb483492c7aa2ebc7b9ecba76e240 100644 |
--- a/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java |
@@ -4,7 +4,6 @@ |
package org.chromium.chrome.browser.ntp; |
-import android.annotation.SuppressLint; |
import android.app.Activity; |
import android.graphics.Canvas; |
import android.graphics.Color; |
@@ -59,6 +58,11 @@ public class RecentTabsPage |
private boolean mInForeground; |
/** |
+ * Whether {@link #mView} is attached to the application window. |
+ */ |
+ private boolean mIsAttachedToWindow; |
+ |
+ /** |
* The time, whichever is most recent, that the page: |
* - Moved to the foreground |
* - Became visible |
@@ -104,10 +108,9 @@ public class RecentTabsPage |
* Updates whether the page is in the foreground based on whether the application is in the |
* foreground and whether {@link #mView} is attached to the application window. If the page is |
* no longer in the foreground, records the time that the page spent in the foreground to UMA. |
- * @param isAttachedToWindow whether {@link #mView} is attached to the application window. |
*/ |
- private void updateForegroundState(boolean isAttachedToWindow) { |
- boolean inForeground = isAttachedToWindow |
+ private void updateForegroundState() { |
+ boolean inForeground = mIsAttachedToWindow |
&& ApplicationStatus.getStateForActivity(mActivity) == ActivityState.RESUMED; |
if (mInForeground == inForeground) { |
return; |
@@ -167,13 +170,11 @@ public class RecentTabsPage |
} |
// ApplicationStatus.ActivityStateListener |
- // TODO(pkotwicz) fix to avoid suppressing warning |
- @SuppressLint("NewApi") // ViewGroup#isAttachedToWindow requires API level 19. |
@Override |
public void onActivityStateChange(Activity activity, int state) { |
// Called when the user locks the screen or moves Chrome to the background via the task |
// switcher. |
- updateForegroundState(mView.isAttachedToWindow()); |
+ updateForegroundState(); |
} |
// View.OnAttachStateChangeListener |
@@ -181,16 +182,15 @@ public class RecentTabsPage |
public void onViewAttachedToWindow(View view) { |
// Called when the user opens the RecentTabsPage or switches back to the RecentTabsPage from |
// another tab. |
- updateForegroundState(true); |
+ mIsAttachedToWindow = true; |
+ updateForegroundState(); |
} |
@Override |
public void onViewDetachedFromWindow(View view) { |
// Called when the user navigates from the RecentTabsPage or switches to another tab. |
- // The value of {@link View#isAttachedToWindow()} changes after the |
- // {@link View.OnAttachStateChangeListener#onViewDetachedFromWindow()} listeners are |
- // notified. |
- updateForegroundState(false); |
+ mIsAttachedToWindow = false; |
+ updateForegroundState(); |
} |
// ExpandableListView.OnChildClickedListener |