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