Loading core/java/android/view/SurfaceControl.java +31 −2 Original line number Diff line number Diff line Loading @@ -333,6 +333,8 @@ public final class SurfaceControl implements Parcelable { */ public long mNativeObject; private long mNativeHandle; private boolean mDebugRelease = false; private Throwable mReleaseStack = null; // TODO: Move width/height to native and fix locking through out. private final Object mLock = new Object(); Loading Loading @@ -580,6 +582,13 @@ public final class SurfaceControl implements Parcelable { } mNativeObject = nativeObject; mNativeHandle = mNativeObject != 0 ? nativeGetHandle(nativeObject) : 0; if (mNativeObject == 0) { if (mDebugRelease) { mReleaseStack = new Throwable("assigned zero nativeObject here"); } } else { mReleaseStack = null; } } /** Loading @@ -590,6 +599,7 @@ public final class SurfaceControl implements Parcelable { mWidth = other.mWidth; mHeight = other.mHeight; mLocalOwnerView = other.mLocalOwnerView; mDebugRelease = other.mDebugRelease; assignNativeObject(nativeCopyFromSurfaceControl(other.mNativeObject), callsite); } Loading Loading @@ -1419,6 +1429,7 @@ public final class SurfaceControl implements Parcelable { mName = in.readString8(); mWidth = in.readInt(); mHeight = in.readInt(); mDebugRelease = in.readBoolean(); long object = 0; if (in.readInt() != 0) { Loading @@ -1437,8 +1448,12 @@ public final class SurfaceControl implements Parcelable { dest.writeString8(mName); dest.writeInt(mWidth); dest.writeInt(mHeight); dest.writeBoolean(mDebugRelease); if (mNativeObject == 0) { dest.writeInt(0); if (mReleaseStack != null) { Log.w(TAG, "Sending invalid " + this + " caused by:", mReleaseStack); } } else { dest.writeInt(1); } Loading @@ -1449,6 +1464,13 @@ public final class SurfaceControl implements Parcelable { } } /** * @hide */ public void setDebugRelease(boolean debug) { mDebugRelease = debug; } /** * Checks whether two {@link SurfaceControl} objects represent the same surface. * Loading Loading @@ -1519,6 +1541,9 @@ public final class SurfaceControl implements Parcelable { nativeRelease(mNativeObject); mNativeObject = 0; mNativeHandle = 0; if (mDebugRelease) { mReleaseStack = new Throwable("released here"); } mCloseGuard.close(); } } Loading @@ -1534,8 +1559,11 @@ public final class SurfaceControl implements Parcelable { } private void checkNotReleased() { if (mNativeObject == 0) throw new NullPointerException( "Invalid " + this + ", mNativeObject is null. Have you called release() already?"); if (mNativeObject == 0) { Log.wtf(TAG, "Invalid " + this + " caused by:", mReleaseStack); throw new NullPointerException( "mNativeObject of " + this + " is null. Have you called release() already?"); } } /** Loading Loading @@ -2383,6 +2411,7 @@ public final class SurfaceControl implements Parcelable { public static SurfaceControl mirrorSurface(SurfaceControl mirrorOf) { long nativeObj = nativeMirrorSurface(mirrorOf.mNativeObject); SurfaceControl sc = new SurfaceControl(); sc.mDebugRelease = mirrorOf.mDebugRelease; sc.assignNativeObject(nativeObj, "mirrorSurface"); return sc; } Loading services/core/java/com/android/server/wm/InsetsSourceProvider.java +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.wm; import static android.os.Build.IS_DEBUGGABLE; import static android.view.InsetsState.ITYPE_CLIMATE_BAR; import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_IME; Loading Loading @@ -552,6 +553,11 @@ class InsetsSourceProvider { // TODO: use 0 alpha and remove t.hide() once b/138459974 is fixed. t.setAlpha(animationLeash, 1 /* alpha */); t.hide(animationLeash); // TODO(b/175954493): Remove this after finding root cause. if (IS_DEBUGGABLE) { animationLeash.setDebugRelease(true); } } ProtoLog.i(WM_DEBUG_IME, "ControlAdapter startAnimation mSource: %s controlTarget: %s", mSource, Loading Loading
core/java/android/view/SurfaceControl.java +31 −2 Original line number Diff line number Diff line Loading @@ -333,6 +333,8 @@ public final class SurfaceControl implements Parcelable { */ public long mNativeObject; private long mNativeHandle; private boolean mDebugRelease = false; private Throwable mReleaseStack = null; // TODO: Move width/height to native and fix locking through out. private final Object mLock = new Object(); Loading Loading @@ -580,6 +582,13 @@ public final class SurfaceControl implements Parcelable { } mNativeObject = nativeObject; mNativeHandle = mNativeObject != 0 ? nativeGetHandle(nativeObject) : 0; if (mNativeObject == 0) { if (mDebugRelease) { mReleaseStack = new Throwable("assigned zero nativeObject here"); } } else { mReleaseStack = null; } } /** Loading @@ -590,6 +599,7 @@ public final class SurfaceControl implements Parcelable { mWidth = other.mWidth; mHeight = other.mHeight; mLocalOwnerView = other.mLocalOwnerView; mDebugRelease = other.mDebugRelease; assignNativeObject(nativeCopyFromSurfaceControl(other.mNativeObject), callsite); } Loading Loading @@ -1419,6 +1429,7 @@ public final class SurfaceControl implements Parcelable { mName = in.readString8(); mWidth = in.readInt(); mHeight = in.readInt(); mDebugRelease = in.readBoolean(); long object = 0; if (in.readInt() != 0) { Loading @@ -1437,8 +1448,12 @@ public final class SurfaceControl implements Parcelable { dest.writeString8(mName); dest.writeInt(mWidth); dest.writeInt(mHeight); dest.writeBoolean(mDebugRelease); if (mNativeObject == 0) { dest.writeInt(0); if (mReleaseStack != null) { Log.w(TAG, "Sending invalid " + this + " caused by:", mReleaseStack); } } else { dest.writeInt(1); } Loading @@ -1449,6 +1464,13 @@ public final class SurfaceControl implements Parcelable { } } /** * @hide */ public void setDebugRelease(boolean debug) { mDebugRelease = debug; } /** * Checks whether two {@link SurfaceControl} objects represent the same surface. * Loading Loading @@ -1519,6 +1541,9 @@ public final class SurfaceControl implements Parcelable { nativeRelease(mNativeObject); mNativeObject = 0; mNativeHandle = 0; if (mDebugRelease) { mReleaseStack = new Throwable("released here"); } mCloseGuard.close(); } } Loading @@ -1534,8 +1559,11 @@ public final class SurfaceControl implements Parcelable { } private void checkNotReleased() { if (mNativeObject == 0) throw new NullPointerException( "Invalid " + this + ", mNativeObject is null. Have you called release() already?"); if (mNativeObject == 0) { Log.wtf(TAG, "Invalid " + this + " caused by:", mReleaseStack); throw new NullPointerException( "mNativeObject of " + this + " is null. Have you called release() already?"); } } /** Loading Loading @@ -2383,6 +2411,7 @@ public final class SurfaceControl implements Parcelable { public static SurfaceControl mirrorSurface(SurfaceControl mirrorOf) { long nativeObj = nativeMirrorSurface(mirrorOf.mNativeObject); SurfaceControl sc = new SurfaceControl(); sc.mDebugRelease = mirrorOf.mDebugRelease; sc.assignNativeObject(nativeObj, "mirrorSurface"); return sc; } Loading
services/core/java/com/android/server/wm/InsetsSourceProvider.java +6 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.server.wm; import static android.os.Build.IS_DEBUGGABLE; import static android.view.InsetsState.ITYPE_CLIMATE_BAR; import static android.view.InsetsState.ITYPE_EXTRA_NAVIGATION_BAR; import static android.view.InsetsState.ITYPE_IME; Loading Loading @@ -552,6 +553,11 @@ class InsetsSourceProvider { // TODO: use 0 alpha and remove t.hide() once b/138459974 is fixed. t.setAlpha(animationLeash, 1 /* alpha */); t.hide(animationLeash); // TODO(b/175954493): Remove this after finding root cause. if (IS_DEBUGGABLE) { animationLeash.setDebugRelease(true); } } ProtoLog.i(WM_DEBUG_IME, "ControlAdapter startAnimation mSource: %s controlTarget: %s", mSource, Loading