diff options
author | twellington <twellington@chromium.org> | 2016-01-26 15:18:23 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-01-26 23:19:29 +0000 |
commit | 16920f1d78f2f2777c16779fa6ed4d83225282c0 (patch) | |
tree | 64ee5c079da47a0de97be48631ab1af445aceaf6 | |
parent | 45a4b5a72591338c60bd57ccf58f009e07e497b0 (diff) | |
download | chromium_src-16920f1d78f2f2777c16779fa6ed4d83225282c0.zip chromium_src-16920f1d78f2f2777c16779fa6ed4d83225282c0.tar.gz chromium_src-16920f1d78f2f2777c16779fa6ed4d83225282c0.tar.bz2 |
Introduce MultiWindowUtils#isLegacyMultiWindow()
MultiWindowUtils#isLecacyMultiWindow() will check for old multi-window
mode (e.g. Samsung's multi-window mode), and #isMultiWindow() will check
for Android N multi-window.
BUG=570741
Review URL: https://codereview.chromium.org/1633763003
Cr-Commit-Position: refs/heads/master@{#371631}
5 files changed, 19 insertions, 7 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java index 09e2bd4e..07b6472 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeApplication.java @@ -208,7 +208,8 @@ public class ChromeApplication extends ContentApplication { } // For multiwindow mode we do not track keyboard visibility. - return activity != null && MultiWindowUtils.getInstance().isMultiWindow(activity); + return activity != null + && MultiWindowUtils.getInstance().isLegacyMultiWindow(activity); } }); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java index 6a22e52..db025c2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java @@ -129,7 +129,8 @@ public class CompositorView mPreviousWindowTop = windowTop; Activity activity = mWindowAndroid != null ? mWindowAndroid.getActivity().get() : null; - boolean isMultiWindow = MultiWindowUtils.getInstance().isMultiWindow(activity); + boolean isMultiWindow = MultiWindowUtils.getInstance().isLegacyMultiWindow(activity) + || MultiWindowUtils.getInstance().isMultiWindow(activity); // If the measured width is the same as the allowed width (i.e. the orientation has // not changed) and multi-window mode is off, use the largest measured height seen thus diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java index abb5eb1..feb69ce 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java @@ -41,7 +41,7 @@ public class MultiWindowUtils { /** * @param activity The {@link Activity} to check. - * @return Whether or not {@code activity} is currently in multi-window mode. + * @return Whether or not {@code activity} is currently in Android N+ multi-window mode. */ public boolean isMultiWindow(Activity activity) { // This logic is overridden in a subclass. @@ -50,12 +50,22 @@ public class MultiWindowUtils { /** * @param activity The {@link Activity} to check. + * @return Whether or not {@code activity} is currently in legacy pre-N multi-window mode + * (e.g. Samsung's multi-window mode). + */ + public boolean isLegacyMultiWindow(Activity activity) { + // This logic is overridden in a subclass. + return false; + } + + /** + * @param activity The {@link Activity} to check. * @return Whether or not {@code activity} should run in multi-instance mode. */ public boolean shouldRunInMultiInstanceMode(ChromeLauncherActivity activity) { return Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP && TextUtils.equals(activity.getIntent().getAction(), Intent.ACTION_MAIN) - && isMultiWindow(activity) + && isLegacyMultiWindow(activity) && activity.isChromeBrowserActivityRunning(); } @@ -64,7 +74,7 @@ public class MultiWindowUtils { */ @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void makeMultiInstanceIntent(Activity activity, Intent intent) { - if (activity instanceof ChromeLauncherActivity && isMultiWindow(activity)) { + if (activity instanceof ChromeLauncherActivity && isLegacyMultiWindow(activity)) { if (TextUtils.equals(ChromeTabbedActivity.class.getName(), intent.getComponent().getClassName())) { intent.setClassName(activity, MultiInstanceChromeTabbedActivity.class.getName()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoScreen.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoScreen.java index b2e7241..d833820 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoScreen.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/datareduction/DataReductionPromoScreen.java @@ -52,7 +52,7 @@ public class DataReductionPromoScreen extends Dialog implements View.OnClickList if (getDisplayedDataReductionPromo(parentActivity)) return; // Showing the promo dialog in multiwindow mode is broken on Galaxy Note devices: // http://crbug.com/354696. If we're in multiwindow mode, save the dialog for later. - if (MultiWindowUtils.getInstance().isMultiWindow(parentActivity)) return; + if (MultiWindowUtils.getInstance().isLegacyMultiWindow(parentActivity)) return; DataReductionPromoScreen promoScreen = new DataReductionPromoScreen(parentActivity); promoScreen.setOnDismissListener(promoScreen); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java index 8fff265..3cccd6c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoScreen.java @@ -48,7 +48,7 @@ public class SigninPromoScreen // navigate to and view a URL on startup), the instance is part of the field trial, // and the promo has been marked to display. ChromePreferenceManager preferenceManager = ChromePreferenceManager.getInstance(activity); - if (MultiWindowUtils.getInstance().isMultiWindow(activity)) return false; + if (MultiWindowUtils.getInstance().isLegacyMultiWindow(activity)) return false; if (!preferenceManager.getShowSigninPromo()) return false; preferenceManager.setShowSigninPromo(false); |