summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas Dupin <dupin@google.com>2019-01-09 10:21:49 -0800
committerHyunyoung Song <hyunyoungs@google.com>2019-01-24 16:19:49 -0800
commita2074857dc40220e56dc514c3c19ccea5918d928 (patch)
tree018ffbbad9266561dd2d40380698dfd1f432b3df
parent792fcc3aec4e085fc864541fb0396ef09bd23342 (diff)
downloadandroid_packages_apps_Trebuchet-a2074857dc40220e56dc514c3c19ccea5918d928.tar.gz
android_packages_apps_Trebuchet-a2074857dc40220e56dc514c3c19ccea5918d928.tar.bz2
android_packages_apps_Trebuchet-a2074857dc40220e56dc514c3c19ccea5918d928.zip
Disable window corner rounding on some devices
Bug: 122347746 Test: visual; on taimen, marlin and walleye Change-Id: If6ac1c75297dd25ad40d3ec61537e8793bceceb7
-rw-r--r--quickstep/libs/sysui_shared.jarbin146489 -> 146890 bytes
-rw-r--r--quickstep/res/values/dimens.xml2
-rw-r--r--quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java9
-rw-r--r--quickstep/src/com/android/quickstep/RecentsModel.java21
-rw-r--r--quickstep/src/com/android/quickstep/util/ClipAnimationHelper.java17
5 files changed, 41 insertions, 8 deletions
diff --git a/quickstep/libs/sysui_shared.jar b/quickstep/libs/sysui_shared.jar
index 8af310c21..ab97344d1 100644
--- a/quickstep/libs/sysui_shared.jar
+++ b/quickstep/libs/sysui_shared.jar
Binary files differ
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index e0c4e4baa..8d62ab8e1 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -20,6 +20,8 @@
<dimen name="task_thumbnail_half_top_margin">12dp</dimen>
<dimen name="task_thumbnail_icon_size">48dp</dimen>
<dimen name="task_corner_radius">8dp</dimen>
+ <!-- For screens without rounded corners -->
+ <dimen name="task_corner_radius_small">2dp</dimen>
<dimen name="recents_page_spacing">10dp</dimen>
<dimen name="recents_clear_all_deadzone_vertical_margin">70dp</dimen>
<dimen name="quickscrub_adjacent_visible_width">20dp</dimen>
diff --git a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java
index 73a7c08bc..07a5b7202 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 442b106fa..e61c00af7 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 84033cbd6..31de68395 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()) {