Revert "Edge extension effect: extend surfaces"

This reverts commit a7dad1fe9af459c3ce6b1333d8168cf1ecc49feb.

Reason for revert: Claimed 3% increase in SF memory
Fix: 355860613

Change-Id: I2d181af33a2c6bfcef1074e8d8fa5bffd6af4e3f
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index 24a2a9c..af3981c 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -99,7 +99,6 @@
         "framework_graphics_flags_java_lib",
         "hwui_flags_java_lib",
         "libcore_exported_aconfig_flags_lib",
-        "libgui_flags_java_lib",
         "power_flags_lib",
         "sdk_sandbox_flags_lib",
         "surfaceflinger_flags_java_lib",
@@ -1213,12 +1212,6 @@
     defaults: ["framework-minus-apex-aconfig-java-defaults"],
 }
 
-java_aconfig_library {
-    name: "libgui_flags_java_lib",
-    aconfig_declarations: "libgui_flags",
-    defaults: ["framework-minus-apex-aconfig-java-defaults"],
-}
-
 // Content Capture
 aconfig_declarations {
     name: "android.view.contentcapture.flags-aconfig",
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index cf329d3..634469d 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -164,9 +164,6 @@
             float width, float height, float vecX, float vecY,
             float maxStretchAmountX, float maxStretchAmountY, float childRelativeLeft,
             float childRelativeTop, float childRelativeRight, float childRelativeBottom);
-    private static native void nativeSetEdgeExtensionEffect(long transactionObj, long nativeObj,
-                                                            boolean leftEdge, boolean rightEdge,
-                                                            boolean topEdge, boolean bottomEdge);
     private static native void nativeSetTrustedOverlay(long transactionObj, long nativeObject,
             int isTrustedOverlay);
     private static native void nativeSetDropInputMode(
@@ -3516,19 +3513,6 @@
         /**
          * @hide
          */
-        public Transaction setEdgeExtensionEffect(SurfaceControl sc, int edge) {
-            checkPreconditions(sc);
-
-            nativeSetEdgeExtensionEffect(
-                    mNativeObject, sc.mNativeObject,
-                    (edge & WindowInsets.Side.LEFT) != 0, (edge & WindowInsets.Side.RIGHT) != 0,
-                    (edge & WindowInsets.Side.TOP) != 0, (edge & WindowInsets.Side.BOTTOM) != 0);
-            return this;
-        }
-
-        /**
-         * @hide
-         */
         @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.O)
         public Transaction setLayerStack(SurfaceControl sc, int layerStack) {
             checkPreconditions(sc);
@@ -4898,5 +4882,4 @@
     public static void notifyShutdown() {
         nativeNotifyShutdown();
     }
-
 }
diff --git a/core/java/android/view/animation/Animation.java b/core/java/android/view/animation/Animation.java
index 2af935d..09306c7 100644
--- a/core/java/android/view/animation/Animation.java
+++ b/core/java/android/view/animation/Animation.java
@@ -28,7 +28,6 @@
 import android.os.SystemProperties;
 import android.util.AttributeSet;
 import android.util.TypedValue;
-import android.view.WindowInsets;
 
 import dalvik.system.CloseGuard;
 
@@ -882,13 +881,12 @@
     }
 
     /**
-     * @return the edges to which outsets can be applied to
+     * @return if a window animation has outsets applied to it.
      *
      * @hide
      */
