From a2074857dc40220e56dc514c3c19ccea5918d928 Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Wed, 9 Jan 2019 10:21:49 -0800 Subject: [PATCH] Disable window corner rounding on some devices Bug: 122347746 Test: visual; on taimen, marlin and walleye Change-Id: If6ac1c75297dd25ad40d3ec61537e8793bceceb7 --- quickstep/libs/sysui_shared.jar | Bin 146489 -> 146890 bytes quickstep/res/values/dimens.xml | 2 ++ .../QuickstepAppTransitionManagerImpl.java | 9 +++++--- .../com/android/quickstep/RecentsModel.java | 21 ++++++++++++++++++ .../quickstep/util/ClipAnimationHelper.java | 17 +++++++++----- 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/quickstep/libs/sysui_shared.jar b/quickstep/libs/sysui_shared.jar index 8af310c21b61aa25fd4a01283849ea621734903d..ab97344d1867afaa5446d70b824abb76edd0d886 100644 GIT binary patch delta 24934 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 j%12dp 48dp 8dp + + 2dp 10dp 70dp 20dp diff --git a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java index 73a7c08bca..07a5b7202c 100644 --- a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java +++ b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java @@ -615,9 +615,12 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans // Animate window corner radius from 100% to windowCornerRadius. float windowCornerRadius = RecentsModel.INSTANCE.get(mLauncher) .getWindowCornerRadius(); - float circleRadius = iconWidth / 2f; - float windowRadius = Utilities.mapRange(easePercent, circleRadius, - windowCornerRadius); + float windowRadius = 0; + if (RecentsModel.INSTANCE.get(mLauncher).supportsRoundedCornersOnWindows()) { + float circleRadius = iconWidth / 2f; + windowRadius = Utilities.mapRange(easePercent, circleRadius, + windowCornerRadius); + } // Animate the window crop so that it starts off as a square, and then reveals // horizontally. diff --git a/quickstep/src/com/android/quickstep/RecentsModel.java b/quickstep/src/com/android/quickstep/RecentsModel.java index 442b106fac..e61c00af7a 100644 --- a/quickstep/src/com/android/quickstep/RecentsModel.java +++ b/quickstep/src/com/android/quickstep/RecentsModel.java @@ -66,6 +66,7 @@ public class RecentsModel extends TaskStackChangeListener { private final TaskThumbnailCache mThumbnailCache; private float mWindowCornerRadius = -1; + private Boolean mSupportsRoundedCornersOnWindows; private RecentsModel(Context context) { mContext = context; @@ -199,6 +200,26 @@ public class RecentsModel extends TaskStackChangeListener { return mWindowCornerRadius; } + public boolean supportsRoundedCornersOnWindows() { + if (mSupportsRoundedCornersOnWindows == null) { + if (mSystemUiProxy != null) { + try { + mSupportsRoundedCornersOnWindows = + mSystemUiProxy.supportsRoundedCornersOnWindows(); + } catch (RemoteException e) { + Log.w(TAG, "Connection to ISystemUIProxy was lost, ignoring window corner " + + "radius"); + return false; + } + } else { + Log.w(TAG, "ISystemUIProxy is null, ignoring window corner radius"); + return false; + } + } + + return mSupportsRoundedCornersOnWindows; + } + public void onTrimMemory(int level) { if (level == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) { mThumbnailCache.getHighResLoadingState().setVisible(false); diff --git a/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java b/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java index 84033cbd66..31de68395f 100644 --- a/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java +++ b/quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java @@ -91,6 +91,8 @@ public class ClipAnimationHelper { private final float mWindowCornerRadius; // Corner radius of windows when they're in overview mode. private final float mTaskCornerRadius; + // If windows can have real time rounded corners. + private final boolean mSupportsRoundedCornersOnWindows; // Corner radius currently applied to transformed window. private float mCurrentCornerRadius; @@ -107,8 +109,12 @@ public class ClipAnimationHelper { (t, a1) -> a1; public ClipAnimationHelper(Context context) { - mTaskCornerRadius = context.getResources().getDimension(R.dimen.task_corner_radius); - mWindowCornerRadius = RecentsModel.INSTANCE.get(context).getWindowCornerRadius(); + mWindowCornerRadius = RecentsModel.INSTANCE.get(context).getWindowCornerRadius(); + mSupportsRoundedCornersOnWindows = RecentsModel.INSTANCE.get(context) + .supportsRoundedCornersOnWindows(); + int taskCornerRadiusRes = mSupportsRoundedCornersOnWindows ? + R.dimen.task_corner_radius : R.dimen.task_corner_radius_small; + mTaskCornerRadius = context.getResources().getDimension(taskCornerRadiusRes); } private void updateSourceStack(RemoteAnimationTargetCompat target) { @@ -197,9 +203,10 @@ public class ClipAnimationHelper { mTmpMatrix.setRectToRect(mSourceRect, params.currentRect, ScaleToFit.FILL); mTmpMatrix.postTranslate(app.position.x, app.position.y); mClipRectF.roundOut(crop); - cornerRadius = Utilities.mapRange(params.progress, mWindowCornerRadius, - mTaskCornerRadius); - mCurrentCornerRadius = cornerRadius; + if (mSupportsRoundedCornersOnWindows) { + cornerRadius = Utilities.mapRange(params.progress, mWindowCornerRadius, + mTaskCornerRadius); + } } alpha = mTaskAlphaCallback.apply(app, params.targetAlpha); } else if (ENABLE_QUICKSTEP_LIVE_TILE.get()) {