diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index f1434c3ae7729..960d23d7afb09 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -241,7 +241,8 @@ public final class SurfaceControl implements Parcelable { private static native void nativeRemoveJankDataListener(long nativeListener); private static native long nativeCreateJankDataListenerWrapper(OnJankDataListener listener); private static native int nativeGetGPUContextPriority(); - private static native void nativeSetTransformHint(long nativeObject, int transformHint); + private static native void nativeSetTransformHint(long nativeObject, + @SurfaceControl.BufferTransform int transformHint); private static native int nativeGetTransformHint(long nativeObject); private static native int nativeGetLayerId(long nativeObject); @@ -3729,7 +3730,7 @@ public final class SurfaceControl implements Parcelable { /** * @hide */ - public int getTransformHint() { + public @SurfaceControl.BufferTransform int getTransformHint() { checkNotReleased(); return nativeGetTransformHint(mNativeObject); } @@ -3743,7 +3744,7 @@ public final class SurfaceControl implements Parcelable { * with the same size. * @hide */ - public void setTransformHint(@Surface.Rotation int transformHint) { + public void setTransformHint(@SurfaceControl.BufferTransform int transformHint) { nativeSetTransformHint(mNativeObject, transformHint); } diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 63757e373795e..1374d23b9eb52 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -214,7 +214,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) final Rect mSurfaceFrame = new Rect(); int mLastSurfaceWidth = -1, mLastSurfaceHeight = -1; - int mTransformHint = 0; + @SurfaceControl.BufferTransform int mTransformHint = 0; private boolean mGlobalListenersAdded; private boolean mAttachedToWindow; diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 8b791a4941f44..5a3a9d5bb5713 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -314,7 +314,8 @@ public final class ViewRootImpl implements ViewParent, private ArrayList mTransformHintListeners = new ArrayList<>(); - private @Surface.Rotation int mPreviousTransformHint = Surface.ROTATION_0; + private @SurfaceControl.BufferTransform + int mPreviousTransformHint = SurfaceControl.BUFFER_TRANSFORM_IDENTITY; /** * Callback for notifying about global configuration changes. */ @@ -7872,8 +7873,7 @@ public final class ViewRootImpl implements ViewParent, int transformHint = mSurfaceControl.getTransformHint(); if (mPreviousTransformHint != transformHint) { mPreviousTransformHint = transformHint; - dispatchTransformHintChanged( - SurfaceControl.rotationToBufferTransform(transformHint)); + dispatchTransformHintChanged(transformHint); } } else { destroySurface(); @@ -10501,7 +10501,7 @@ public final class ViewRootImpl implements ViewParent, @Override public @SurfaceControl.BufferTransform int getBufferTransformHint() { - return SurfaceControl.rotationToBufferTransform(mSurfaceControl.getTransformHint()); + return mSurfaceControl.getTransformHint(); } @Override diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 65ff7c7f5a0fd..1452c67ae3c68 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -1815,16 +1815,12 @@ static void nativeSetTransformHint(JNIEnv* env, jclass clazz, jlong nativeSurfac if (surface == nullptr) { return; } - surface->setTransformHint( - ui::Transform::toRotationFlags(static_cast(transformHint))); + surface->setTransformHint(transformHint); } static jint nativeGetTransformHint(JNIEnv* env, jclass clazz, jlong nativeSurfaceControl) { sp surface(reinterpret_cast(nativeSurfaceControl)); - ui::Transform::RotationFlags transformHintRotationFlags = - static_cast(surface->getTransformHint()); - - return toRotationInt(ui::Transform::toRotation((transformHintRotationFlags))); + return surface->getTransformHint(); } static jint nativeGetLayerId(JNIEnv* env, jclass clazz, jlong nativeSurfaceControl) { diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 776a65db365f6..38f6863d8a0df 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2472,7 +2472,8 @@ public class WindowManagerService extends IWindowManager.Stub if (isPrimaryDisplay) { transformHint = (transformHint + mPrimaryDisplayOrientation) % 4; } - outSurfaceControl.setTransformHint(transformHint); + outSurfaceControl.setTransformHint( + SurfaceControl.rotationToBufferTransform(transformHint)); ProtoLog.v(WM_DEBUG_ORIENTATION, "Passing transform hint %d for window %s%s", transformHint, win,