-    @WindowInsets.Side.InsetsSide
-    public int getExtensionEdges() {
-        return 0x0;
+    public boolean hasExtension() {
+        return false;
     }
 
     /**
diff --git a/core/java/android/view/animation/AnimationSet.java b/core/java/android/view/animation/AnimationSet.java
index bbdc9d0..5aaa994 100644
--- a/core/java/android/view/animation/AnimationSet.java
+++ b/core/java/android/view/animation/AnimationSet.java
@@ -21,7 +21,6 @@
 import android.graphics.RectF;
 import android.os.Build;
 import android.util.AttributeSet;
-import android.view.WindowInsets;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -541,12 +540,12 @@
 
     /** @hide */
     @Override
-    @WindowInsets.Side.InsetsSide
-    public int getExtensionEdges() {
-        int edge = 0x0;
+    public boolean hasExtension() {
         for (Animation animation : mAnimations) {
-            edge |= animation.getExtensionEdges();
+            if (animation.hasExtension()) {
+                return true;
+            }
         }
-        return edge;
+        return false;
     }
 }
diff --git a/core/java/android/view/animation/ExtendAnimation.java b/core/java/android/view/animation/ExtendAnimation.java
index ed047c7..210eb8a 100644
--- a/core/java/android/view/animation/ExtendAnimation.java
+++ b/core/java/android/view/animation/ExtendAnimation.java
@@ -20,7 +20,6 @@
 import android.content.res.TypedArray;
 import android.graphics.Insets;
 import android.util.AttributeSet;
-import android.view.WindowInsets;
 
 /**
  * An animation that controls the outset of an object.
@@ -51,8 +50,6 @@
     private float mToRightValue;
     private float mToBottomValue;
 
-    private int mExtensionEdges = 0x0;
-
     /**
      * Constructor used when an ExtendAnimation is loaded from a resource.
      *
@@ -154,22 +151,9 @@
 
     /** @hide */
     @Override
-    @WindowInsets.Side.InsetsSide
-    public int getExtensionEdges() {
-        mExtensionEdges = 0x0;
-        if (mFromLeftValue > 0 || mToLeftValue > 0) {
-            mExtensionEdges |= WindowInsets.Side.LEFT;
-        }
-        if (mFromRightValue > 0 || mToRightValue > 0) {
-            mExtensionEdges |= WindowInsets.Side.RIGHT;
-        }
-        if (mFromTopValue > 0 || mToTopValue > 0) {
-            mExtensionEdges |= WindowInsets.Side.TOP;
-        }
-        if (mFromBottomValue > 0 || mToBottomValue > 0) {
-            mExtensionEdges |= WindowInsets.Side.BOTTOM;
-        }
-        return mExtensionEdges;
+    public boolean hasExtension() {
+        return mFromInsets.left < 0 || mFromInsets.top < 0 || mFromInsets.right < 0
+                || mFromInsets.bottom < 0;
     }
 
     @Override
diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp
index 0f53164..9ce7658 100644
--- a/core/jni/android_view_SurfaceControl.cpp
+++ b/core/jni/android_view_SurfaceControl.cpp
@@ -22,7 +22,6 @@
 #include <android/graphics/properties.h>
 #include <android/graphics/region.h>
 #include <android/gui/BnWindowInfosReportedListener.h>
-#include <android/gui/EdgeExtensionParameters.h>
 #include <android/gui/JankData.h>
 #include <android/hardware/display/IDeviceProductInfoConstants.h>
 #include <android/os/IInputConstants.h>
@@ -800,20 +799,6 @@
     transaction->setStretchEffect(ctrl, stretch);
 }
 
-static void nativeSetEdgeExtensionEffect(JNIEnv* env, jclass clazz, jlong transactionObj,
-                                         jlong nativeObj, jboolean leftEdge, jboolean rightEdge,
-                                         jboolean topEdge, jboolean bottomEdge) {
-    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
-    auto* const ctrl = reinterpret_cast<SurfaceControl*>(nativeObj);
-
-    auto effect = gui::EdgeExtensionParameters();
-    effect.extendLeft = leftEdge;
-    effect.extendRight = rightEdge;
-    effect.extendTop = topEdge;
-    effect.extendBottom = bottomEdge;
-    transaction->setEdgeExtensionEffect(ctrl, effect);
-}
-
 static void nativeSetFlags(JNIEnv* env, jclass clazz, jlong transactionObj,
         jlong nativeObject, jint flags, jint mask) {
     auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
@@ -2355,8 +2340,6 @@
             (void*)nativeSetBlurRegions },
     {"nativeSetStretchEffect", "(JJFFFFFFFFFF)V",
             (void*) nativeSetStretchEffect },
-    {"nativeSetEdgeExtensionEffect", "(JJZZZZ)V",
-            (void*) nativeSetEdgeExtensionEffect },
     {"nativeSetShadowRadius", "(JJF)V",
             (void*)nativeSetShadowRadius },
     {"nativeSetFrameRate", "(JJFII)V",
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java
index 86e0f14..8d30db6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationAdapter.java
@@ -146,11 +146,6 @@
     /** To be overridden by subclasses to adjust the animation surface change. */
     void onAnimationUpdateInner(@NonNull SurfaceControl.Transaction t) {
         // Update the surface position and alpha.
-        if (com.android.graphics.libgui.flags.Flags.edgeExtensionShader()
-                && mAnimation.getExtensionEdges() != 0) {
-            t.setEdgeExtensionEffect(mLeash, mAnimation.getExtensionEdges());
-        }
-
         mTransformation.getMatrix().postTranslate(mContentRelOffset.x, mContentRelOffset.y);
         t.setMatrix(mLeash, mTransformation.getMatrix(), mMatrix);
         t.setAlpha(mLeash, mTransformation.getAlpha());
@@ -170,7 +165,7 @@
         if (!cropRect.intersect(mWholeAnimationBounds)) {
             // Hide the surface when it is outside of the animation area.
             t.setAlpha(mLeash, 0);
-        } else if (mAnimation.getExtensionEdges() != 0) {
+        } else if (mAnimation.hasExtension()) {
             // Allow the surface to be shown in its original bounds in case we want to use edge
             // extensions.
             cropRect.union(mContentBounds);
@@ -185,7 +180,6 @@
     @CallSuper
     void onAnimationEnd(@NonNull SurfaceControl.Transaction t) {
         onAnimationUpdate(t, mAnimation.getDuration());
-        t.setEdgeExtensionEffect(mLeash, /* edge */ 0);
     }
 
     final long getDurationHint() {
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
index d2cef4b..5696a54 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
@@ -144,10 +144,8 @@
             // ending states.
             prepareForJumpCut(info, startTransaction);
         } else {
-            if (!com.android.graphics.libgui.flags.Flags.edgeExtensionShader()) {
-                addEdgeExtensionIfNeeded(startTransaction, finishTransaction,
-                        postStartTransactionCallbacks, adapters);
-            }
+            addEdgeExtensionIfNeeded(startTransaction, finishTransaction,
+                    postStartTransactionCallbacks, adapters);
             addBackgroundColorIfNeeded(info, startTransaction, finishTransaction, adapters);
             for (ActivityEmbeddingAnimationAdapter adapter : adapters) {
                 duration = Math.max(duration, adapter.getDurationHint());
@@ -343,7 +341,7 @@
             @NonNull List<ActivityEmbeddingAnimationAdapter> adapters) {
         for (ActivityEmbeddingAnimationAdapter adapter : adapters) {
             final Animation animation = adapter.mAnimation;
-            if (animation.getExtensionEdges() == 0) {
+            if (!animation.hasExtension()) {
                 continue;
             }
             if (adapter.mChange.hasFlags(FLAG_TRANSLUCENT)
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
index d8c8c60..7784784 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/DefaultTransitionHandler.java
@@ -502,8 +502,7 @@
                 backgroundColorForTransition = getTransitionBackgroundColorIfSet(info, change, a,
                         backgroundColorForTransition);
 
-                if (!com.android.graphics.libgui.flags.Flags.edgeExtensionShader() && !isTask
-                        && a.getExtensionEdges() != 0) {
+                if (!isTask && a.hasExtension()) {
                     if (!TransitionUtil.isOpeningType(mode)) {
                         // Can screenshot now (before startTransaction is applied)
                         edgeExtendWindow(change, a, startTransaction, finishTransaction);
@@ -513,8 +512,6 @@
                         postStartTransactionCallbacks
                                 .add(t -> edgeExtendWindow(change, a, t, finishTransaction));
                     }
-                } else if (com.android.graphics.libgui.flags.Flags.edgeExtensionShader()) {
-                    finishTransaction.setEdgeExtensionEffect(change.getLeash(), /* edge */ 0);
                 }
 
                 final Rect clipRect = TransitionUtil.isClosingType(mode)
@@ -1011,10 +1008,6 @@
             Point position, float cornerRadius, @Nullable Rect immutableClipRect) {
         tmpTransformation.clear();
         anim.getTransformation(time, tmpTransformation);
-        if (anim.getExtensionEdges() != 0
-                && com.android.graphics.libgui.flags.Flags.edgeExtensionShader()) {
-            t.setEdgeExtensionEffect(leash, anim.getExtensionEdges());
-        }
         if (position != null) {
             tmpTransformation.getMatrix().postTranslate(position.x, position.y);
         }
diff --git a/services/core/java/com/android/server/wm/WindowAnimationSpec.java b/services/core/java/com/android/server/wm/WindowAnimationSpec.java
index 2c58c61..34b9913 100644
--- a/services/core/java/com/android/server/wm/WindowAnimationSpec.java
+++ b/services/core/java/com/android/server/wm/WindowAnimationSpec.java
@@ -97,10 +97,10 @@
 
     /**
      * @return If a window animation has outsets applied to it.
-     * @see Animation#getExtensionEdges()
+     * @see Animation#hasExtension()
      */
     public boolean hasExtension() {
-        return mAnimation.getExtensionEdges() != 0;
+        return mAnimation.hasExtension();
     }
 
     @Override