diff options
author | newt <newt@chromium.org> | 2016-03-24 17:32:17 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-25 00:34:03 +0000 |
commit | 648fbfd71eddaf857c4feb40218a27b268a0350c (patch) | |
tree | 7ea2ad98386e2322f53e9d23de50a5b035b12d0e | |
parent | 75b5fe25fcbdf169b0c9e37b49baf29f33b473ca (diff) | |
download | chromium_src-648fbfd71eddaf857c4feb40218a27b268a0350c.zip chromium_src-648fbfd71eddaf857c4feb40218a27b268a0350c.tar.gz chromium_src-648fbfd71eddaf857c4feb40218a27b268a0350c.tar.bz2 |
Move isMultiWindow() method upstream.
BUG=595889
Review URL: https://codereview.chromium.org/1829273002
Cr-Commit-Position: refs/heads/master@{#383203}
-rw-r--r-- | chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java | 21 |
1 files changed, 20 insertions, 1 deletions
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 feb69ce..fb7c055 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 @@ -15,6 +15,8 @@ import org.chromium.chrome.browser.ChromeApplication; import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.document.ChromeLauncherActivity; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.util.concurrent.atomic.AtomicReference; /** @@ -44,7 +46,24 @@ public class MultiWindowUtils { * @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. + if (activity == null) return false; + + if (Build.VERSION.CODENAME.equals("N")) { + try { + Method inMultiWindowMethod = Activity.class.getMethod("inMultiWindow"); + boolean isInMultiWindow = (Boolean) inMultiWindowMethod.invoke(activity); + return isInMultiWindow; + } catch (NoSuchMethodException e) { + // Ignore. + } catch (IllegalAccessException e) { + // Ignore. + } catch (IllegalArgumentException e) { + // Ignore. + } catch (InvocationTargetException e) { + // Ignore. + } + } + return false; } |