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

Unified Diff: ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java

Issue 1001573003: [Android] Stop hiding the RWHV layer subtree when hiding the widget (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add test Created 5 years, 7 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
Index: ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java
diff --git a/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java
index 5dfb5f168aced4442ba3ab16457d38f01d4df8aa..59108ce0fefcf6a919892ccbdccebeaa36ef2b55 100644
--- a/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java
@@ -11,6 +11,8 @@ import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.view.View;
+import org.chromium.base.ActivityState;
+import org.chromium.base.ApplicationStatus;
import org.chromium.ui.UiUtils;
import java.lang.ref.WeakReference;
@@ -20,7 +22,9 @@ import java.lang.ref.WeakReference;
* Activity Instance.
* Only instantiate this class when you need the implemented features.
*/
-public class ActivityWindowAndroid extends WindowAndroid implements View.OnLayoutChangeListener {
+public class ActivityWindowAndroid
+ extends WindowAndroid
+ implements ApplicationStatus.ActivityStateListener, View.OnLayoutChangeListener {
// Constants used for intent request code bounding.
private static final int REQUEST_CODE_PREFIX = 1000;
private static final int REQUEST_CODE_RANGE_SIZE = 100;
@@ -29,10 +33,28 @@ public class ActivityWindowAndroid extends WindowAndroid implements View.OnLayou
private final WeakReference<Activity> mActivityRef;
private int mNextRequestCode = 0;
+ /**
+ * Creates an Activity-specific WindowAndroid with associated intent functionality.
+ * TODO(jdduke): Remove this overload when all callsites have been updated to
+ * indicate their activity state listening preference.
+ * @param activity The activity associated with the WindowAndroid.
+ */
public ActivityWindowAndroid(Activity activity) {
+ this(activity, true);
+ }
+
+ /**
+ * Creates an Activity-specific WindowAndroid with associated intent functionality.
+ * @param activity The activity associated with the WindowAndroid.
+ * @param listenToActivityState Whether to listen to activity state changes.
+ */
+ public ActivityWindowAndroid(Activity activity, boolean listenToActivityState) {
super(activity.getApplicationContext());
mActivityRef = new WeakReference<Activity>(activity);
activity.findViewById(android.R.id.content).addOnLayoutChangeListener(this);
+ if (listenToActivityState) {
+ ApplicationStatus.registerStateListenerForActivity(this, activity);
+ }
}
@Override
@@ -104,6 +126,15 @@ public class ActivityWindowAndroid extends WindowAndroid implements View.OnLayou
}
@Override
+ public void onActivityStateChange(Activity activity, int newState) {
+ if (newState == ActivityState.PAUSED) {
+ onActivityPaused();
+ } else if (newState == ActivityState.RESUMED) {
+ onActivityResumed();
+ }
+ }
+
+ @Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft,
int oldTop, int oldRight, int oldBottom) {
keyboardVisibilityPossiblyChanged(UiUtils.isKeyboardShowing(mActivityRef.get(), v));

Powered by Google App Engine
This is Rietveld 408576698