From cbce47001e15be85b084c36a64c20039a0c4a667 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 29 Aug 2014 15:38:27 -0700 Subject: [PATCH] Final pass at Material DocumentsUI. Now with treatment for disabled and selected grid items. Inverts text and icons in selected drawer items. Follows upstream color changes to accent color. Disables some verbose logging. Bug: 15836082, 17281688 Change-Id: I97a1c055a2f1a537388a8f5669147618e9698870 --- .../DocumentsUI/res/color/item_root_icon.xml | 21 ++++++++++ .../res/color/item_root_primary_text.xml | 22 ++++++++++ .../drawable-hdpi/ic_grid_selection_check.png | Bin 0 -> 1575 bytes .../drawable-mdpi/ic_grid_selection_check.png | Bin 0 -> 996 bytes .../ic_grid_selection_check.png | Bin 0 -> 2062 bytes .../ic_grid_selection_check.png | Bin 0 -> 3976 bytes .../ic_grid_selection_check.png | Bin 0 -> 4126 bytes .../res/drawable/item_doc_grid_overlay.xml | 22 ++++++++++ ...und.xml => item_doc_grid_overlay_icon.xml} | 11 ++--- ...erlay.xml => item_doc_list_background.xml} | 8 +--- ...activated.xml => item_root_background.xml} | 0 .../res/layout-sw720dp-land/item_doc_list.xml | 2 +- .../DocumentsUI/res/layout/item_doc_grid.xml | 27 +++++++++---- .../DocumentsUI/res/layout/item_doc_list.xml | 2 +- packages/DocumentsUI/res/layout/item_root.xml | 12 +++--- packages/DocumentsUI/res/values/colors.xml | 14 +++++-- packages/DocumentsUI/res/values/styles.xml | 1 + .../documentsui/DirectoryFragment.java | 38 ++++++++---------- .../com/android/documentsui/IconUtils.java | 15 +++---- .../com/android/documentsui/RootsCache.java | 2 +- .../android/documentsui/RootsFragment.java | 2 +- .../android/documentsui/model/RootInfo.java | 12 +++++- 22 files changed, 149 insertions(+), 62 deletions(-) create mode 100644 packages/DocumentsUI/res/color/item_root_icon.xml create mode 100644 packages/DocumentsUI/res/color/item_root_primary_text.xml create mode 100644 packages/DocumentsUI/res/drawable-hdpi/ic_grid_selection_check.png create mode 100644 packages/DocumentsUI/res/drawable-mdpi/ic_grid_selection_check.png create mode 100644 packages/DocumentsUI/res/drawable-xhdpi/ic_grid_selection_check.png create mode 100644 packages/DocumentsUI/res/drawable-xxhdpi/ic_grid_selection_check.png create mode 100644 packages/DocumentsUI/res/drawable-xxxhdpi/ic_grid_selection_check.png create mode 100644 packages/DocumentsUI/res/drawable/item_doc_grid_overlay.xml rename packages/DocumentsUI/res/drawable/{grid_protect_background.xml => item_doc_grid_overlay_icon.xml} (68%) rename packages/DocumentsUI/res/drawable/{item_activated_overlay.xml => item_doc_list_background.xml} (85%) rename packages/DocumentsUI/res/drawable/{item_activated.xml => item_root_background.xml} (100%) diff --git a/packages/DocumentsUI/res/color/item_root_icon.xml b/packages/DocumentsUI/res/color/item_root_icon.xml new file mode 100644 index 0000000000000..1374e6195f83d --- /dev/null +++ b/packages/DocumentsUI/res/color/item_root_icon.xml @@ -0,0 +1,21 @@ + + + + + + + + diff --git a/packages/DocumentsUI/res/color/item_root_primary_text.xml b/packages/DocumentsUI/res/color/item_root_primary_text.xml new file mode 100644 index 0000000000000..4ac6916fc067c --- /dev/null +++ b/packages/DocumentsUI/res/color/item_root_primary_text.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/DocumentsUI/res/drawable-hdpi/ic_grid_selection_check.png b/packages/DocumentsUI/res/drawable-hdpi/ic_grid_selection_check.png new file mode 100644 index 0000000000000000000000000000000000000000..f3007c288b3875f4cfb9381688343406ab4253f9 GIT binary patch literal 1575 zcmZ8hdoG_MaIU4!dO}4PE6jz=5>>1q$J5!OIk%u-MFbu z_h8Xhq?X|{<<-l(RvvjouGgJ=&$;K^d%lm)`F_6Vb3Xrl^8F5Ys;h2M1pq)DkHZiY zxO;7W0xR}8Y|MKFtUHF@j|KpKk=jz2isA;*2%c_0b-RIFaTtf=2>SuxR|^1Oce)=d4Ugo^ID_LM74{kmb#Vxsu1hQ)OTcVu5eog6-2yo zOWmd_TyHA$i&|AKAoXtCC#)nCJRzV1uJYLSBHIbtwV}4gE2t~=2;`pic~a+3CvJS= zerlL>nshEkegm0B-{9HdJ8(!_ISKFU^=pXCl$H0c!8RHzqp}ikLMypG{v-Y{=b<*% z|7}U102nI{yfoXu(=j(>&*t(@n~hsWjXvfP@gm&ei*&rKo0Wj|r;DnZ8D|H3)A6!a z)@`$KU&nyGsI=uq`A3LW$A>ebPTdvOY!0u(?8G*?hZZ)tVq?v4B`dUeRtQ!9F~#Ab zSXl?H?^Df}c|pl1OSwLy{?9g^@RHHaQjX(fO)RT~+GyqsOIxd>KVh`o@-C=v|y3IPvyGqaY~PS{dQm_Vr$;GKoK~x9A0?Jqz+kb3S8{ z0+c|ya!5j00{}}a^#kXHEeZ{!AB1*>J)511UhYlo08fI{#2dss90?=VnV>FOn8 zDwacd+^I*`?lat-hAj&9XnRy};?REgeRaMKO-5s&^4!-D^mQ+nuVNI*%EZMm1fD9T zP;YilE)Q*OettT%xU|)n2yvN8mV8CUkCk}u7fW384l$;Tqz4aYMH3*s3vrG{m|2uq za&{2;%%!&8N}j3%mE?avfxnMe?QG5C`I4vDqwf9zWdHbMtVvL#yC3t~Pie#yd+d{eY~;!3J74axx2Y zUdKMUM^ZD=mc;&i2;wqV8vSM>i3ZeFkefN#ca_Rw4wP0IO+6j%%g<7Y^L^EWsxI(w z9Rr+#)O-c8;ajPHnkUib{;0OZ3xOeajk!#jjHbFXAk2u6xD&4Td44b1r^P&s! zg7Q+}vrw@V$38mHA9evk`LxdL^@PxP5tka3@@L z@_vl6`|^D9d+_26660DevVFia_}+c#*2SUK*XI1kja~DrSg8SXIVELxPTB0vM`KF> zS#wKQ`@X)lh&88UgXj@qbP6&&nW6w-7u?R?2EIqpfp)u*_Hd*F!Upb$gu{nEN|XL0 zh^IzGM`rv_fN($}ocw0H)fF%=`|k1|%Oc%$NbBSkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+eS5K)hhiu0R{01Y44~ zy9>jA5L~c#`DCC7XMsm#F_88EW4Dvpb_@(mTRdGHLn01eonf0T5-8F(KQQUS4UG;? zwr!CI)mA4g43kRA)J@X7q4AG#5b?D7HU*sfgFy6Mx=4(c}|Z#*(EP z$NkDB^1@n?yHP>a4-9!aaxsRlGqy-Kv1er4sc2fJUr z-}3y6Ktk3l<AtEU$uTUaoLTJ71ys;UJ>89WBdIg1D+X2 zgx~M_#Z(&lcj39Mh6=KmuAW;UKBKL$I5EQYZqWXfTg?n6znoBeeO_In(KfL*U85h_ zk&dgEUzWUWsMRXPqV{-o;*GZ~C8l!|A4M%-Yt>}Fm4B+wnC}Q!>*k(KHyFS{YkH zG}!n5ISkYw39=zLKdq!Zu_%?nF(p4KRlzeiF+DXXH8G{K@MJ0|w=sCS`njxgN@xNA DjvKEm literal 0 HcmV?d00001 diff --git a/packages/DocumentsUI/res/drawable-xhdpi/ic_grid_selection_check.png b/packages/DocumentsUI/res/drawable-xhdpi/ic_grid_selection_check.png new file mode 100644 index 0000000000000000000000000000000000000000..08853207e8757530cee38f7f8418d9c3cc742b73 GIT binary patch literal 2062 zcmZ8idpy$%8~+WP%%!v&Jm1gv&nLs>kb@#z9S#71B1pD#l_2?N zZGlO;`$D~g1Z09q6cPZ`<;ZXPLnRy%`DQE1U&#?UjTqFk`enI z0G!4Ez&s5A2t@#($|`wy#8R?=op5rn1AhFBvbJ0Kl8GFPd^}2m|M3J4_A!W(t4Yv~ zbTm%1P(nGm(|t#8lGxX)tYB;Ec4t9It-ad_8CNdXU1Vlthd`VtuAP(e>9{T*K)$S# zR;ppv9UZ_**FellRS$Q|7tvF+{nnYWW_Iq?|qIL+b{{#k&h>L;06Se(K;fVxl+I&FrL^M(vczhw(!d|=;K zEt!qOqBfXKACMz8B;~~(5FDi4=m^O?9ynR%Bl{?=5J9C?`l0!&9rMZVE85mai#9 zH|}-2S+l=s+a_{-$NGKWvM?BZ<26W2_wnH_qJ;v=w3N}l!IzOwcY4<}hnHb6noZ*k zu);eJSuY=|96NF|D@vdr^UasRt5na`Wo5)_)M~_OtraSX_8BQ00vy;M2hM8)@bBf!fiaiK)IS^2*k$aUWsxnW)#c*Kblj5WzN%iq~NVSEVY;mw^pd zPcAU8mgdYKaIw^_@EOVFV>v;#N!4=TuN>dphKh0ZjLQF_;XWJZSqqaerHCb1rBtnC-sFhJ{?o}>BJ`)zX4-?>jWVgA$4It|E3aU=jz7pRt&-*+5~J|Y zrXZrHRtBoNFxq*m9u?YbVSgB#?cok|p0&{Wyi~+rxe^hPzs%$BFK@-}+Mj1y_X5D} zdg2hRBs+L(auTVx39a6;? z`3tM*tA^a3vrnO$0~#rfuI49mqfNLIYX;|2gB4k6;Zo~ae2TI*+GKaiA1ffJ(Fw(J zVw{TMD?DEnHgwwCbOCFuy^@wN%&mJYBVWyp#=C?ZTqKRoT$(T5nmuF9Im2t1dh#{q z*vJ!FIoi;d>63RYS$`qvJ}Wt;-@&jx@_{#wM*JEBj;OFNkG~4pyZEApsn2#3e?dNg z;{{%V7Qwu$J-c2IEEx4(DayIkA3Ws&@j?Y+n`A#;GnjmCnLHL6;+VNbU-ko}{Zehc zaVYWd*dwp3zQ`nxc(Z41db%t6isi@>xW9YtMn8i?Juy0VcP3-@IC$Xkz#e_+A4~cC z`(R4ZVZ6s0RXp(k1XI+;Ny*djZ>r-kKeyxkwdyODOuZn4`9SOxfz4Cs*geMH3+kXP+X%*0+Karh=vFFf!Ot*VvNPaqbTEnQQau!DVE2cN$l>B$8bT zH*QYF9pE+*ZThekM5XBH*57?M4==PI9}{)Uk{x{u}T)aU;_WI8=b zccJR~Or^Fd0x7H)?plx80j5h?^*bi`xu0C>P943#GI?``b?2Ll{G!WiT*N{ig!iXr zQLE-H$dEWlH%nw?B`75;{&v7)wm{+gLBSY~wXsbo8i;)q)r6?86whW~JTOH=AEc*DEacBHgm)rz=Id?lge)y3ib?e8sa)(g+BqM6S363?fFf3;(CaV7W0h>7KC z5y*n`+&xI4O6Y9uORpi6HcF{C+I=#iFl4JJo;ce+1!7dT3Dm{|T_B1gyn>1y(tmT@r!XPX{++cfv$o6^!QVKfj|E;0NNk2tFfUa{|hE~rQ!ep literal 0 HcmV?d00001 diff --git a/packages/DocumentsUI/res/drawable-xxhdpi/ic_grid_selection_check.png b/packages/DocumentsUI/res/drawable-xxhdpi/ic_grid_selection_check.png new file mode 100644 index 0000000000000000000000000000000000000000..083bbcc3751b8efc454b6622869251dce6575903 GIT binary patch literal 3976 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 Q+Wup=w{gZ*A3PQRUwG~lDgXcg literal 0 HcmV?d00001 diff --git a/packages/DocumentsUI/res/drawable/item_doc_grid_overlay.xml b/packages/DocumentsUI/res/drawable/item_doc_grid_overlay.xml new file mode 100644 index 0000000000000..3fbd25eaa355b --- /dev/null +++ b/packages/DocumentsUI/res/drawable/item_doc_grid_overlay.xml @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/DocumentsUI/res/drawable/grid_protect_background.xml b/packages/DocumentsUI/res/drawable/item_doc_grid_overlay_icon.xml similarity index 68% rename from packages/DocumentsUI/res/drawable/grid_protect_background.xml rename to packages/DocumentsUI/res/drawable/item_doc_grid_overlay_icon.xml index 2e7aadd9579a2..d40de1e1512d0 100644 --- a/packages/DocumentsUI/res/drawable/grid_protect_background.xml +++ b/packages/DocumentsUI/res/drawable/item_doc_grid_overlay_icon.xml @@ -14,11 +14,8 @@ limitations under the License. --> - - - - - - - + + + + diff --git a/packages/DocumentsUI/res/drawable/item_activated_overlay.xml b/packages/DocumentsUI/res/drawable/item_doc_list_background.xml similarity index 85% rename from packages/DocumentsUI/res/drawable/item_activated_overlay.xml rename to packages/DocumentsUI/res/drawable/item_doc_list_background.xml index 83e4d7e75356d..b87954226934d 100644 --- a/packages/DocumentsUI/res/drawable/item_activated_overlay.xml +++ b/packages/DocumentsUI/res/drawable/item_doc_list_background.xml @@ -15,11 +15,7 @@ --> - - - - - - + + diff --git a/packages/DocumentsUI/res/drawable/item_activated.xml b/packages/DocumentsUI/res/drawable/item_root_background.xml similarity index 100% rename from packages/DocumentsUI/res/drawable/item_activated.xml rename to packages/DocumentsUI/res/drawable/item_root_background.xml diff --git a/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml b/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml index 95af7e966989a..d1243200dd5d2 100644 --- a/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml +++ b/packages/DocumentsUI/res/layout-sw720dp-land/item_doc_list.xml @@ -17,7 +17,7 @@ + android:background="@drawable/item_doc_list_background"> + android:background="@color/item_doc_grid_background"> + android:textColor="@*android:color/primary_text_default_material_dark" /> + android:textColor="@*android:color/primary_text_default_material_dark" /> + android:textColor="@*android:color/primary_text_default_material_dark" /> + + + + diff --git a/packages/DocumentsUI/res/layout/item_doc_list.xml b/packages/DocumentsUI/res/layout/item_doc_list.xml index c5f1842294f27..c576669d8958f 100644 --- a/packages/DocumentsUI/res/layout/item_doc_list.xml +++ b/packages/DocumentsUI/res/layout/item_doc_list.xml @@ -17,7 +17,7 @@ + android:background="@drawable/item_doc_list_background"> + android:background="@drawable/item_root_background"> + android:layout_marginEnd="16dp" + android:duplicateParentState="true"> + android:contentDescription="@null" + android:duplicateParentState="true" /> @@ -54,7 +56,7 @@ android:ellipsize="end" android:textAlignment="viewStart" android:textAppearance="@android:style/TextAppearance.Material.Body1" - android:textColor="?android:attr/textColorPrimary" /> + android:textColor="@color/item_root_primary_text" /> + android:textColor="@color/item_root_primary_text" /> diff --git a/packages/DocumentsUI/res/values/colors.xml b/packages/DocumentsUI/res/values/colors.xml index 7442b09c5fe2a..2ceb9682fa1b5 100644 --- a/packages/DocumentsUI/res/values/colors.xml +++ b/packages/DocumentsUI/res/values/colors.xml @@ -18,8 +18,16 @@ #fffafafa #ffeeeeee - - #8800bcd4 + @color/material_grey_300 + + #88000000 + + #88000000 + #88ffffff + + #88ffffff + + + #1a009688 - @color/material_grey_300 diff --git a/packages/DocumentsUI/res/values/styles.xml b/packages/DocumentsUI/res/values/styles.xml index 5cfe046bd4632..7693da398747e 100644 --- a/packages/DocumentsUI/res/values/styles.xml +++ b/packages/DocumentsUI/res/values/styles.xml @@ -28,6 +28,7 @@ @*android:color/material_deep_teal_500 false + true true @null diff --git a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java index caa07ab5bddfe..39c2252799d3f 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java @@ -807,6 +807,9 @@ public class DirectoryFragment extends Fragment { || MimePredicate.mimeMatches(MimePredicate.VISUAL_MIMES, docMimeType); final boolean showThumbnail = supportsThumbnail && allowThumbnail && !mSvelteRecents; + final boolean enabled = isDocumentEnabled(docMimeType, docFlags); + final float iconAlpha = (state.derivedMode == MODE_LIST && !enabled) ? 0.5f : 1f; + boolean cacheHit = false; if (showThumbnail) { final Uri uri = DocumentsContract.buildDocumentUri(docAuthority, docId); @@ -817,7 +820,7 @@ public class DirectoryFragment extends Fragment { } else { iconThumb.setImageDrawable(null); final ThumbnailAsyncTask task = new ThumbnailAsyncTask( - uri, iconMime, iconThumb, mThumbSize); + uri, iconMime, iconThumb, mThumbSize, iconAlpha); iconThumb.setTag(task); ProviderExecutor.forAuthority(docAuthority).execute(task); } @@ -886,7 +889,7 @@ public class DirectoryFragment extends Fragment { // hint to remind user they're a directory. if (Document.MIME_TYPE_DIR.equals(docMimeType) && state.derivedMode == MODE_GRID && showThumbnail) { - iconDrawable = IconUtils.applyTint(context, R.drawable.ic_doc_folder, + iconDrawable = IconUtils.applyTintAttr(context, R.drawable.ic_doc_folder, android.R.attr.textColorPrimaryInverse); } @@ -940,20 +943,12 @@ public class DirectoryFragment extends Fragment { line2.setVisibility(hasLine2 ? View.VISIBLE : View.GONE); } - final boolean enabled = isDocumentEnabled(docMimeType, docFlags); - if (enabled) { - setEnabledRecursive(convertView, true); - iconMime.setAlpha(1f); - iconThumb.setAlpha(1f); - if (icon1 != null) icon1.setAlpha(1f); - if (icon2 != null) icon2.setAlpha(1f); - } else { - setEnabledRecursive(convertView, false); - iconMime.setAlpha(0.5f); - iconThumb.setAlpha(0.5f); - if (icon1 != null) icon1.setAlpha(0.5f); - if (icon2 != null) icon2.setAlpha(0.5f); - } + setEnabledRecursive(convertView, enabled); + + iconMime.setAlpha(iconAlpha); + iconThumb.setAlpha(iconAlpha); + if (icon1 != null) icon1.setAlpha(iconAlpha); + if (icon2 != null) icon2.setAlpha(iconAlpha); return convertView; } @@ -1000,14 +995,16 @@ public class DirectoryFragment extends Fragment { private final ImageView mIconMime; private final ImageView mIconThumb; private final Point mThumbSize; + private final float mTargetAlpha; private final CancellationSignal mSignal; - public ThumbnailAsyncTask( - Uri uri, ImageView iconMime, ImageView iconThumb, Point thumbSize) { + public ThumbnailAsyncTask(Uri uri, ImageView iconMime, ImageView iconThumb, Point thumbSize, + float targetAlpha) { mUri = uri; mIconMime = iconMime; mIconThumb = iconThumb; mThumbSize = thumbSize; + mTargetAlpha = targetAlpha; mSignal = new CancellationSignal(); } @@ -1051,11 +1048,10 @@ public class DirectoryFragment extends Fragment { mIconThumb.setTag(null); mIconThumb.setImageBitmap(result); - final float targetAlpha = mIconMime.isEnabled() ? 1f : 0.5f; - mIconMime.setAlpha(targetAlpha); + mIconMime.setAlpha(mTargetAlpha); mIconMime.animate().alpha(0f).start(); mIconThumb.setAlpha(0f); - mIconThumb.animate().alpha(targetAlpha).start(); + mIconThumb.animate().alpha(mTargetAlpha).start(); } } } diff --git a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java index b2e38fc83c0cc..416aeb0ed86a9 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java +++ b/packages/DocumentsUI/src/com/android/documentsui/IconUtils.java @@ -266,15 +266,16 @@ public class IconUtils { } } - public static Drawable applyTint(Context context, int drawableId, int tintAttrId) { - final Resources res = context.getResources(); - - final TypedValue outValue = new TypedValue(); - context.getTheme().resolveAttribute(tintAttrId, outValue, true); - + public static Drawable applyTintColor(Context context, int drawableId, int tintColorId) { final Drawable icon = context.getDrawable(drawableId); icon.mutate(); - icon.setTintList(res.getColorStateList(outValue.resourceId)); + icon.setTintList(context.getResources().getColorStateList(tintColorId)); return icon; } + + public static Drawable applyTintAttr(Context context, int drawableId, int tintAttrId) { + final TypedValue outValue = new TypedValue(); + context.getTheme().resolveAttribute(tintAttrId, outValue, true); + return applyTintColor(context, drawableId, outValue.resourceId); + } } diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java index a465ecd53962c..f81690a365a76 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java @@ -58,7 +58,7 @@ import java.util.concurrent.TimeUnit; * Cache of known storage backends and their roots. */ public class RootsCache { - private static final boolean LOGD = true; + private static final boolean LOGD = false; public static final Uri sNotificationUri = Uri.parse( "content://com.android.documentsui.roots/"); diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java index b19e028aeb573..884cf31d8c797 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java @@ -235,7 +235,7 @@ public class RootsFragment extends Fragment { final TextView summary = (TextView) convertView.findViewById(android.R.id.summary); final Context context = convertView.getContext(); - icon.setImageDrawable(root.loadIcon(context)); + icon.setImageDrawable(root.loadDrawerIcon(context)); title.setText(root.title); // Show available space if no summary diff --git a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java index fcfe518c15010..97d8ed0a2e4b6 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java +++ b/packages/DocumentsUI/src/com/android/documentsui/model/RootInfo.java @@ -211,9 +211,17 @@ public class RootInfo implements Durable, Parcelable { } } + public Drawable loadDrawerIcon(Context context) { + if (derivedIcon != 0) { + return IconUtils.applyTintColor(context, derivedIcon, R.color.item_root_icon); + } else { + return IconUtils.loadPackageIcon(context, authority, icon); + } + } + public Drawable loadGridIcon(Context context) { if (derivedIcon != 0) { - return IconUtils.applyTint(context, derivedIcon, + return IconUtils.applyTintAttr(context, derivedIcon, android.R.attr.textColorPrimaryInverse); } else { return IconUtils.loadPackageIcon(context, authority, icon); @@ -222,7 +230,7 @@ public class RootInfo implements Durable, Parcelable { public Drawable loadToolbarIcon(Context context) { if (derivedIcon != 0) { - return IconUtils.applyTint(context, derivedIcon, + return IconUtils.applyTintAttr(context, derivedIcon, android.R.attr.colorControlNormal); } else { return IconUtils.loadPackageIcon(context, authority, icon);