diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 1d8eb5eeb104d..b300f3031a00e 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -236,6 +236,7 @@ public final class SurfaceControl implements Parcelable { private static native long nativeCreateJankDataListenerWrapper(OnJankDataListener listener); private static native int nativeGetGPUContextPriority(); private static native void nativeSetTransformHint(long nativeObject, int transformHint); + private static native int nativeGetTransformHint(long nativeObject); @Nullable @GuardedBy("mLock") @@ -619,7 +620,6 @@ public final class SurfaceControl implements Parcelable { mName = other.mName; mWidth = other.mWidth; mHeight = other.mHeight; - mTransformHint = other.mTransformHint; mLocalOwnerView = other.mLocalOwnerView; assignNativeObject(nativeCopyFromSurfaceControl(other.mNativeObject), callsite); } @@ -1482,7 +1482,6 @@ public final class SurfaceControl implements Parcelable { mName = in.readString8(); mWidth = in.readInt(); mHeight = in.readInt(); - mTransformHint = in.readInt(); long object = 0; if (in.readInt() != 0) { @@ -1501,7 +1500,6 @@ public final class SurfaceControl implements Parcelable { dest.writeString8(mName); dest.writeInt(mWidth); dest.writeInt(mHeight); - dest.writeInt(mTransformHint); if (mNativeObject == 0) { dest.writeInt(0); } else { @@ -3625,7 +3623,8 @@ public final class SurfaceControl implements Parcelable { * @hide */ public int getTransformHint() { - return mTransformHint; + checkNotReleased(); + return nativeGetTransformHint(mNativeObject); } /** @@ -3638,9 +3637,6 @@ public final class SurfaceControl implements Parcelable { * @hide */ public void setTransformHint(@Surface.Rotation int transformHint) { - if (mTransformHint != transformHint) { - mTransformHint = transformHint; - nativeSetTransformHint(mNativeObject, transformHint); - } + nativeSetTransformHint(mNativeObject, transformHint); } } diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index c0de5d96719a3..dd80c731fbce9 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -1798,6 +1798,14 @@ static void nativeSetTransformHint(JNIEnv* env, jclass clazz, jlong nativeSurfac ui::Transform::toRotationFlags(static_cast(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))); +} + // ---------------------------------------------------------------------------- static const JNINativeMethod sSurfaceControlMethods[] = { @@ -1989,6 +1997,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = { (void*)nativeGetGPUContextPriority }, {"nativeSetTransformHint", "(JI)V", (void*)nativeSetTransformHint }, + {"nativeGetTransformHint", "(J)I", + (void*)nativeGetTransformHint }, // clang-format on };