summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java54
-rw-r--r--services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java27
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java53
3 files changed, 64 insertions, 70 deletions
diff --git a/services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java b/services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java
index d59046f44129..f1dd41e7d74a 100644
--- a/services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java
+++ b/services/core/java/com/android/server/wm/AppCompatAspectRatioOverrides.java
@@ -39,6 +39,7 @@ import static com.android.server.wm.AppCompatConfiguration.MIN_FIXED_ORIENTATION
import static com.android.server.wm.AppCompatUtils.isChangeEnabled;
import android.annotation.NonNull;
+import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -126,18 +127,18 @@ class AppCompatAspectRatioOverrides {
return false;
}
- mUserAspectRatioState.mUserAspectRatio = getUserMinAspectRatioOverrideCode();
+ final int aspectRatio = getUserMinAspectRatioOverrideCode();
- return mUserAspectRatioState.mUserAspectRatio != USER_MIN_ASPECT_RATIO_UNSET
- && mUserAspectRatioState.mUserAspectRatio != USER_MIN_ASPECT_RATIO_APP_DEFAULT
- && mUserAspectRatioState.mUserAspectRatio != USER_MIN_ASPECT_RATIO_FULLSCREEN;
+ return aspectRatio != USER_MIN_ASPECT_RATIO_UNSET
+ && aspectRatio != USER_MIN_ASPECT_RATIO_APP_DEFAULT
+ && aspectRatio != USER_MIN_ASPECT_RATIO_FULLSCREEN;
}
boolean shouldApplyUserFullscreenOverride() {
if (isUserFullscreenOverrideEnabled()) {
- mUserAspectRatioState.mUserAspectRatio = getUserMinAspectRatioOverrideCode();
+ final int aspectRatio = getUserMinAspectRatioOverrideCode();
- return mUserAspectRatioState.mUserAspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN;
+ return aspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN;
}
return false;
@@ -153,10 +154,12 @@ class AppCompatAspectRatioOverrides {
}
boolean isSystemOverrideToFullscreenEnabled() {
+ final int aspectRatio = getUserMinAspectRatioOverrideCode();
+
return isChangeEnabled(mActivityRecord, OVERRIDE_ANY_ORIENTATION_TO_USER)
&& !mAllowOrientationOverrideOptProp.isFalse()
- && (mUserAspectRatioState.mUserAspectRatio == USER_MIN_ASPECT_RATIO_UNSET
- || mUserAspectRatioState.mUserAspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN);
+ && (aspectRatio == USER_MIN_ASPECT_RATIO_UNSET
+ || aspectRatio == USER_MIN_ASPECT_RATIO_FULLSCREEN);
}
/**
@@ -173,12 +176,11 @@ class AppCompatAspectRatioOverrides {
}
boolean hasFullscreenOverride() {
- // `mUserAspectRatio` is always initialized first in `shouldApplyUserFullscreenOverride()`.
return shouldApplyUserFullscreenOverride() || isSystemOverrideToFullscreenEnabled();
}
float getUserMinAspectRatio() {
- switch (mUserAspectRatioState.mUserAspectRatio) {
+ switch (getUserMinAspectRatioOverrideCode()) {
case USER_MIN_ASPECT_RATIO_DISPLAY_SIZE:
return getDisplaySizeMinAspectRatio();
case USER_MIN_ASPECT_RATIO_SPLIT_SCREEN:
@@ -269,13 +271,7 @@ class AppCompatAspectRatioOverrides {
}
int getUserMinAspectRatioOverrideCode() {
- try {
- return mActivityRecord.mAtmService.getPackageManager()
- .getUserMinAspectRatio(mActivityRecord.packageName, mActivityRecord.mUserId);
- } catch (RemoteException e) {
- Slog.w(TAG, "Exception thrown retrieving aspect ratio user override " + this, e);
- }
- return mUserAspectRatioState.mUserAspectRatio;
+ return mUserAspectRatioState.getUserAspectRatio(mActivityRecord);
}
private float getDefaultMinAspectRatioForUnresizableApps() {
@@ -300,10 +296,30 @@ class AppCompatAspectRatioOverrides {
}
private static class UserAspectRatioState {
- // TODO(b/315140179): Make mUserAspectRatio final
- // The min aspect ratio override set by user
+ // The min aspect ratio override set by the user.
@PackageManager.UserMinAspectRatio
private int mUserAspectRatio = USER_MIN_ASPECT_RATIO_UNSET;
+ private boolean mHasBeenSet = false;
+
+ @PackageManager.UserMinAspectRatio
+ private int getUserAspectRatio(@NonNull ActivityRecord activityRecord) {
+ // Package manager can be null at construction time, so access should be on demand.
+ if (!mHasBeenSet) {
+ try {
+ final IPackageManager pm = activityRecord.mAtmService.getPackageManager();
+ if (pm != null) {
+ mUserAspectRatio = pm.getUserMinAspectRatio(activityRecord.packageName,
+ activityRecord.mUserId);
+ mHasBeenSet = true;
+ }
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Exception thrown retrieving aspect ratio user override "
+ + this, e);
+ }
+ }
+
+ return mUserAspectRatio;
+ }
}
private Resources getResources() {
diff --git a/services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java b/services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java
index f5d58eac1113..e3a9d672c17f 100644
--- a/services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java
+++ b/services/core/java/com/android/server/wm/AppCompatOrientationPolicy.java
@@ -56,11 +56,11 @@ class AppCompatOrientationPolicy {
final DisplayContent displayContent = mActivityRecord.mDisplayContent;
final boolean isIgnoreOrientationRequestEnabled = displayContent != null
&& displayContent.getIgnoreOrientationRequest();
- final boolean shouldApplyUserFullscreenOverride = mAppCompatOverrides
- .getAppCompatAspectRatioOverrides().shouldApplyUserFullscreenOverride();
+ final boolean hasFullscreenOverride = mAppCompatOverrides
+ .getAppCompatAspectRatioOverrides().hasFullscreenOverride();
final boolean shouldCameraCompatControlOrientation =
AppCompatCameraPolicy.shouldCameraCompatControlOrientation(mActivityRecord);
- if (shouldApplyUserFullscreenOverride && isIgnoreOrientationRequestEnabled
+ if (hasFullscreenOverride && isIgnoreOrientationRequestEnabled
// Do not override orientation to fullscreen for camera activities.
// Fixed-orientation activities are rarely tested in other orientations, and it
// often results in sideways or stretched previews. As the camera compat treatment
@@ -69,8 +69,7 @@ class AppCompatOrientationPolicy {
&& !shouldCameraCompatControlOrientation) {
Slog.v(TAG, "Requested orientation " + screenOrientationToString(candidate)
+ " for " + mActivityRecord + " is overridden to "
- + screenOrientationToString(SCREEN_ORIENTATION_USER)
- + " by user aspect ratio settings.");
+ + screenOrientationToString(SCREEN_ORIENTATION_USER));
return SCREEN_ORIENTATION_USER;
}
@@ -101,24 +100,6 @@ class AppCompatOrientationPolicy {
return candidate;
}
- // mUserAspectRatio is always initialized first in shouldApplyUserFullscreenOverride(),
- // which will always come first before this check as user override > device
- // manufacturer override.
- final boolean isSystemOverrideToFullscreenEnabled = mAppCompatOverrides
- .getAppCompatAspectRatioOverrides().isSystemOverrideToFullscreenEnabled();
- if (isSystemOverrideToFullscreenEnabled && isIgnoreOrientationRequestEnabled
- // Do not override orientation to fullscreen for camera activities.
- // Fixed-orientation activities are rarely tested in other orientations, and it
- // often results in sideways or stretched previews. As the camera compat treatment
- // targets fixed-orientation activities, overriding the orientation disables the
- // treatment.
- && !shouldCameraCompatControlOrientation) {
- Slog.v(TAG, "Requested orientation " + screenOrientationToString(candidate)
- + " for " + mActivityRecord + " is overridden to "
- + screenOrientationToString(SCREEN_ORIENTATION_USER));
- return SCREEN_ORIENTATION_USER;
- }
-
final AppCompatOrientationOverrides.OrientationOverridesState capabilityState =
mAppCompatOverrides.getAppCompatOrientationOverrides()
.mOrientationOverridesState;
diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
index c30f70ee2903..e956e225f811 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java
@@ -63,9 +63,9 @@ import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityRecord.State.STOPPED;
+import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_POSITION_MULTIPLIER_CENTER;
import static com.android.server.wm.AppCompatUtils.computeAspectRatio;
import static com.android.server.wm.DisplayContent.IME_TARGET_LAYERING;
-import static com.android.server.wm.AppCompatConfiguration.LETTERBOX_POSITION_MULTIPLIER_CENTER;
import static com.android.server.wm.WindowContainer.POSITION_TOP;
import static com.google.common.truth.Truth.assertThat;
@@ -95,13 +95,11 @@ import android.compat.testing.PlatformCompatChangeRule;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.ActivityInfo.ScreenOrientation;
-import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.graphics.Insets;
import android.graphics.Rect;
import android.os.Binder;
-import android.os.RemoteException;
import android.os.UserHandle;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
@@ -1570,7 +1568,7 @@ public class SizeCompatTests extends WindowTestsBase {
new TestSplitOrganizer(mAtm, activity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, 1000, 1400);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, activity.getWindowingMode());
@@ -1957,7 +1955,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, mActivity.getDisplayContent());
// Move activity to multi-window which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, screenWidth, getExpectedSplitSize(screenHeight));
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -1993,7 +1991,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, mActivity.getDisplayContent());
// Move activity to multi-window which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, screenWidth, getExpectedSplitSize(screenHeight));
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -2126,7 +2124,7 @@ public class SizeCompatTests extends WindowTestsBase {
setUpDisplaySizeWithApp(screenWidth, screenHeight);
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
mActivity.mWmService.mAppCompatConfiguration
- .setIsSplitScreenAspectRatioForUnresizableAppsEnabled(true);
+ .setIsSplitScreenAspectRatioForUnresizableAppsEnabled(true);
mActivity.mWmService.mAppCompatConfiguration.setFixedOrientationLetterboxAspectRatio(1.1f);
@@ -2147,7 +2145,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, mActivity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, getExpectedSplitSize(screenWidth), screenHeight);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -2392,13 +2390,11 @@ public class SizeCompatTests extends WindowTestsBase {
spyOn(activity.mWmService.mAppCompatConfiguration);
doReturn(enabled).when(activity.mWmService.mAppCompatConfiguration)
.isUserAppAspectRatioSettingsEnabled();
- // Set user aspect ratio override
- final IPackageManager pm = mAtm.getPackageManager();
- try {
- doReturn(aspectRatio).when(pm)
- .getUserMinAspectRatio(activity.packageName, activity.mUserId);
- } catch (RemoteException ignored) {
- }
+ final AppCompatAspectRatioOverrides aspectRatioOverrides =
+ activity.mAppCompatController.getAppCompatAspectRatioOverrides();
+ spyOn(aspectRatioOverrides);
+ // Set user aspect ratio override.
+ doReturn(aspectRatio).when(aspectRatioOverrides).getUserMinAspectRatioOverrideCode();
prepareLimitedBounds(activity, screenOrientation, isUnresizable);
@@ -2507,7 +2503,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, activity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, getExpectedSplitSize(screenWidth), screenHeight);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, activity.getWindowingMode());
@@ -2542,7 +2538,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, activity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, screenWidth, getExpectedSplitSize(screenHeight));
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, activity.getWindowingMode());
@@ -2663,7 +2659,7 @@ public class SizeCompatTests extends WindowTestsBase {
setUpDisplaySizeWithApp(screenWidth, screenHeight);
mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);
mActivity.mWmService.mAppCompatConfiguration
- .setIsSplitScreenAspectRatioForUnresizableAppsEnabled(true);
+ .setIsSplitScreenAspectRatioForUnresizableAppsEnabled(true);
mActivity.mWmService.mAppCompatConfiguration.setFixedOrientationLetterboxAspectRatio(1.1f);
@@ -2684,7 +2680,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, mActivity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, screenWidth, getExpectedSplitSize(screenHeight));
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -2712,7 +2708,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, mActivity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, displayWidth, getExpectedSplitSize(displayHeight));
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -2748,7 +2744,7 @@ public class SizeCompatTests extends WindowTestsBase {
final TestSplitOrganizer organizer =
new TestSplitOrganizer(mAtm, mActivity.getDisplayContent());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, getExpectedSplitSize(displayWidth), displayHeight);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -2879,7 +2875,7 @@ public class SizeCompatTests extends WindowTestsBase {
// App bounds should be 700x1400 with the ratio as the display.
assertEquals(rotatedDisplayBounds.height(), rotatedActivityBounds.height());
assertEquals(rotatedDisplayBounds.height() * rotatedDisplayBounds.height()
- / rotatedDisplayBounds.width(), rotatedActivityBounds.width());
+ / rotatedDisplayBounds.width(), rotatedActivityBounds.width());
}
@Test
@@ -3328,7 +3324,7 @@ public class SizeCompatTests extends WindowTestsBase {
final Rect originalBounds = new Rect(mActivity.getBounds());
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, 1000, 1400);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -3444,7 +3440,7 @@ public class SizeCompatTests extends WindowTestsBase {
prepareUnresizable(mActivity, 1.1f, SCREEN_ORIENTATION_PORTRAIT);
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, 1400, 1000);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -3468,7 +3464,7 @@ public class SizeCompatTests extends WindowTestsBase {
prepareUnresizable(mActivity, 1.1f, SCREEN_ORIENTATION_LANDSCAPE);
// Move activity to split screen which takes half of the screen.
- mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test");
+ mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false, "test");
organizer.mPrimary.setBounds(0, 0, 1000, 1400);
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode());
assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode());
@@ -3909,7 +3905,7 @@ public class SizeCompatTests extends WindowTestsBase {
final DisplayPolicy policy = display.getDisplayPolicy();
DisplayPolicy.DecorInsets.Info decorInfo = policy.getDecorInsetsInfo(ROTATION_90,
display.mBaseDisplayHeight, display.mBaseDisplayWidth);
- decorInfo.mNonDecorInsets.set(130, 0, 60, 0);
+ decorInfo.mNonDecorInsets.set(130, 0, 60, 0);
spyOn(policy);
doReturn(decorInfo).when(policy).getDecorInsetsInfo(ROTATION_90,
display.mBaseDisplayHeight, display.mBaseDisplayWidth);
@@ -4145,6 +4141,7 @@ public class SizeCompatTests extends WindowTestsBase {
// can be aligned inside parentAppBounds
assertEquals(activity.getBounds(), new Rect(175, 0, 2275, 1000));
}
+
@Test
@DisableCompatChanges({ActivityInfo.INSETS_DECOUPLED_CONFIGURATION_ENFORCED})
public void testApplyAspectRatio_activityCannotAlignWithParentAppHorizontal() {
@@ -4198,7 +4195,7 @@ public class SizeCompatTests extends WindowTestsBase {
final DisplayPolicy policy = display.getDisplayPolicy();
DisplayPolicy.DecorInsets.Info decorInfo = policy.getDecorInsetsInfo(ROTATION_90,
display.mBaseDisplayHeight, display.mBaseDisplayWidth);
- decorInfo.mNonDecorInsets.set(0, 130, 0, 60);
+ decorInfo.mNonDecorInsets.set(0, 130, 0, 60);
spyOn(policy);
doReturn(decorInfo).when(policy).getDecorInsetsInfo(ROTATION_90,
display.mBaseDisplayHeight, display.mBaseDisplayWidth);
@@ -4451,7 +4448,7 @@ public class SizeCompatTests extends WindowTestsBase {
mActivity.mResolveConfigHint.mUseOverrideInsetsForConfig = true;
// Set task as freeform
mTask.setWindowingMode(WindowConfiguration.WINDOWING_MODE_FREEFORM);
- prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
+ prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);
Rect bounds = new Rect(mActivity.getWindowConfiguration().getBounds());
Rect appBounds = new Rect(mActivity.getWindowConfiguration().getAppBounds());