From 7d5bcd7990704dd89c596a85429be661607b6dbc Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 20 Nov 2014 16:07:59 -0800 Subject: [PATCH] Update scrollbars to match Material spec Adds a minimum touch target size to the fast scroller so that we can edge-align an 8dp thumb but still maintain a 48dp touch target. BUG: 18467743 Change-Id: I31e9cf1948856f5fce7d75383b84a9359684ebe5 --- core/java/android/widget/FastScroller.java | 25 ++++++++++++++++++--- .../drawable-hdpi/fastscroll_thumb_mtrl_alpha.png | Bin 167 -> 0 bytes .../fastscroll_track_mtrl_alpha.9.png | Bin 84 -> 0 bytes .../scrollbar_handle_mtrl_alpha.9.png | Bin 114 -> 0 bytes .../drawable-ldpi/fastscroll_thumb_mtrl_alpha.png | Bin 123 -> 0 bytes .../fastscroll_track_mtrl_alpha.9.png | Bin 82 -> 0 bytes .../scrollbar_handle_mtrl_alpha.9.png | Bin 108 -> 0 bytes .../drawable-mdpi/fastscroll_thumb_mtrl_alpha.png | Bin 129 -> 0 bytes .../fastscroll_track_mtrl_alpha.9.png | Bin 87 -> 0 bytes .../scrollbar_handle_mtrl_alpha.9.png | Bin 120 -> 0 bytes .../drawable-xhdpi/fastscroll_thumb_mtrl_alpha.png | Bin 220 -> 0 bytes .../fastscroll_track_mtrl_alpha.9.png | Bin 89 -> 0 bytes .../scrollbar_handle_mtrl_alpha.9.png | Bin 128 -> 0 bytes .../fastscroll_thumb_mtrl_alpha.png | Bin 279 -> 0 bytes .../fastscroll_track_mtrl_alpha.9.png | Bin 148 -> 0 bytes .../scrollbar_handle_mtrl_alpha.9.png | Bin 181 -> 0 bytes .../res/res/drawable/fastscroll_thumb_material.xml | 14 ++++++++---- .../res/res/drawable/fastscroll_track_material.xml | 9 +++++--- .../res/res/drawable/scrollbar_handle_material.xml | 9 +++++--- core/res/res/values/dimens.xml | 3 +++ core/res/res/values/symbols.xml | 1 + 21 files changed, 48 insertions(+), 13 deletions(-) delete mode 100644 core/res/res/drawable-hdpi/fastscroll_thumb_mtrl_alpha.png delete mode 100644 core/res/res/drawable-hdpi/fastscroll_track_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-hdpi/scrollbar_handle_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-ldpi/fastscroll_thumb_mtrl_alpha.png delete mode 100644 core/res/res/drawable-ldpi/fastscroll_track_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-ldpi/scrollbar_handle_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-mdpi/fastscroll_thumb_mtrl_alpha.png delete mode 100644 core/res/res/drawable-mdpi/fastscroll_track_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-mdpi/scrollbar_handle_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-xhdpi/fastscroll_thumb_mtrl_alpha.png delete mode 100644 core/res/res/drawable-xhdpi/fastscroll_track_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-xhdpi/scrollbar_handle_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-xxhdpi/fastscroll_thumb_mtrl_alpha.png delete mode 100644 core/res/res/drawable-xxhdpi/fastscroll_track_mtrl_alpha.9.png delete mode 100644 core/res/res/drawable-xxhdpi/scrollbar_handle_mtrl_alpha.9.png diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index 06bb32c1a3ec..fe143dec8900 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -106,6 +106,9 @@ class FastScroller { */ private final int[] mPreviewResId = new int[2]; + /** The minimum touch target size in pixels. */ + private final int mMinimumTouchTarget; + /** * Padding in pixels around the preview text. Applied as layout margins to * the preview text and padding to the preview image. @@ -254,6 +257,9 @@ class FastScroller { mPrimaryText = createPreviewTextView(context); mSecondaryText = createPreviewTextView(context); + mMinimumTouchTarget = listView.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.fast_scroller_minimum_touch_target); + setStyle(styleResId); final ViewGroupOverlay overlay = listView.getOverlay(); @@ -1474,10 +1480,18 @@ class FastScroller { } private boolean isPointInsideX(float x) { + final float offset = mThumbImage.getTranslationX(); + final float left = mThumbImage.getLeft() + offset; + final float right = mThumbImage.getRight() + offset; + + // Apply the minimum touch target size. + final float targetSizeDiff = mMinimumTouchTarget - (right - left); + final float adjust = targetSizeDiff > 0 ? targetSizeDiff : 0; + if (mLayoutFromRight) { - return x >= mThumbImage.getLeft(); + return x >= mThumbImage.getLeft() - adjust; } else { - return x <= mThumbImage.getRight(); + return x <= mThumbImage.getRight() + adjust; } } @@ -1485,7 +1499,12 @@ class FastScroller { final float offset = mThumbImage.getTranslationY(); final float top = mThumbImage.getTop() + offset; final float bottom = mThumbImage.getBottom() + offset; - return y >= top && y <= bottom; + + // Apply the minimum touch target size. + final float targetSizeDiff = mMinimumTouchTarget - (bottom - top); + final float adjust = targetSizeDiff > 0 ? targetSizeDiff / 2 : 0; + + return y >= (top - adjust) && y <= (bottom + adjust); } /** diff --git a/core/res/res/drawable-hdpi/fastscroll_thumb_mtrl_alpha.png b/core/res/res/drawable-hdpi/fastscroll_thumb_mtrl_alpha.png deleted file mode 100644 index 2000422dd0f4a500e29e054cdc17b80c02332ab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^20-k=!3HEZ6qjiOsXR{?$B>F!Z*OhnWKa}v39R1u z-)v3R!C(U`p7%|S-xCj9n4X_KNyYQm7R&T_>Fm;N_iZ^h*#F5>VSL53Lgj!d&1|%O$WD@{V(w;7kAr-fh6ArNamt>P$u;bzX h|Np->-|bakV7Pvpy>hSLl4zhZ22WQ%mvv4FO#o2|89e|1 diff --git a/core/res/res/drawable-hdpi/scrollbar_handle_mtrl_alpha.9.png b/core/res/res/drawable-hdpi/scrollbar_handle_mtrl_alpha.9.png deleted file mode 100644 index a5166f2a911cf35436047b9fdd71f029f19d69f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2coOHUWakcwN$2?zN9DL)K!;QjFb zf4!K(GlxSuPb3<6H$3QeD{;0ckT}%n{r`bsi&mo3>>HA-Q>LpkTwq##Re68v5}+Xr Mp00i_>zopr07p3`?*IS* diff --git a/core/res/res/drawable-ldpi/fastscroll_thumb_mtrl_alpha.png b/core/res/res/drawable-ldpi/fastscroll_thumb_mtrl_alpha.png deleted file mode 100644 index c901730b55ce37f2504c4f0c467a1d2f4a29b523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123 zcmeAS@N?(olHy`uVBq!ia0vp^51|%O$WD@{V#-1*YAr-fh6C7CoPc-Odxbx!w z|Nrk9AKg}vij|8L^kC$;b8tCF$|YHad);T%ZdEWT&tYKvrDyS-y+RPEox#)9&t;uc GLK6TXwjpN# diff --git a/core/res/res/drawable-mdpi/fastscroll_thumb_mtrl_alpha.png b/core/res/res/drawable-mdpi/fastscroll_thumb_mtrl_alpha.png deleted file mode 100644 index 4984f9c045638ac32b3b0ee828d98da325e4daae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^3P5bY!3HD?)>PyJDGyH<$B>F!Z?A9UWKiI7byP2_ zWbfdLx^au;i`*Zp>&rwucj+j-iiln<*-%+=-H5>*s0RV!nJ&%0eCK=2CF9bR*xxyZ Rp5AdFNl#Zlmvv4FO#qFUCBXmy diff --git a/core/res/res/drawable-mdpi/fastscroll_track_mtrl_alpha.9.png b/core/res/res/drawable-mdpi/fastscroll_track_mtrl_alpha.9.png deleted file mode 100644 index 404180821c40340214b9ffce70d34ff561d858f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87 zcmeAS@N?(olHy`uVBq!ia0vp^Y(UJ;0V1_0*t`W&a-J@ZAr-fh6C4`;2ly~DWdHyF ke?J3FGS8#}m2!0aY@1y85}Sb4q9e08m>O9{>OV diff --git a/core/res/res/drawable-mdpi/scrollbar_handle_mtrl_alpha.9.png b/core/res/res/drawable-mdpi/scrollbar_handle_mtrl_alpha.9.png deleted file mode 100644 index 1834b2e9606a4378695d23849be0bfe920a74ade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kdrud~kcwN$2?zN8Ie$!G`2YWZ zI!lt8Mw*J-M;8SRfE;edsGB9`<7ys0~ S{ooVOCwtoQt7G)} zS;EzmO*RE?;NHls_{Qc(@7&Aznv+yKfkFVdQ I&MBb@0OSchHUIzs diff --git a/core/res/res/drawable-xhdpi/fastscroll_track_mtrl_alpha.9.png b/core/res/res/drawable-xhdpi/fastscroll_track_mtrl_alpha.9.png deleted file mode 100644 index 02f017483acc2667a39ddb132c4307a3caf80638..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89 zcmeAS@N?(olHy`uVBq!ia0vp^+(693!3HF^taP6Tq!c_|978H@B_|x<`)ACf-0*Pb n|NsB5KMr!A^e9obP0l+XkKIEgB0 diff --git a/core/res/res/drawable-xxhdpi/fastscroll_thumb_mtrl_alpha.png b/core/res/res/drawable-xxhdpi/fastscroll_thumb_mtrl_alpha.png deleted file mode 100644 index 55a73e744aae258091d6aca43159b18dbfca1e22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 279 zcmeAS@N?(olHy`uVBq!ia0vp^2|zr7g9S*&GA~;Nq!^2X+?^QKos)S9vL>4nJ za0`PlBg3pY5~9! zZzKP1Wd_q@XQCT*#dzmT%z)aHu}XFyhX My85}Sb4q9e02tX(k^lez diff --git a/core/res/res/drawable-xxhdpi/fastscroll_track_mtrl_alpha.9.png b/core/res/res/drawable-xxhdpi/fastscroll_track_mtrl_alpha.9.png deleted file mode 100644 index be64a94a8b0c41e873a449d10373f4854813aa1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRt!2%@fmOb$YQcOwS?k)`f+xyS#2l6-zJR*x3 z7`TN&n2}-D90{Nxdx@v7EBifWW)W5Wmp`6d1`4Tqx;TbtoKH@0VEr%o&zQ%%;nCXv qU;n=jOr6Q`GCfIRB7?Fm14C6I$M2(`re6nYVDNPHb6Mw<&;$Tb2P=O7 diff --git a/core/res/res/drawable-xxhdpi/scrollbar_handle_mtrl_alpha.9.png b/core/res/res/drawable-xxhdpi/scrollbar_handle_mtrl_alpha.9.png deleted file mode 100644 index c1c0622112e9c3b6d9a78f031907ed6a5dbd6f31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UjKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z8pkS1zi(`n#@#H_}8@LUWJpZPvxQRwKbS7SD2xOL!h$uMqVev=%Nofq* zSWbED5&zLCp1MfK*x;YMFZ&e(hVn#Lo*(Bsw8c98Ja$ZGoakA(B|z4+;aIEI#H-c} Y>ZyX!4X>(K0c~OMboFyt=akR{02f6#R{#J2 diff --git a/core/res/res/drawable/fastscroll_thumb_material.xml b/core/res/res/drawable/fastscroll_thumb_material.xml index 1288f0d08e67..4e8ccc70ba61 100644 --- a/core/res/res/drawable/fastscroll_thumb_material.xml +++ b/core/res/res/drawable/fastscroll_thumb_material.xml @@ -16,11 +16,17 @@ - + + + + - + + + + diff --git a/core/res/res/drawable/fastscroll_track_material.xml b/core/res/res/drawable/fastscroll_track_material.xml index 60f79b1a2655..7882b0542ee8 100644 --- a/core/res/res/drawable/fastscroll_track_material.xml +++ b/core/res/res/drawable/fastscroll_track_material.xml @@ -14,6 +14,9 @@ limitations under the License. --> - + + + + diff --git a/core/res/res/drawable/scrollbar_handle_material.xml b/core/res/res/drawable/scrollbar_handle_material.xml index a241428c899d..1b3bb9b6fd75 100644 --- a/core/res/res/drawable/scrollbar_handle_material.xml +++ b/core/res/res/drawable/scrollbar_handle_material.xml @@ -14,6 +14,9 @@ limitations under the License. --> - + + + + diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index b4e033c9bb48..3f840ab7a99d 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -397,6 +397,9 @@ 30dp 14dp + + 48dp + -1px diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index cbc379b2a26d..a91119f3103f 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2126,5 +2126,6 @@ + -- 2.11.0