Loading quickstep/src/com/android/quickstep/util/RecentsOrientedState.java +1 −1 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ public class RecentsOrientedState implements */ public void setDeviceProfile(DeviceProfile deviceProfile) { boolean oldMultipleOrientationsSupported = isMultipleOrientationSupportedByDevice(); setFlag(FLAG_MULTIPLE_ORIENTATION_SUPPORTED_BY_DENSITY, !deviceProfile.allowRotation); setFlag(FLAG_MULTIPLE_ORIENTATION_SUPPORTED_BY_DENSITY, !deviceProfile.isTablet); if (mListenersInitialized) { boolean newMultipleOrientationsSupported = isMultipleOrientationSupportedByDevice(); // If isMultipleOrientationSupportedByDevice is changed, init or destroy listeners Loading src/com/android/launcher3/DeviceProfile.java +1 −11 Original line number Diff line number Diff line Loading @@ -16,13 +16,10 @@ package com.android.launcher3; import static android.util.DisplayMetrics.DENSITY_DEVICE_STABLE; import static com.android.launcher3.ResourceUtils.pxFromDp; import static com.android.launcher3.Utilities.dpiFromPx; import static com.android.launcher3.Utilities.pxFromSp; import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.ICON_OVERLAP_FACTOR; import static com.android.launcher3.util.WindowManagerCompat.MIN_TABLET_WIDTH; import android.annotation.SuppressLint; import android.content.Context; Loading Loading @@ -64,7 +61,6 @@ public class DeviceProfile { public final boolean isPhone; public final boolean transposeLayoutWithOrientation; public final boolean isTwoPanels; public final boolean allowRotation; // Device properties in current orientation public final boolean isLandscape; Loading Loading @@ -244,12 +240,7 @@ public class DeviceProfile { availableHeightPx = windowBounds.availableSize.y; mInfo = info; // If the device's pixel density was scaled (usually via settings for A11y), use the // original dimensions to determine if rotation is allowed of not. float originalSmallestWidth = dpiFromPx(Math.min(widthPx, heightPx), DENSITY_DEVICE_STABLE); allowRotation = originalSmallestWidth >= MIN_TABLET_WIDTH; // Tablet UI does not support emulated landscape. isTablet = allowRotation && info.isTablet(windowBounds); isTablet = info.isTablet(windowBounds); isPhone = !isTablet; isTwoPanels = isTablet && useTwoPanels; Loading Loading @@ -1031,7 +1022,6 @@ public class DeviceProfile { writer.println(prefix + "DeviceProfile:"); writer.println(prefix + "\t1 dp = " + mMetrics.density + " px"); writer.println(prefix + "\tallowRotation:" + allowRotation); writer.println(prefix + "\tisTablet:" + isTablet); writer.println(prefix + "\tisPhone:" + isPhone); writer.println(prefix + "\ttransposeLayoutWithOrientation:" Loading src/com/android/launcher3/settings/SettingsActivity.java +4 −2 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.model.WidgetsModel; import com.android.launcher3.states.RotationHelper; import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper; import java.util.Collections; Loading Loading @@ -253,12 +254,13 @@ public class SettingsActivity extends FragmentActivity case ALLOW_ROTATION_PREFERENCE_KEY: DeviceProfile deviceProfile = InvariantDeviceProfile.INSTANCE.get( getContext()).getDeviceProfile(getContext()); if (deviceProfile.allowRotation) { if (deviceProfile.isTablet) { // Launcher supports rotation by default. No need to show this setting. return false; } // Initialize the UI once preference.setDefaultValue(false); preference.setDefaultValue( RotationHelper.getAllowRotationDefaultValue(deviceProfile)); return true; case FLAGS_PREFERENCE_KEY: Loading src/com/android/launcher3/states/RotationHelper.java +20 −6 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package com.android.launcher3.states; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LOCKED; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_NOSENSOR; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.util.DisplayMetrics.DENSITY_DEVICE_STABLE; import static com.android.launcher3.Utilities.dpiFromPx; import static com.android.launcher3.util.WindowManagerCompat.MIN_TABLET_WIDTH; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; Loading @@ -25,7 +29,6 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import com.android.launcher3.BaseActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Utilities; import com.android.launcher3.util.ActivityTracker; import com.android.launcher3.util.UiThreadHelper; /** Loading @@ -38,6 +41,17 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, public static final String ALLOW_ROTATION_PREFERENCE_KEY = "pref_allowRotation"; /** * Returns the default value of {@link #ALLOW_ROTATION_PREFERENCE_KEY} preference. */ public static boolean getAllowRotationDefaultValue(DeviceProfile deviceProfile) { // If the device's pixel density was scaled (usually via settings for A11y), use the // original dimensions to determine if rotation is allowed of not. float originalSmallestWidth = dpiFromPx( Math.min(deviceProfile.widthPx, deviceProfile.heightPx), DENSITY_DEVICE_STABLE); return originalSmallestWidth >= MIN_TABLET_WIDTH; } public static final int REQUEST_NONE = 0; public static final int REQUEST_ROTATE = 1; public static final int REQUEST_LOCK = 2; Loading @@ -51,7 +65,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, /** * Rotation request made by * {@link ActivityTracker.SchedulerCallback}. * {@link com.android.launcher3.util.ActivityTracker.SchedulerCallback}. * This supersedes any other request. */ private int mStateHandlerRequest = REQUEST_NONE; Loading Loading @@ -84,7 +98,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, mSharedPrefs.registerOnSharedPreferenceChangeListener(this); } mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, mActivity.getDeviceProfile().allowRotation); getAllowRotationDefaultValue(mActivity.getDeviceProfile())); } else { if (mSharedPrefs != null) { mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this); Loading @@ -98,7 +112,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, if (mDestroyed) return; boolean wasRotationEnabled = mHomeRotationEnabled; mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, mActivity.getDeviceProfile().allowRotation); getAllowRotationDefaultValue(mActivity.getDeviceProfile())); if (mHomeRotationEnabled != wasRotationEnabled) { notifyChange(); } Loading @@ -106,7 +120,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, @Override public void onDeviceProfileChanged(DeviceProfile dp) { boolean ignoreAutoRotateSettings = dp.allowRotation; boolean ignoreAutoRotateSettings = dp.isTablet; if (mIgnoreAutoRotateSettings != ignoreAutoRotateSettings) { setIgnoreAutoRotateSettings(ignoreAutoRotateSettings); notifyChange(); Loading Loading @@ -143,7 +157,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, public void initialize() { if (!mInitialized) { mInitialized = true; setIgnoreAutoRotateSettings(mActivity.getDeviceProfile().allowRotation); setIgnoreAutoRotateSettings(mActivity.getDeviceProfile().isTablet); mActivity.addOnDeviceProfileChangeListener(this); notifyChange(); } Loading Loading
quickstep/src/com/android/quickstep/util/RecentsOrientedState.java +1 −1 Original line number Diff line number Diff line Loading @@ -162,7 +162,7 @@ public class RecentsOrientedState implements */ public void setDeviceProfile(DeviceProfile deviceProfile) { boolean oldMultipleOrientationsSupported = isMultipleOrientationSupportedByDevice(); setFlag(FLAG_MULTIPLE_ORIENTATION_SUPPORTED_BY_DENSITY, !deviceProfile.allowRotation); setFlag(FLAG_MULTIPLE_ORIENTATION_SUPPORTED_BY_DENSITY, !deviceProfile.isTablet); if (mListenersInitialized) { boolean newMultipleOrientationsSupported = isMultipleOrientationSupportedByDevice(); // If isMultipleOrientationSupportedByDevice is changed, init or destroy listeners Loading
src/com/android/launcher3/DeviceProfile.java +1 −11 Original line number Diff line number Diff line Loading @@ -16,13 +16,10 @@ package com.android.launcher3; import static android.util.DisplayMetrics.DENSITY_DEVICE_STABLE; import static com.android.launcher3.ResourceUtils.pxFromDp; import static com.android.launcher3.Utilities.dpiFromPx; import static com.android.launcher3.Utilities.pxFromSp; import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.ICON_OVERLAP_FACTOR; import static com.android.launcher3.util.WindowManagerCompat.MIN_TABLET_WIDTH; import android.annotation.SuppressLint; import android.content.Context; Loading Loading @@ -64,7 +61,6 @@ public class DeviceProfile { public final boolean isPhone; public final boolean transposeLayoutWithOrientation; public final boolean isTwoPanels; public final boolean allowRotation; // Device properties in current orientation public final boolean isLandscape; Loading Loading @@ -244,12 +240,7 @@ public class DeviceProfile { availableHeightPx = windowBounds.availableSize.y; mInfo = info; // If the device's pixel density was scaled (usually via settings for A11y), use the // original dimensions to determine if rotation is allowed of not. float originalSmallestWidth = dpiFromPx(Math.min(widthPx, heightPx), DENSITY_DEVICE_STABLE); allowRotation = originalSmallestWidth >= MIN_TABLET_WIDTH; // Tablet UI does not support emulated landscape. isTablet = allowRotation && info.isTablet(windowBounds); isTablet = info.isTablet(windowBounds); isPhone = !isTablet; isTwoPanels = isTablet && useTwoPanels; Loading Loading @@ -1031,7 +1022,6 @@ public class DeviceProfile { writer.println(prefix + "DeviceProfile:"); writer.println(prefix + "\t1 dp = " + mMetrics.density + " px"); writer.println(prefix + "\tallowRotation:" + allowRotation); writer.println(prefix + "\tisTablet:" + isTablet); writer.println(prefix + "\tisPhone:" + isPhone); writer.println(prefix + "\ttransposeLayoutWithOrientation:" Loading
src/com/android/launcher3/settings/SettingsActivity.java +4 −2 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.model.WidgetsModel; import com.android.launcher3.states.RotationHelper; import com.android.launcher3.uioverrides.plugins.PluginManagerWrapper; import java.util.Collections; Loading Loading @@ -253,12 +254,13 @@ public class SettingsActivity extends FragmentActivity case ALLOW_ROTATION_PREFERENCE_KEY: DeviceProfile deviceProfile = InvariantDeviceProfile.INSTANCE.get( getContext()).getDeviceProfile(getContext()); if (deviceProfile.allowRotation) { if (deviceProfile.isTablet) { // Launcher supports rotation by default. No need to show this setting. return false; } // Initialize the UI once preference.setDefaultValue(false); preference.setDefaultValue( RotationHelper.getAllowRotationDefaultValue(deviceProfile)); return true; case FLAGS_PREFERENCE_KEY: Loading
src/com/android/launcher3/states/RotationHelper.java +20 −6 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package com.android.launcher3.states; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LOCKED; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_NOSENSOR; import static android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; import static android.util.DisplayMetrics.DENSITY_DEVICE_STABLE; import static com.android.launcher3.Utilities.dpiFromPx; import static com.android.launcher3.util.WindowManagerCompat.MIN_TABLET_WIDTH; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; Loading @@ -25,7 +29,6 @@ import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import com.android.launcher3.BaseActivity; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Utilities; import com.android.launcher3.util.ActivityTracker; import com.android.launcher3.util.UiThreadHelper; /** Loading @@ -38,6 +41,17 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, public static final String ALLOW_ROTATION_PREFERENCE_KEY = "pref_allowRotation"; /** * Returns the default value of {@link #ALLOW_ROTATION_PREFERENCE_KEY} preference. */ public static boolean getAllowRotationDefaultValue(DeviceProfile deviceProfile) { // If the device's pixel density was scaled (usually via settings for A11y), use the // original dimensions to determine if rotation is allowed of not. float originalSmallestWidth = dpiFromPx( Math.min(deviceProfile.widthPx, deviceProfile.heightPx), DENSITY_DEVICE_STABLE); return originalSmallestWidth >= MIN_TABLET_WIDTH; } public static final int REQUEST_NONE = 0; public static final int REQUEST_ROTATE = 1; public static final int REQUEST_LOCK = 2; Loading @@ -51,7 +65,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, /** * Rotation request made by * {@link ActivityTracker.SchedulerCallback}. * {@link com.android.launcher3.util.ActivityTracker.SchedulerCallback}. * This supersedes any other request. */ private int mStateHandlerRequest = REQUEST_NONE; Loading Loading @@ -84,7 +98,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, mSharedPrefs.registerOnSharedPreferenceChangeListener(this); } mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, mActivity.getDeviceProfile().allowRotation); getAllowRotationDefaultValue(mActivity.getDeviceProfile())); } else { if (mSharedPrefs != null) { mSharedPrefs.unregisterOnSharedPreferenceChangeListener(this); Loading @@ -98,7 +112,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, if (mDestroyed) return; boolean wasRotationEnabled = mHomeRotationEnabled; mHomeRotationEnabled = mSharedPrefs.getBoolean(ALLOW_ROTATION_PREFERENCE_KEY, mActivity.getDeviceProfile().allowRotation); getAllowRotationDefaultValue(mActivity.getDeviceProfile())); if (mHomeRotationEnabled != wasRotationEnabled) { notifyChange(); } Loading @@ -106,7 +120,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, @Override public void onDeviceProfileChanged(DeviceProfile dp) { boolean ignoreAutoRotateSettings = dp.allowRotation; boolean ignoreAutoRotateSettings = dp.isTablet; if (mIgnoreAutoRotateSettings != ignoreAutoRotateSettings) { setIgnoreAutoRotateSettings(ignoreAutoRotateSettings); notifyChange(); Loading Loading @@ -143,7 +157,7 @@ public class RotationHelper implements OnSharedPreferenceChangeListener, public void initialize() { if (!mInitialized) { mInitialized = true; setIgnoreAutoRotateSettings(mActivity.getDeviceProfile().allowRotation); setIgnoreAutoRotateSettings(mActivity.getDeviceProfile().isTablet); mActivity.addOnDeviceProfileChangeListener(this); notifyChange(); } Loading