Merge "Check for locked screen in DisplayRotation and disable rotation resolver when power save mode is enabled" into sc-dev
This commit is contained in:
@@ -186,6 +186,10 @@ public class DisplayRotation {
|
|||||||
@Surface.Rotation
|
@Surface.Rotation
|
||||||
private int mUserRotation = Surface.ROTATION_0;
|
private int mUserRotation = Surface.ROTATION_0;
|
||||||
|
|
||||||
|
private static final int CAMERA_ROTATION_DISABLED = 0;
|
||||||
|
private static final int CAMERA_ROTATION_ENABLED = 1;
|
||||||
|
private int mCameraRotationMode = CAMERA_ROTATION_DISABLED;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag that indicates this is a display that may run better when fixed to user rotation.
|
* Flag that indicates this is a display that may run better when fixed to user rotation.
|
||||||
*/
|
*/
|
||||||
@@ -1462,6 +1466,14 @@ public class DisplayRotation {
|
|||||||
if (shouldUpdateOrientationListener) {
|
if (shouldUpdateOrientationListener) {
|
||||||
updateOrientationListenerLw(); // Enable or disable the orientation listener.
|
updateOrientationListenerLw(); // Enable or disable the orientation listener.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final int cameraRotationMode = Settings.Secure.getIntForUser(resolver,
|
||||||
|
Settings.Secure.CAMERA_AUTOROTATE, 0,
|
||||||
|
UserHandle.USER_CURRENT);
|
||||||
|
if (mCameraRotationMode != cameraRotationMode) {
|
||||||
|
mCameraRotationMode = cameraRotationMode;
|
||||||
|
shouldUpdateRotation = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return shouldUpdateRotation;
|
return shouldUpdateRotation;
|
||||||
@@ -1491,6 +1503,7 @@ public class DisplayRotation {
|
|||||||
pw.print(prefix + " mUserRotationMode="
|
pw.print(prefix + " mUserRotationMode="
|
||||||
+ WindowManagerPolicy.userRotationModeToString(mUserRotationMode));
|
+ WindowManagerPolicy.userRotationModeToString(mUserRotationMode));
|
||||||
pw.print(" mUserRotation=" + Surface.rotationToString(mUserRotation));
|
pw.print(" mUserRotation=" + Surface.rotationToString(mUserRotation));
|
||||||
|
pw.print(" mCameraRotationMode=" + mCameraRotationMode);
|
||||||
pw.println(" mAllowAllRotations=" + allowAllRotationsToString(mAllowAllRotations));
|
pw.println(" mAllowAllRotations=" + allowAllRotationsToString(mAllowAllRotations));
|
||||||
|
|
||||||
pw.print(prefix + " mDemoHdmiRotation=" + Surface.rotationToString(mDemoHdmiRotation));
|
pw.print(prefix + " mDemoHdmiRotation=" + Surface.rotationToString(mDemoHdmiRotation));
|
||||||
@@ -1539,6 +1552,13 @@ public class DisplayRotation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isRotationResolverEnabled() {
|
||||||
|
return mUserRotationMode == WindowManagerPolicy.USER_ROTATION_FREE
|
||||||
|
&& mCameraRotationMode == CAMERA_ROTATION_ENABLED
|
||||||
|
&& !mService.mPowerManager.isPowerSaveMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onProposedRotationChanged(int rotation) {
|
public void onProposedRotationChanged(int rotation) {
|
||||||
@@ -1582,6 +1602,10 @@ public class DisplayRotation {
|
|||||||
resolver.registerContentObserver(Settings.System.getUriFor(
|
resolver.registerContentObserver(Settings.System.getUriFor(
|
||||||
Settings.System.USER_ROTATION), false, this,
|
Settings.System.USER_ROTATION), false, this,
|
||||||
UserHandle.USER_ALL);
|
UserHandle.USER_ALL);
|
||||||
|
resolver.registerContentObserver(
|
||||||
|
Settings.Secure.getUriFor(Settings.Secure.CAMERA_AUTOROTATE), false, this,
|
||||||
|
UserHandle.USER_ALL);
|
||||||
|
|
||||||
updateSettings();
|
updateSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,9 +31,7 @@ import android.os.CancellationSignal;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
|
||||||
import android.provider.DeviceConfig;
|
import android.provider.DeviceConfig;
|
||||||
import android.provider.Settings;
|
|
||||||
import android.rotationresolver.RotationResolverInternal;
|
import android.rotationresolver.RotationResolverInternal;
|
||||||
import android.util.Slog;
|
import android.util.Slog;
|
||||||
import android.util.proto.ProtoOutputStream;
|
import android.util.proto.ProtoOutputStream;
|
||||||
@@ -66,7 +64,6 @@ public abstract class WindowOrientationListener {
|
|||||||
|
|
||||||
private static final boolean USE_GRAVITY_SENSOR = false;
|
private static final boolean USE_GRAVITY_SENSOR = false;
|
||||||
private static final int DEFAULT_BATCH_LATENCY = 100000;
|
private static final int DEFAULT_BATCH_LATENCY = 100000;
|
||||||
private static final int DEFAULT_ROTATION_RESOLVER_ENABLED = 0; // disabled
|
|
||||||
private static final String KEY_ROTATION_RESOLVER_TIMEOUT = "rotation_resolver_timeout_millis";
|
private static final String KEY_ROTATION_RESOLVER_TIMEOUT = "rotation_resolver_timeout_millis";
|
||||||
private static final long DEFAULT_ROTATION_RESOLVER_TIMEOUT_MILLIS = 700L;
|
private static final long DEFAULT_ROTATION_RESOLVER_TIMEOUT_MILLIS = 700L;
|
||||||
|
|
||||||
@@ -278,11 +275,7 @@ public abstract class WindowOrientationListener {
|
|||||||
* screen rotation.
|
* screen rotation.
|
||||||
*/
|
*/
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
boolean isRotationResolverEnabled() {
|
abstract boolean isRotationResolverEnabled();
|
||||||
return Settings.Secure.getIntForUser(mContext.getContentResolver(),
|
|
||||||
Settings.Secure.CAMERA_AUTOROTATE, DEFAULT_ROTATION_RESOLVER_ENABLED,
|
|
||||||
UserHandle.USER_CURRENT) == 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when the rotation view of the device has changed.
|
* Called when the rotation view of the device has changed.
|
||||||
|
|||||||
Reference in New Issue
Block a user