diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 8d14318c10..94dbe00401 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -554,6 +554,14 @@ public class Launcher extends StatefulActivity implements Launche AbstractFloatingView.closeOpenViews(this, false, TYPE_ICON_SURFACE); } + @Override + public void onMultiWindowModeChanged(boolean isInMultiWindowMode, Configuration newConfig) { + super.onMultiWindowModeChanged(isInMultiWindowMode, newConfig); + // Always update device profile when multi window mode changed. + initDeviceProfile(mDeviceProfile.inv); + dispatchDeviceProfileChanged(); + } + @Override public void onConfigurationChanged(Configuration newConfig) { int diff = newConfig.diff(mOldConfig); @@ -592,11 +600,9 @@ public class Launcher extends StatefulActivity implements Launche private void initDeviceProfile(InvariantDeviceProfile idp) { // Load configuration-specific DeviceProfile - mDeviceProfile = idp.getDeviceProfile(this); - if (isInMultiWindowMode()) { - mDeviceProfile = mDeviceProfile.getMultiWindowProfile( - this, getMultiWindowDisplaySize()); - } + mDeviceProfile = isInMultiWindowMode() + ? mDeviceProfile.getMultiWindowProfile(this, getMultiWindowDisplaySize()) + : idp.getDeviceProfile(this); onDeviceProfileInitiated(); mModelWriter = mModel.getWriter(getDeviceProfile().isVerticalBarLayout(), true, this);