diff --git a/src/com/android/settings/applications/ActivityInfoWrapper.java b/src/com/android/settings/applications/ActivityInfoWrapper.java
index c6920ca..4cb6e68 100644
--- a/src/com/android/settings/applications/ActivityInfoWrapper.java
+++ b/src/com/android/settings/applications/ActivityInfoWrapper.java
@@ -24,7 +24,7 @@
 public interface ActivityInfoWrapper {
 
     /**
-     * Returns the resizeMode of the activity.
+     * Returns whether this activity supports picture-in-picture.
      */
-    int getResizeMode();
+    boolean supportsPictureInPicture();
 }
diff --git a/src/com/android/settings/applications/ActivityInfoWrapperImpl.java b/src/com/android/settings/applications/ActivityInfoWrapperImpl.java
index e7a20bc..b70a1e8 100644
--- a/src/com/android/settings/applications/ActivityInfoWrapperImpl.java
+++ b/src/com/android/settings/applications/ActivityInfoWrapperImpl.java
@@ -27,7 +27,7 @@
     }
 
     @Override
-    public int getResizeMode() {
-        return mInfo.resizeMode;
+    public boolean supportsPictureInPicture() {
+        return mInfo.supportsPictureInPicture();
     }
 }
diff --git a/src/com/android/settings/applications/PictureInPictureSettings.java b/src/com/android/settings/applications/PictureInPictureSettings.java
index a17c894..df73572 100644
--- a/src/com/android/settings/applications/PictureInPictureSettings.java
+++ b/src/com/android/settings/applications/PictureInPictureSettings.java
@@ -18,7 +18,6 @@
 import static android.app.AppOpsManager.MODE_ALLOWED;
 import static android.app.AppOpsManager.MODE_ERRORED;
 import static android.app.AppOpsManager.OP_ENTER_PICTURE_IN_PICTURE_ON_HIDE;
-import static android.content.pm.ActivityInfo.RESIZE_MODE_RESIZEABLE_AND_PIPABLE;
 import static android.content.pm.PackageManager.GET_ACTIVITIES;
 
 import android.annotation.Nullable;
@@ -91,7 +90,7 @@
         // picture-in-picture
         if (activities != null) {
             for (int i = activities.length - 1; i >= 0; i--) {
-                if (activities[i].getResizeMode() == RESIZE_MODE_RESIZEABLE_AND_PIPABLE) {
+                if (activities[i].supportsPictureInPicture()) {
                     return true;
                 }
             }
diff --git a/tests/robotests/src/com/android/settings/applications/PictureInPictureSettingsTest.java b/tests/robotests/src/com/android/settings/applications/PictureInPictureSettingsTest.java
index daed00d..262c9e0 100644
--- a/tests/robotests/src/com/android/settings/applications/PictureInPictureSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/PictureInPictureSettingsTest.java
@@ -107,9 +107,7 @@
         if (resizeableActivityState.length > 0) {
             activities = new ActivityInfoWrapper[resizeableActivityState.length];
             for (int i = 0; i < activities.length; i++) {
-                activities[i] = new MockActivityInfo(resizeableActivityState[i]
-                        ? ActivityInfo.RESIZE_MODE_RESIZEABLE_AND_PIPABLE
-                        : ActivityInfo.RESIZE_MODE_UNRESIZEABLE);
+                activities[i] = new MockActivityInfo(resizeableActivityState[i]);
             }
         }
         return PictureInPictureSettings.checkPackageHasPictureInPictureActivities(packageName,
@@ -118,15 +116,15 @@
 
     private class MockActivityInfo implements ActivityInfoWrapper {
 
-        private int mResizeMode;
+        private boolean mSupportsPictureInPicture;
 
-        public MockActivityInfo(int resizeMode) {
-            mResizeMode = resizeMode;
+        public MockActivityInfo(boolean supportsPictureInPicture) {
+            mSupportsPictureInPicture = supportsPictureInPicture;
         }
 
         @Override
-        public int getResizeMode() {
-            return mResizeMode;
+        public boolean supportsPictureInPicture() {
+            return mSupportsPictureInPicture;
         }
     }
 }
