Loading core/java/android/rotationresolver/RotationResolverInternal.java +5 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ public abstract class RotationResolverInternal { * * @param callback the callback that will be called when the result is computed or an * error is captured. {@link RotationResolverCallbackInternal} * @param packageName the package name of the fore ground activity. * @param proposedRotation the screen rotation that is proposed by the system. * @param currentRotation the current screen rotation. * @param timeoutMillis the timeout in millisecond for the query. If the query doesn't get Loading @@ -53,8 +54,10 @@ public abstract class RotationResolverInternal { * @param cancellationSignal a cancellation signal that notifies the rotation resolver manger */ public abstract void resolveRotation(@NonNull RotationResolverCallbackInternal callback, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, @NonNull CancellationSignal cancellationSignal); String packageName, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, @NonNull CancellationSignal cancellationSignal); /** * Internal interfaces for the rotation resolver callback. Loading services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java +12 −4 Original line number Diff line number Diff line Loading @@ -153,8 +153,8 @@ public class RotationResolverManagerService extends @Override public void resolveRotation( @NonNull RotationResolverCallbackInternal callbackInternal, int proposedRotation, int currentRotation, long timeout, @NonNull RotationResolverCallbackInternal callbackInternal, String packageName, int proposedRotation, int currentRotation, long timeout, @NonNull CancellationSignal cancellationSignalInternal) { Objects.requireNonNull(callbackInternal); Objects.requireNonNull(cancellationSignalInternal); Loading @@ -165,8 +165,16 @@ public class RotationResolverManagerService extends final RotationResolverManagerPerUserService service = getServiceForUserLocked( UserHandle.getCallingUserId()); final RotationResolutionRequest request = new RotationResolutionRequest("", currentRotation, proposedRotation, true, timeout); final RotationResolutionRequest request; if (packageName == null) { request = new RotationResolutionRequest(/* packageName */ "", currentRotation, proposedRotation, /* shouldUseCamera */ true, timeout); } else { request = new RotationResolutionRequest(packageName, currentRotation, proposedRotation, /* shouldUseCamera */ true, timeout); } service.resolveRotationLocked(callbackInternal, request, cancellationSignalInternal); } else { Loading services/core/java/com/android/server/wm/WindowOrientationListener.java +17 −1 Original line number Diff line number Diff line Loading @@ -1079,10 +1079,13 @@ public abstract class WindowOrientationListener { private int mDesiredRotation = -1; private boolean mRotationEvaluationScheduled; private long mRotationResolverTimeoutMillis; private final ActivityTaskManagerInternal mActivityTaskManagerInternal; OrientationSensorJudge() { super(); setupRotationResolverParameters(); mActivityTaskManagerInternal = LocalServices.getService(ActivityTaskManagerInternal.class); } private void setupRotationResolverParameters() { Loading Loading @@ -1149,6 +1152,18 @@ public abstract class WindowOrientationListener { } final CancellationSignal cancellationSignal = new CancellationSignal(); String packageName = null; if (mActivityTaskManagerInternal != null) { final WindowProcessController controller = mActivityTaskManagerInternal.getTopApp(); if (controller != null && controller.mInfo != null && controller.mInfo.packageName != null) { packageName = controller.mInfo.packageName; } } mRotationResolverService.resolveRotation( new RotationResolverInternal.RotationResolverCallbackInternal() { @Override Loading @@ -1161,6 +1176,7 @@ public abstract class WindowOrientationListener { finalizeRotation(reportedRotation); } }, packageName, reportedRotation, mCurrentRotation, mRotationResolverTimeoutMillis, Loading services/tests/servicestests/src/com/android/server/wm/WindowOrientationListenerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -106,8 +106,8 @@ public class WindowOrientationListenerTest { @Override public void resolveRotation(@NonNull RotationResolverCallbackInternal callback, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, String packageName, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, @NonNull CancellationSignal cancellationSignal) { callback.onSuccess(mResult); } Loading Loading
core/java/android/rotationresolver/RotationResolverInternal.java +5 −2 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ public abstract class RotationResolverInternal { * * @param callback the callback that will be called when the result is computed or an * error is captured. {@link RotationResolverCallbackInternal} * @param packageName the package name of the fore ground activity. * @param proposedRotation the screen rotation that is proposed by the system. * @param currentRotation the current screen rotation. * @param timeoutMillis the timeout in millisecond for the query. If the query doesn't get Loading @@ -53,8 +54,10 @@ public abstract class RotationResolverInternal { * @param cancellationSignal a cancellation signal that notifies the rotation resolver manger */ public abstract void resolveRotation(@NonNull RotationResolverCallbackInternal callback, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, @NonNull CancellationSignal cancellationSignal); String packageName, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, @NonNull CancellationSignal cancellationSignal); /** * Internal interfaces for the rotation resolver callback. Loading
services/core/java/com/android/server/rotationresolver/RotationResolverManagerService.java +12 −4 Original line number Diff line number Diff line Loading @@ -153,8 +153,8 @@ public class RotationResolverManagerService extends @Override public void resolveRotation( @NonNull RotationResolverCallbackInternal callbackInternal, int proposedRotation, int currentRotation, long timeout, @NonNull RotationResolverCallbackInternal callbackInternal, String packageName, int proposedRotation, int currentRotation, long timeout, @NonNull CancellationSignal cancellationSignalInternal) { Objects.requireNonNull(callbackInternal); Objects.requireNonNull(cancellationSignalInternal); Loading @@ -165,8 +165,16 @@ public class RotationResolverManagerService extends final RotationResolverManagerPerUserService service = getServiceForUserLocked( UserHandle.getCallingUserId()); final RotationResolutionRequest request = new RotationResolutionRequest("", currentRotation, proposedRotation, true, timeout); final RotationResolutionRequest request; if (packageName == null) { request = new RotationResolutionRequest(/* packageName */ "", currentRotation, proposedRotation, /* shouldUseCamera */ true, timeout); } else { request = new RotationResolutionRequest(packageName, currentRotation, proposedRotation, /* shouldUseCamera */ true, timeout); } service.resolveRotationLocked(callbackInternal, request, cancellationSignalInternal); } else { Loading
services/core/java/com/android/server/wm/WindowOrientationListener.java +17 −1 Original line number Diff line number Diff line Loading @@ -1079,10 +1079,13 @@ public abstract class WindowOrientationListener { private int mDesiredRotation = -1; private boolean mRotationEvaluationScheduled; private long mRotationResolverTimeoutMillis; private final ActivityTaskManagerInternal mActivityTaskManagerInternal; OrientationSensorJudge() { super(); setupRotationResolverParameters(); mActivityTaskManagerInternal = LocalServices.getService(ActivityTaskManagerInternal.class); } private void setupRotationResolverParameters() { Loading Loading @@ -1149,6 +1152,18 @@ public abstract class WindowOrientationListener { } final CancellationSignal cancellationSignal = new CancellationSignal(); String packageName = null; if (mActivityTaskManagerInternal != null) { final WindowProcessController controller = mActivityTaskManagerInternal.getTopApp(); if (controller != null && controller.mInfo != null && controller.mInfo.packageName != null) { packageName = controller.mInfo.packageName; } } mRotationResolverService.resolveRotation( new RotationResolverInternal.RotationResolverCallbackInternal() { @Override Loading @@ -1161,6 +1176,7 @@ public abstract class WindowOrientationListener { finalizeRotation(reportedRotation); } }, packageName, reportedRotation, mCurrentRotation, mRotationResolverTimeoutMillis, Loading
services/tests/servicestests/src/com/android/server/wm/WindowOrientationListenerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -106,8 +106,8 @@ public class WindowOrientationListenerTest { @Override public void resolveRotation(@NonNull RotationResolverCallbackInternal callback, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, String packageName, @Surface.Rotation int proposedRotation, @Surface.Rotation int currentRotation, @DurationMillisLong long timeoutMillis, @NonNull CancellationSignal cancellationSignal) { callback.onSuccess(mResult); } Loading