| 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));
|
|
|