summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornewt <newt@chromium.org>2016-03-24 17:32:17 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-25 00:34:03 +0000
commit648fbfd71eddaf857c4feb40218a27b268a0350c (patch)
tree7ea2ad98386e2322f53e9d23de50a5b035b12d0e
parent75b5fe25fcbdf169b0c9e37b49baf29f33b473ca (diff)
downloadchromium_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.java21
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;
}