From a9f554681d13bcc88eacea73f715e1c608fdb527 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Sun, 25 Mar 2018 18:15:15 -0700 Subject: [PATCH] Applying the alpha to individual tasks instead of the view > Removing hotseat from overview in transposed layout > Removing face scrim from recents view in transposed layout > Removing focued background from pagesView as individual poges have focus states Change-Id: I620527241bf7240009c4187f53f5a5cff0c3e2b1 --- .../recents_horizontal_scrim_left.png | Bin 563 -> 0 bytes .../recents_horizontal_scrim_right.png | Bin 527 -> 0 bytes .../recents_horizontal_scrim_left.png | Bin 426 -> 0 bytes .../recents_horizontal_scrim_right.png | Bin 433 -> 0 bytes .../recents_horizontal_scrim_left.png | Bin 648 -> 0 bytes .../recents_horizontal_scrim_right.png | Bin 631 -> 0 bytes .../recents_horizontal_scrim_left.png | Bin 798 -> 0 bytes .../recents_horizontal_scrim_right.png | Bin 787 -> 0 bytes .../recents_horizontal_scrim_left.png | Bin 1159 -> 0 bytes .../recents_horizontal_scrim_right.png | Bin 576 -> 0 bytes quickstep/res/layout/overview_panel.xml | 1 - quickstep/res/values/dimens.xml | 1 - .../launcher3/uioverrides/OverviewState.java | 3 +- .../RecentsViewStateController.java | 5 +- .../quickstep/views/LauncherRecentsView.java | 72 +----------------- .../android/quickstep/views/RecentsView.java | 39 +++++++++- .../com/android/quickstep/views/TaskView.java | 6 ++ src/com/android/launcher3/PagedView.java | 4 + 18 files changed, 51 insertions(+), 80 deletions(-) delete mode 100644 quickstep/res/drawable-hdpi/recents_horizontal_scrim_left.png delete mode 100644 quickstep/res/drawable-hdpi/recents_horizontal_scrim_right.png delete mode 100644 quickstep/res/drawable-mdpi/recents_horizontal_scrim_left.png delete mode 100644 quickstep/res/drawable-mdpi/recents_horizontal_scrim_right.png delete mode 100644 quickstep/res/drawable-xhdpi/recents_horizontal_scrim_left.png delete mode 100644 quickstep/res/drawable-xhdpi/recents_horizontal_scrim_right.png delete mode 100644 quickstep/res/drawable-xxhdpi/recents_horizontal_scrim_left.png delete mode 100644 quickstep/res/drawable-xxhdpi/recents_horizontal_scrim_right.png delete mode 100644 quickstep/res/drawable-xxxhdpi/recents_horizontal_scrim_left.png delete mode 100644 quickstep/res/drawable-xxxhdpi/recents_horizontal_scrim_right.png diff --git a/quickstep/res/drawable-hdpi/recents_horizontal_scrim_left.png b/quickstep/res/drawable-hdpi/recents_horizontal_scrim_left.png deleted file mode 100644 index d4f995dfb17474e7a208be3abe156d77f8eca836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^|ACl|gAGXXO!bfkQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI|H(? zD8gRi>Fdh=h*5yggwbYFLoNdYqmZYIV@Sl|x0m0#$uUSYJiNAS)09a|PO5kcc`9{! z`t>~n#SRr6=R7I-&h zibi0ygBE|Ki`2`M4>No=olt9!`E+7=gVVf#Bf(vo3#S;JTDf47)~b~Yr&+zqd?49t z@^MaD+=ofwTP~c+zIWkR^u3Gcs;you>CUTqv9!OAO(LZu(e1|pcQ?u8Ih<-U9|>PR zV{lsLbImhu?wZtz`8Chky>&Jp(z5?~H2>d*V^-3CQYY8vY&^^N|7L1`EuY1cj$}WJ zr#;1bJDzl9=e_fsvf$_+!}>Gxm*ArQ&%MKBbog(~X5lO6fdQsk;u=wsl30>zm0Xkx zq!^403@vmG40R37LJUo;OpUAzjC2hwtPBitI?GB>H00)|WTsVO(O?MCpks3-6sSQG uWJ7R%T1k0gQ7VIDN`6wRf@f}GdTLN=VoGJ<$y88GGI+ZBxvX|H(? zD8gRi>Fdh=h>?qz$I|X??A_Z!f=fo53j2@NoOmWs@eUofPq$bVMah zsnbPhVuwpgO41Vfn1d@%NjJr}=K@Y&^;Kdd
IGkKcivYAPfw(ogpy1wEh%i}!{EYDY*5f2=i`4gb%E^Ue^bPOY{Po5ZXkPxed}M=ZTJ6o zRdP`(kYX@0FtpG$Fw`|P2r)FaGBmO>HP%Zq eq9HdwB{QuOw}zSKpG|=p7(8A5T-G@yGywnv?a?X# diff --git a/quickstep/res/drawable-mdpi/recents_horizontal_scrim_left.png b/quickstep/res/drawable-mdpi/recents_horizontal_scrim_left.png deleted file mode 100644 index 6e924ecbd92d7cc080355d9852f36303dbf4926b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 426 zcmeAS@N?(olHy`uVBq!ia0vp^tALn=gBeI_?hDZaQlA5SLR^9LNCOe=Z4ZHd4k!uo z3ua(qVdLQ9;TIGUla!HHRMF7ZGc>iZv3GX!@(T=&j7?0<%q=LXtZi)R=$SBO#+(I9 zR;*dSdHe2thmM{+bK&x}n|JO%divt^+Yg_@hG`fK zOINPluw}>Y{fCd8I(y;D^;>rzJbw1_^}7$BzJCAt`_I32{w={k!zDdk978nDC-bB@ nF#li4E3tw_!hNpQrny`ULa$sz>W*#_2L-&RtDnm{r-UW|J<~#k diff --git a/quickstep/res/drawable-xhdpi/recents_horizontal_scrim_left.png b/quickstep/res/drawable-xhdpi/recents_horizontal_scrim_left.png deleted file mode 100644 index 20c85e6711d0bc7551798fc50c0bb39e43852b56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmeAS@N?(olHy`uVBq!ia0y~yU<&hTwuhEyWDbcrwRni>3VEvd zP7?E+q@wGYJ#ottm5C~zleSC)@{~NIR61RRI(24s_?$3&{`hO6{lmWtY|3NnAL?m( zuH0dDai_ERt{^Y-Q!o7Zt1fll`?65~X~>2Ce>@2a%@St>+KhT0_9Un*mN+Y+C3)In zmBe`#HKWdxK8aeFXPo0n3p%TlX57B>ib4NRodm`1h%-XdHuXHcvZ-n6nnit8VVm2w zu36mpH77xN_Kh=Q+cx#SeUqTR`^H(hZ=3r6np`@<$XC>H*rd2+vCLx&b&Hdle#LE@ zw-oe!j(MOoea9Kmbw$0e?>tc3zT>RyyQ2QzTRt_kZ~549+~%R?`3gU4{fd*?ai80^ z?|E!1|Ko(Z-RIWzHIJ?Bf82a1zW?Xvevg$KjIQvQI{U6%Kmz@Bzuc?%*4Z6q8@@a> z2F8MFiEBhjN@7W>RdP`(kYX@0FtpG$Fw`|P3o$gYGBvU?Fw!-!ure^n=`1Tj(U6;; zl9^VCMS~$kgO1IWP@o1$kPX54X(i=}MX3yqDfvmM3ZA)%>8U}fi7AzZCsRSmgTd3) K&t;ucLK6T=?E6^& diff --git a/quickstep/res/drawable-xhdpi/recents_horizontal_scrim_right.png b/quickstep/res/drawable-xhdpi/recents_horizontal_scrim_right.png deleted file mode 100644 index 58a1ca07bfe076721b42f6a3a7229b5dfc08d504..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 631 zcmeAS@N?(olHy`uVBq!ia0y~yU0O?2 zN<_`Lv(qQR#E~ zd~-=&VR%I%Ys$<^^D;oP&b>y#w}e5m$twcWys8(0WO+bdTq8@ol_!a;F diff --git a/quickstep/res/drawable-xxhdpi/recents_horizontal_scrim_left.png b/quickstep/res/drawable-xxhdpi/recents_horizontal_scrim_left.png deleted file mode 100644 index 9d3dc318b9ecbf2c0e9bfb821aadbab3f5975cc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 798 zcmeAS@N?(olHy`uVBq!ia0y~yVEhMU^Kh^M$!4ef%|MDJ-O<;Pfnj4m_n$;oAYUQb zBgmJ5p-PQ`p`nF=;TKS-;RORjsR0ASs{{rHs~HRo;stYd1=;{5*pj^6T^Rm@;DWu& zCj&*;OFVsD*&i_q@R=~$Olrsl+W6Pg#WAGf*4wM)-6t4j8a{5`-t(rTHF55vEp}QVp|!ARMboMkVyhOr zt>}ze(QCD$yJ|&0TSkXlMvq!XSK30$s0FG)7rEA6WXrwC_x2*A>_yJZ7d?6}y7FH1 z$-U@|d(mt6qPy-zKchs4qePFQL|39jpP)o%phT~sM0cS?Kj(}N&lx?MGrBTo^hwT; zOiMI-mZ0}6(M~KuQ7qALT7u@ZM9Z)Q)v!dm;H}bvS$SA#$bM{8o=#9L$H!@pq z)P8eJ?#)rVH^&)ejws6Txfh5WFOX3$5L#X!m0lqByg*L8KyZ42WcZ=bn8T%a4*1?V zlzZo3>>cj!9~EqlEdC(jKcR7XMcea=#_1KJaqZ?6-Q^E!e>C(z6t;Wp{i7@Yp>SBi`tIvETGkzZ58|172lU6`BH;1oAesJf)7( z|L6a(R=)q*^e1lm5@6a;Epd$~Nl7e8wMs5Z1yT$~28I^828OzZW+8?qR;ET)21dFD z7FGrZIh|!CC>nC}Q!>*kv1l-aXwb2_5(?BH39=zLKdq!Zu_%?nF(p4KRlzeiF+DXX XH8G{K@MJ0|(K2|t`njxgN@xNAp*Kk( diff --git a/quickstep/res/drawable-xxhdpi/recents_horizontal_scrim_right.png b/quickstep/res/drawable-xxhdpi/recents_horizontal_scrim_right.png deleted file mode 100644 index 7fb248b9fafb2ce94f57a215608f9780eefe7fe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmeAS@N?(olHy`uVBq!ia0y~yVEhMU^Kh^M$!4ef%|MDJ-O<;Pfnj4m_n$;oAYUQb zBgmJ5p-PQ`p`nF=;TKS-;RORjsR0ASs{{rHs~HRo;stYd1=;{5*pj^6T^Rm@;DWu& zCj&*;OFVsD*&i`-@$y*Oz3pAaz`!K#>EaktaqI2X%+r0GG7cYa?=#-y{;kvJ8i$~g zn#&0v4oO89j)?+_YApgrP8^ZW9TQBQQtn^hm~y{7?OgZ&?&rcW;Vs%@KmGR5fs z-;}zR_dli`4X@#x|53B%Nc#u5_aDUa4`uH;bov9+`HwvQA60Dl`acNpf6#yTSnk~; zzP!g`d5_rEJ(gPch)eIWklrJvbB|@tJ@T>W4YueMerVD6P^0gG0pCLfz6ASkiTdAK z?%rsfd!zB~jkdKnn$F&6>AlhLHKKiMMDx{%)~OMVPb1puH;8y|km%kZz-=J^*+9J5 zKzg%*aD6h{vSg`cNnC2lK{GlyCHe~`x(y|I10^~ICHfL2q}mb;*b)`k7TEt0jJa(_f%eqgvt`QIe8al4_M)lnSI6j0_AdbPWu34GlsJ vjjargtW3>y4J@n-3|?e;ccN&>%}>cptHiBgruk=6paup{S3j3^P6J!}+56dpSPAty+*K|+j{6d`18XMb;JE&@blkw_F43Wx|PsZvG!vA_9R@r6EN!d%iOi7AL*i`T4&0H}Adg zXJ?M>p4dA90NC9+?sWhdzbV&ycI}k^kMCTH<>w>OoD(N`PxNWVKt1F>gRPj(vks%- z$~X7fBmnQ7kGgYWuKk4@@VG)tOr?lZ$p&EZNRiTDkqPLt`6#I=fB$}0fl*jfzO>r7 zoi^A)bbK{qCs${>!Rlf_LgmO|I9a$-LCge&MZA>cZc$SPdR@6Lk5vT@AY!qmY&td9 zo`nsbF=$n66lf-fRZ`JxY+Bl9P{&$T#g>X~gf$mCuCBr1Pm$KLu;+HX>7gyTt0@aY zq^_#=`~6DasPJrF)d(Rf)>U0c5`prSM9=~y`GJuJkL5uYr6S@9EHzS}FN>NYJ>3i; zPTTD*#YsL)luVgg&{WkbSdHT{t^qn19rnhJZP9smC1q-d<$O5{1Bd zr8n-0ERv5xmpmRU$1D*oucpYGN*IN%&cYBogd*Qz6q$zQAYxW+6q=fEhZ@FV50CV0 z$2ZJo^JueLpEe9r)0$P%G|W0CX4CNut?rQ#x0U3ACIK7Sj->4&m%NkfHZn#9&$^s1 zjjCXFfeW55@Dw&0@RK$TqNLm(EZ=A|WRGRhw=A5_cnk+gcB5?^V6uP=i|ELrK0_wa zZA5&VA_N*C3#Zr-Y+(UC09a=FzNaz7OC0?5{MUbOo%+i7?cw1+EGu|&p&wlqmPXKTf diff --git a/quickstep/res/drawable-xxxhdpi/recents_horizontal_scrim_right.png b/quickstep/res/drawable-xxxhdpi/recents_horizontal_scrim_right.png deleted file mode 100644 index a8922e2381c3a4c97ac437cfed94b960663eee8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 576 zcmeAS@N?(olHy`uVBq!ia0y~yU|IoW3vjRj$y@t+a~T*Iy)#21N+NuHtdjF{^%7I^ zlT!66atna+3=B5*6$OdO*{LN8NvY|XdA3ULckfqH$V{%1*XSQL?w=vZ=5F8jzb>lBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNn^f-F>s z@C{IK&M!(;Fx4~DO*S+!P%yXDGc+?WF*VdtFfuSS*EcZLH!#yRFtjqTure}KfC42u zE(M#Slr*a#7dNP7K%T8qMoCG5mA-y?dAVM>v0i>ry1t>MrKP@sk-m|UE>MMTab;df zVufyAu`t^g)*BLu~O) zDFXUm*V$z|FzhyXx;TbZ%z1mwk?XL60BgYQ-}86A+{Pm6F8;IiyFx~qn^NT8@a(r) zUt*d|uSG|$-aEH;>GkUPxihc&S6LS?PY;@R@veRS5BXL1<7du4`{v8LulMfcq-_nq z8J?~FdIj5u72hw5GcYv7Gifm}1hRxMFf8H#My-or03$<((gG$10apiB28FH$E(Qk? hMp1?a4g3mEiA!kxQ#kNZ diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml index e61e35958c..b751e0d9c9 100644 --- a/quickstep/res/values/dimens.xml +++ b/quickstep/res/values/dimens.xml @@ -22,7 +22,6 @@ 2dp 20dp 10dp - 100dp diff --git a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java index abbf45e2a1..a72b1b15bf 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java @@ -110,8 +110,7 @@ public class OverviewState extends LauncherState { @Override public int getVisibleElements(Launcher launcher) { if (launcher.getDeviceProfile().isVerticalBarLayout()) { - // TODO: Remove hotseat from overview - return HOTSEAT_ICONS; + return NONE; } else { return launcher.getAppsView().getFloatingHeaderView().hasVisibleContent() ? HOTSEAT_EXTRA | ALL_APPS_HEADER_EXTRA : HOTSEAT_ICONS | HOTSEAT_EXTRA; diff --git a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java index b993c3c932..d8f206c5ed 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java @@ -22,6 +22,7 @@ import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled; import static com.android.quickstep.views.LauncherRecentsView.TRANSLATION_X_FACTOR; import static com.android.quickstep.views.LauncherRecentsView.TRANSLATION_Y_FACTOR; +import static com.android.quickstep.views.RecentsView.CONTENT_ALPHA; import android.animation.ValueAnimator; import android.annotation.TargetApi; @@ -49,7 +50,7 @@ public class RecentsViewStateController implements StateHandler { @Override public void setState(LauncherState state) { - mRecentsView.setAlpha(state.overviewUi ? 1 : 0); + mRecentsView.setContentAlpha(state.overviewUi ? 1 : 0); updateVisibility(mRecentsView, isAccessibilityEnabled(mLauncher)); float[] translationFactor = state.getOverviewTranslationFactor(mLauncher); mRecentsView.setTranslationXFactor(translationFactor[0]); @@ -83,7 +84,7 @@ public class RecentsViewStateController implements StateHandler { setter.setFloat(mRecentsView, TRANSLATION_Y_FACTOR, translationFactor[1], builder.getInterpolator(ANIM_OVERVIEW_TRANSLATION, LINEAR)); - setter.setViewAlpha(mRecentsView, toState.overviewUi ? 1 : 0, LINEAR); + setter.setFloat(mRecentsView, CONTENT_ALPHA, toState.overviewUi ? 1 : 0, LINEAR); if (toState.overviewUi) { ValueAnimator updateAnim = ValueAnimator.ofFloat(0, 1); diff --git a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java index 130d34c8b7..861b5fa038 100644 --- a/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java +++ b/quickstep/src/com/android/quickstep/views/LauncherRecentsView.java @@ -19,18 +19,7 @@ import static com.android.launcher3.LauncherState.NORMAL; import android.annotation.TargetApi; import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.BitmapShader; -import android.graphics.Canvas; -import android.graphics.Matrix; -import android.graphics.Paint; -import android.graphics.PorterDuff.Mode; -import android.graphics.PorterDuffXfermode; import android.graphics.Rect; -import android.graphics.Shader; -import android.graphics.Shader.TileMode; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; import android.os.Build; import android.util.AttributeSet; import android.util.FloatProperty; @@ -75,12 +64,6 @@ public class LauncherRecentsView extends RecentsView implements Insett } }; - private Bitmap mScrim; - private Paint mFadePaint; - private Shader mFadeShader; - private Matrix mFadeMatrix; - private boolean mScrimOnLeft; - private float mTranslationXFactor; private float mTranslationYFactor; private Rect mPagePadding = new Rect(); @@ -95,6 +78,7 @@ public class LauncherRecentsView extends RecentsView implements Insett public LauncherRecentsView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + setContentAlpha(0); } @Override @@ -109,60 +93,6 @@ public class LauncherRecentsView extends RecentsView implements Insett setPadding(padding.left, padding.top, padding.right, 0); mPagePadding.set(padding); mPagePadding.top += getResources().getDimensionPixelSize(R.dimen.task_thumbnail_top_margin); - - if (dp.isVerticalBarLayout()) { - boolean wasScrimOnLeft = mScrimOnLeft; - mScrimOnLeft = dp.isSeascape(); - - if (mScrim == null || wasScrimOnLeft != mScrimOnLeft) { - Drawable scrim = getContext().getDrawable(mScrimOnLeft - ? R.drawable.recents_horizontal_scrim_left - : R.drawable.recents_horizontal_scrim_right); - if (scrim instanceof BitmapDrawable) { - mScrim = ((BitmapDrawable) scrim).getBitmap(); - mFadePaint = new Paint(); - mFadePaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); - mFadeShader = new BitmapShader(mScrim, TileMode.CLAMP, TileMode.REPEAT); - mFadeMatrix = new Matrix(); - } else { - mScrim = null; - } - } - } else { - mScrim = null; - mFadePaint = null; - mFadeShader = null; - mFadeMatrix = null; - } - } - - @Override - public void draw(Canvas canvas) { - if (mScrim == null) { - super.draw(canvas); - return; - } - - final int flags = Canvas.HAS_ALPHA_LAYER_SAVE_FLAG; - - int length = mScrim.getWidth(); - int height = getHeight(); - int saveCount = canvas.getSaveCount(); - - int scrimLeft; - if (mScrimOnLeft) { - scrimLeft = getScrollX(); - } else { - scrimLeft = getScrollX() + getWidth() - length; - } - canvas.saveLayer(scrimLeft, 0, scrimLeft + length, height, null, flags); - super.draw(canvas); - - mFadeMatrix.setTranslate(scrimLeft, 0); - mFadeShader.setLocalMatrix(mFadeMatrix); - mFadePaint.setShader(mFadeShader); - canvas.drawRect(scrimLeft, 0, scrimLeft + length, height, mFadePaint); - canvas.restoreToCount(saveCount); } @Override diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index db82286079..af40352fc9 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -32,6 +32,7 @@ import android.graphics.Rect; import android.os.Build; import android.util.ArraySet; import android.util.AttributeSet; +import android.util.FloatProperty; import android.util.SparseBooleanArray; import android.view.KeyEvent; import android.view.LayoutInflater; @@ -64,6 +65,21 @@ import java.util.ArrayList; public abstract class RecentsView extends PagedView implements OnSharedPreferenceChangeListener { + public static final FloatProperty CONTENT_ALPHA = + new FloatProperty("contentAlpha") { + + + @Override + public void setValue(RecentsView recentsView, float v) { + recentsView.setContentAlpha(v); + } + + @Override + public Float get(RecentsView recentsView) { + return recentsView.mContentAlpha; + } + }; + private static final String PREF_FLIP_RECENTS = "pref_flip_recents"; private static final Rect sTempStableInsets = new Rect(); @@ -106,6 +122,8 @@ public abstract class RecentsView private PendingAnimation mPendingAnimation; + private float mContentAlpha = 1; + // Keeps track of task views whose visual state should not be reset private ArraySet mIgnoreResetTaskViews = new ArraySet<>(); @@ -302,12 +320,10 @@ public abstract class RecentsView float overviewHeight, overviewWidth; if (profile.isVerticalBarLayout()) { - float scrimLength = context.getResources() - .getDimension(R.dimen.recents_page_fade_length); float maxPadding = Math.max(padding.left, padding.right); // Use the same padding on both sides for symmetry. - float availableWidth = taskWidth - 2 * Math.max(maxPadding, scrimLength); + float availableWidth = taskWidth - 2 * maxPadding; float availableHeight = profile.availableHeightPx - padding.top - padding.bottom - sTempStableInsets.top; float scaledRatio = Math.min(availableWidth / taskWidth, availableHeight / taskHeight); @@ -649,4 +665,21 @@ public abstract class RecentsView final TaskView nextTask = (TaskView) getChildAt(getNextPage()); nextTask.launchTask(true); } + + public void setContentAlpha(float alpha) { + if (mContentAlpha == alpha) { + return; + } + mContentAlpha = alpha; + for (int i = getChildCount() - 1; i >= 0; i--) { + getChildAt(i).setAlpha(alpha); + } + setVisibility(alpha > 0 ? VISIBLE : GONE); + } + + @Override + public void onViewAdded(View child) { + super.onViewAdded(child); + child.setAlpha(mContentAlpha); + } } diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java index 7de1600aef..8dea6032d4 100644 --- a/quickstep/src/com/android/quickstep/views/TaskView.java +++ b/quickstep/src/com/android/quickstep/views/TaskView.java @@ -176,6 +176,12 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback setScaleY(scale); } + @Override + public boolean hasOverlappingRendering() { + // TODO: Clip-out the icon region from the thumbnail, since they are overlapping. + return false; + } + private static final class TaskOutlineProvider extends ViewOutlineProvider { private final int mMarginTop; diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 9eff84b0e3..a1ac122d87 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -188,6 +188,10 @@ public abstract class PagedView extends ViewGrou mMinFlingVelocity = (int) (MIN_FLING_VELOCITY * density); mMinSnapVelocity = (int) (MIN_SNAP_VELOCITY * density); setWillNotDraw(false); + + if (Utilities.ATLEAST_OREO) { + setDefaultFocusHighlightEnabled(false); + } } protected void setDefaultInterpolator(Interpolator interpolator) {