From 76fc085d28178a5d4fb3787ede956281a2cc3179 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Fri, 17 Jun 2011 13:26:23 -0700 Subject: [PATCH] New folder visualization, renaming, staggering reorder Change-Id: I62963d225e6ea5d2ec9d8ebc8a6d73099f5d6c7f --- AndroidManifest.xml | 6 +- res/drawable-hdpi/portal_container_holo.9.png | Bin 4410 -> 6278 bytes res/drawable-hdpi/portal_ring_inner_holo.png | Bin 16134 -> 13661 bytes res/drawable-hdpi/portal_ring_outer_holo.png | Bin 38891 -> 19509 bytes res/drawable-mdpi/portal_container_holo.9.png | Bin 2548 -> 3671 bytes res/drawable-mdpi/portal_ring_inner_holo.png | Bin 9079 -> 9880 bytes res/drawable-mdpi/portal_ring_outer_holo.png | Bin 20859 -> 10637 bytes res/layout-land/folder_icon.xml | 22 ++- res/layout-port/folder_icon.xml | 22 ++- res/layout/user_folder.xml | 30 +++- res/values-large/dimens.xml | 7 + res/values/dimens.xml | 9 ++ res/values/strings.xml | 5 +- src/com/android/launcher2/BubbleTextView.java | 10 +- src/com/android/launcher2/CellLayout.java | 9 +- .../android/launcher2/CellLayoutChildren.java | 2 +- src/com/android/launcher2/DragLayer.java | 41 ++++-- .../android/launcher2/FastBitmapDrawable.java | 4 + src/com/android/launcher2/Folder.java | 130 +++++++++++++++--- src/com/android/launcher2/FolderIcon.java | 126 ++++++++++------- src/com/android/launcher2/FolderInfo.java | 8 ++ src/com/android/launcher2/Launcher.java | 8 +- src/com/android/launcher2/PagedView.java | 2 +- src/com/android/launcher2/Workspace.java | 56 ++++---- 24 files changed, 357 insertions(+), 140 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 63e3c66ad1..d9404a7bc5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -61,7 +61,7 @@ - + - + android:theme="@style/Theme"> diff --git a/res/drawable-hdpi/portal_container_holo.9.png b/res/drawable-hdpi/portal_container_holo.9.png index af2fa98d744cf20adf36ebac4777ac88c6e1aa6e..a2fbcb6df345e29315e3ec62d18cab93ecdb6aab 100644 GIT binary patch literal 6278 zcmV;17nBs0dHnk3qW)z06!~%&cH1Lr~&8$ zP|f1g0jdwhNWpFbXaEQS#A9P)Gpdw|W)098xFw|E_Ge)U9UW(lt`c!;=5GFAcD2UF z#*!J+N}?I>ybRz9fB~e|%Pp68;3S~qIG!8F@rjJFMF36&un53$06v4%`j2+0TeYoZ zj5PuL7QlEGzDGoF1K3GKZ~sL12QZ`p$@M%yCuiDk3TZ6>ZvxmsM9-DW<(~yXa8Q#i z$>b-HT6r`>ZhiWJ7A*J(q!wHflH2-3QM4e6qAxMV))3KBpc^0)s5ZbgmaLUmr3t(y zfS(f4kILop6N0tN79JtB@QE3)@aYA5cz8HKI{zMl$rcR8SS1X@OOhn{3V^eTs04I? zaj{|@$a$<-moD>ooH4eKh#n`RN2=B8&*g0Bxb*!18q>I1pB|vIeQymZz_pCso_mud zsfA(qXNUn07@R;&FFXQ8wH zh>Ns`-$Xb4b)sdL%W0k(^U+wP?@o-36~8_VVL z+gv?#z&;3I{}j&MQv-D7s_Os-kdKxZIxSKW1z)o3)XV2pi}i28uu0M^aJ)8Vq^xQ{!} z!resljcT>}GCDx>mH9Y;X2Gt!SfGXZxF2Z)0sx5PxIYZTI{^H#42B4<$$iWBrnFwc zwpp_au;RTYjEU$wl}hCvA`(x~Vx)_-g9U z5m7&22H6#0l~w0CAQ8#uu%sYsmcv~^5d3+iQV}O-hV+1?2(WtxT5#80mfUDGzRVc= z9uZXmJ*ckM>Ju<#N=rbeT2C1dO# zD5aE{)0%xOyr_j3r@UJ%pHSlMC!(vW)#}seeptdEj^qV9KhPP-{pc*b0050frPZiHYuCCm+cUD=m1Lz?U{YAA}eNw14MhbQ#=hlnmdXO(Xd8�Mx!yp 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 literal 4410 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 A;{X5v diff --git a/res/drawable-hdpi/portal_ring_inner_holo.png b/res/drawable-hdpi/portal_ring_inner_holo.png index 8a9e85b7f568d1984ccf30a287d27d3446904346..e671d1b6243749563fa201bef0ebd9255d92911c 100644 GIT binary patch literal 13661 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

9(-flkr>F>wWr88!i)Z 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 Hu0mjf?53oP literal 38891 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 M+D7*)HQ|x}17aQytN;K2 diff --git a/res/drawable-mdpi/portal_container_holo.9.png b/res/drawable-mdpi/portal_container_holo.9.png index 42aca5f511fb587fddda8a922005ab195257b4ee..d2f9b58b1eb049de6ad1df0d67bcca34b1e2c5b5 100644 GIT binary patch delta 3669 zcmV-b4yy6=6W1IeiBL{Q4GJ0x0000DNk~Le0000|0000|2nGNE0LLtYn~@Vg2t0qg_t31rsS2Hx!K>@Z_&e?4Pt1i*DX z3<6k!4Dk7aDgz>8Y?_Fs8DsAQm?WZq0XPwc;X7d%ejsN>2I>reX#jDxTJ81dzTHX^!Ol(Eeid}b5!h{@v&z`FpB1VQjpu~_^kPZOa5;39xV z4=uDeKvpUhAamQL$bbw0f1ufHu4p!!+W>qOz-k}^M+V3g*Ik>Y85%I<-w7f*P%IW- z41%D+v!%#f{$jOSO>(GeqV9p@RycqRL;^s~W^<_7Y~Bap9smO-@bZADmEHoNChZJ> zr;EknFM}Yc@hnYb)>-S)I=ch1QmKRhmLao3VvH3Ujm9>{*h56Le?$gM1+QBWf%z7y zu}0nRe~IYFQ55|SbNy!>nRTXK6>CK47|2Sc5&>9_Yzl)oj&Dkmj0&JHh`Re) zsT}}{xFh{fVHkeDP$<05Z^ZyERIAmdTl@JUU?in{>J3t~%Z z3z*{CVu7}_m!l}!DSu}~=d2iZtIZF!tz#w9Ij0fN#r4bn8-OGG7Ee<2r$y$+(TPRay9pe?U!C?1w2 zN%Evf22kQ2swJCii&bkD$MJncwALh~2}F^u=97O-X{vJFP#0an#yF0@9!1d$$i|3S z9_H7fOXSwr51#5<;WG_SdNKTrlx zjN^D^k|f82ASnCxRYG7nk4Tf1k<-+;?%G7MwaG4=cMhow(!g^e48t{&Ro0bdH?2jA zw|QxjB=-_gSyoP`unLF{M3*(mabHW!TgKNie^uT@v^+_YdyrYBz^9E&K!PzA0NCad zLQ|;|C|BGCz6n5Gd6k#To7DUgjUw}40j3#9>0L7#jm9lRG^{eW0Vf32mGMzl1w}`? zx_lbj1fotJgWNaH&dz?8ixG0H^gsfwmsN~qFRGlarz&X!UCm?TpVv)IfXai9kIXh> ze_@P$1%~Z3Iv^PUMns!!mFq0g0|#Xia+nfTd}Av#Pua zD3gL}UL7CZ+NFtHfT#`Q;~lc=yW|ydf5zC&;O;FyGRmlmQjGZHpiTkTwN7X`pXt|B zK2JlbD@*EqQ{1MPrp!9b^^>hay6F!C@M)VsE}?V+>4dX^Vp7l~i*9+&1eB>^T;OuL z5t;!<1yXG5xYneMt5t2*s4HVivnb*$XX0b4$EKqq%e9!psYUAQkGMJH=ybivf5)|L zk`IBq80PHms*D@m}JT0)+W773l~z_87LqEhQWr2PMTI& zWX3wMe3jMl@*$J8xazd=e^*zJY_by3NgWTJMFv3-{6i;zNgz4hwshrk<2+r2iLXyL zqz0X_=-i(%h9C&ugXVK+b@hh;P!vTIF2QXsW3pD;uaCkea7=Z$WVPvM;$140CNKwL z+v*R1mL)L&G(0?f)KsBMVVjU@AEdT=o^?f^hSCizd1Te`zW(~_f8PQ(xVF_Rg^~E0 zpH{D4eGEWFECiUgdUU$yMg_;U;NUauGP$Gf8i2e>sukokHBLnDo;-Q-bG*7)%D#R8 zFn<$OOR7Sl@O$5Z#MQzkcl7Nebs(C+F~xQFO#Do;6pO__0If|FZC^T=fTWcxSH7gH zKu&W7n*uIneR%s?f1a&@4Ry#vM=qO;B^9=e+!hn!B*b4;dF8XxUhZu z_U9!K=Y0vL9SRv^1!UWwF)}jpNWEVFPA4O^JUY9+Q54s0!Z{W$Z0_i?a95B=?16!S zM~)vq{wT6BWQK^;?-Pxi@dfI%Wy_X5$WA9Q3S|>iRjLzf`Y3|bm}hqE*s&M9Z-mCJ z0fR+yrNntXf3#-Jng^z)rXDs~oxB}Rw~N+fg|<1R5B16-#eLnpa&U0){%V>W?AgaUc_h@ivB|Y{*B1HO;x-r00X7>R9=`XDH{N)Kv#$}6?Pvz~ z_u7mxLiW9O5da$*8F{K+uixG6Xl+VU;||%{ens4L?Q5~imMwdHVq)S^WQH~a;IcXa zS4DBYe?{aBE+gwNgM$YTJ`_dKpMCo{Q`}a@C%6_II^|z3mtPzoAO8tge-@cF+CT*0 z`8t-ba?}8@wQJWl$HvCK6-Cioo%Vfcn$2hP0PWLIF7V`QQNJAe`ubjZ_0?CuJ1{UH z7A7tek=LP0-mmI-#cX6I(2F{GLYLqGJU&Z`T{{0*VL~~ zf3sPr4pbugV9lB}4<0&n=m;;?1aL7Yh=9*vqY?*6oWaNdV0?W1*LU1;$CnC)!ZDq| zqHogmZEBjFZn|g6?~^9=hp%tnzJ1f7Lx)~R*2T>NxX=NJ87`d^62!7s6XMKBI(6z) z;jX*xy7%(8v;X^!|IIVBmcVN+p z)b+j)md!H3{>Z)gU@812~ zrcIk_$h;{*wjfi>TdyicPd3U<$i|Hu4~~tE>CV`lhU3{eC-oM{7S}mImmsrH zQ4ayYu3fvX9UmWGfByXWky@=*e~IJxx+FL;+c>WB)Hvm4oJlozm`WL|0PaaJ_y?4QQ zfGYsbO&{X5-*Nqdac>#<`_JF6{qfrm9{{W5)zpY-_1KPY2L1YCYSEO*kE3a`$Q&-q zU17&&Dl@g5TX*iiym9mPtBdYE;57&{fbW+XfBg2t2j4yY>f>f!t8oO6f4xc8A4&EU z67^Yo7w^jl&;Gi5^Y)92{xtyeb#Ur+wmQ#~@$48uiz6bPlQYiv3$J}b;B9CFf)jV1 zbE|+v{7Ci)ia_zknB!+>9tC1^82|x+EUp63lcGGC$et>x5x`_Tr+SW$=D0R65Jmtn zvOajcJ>;eaXRP9Q+fRY;eoa5G$${=8EHc(^G{P zk@wQpajjg%@!4~c1>vuVfN-+A0)Q&(@jMwu3K*3rU~(B4Dlm49iR}xuFe?BY9SxO8 zuns`e9}xwtuL7~5EePA2@Lm8^=bs}IY>HAGZ+V%sV<1R^%nGx&e;cindr}pGHtTyl zMru8X=4Mgg>19ROi%bAoI$HXB0LY$f-QH*zeJZL(0c(eLNB0E9>8j(asmU{1iG)%0 zAe!6qR3NPEiIgL%n!jg9K1xlB-pD>iBkO?*jy;ODZ3fDUl*^jOV^PtYij?%^+2q-n zMMA`{+^C~_fwikte-qk?%QM>1y)~nKvNbci7%7p^I?ic zq7~rUKHvkA@$7hZGK%VfQka*vwMnQC`en^3U)qs_M@55L7wmX?3Nf;kdXVMz45(@( zoF=jM(!cCz@Z`J~?KzIxel-f1UG!bDBWl&zmk|xj_K1#-e*$YudP2(5k);d_#v2h0 z9xtP42ab+{h!;|nj?^fyyiw6$`#m7Elb3aouuG;F963993nd~Z669PjOJRc6W6 z(G#TY>F$mO<#d!ew<_P0jyy1;bkg#fj%qrxYqH|om7aQjz_T)ybmhs6NJm-TSHSR2 zH3(!{9jg3_e|mn(j&@~K6X5WB(oqCR_R>*00=5oSYl2-R4U4xzS6@4SvvAwxLO$1ITZl1)WpU;eOVMUy{f#O!`44hR1=Oc z#%r^6GuhsC?K)K(qxG^ml<$GivtSh*rjPZNU9Y~llIAjE@4M&SLlAm*fj3vJ3rw$S zmz)BefAuT&dwMH&0qBnem8x~2ZAVV%S(oXp)`LSxy{wHiBGRQ4=S)ZT`%iYFiN>n5 z*x7Yi%araZl2tv`Jl>P{y(sBt#Bs^^8(aO;8*@0u0OR z-Ia>&9-ZD;S?`F#yywJFU871ztT7_`S9Ffke^JzrZ66gwqw}6fWA^IfoZKku^eRL#P!?PEeoc3s2Ds~)U%Zf&TFgZ_k-e}pQ*XVs; zmwG@@7Vj~P&Dj$f+1yb!+Oe|U3JB4Q?AaBS&>s-m>0mB=kCa0^ga6o;`J? zf4YXXu{Zkm{h>clJnFK-zGSmw?3*FmSJz_w(Wx}jmFhdk>8QHfJx5h`CX@AcdylT6 z6oF8EY5R;h%CW%E>u=2xP$CmSdm;zSIDY6|Evf5ww%>oZ`K=wS1e^&-8hyq&|=KhfrNWR5Kp zXK!R?BfIdJ9wx`0?Ygbu${)|Om-m2BBeep`N)K~n&j-PZ(_7hg?TNG_0GQqpd7SaQ z=uy(kuDTG_gx+FVnXfn^OFe^ zbyJ(SAn^Zsy64!_tiTZF{I(r^kmaqZe*DGwSwyH{z>H_UQq|Qey^6#ygP*LX=Xhj0%>LrqJ**8E;KXne&%+wu>|8s`4AkYC`5< z6|7bsV!zen0U*7k8LJd%byrvAe^*pFqDBrzFt)cKGu@tyXET!@QJ|w*pr*_)9Rc-p z(^6KDnOw_bI;+IyE9uAspz8PxNC5TAS{0Cr^Rv9a2M{kJMnyx$3yFbX4N;{^)3^M8U>J<#g1xTO}26_C!JC*vhf>9MRy7hc+swqv*JJ8Bx%4e=KFZBcp-o zafyI1x04iyj*Nm9bPo_40c<=Q%K#Y_4WwPWF)tG{=X(xSbGzqw=Ilz5j?zNg-f8LPdzv~5?Wps4GJ&P z6GlXKL{)2o2Sf!N>-2L*e?r?=Q&BXg%sEld4|oa?)l*T#w=%6g5h*Dl+Qrq>6tyFp zx_-)5i?8Q=mS(cKcKwV-)&={lL<-2*hR7dvsKLrkSE4}W?X3saey`v16hQW-D!PT# z8}l-~H|1oGA5{;mY&MqF1;*=5Rjys$Wo?;I0Rrfc0@uI}xt5f=f6(&wMuUA4efnk1 zI=WTv0igiHcuEv7xr~mEhU}REdLrer76AdV@9`qOm1)A{=;fX0`o+Mv0ImVRtvmN$e)-_p zUuK30kc~P6@Dz--VrwN+CO?j*%_98E!;^d?=#R}*W)%Uq?%aRbjJ*OdEs^jXz!v~; zT)5m|Ia!{|Bi=Bw&TPca_!!bDr@(F=l4Gy#5a_00000NkvXXu0mjfNLb?K diff --git a/res/drawable-mdpi/portal_ring_inner_holo.png b/res/drawable-mdpi/portal_ring_inner_holo.png index 4a6469488d5c403728d05dbb64cddaaf8b6d01dc..dc0c04170bb33542bdb40c116a20e96f49476027 100644 GIT binary patch literal 9880 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 literal 9079 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

CH&7pZ*80%(`7q^Y_}FfZK}G<}Uk$7q zc8g4T+)T@hi0*oYhMy@!IOel$r(S;0fM9c`6CSsWGBy^y=W>8HV>H96ipOFqPpmyT zF;j1HXNvI}g(HW12Q`WvqQZ^sEu2-SOalY=tkfZ=s9OEt5*oWxXaG&ZTi-mf4w1Aeqnun0hV`T%!)HrTW&?B zY_$GUTYUx%-=^jy_xm>H1>liy2zoVoV({U8%jSg;_+?^XZfx&;T@+HKGU*>%f5WL-e20Cp_Tj4-Mj{ zKNrc|mUMGcc_Q#(R@IwZ{{12yIra|&PwD6E`vhXel7FZ!H4spMji+F-+A(#(9uZ{Y zfR(h|psq4H6Ui5ui<1@LP>?gK^D!Pdy|;a_xLxxklCw>L$2p_>!8&m1lv~_~V>*@= zuRu3H;EkM?v<9TG_Jl|l4K^2-UGOyxf8@A&bbkWc(&_>8qK>>j*Am=G7@CS5u;!C( z?4)r7;Lnz|;yMbR)8r^8X`a62{9GEJI&IPf3N0Tu3hFjq>g9&O4!my1bltUVXjfP? z^+xY?-83&aqs=AI`~y@gPMQNx!?<&IoSB^Jgw(h8$st!ph6X`*Sd)BiqaB>p+oVTnKpvB0g7!TnDjMZXLw52iy1eLERO6GDMSlHYr+@e6$2^RO+)PotK{Gyp;#8C64QuX zS(5jqF0U(FetxqwBDj<5>f~78ME{TQU8-r?odN3vL#QEdqAr@=;dqPi2rSIUpg#nz zdi-hvG1;7C{&8X?8;nD2FVnVO!z^#BX9a$k>MUVEH3q;k;wHptxe6H~EJ;{*;tY~P zW21nd-&e~9$S})VdYoKAyIr+E<(R5GS|#C)f4Z1~guxr;V?(bX;Qg^a)20e&)F6Do_}?U6_5 z;(kgha}e~8_~%}>uJYF(eV%nVBk5#l%u=E24F#BUPpB@4z%fFMWm$8WW9~4Ehh5!Hn literal 20859 zcmV))K#ISKP)y36&Vz<~r7K+xmMmL?Ei4O3Hpb8f!eG+PbXGcaI-SnY zNqPmcU^QW->6K+CbcdlsH-Qxv0g|wsbkpmQ1VUpl5E=}&3?5`#wyar}WX<

CWd= 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 WVPtu6$z?nM0000 - + + + + diff --git a/res/layout-port/folder_icon.xml b/res/layout-port/folder_icon.xml index 49049cfafa..3f776dec0e 100644 --- a/res/layout-port/folder_icon.xml +++ b/res/layout-port/folder_icon.xml @@ -4,9 +4,9 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 - + Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -14,5 +14,19 @@ limitations under the License. --> - + + + + diff --git a/res/layout/user_folder.xml b/res/layout/user_folder.xml index 5ef959d718..7e25f356e6 100644 --- a/res/layout/user_folder.xml +++ b/res/layout/user_folder.xml @@ -17,16 +17,20 @@ - + + + \ No newline at end of file diff --git a/res/values-large/dimens.xml b/res/values-large/dimens.xml index 924832a558..eb48859a60 100644 --- a/res/values-large/dimens.xml +++ b/res/values-large/dimens.xml @@ -106,9 +106,16 @@ 6 + 12dp 12dp 4dp 20dp + + + + 80dp + + 4dp diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 15dbc3ab6f..141df0615a 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -83,9 +83,18 @@ -1dp -1dp + 0dp 0dp 0dp 0dp + + + + 56dp + + 4dp + 18dp + 10dp diff --git a/res/values/strings.xml b/res/values/strings.xml index 0ad1a46f24..70f212c2e0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -254,9 +254,12 @@ http://www.google.com/m?client=ms-{CID}&source=android-home-hotseat - + This is a system application and cannot be uninstalled. Rocket Launcher + + + Unnamed Folder diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index 703b3a8cb9..8c0c27ca21 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -262,10 +262,12 @@ public class BubbleTextView extends TextView implements VisibilityChangedBroadca } void setCellLayoutPressedOrFocusedIcon() { - CellLayoutChildren parent = (CellLayoutChildren) getParent(); - if (parent != null) { - CellLayout layout = (CellLayout) parent.getParent(); - layout.setPressedOrFocusedIcon((mPressedOrFocusedBackground != null) ? this : null); + if (getParent() instanceof CellLayoutChildren) { + CellLayoutChildren parent = (CellLayoutChildren) getParent(); + if (parent != null) { + CellLayout layout = (CellLayout) parent.getParent(); + layout.setPressedOrFocusedIcon((mPressedOrFocusedBackground != null) ? this : null); + } } } diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index a9ba88d940..c1aa2d5897 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -298,6 +298,7 @@ public class CellLayout extends ViewGroup { mCountX = x; mCountY = y; mOccupied = new boolean[mCountX][mCountY]; + requestLayout(); } private void invalidateBubbleTextView(BubbleTextView icon) { @@ -971,7 +972,8 @@ public class CellLayout extends ViewGroup { return mChildren.getChildAt(x, y); } - public boolean animateChildToPosition(final View child, int cellX, int cellY, int duration) { + public boolean animateChildToPosition(final View child, int cellX, int cellY, int duration, + int delay) { CellLayoutChildren clc = getChildrenLayout(); if (clc.indexOfChild(child) != -1 && !mOccupied[cellX][cellY]) { final LayoutParams lp = (LayoutParams) child.getLayoutParams(); @@ -996,6 +998,10 @@ public class CellLayout extends ViewGroup { int newX = lp.x; int newY = lp.y; + lp.x = oldX; + lp.y = oldY; + child.requestLayout(); + PropertyValuesHolder x = PropertyValuesHolder.ofInt("x", oldX, newX); PropertyValuesHolder y = PropertyValuesHolder.ofInt("y", oldY, newY); ObjectAnimator oa = ObjectAnimator.ofPropertyValuesHolder(lp, x, y); @@ -1023,6 +1029,7 @@ public class CellLayout extends ViewGroup { cancelled = true; } }); + oa.setStartDelay(delay); oa.start(); return true; } diff --git a/src/com/android/launcher2/CellLayoutChildren.java b/src/com/android/launcher2/CellLayoutChildren.java index 6e78885ded..1caecc0018 100644 --- a/src/com/android/launcher2/CellLayoutChildren.java +++ b/src/com/android/launcher2/CellLayoutChildren.java @@ -83,6 +83,7 @@ public class CellLayoutChildren extends ViewGroup { lp.setup(mCellWidth, mCellHeight, mWidthGap, mHeightGap); } + public void measureChild(View child) { final int cellWidth = mCellWidth; final int cellHeight = mCellHeight; @@ -92,7 +93,6 @@ public class CellLayoutChildren extends ViewGroup { int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY); int childheightMeasureSpec = MeasureSpec.makeMeasureSpec(lp.height, MeasureSpec.EXACTLY); - child.measure(childWidthMeasureSpec, childheightMeasureSpec); } diff --git a/src/com/android/launcher2/DragLayer.java b/src/com/android/launcher2/DragLayer.java index af47bea783..c4d75d6ebc 100644 --- a/src/com/android/launcher2/DragLayer.java +++ b/src/com/android/launcher2/DragLayer.java @@ -25,6 +25,7 @@ import android.util.AttributeSet; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; +import android.view.ViewParent; import android.widget.FrameLayout; import android.widget.ImageView; @@ -62,13 +63,13 @@ public class DragLayer extends FrameLayout { mLauncher = launcher; mDragController = controller; } - + @Override public boolean dispatchKeyEvent(KeyEvent event) { return mDragController.dispatchKeyEvent(event) || super.dispatchKeyEvent(event); } - private boolean handleTouchDown(MotionEvent ev) { + private boolean handleTouchDown(MotionEvent ev, boolean intercept) { Rect hitRect = new Rect(); int x = (int) ev.getX(); int y = (int) ev.getY(); @@ -85,17 +86,21 @@ public class DragLayer extends FrameLayout { } } } - if (mCurrentFolder != null) { - mCurrentFolder.getHitRect(hitRect); - int[] screenPos = new int[2]; - View parent = (View) mCurrentFolder.getParent(); - if (parent != null) { - parent.getLocationOnScreen(screenPos); - hitRect.offset(screenPos[0], screenPos[1]); + + if (mCurrentFolder != null && intercept) { + if (mCurrentFolder.isEditingName()) { + getDescendantRectRelativeToSelf(mCurrentFolder.getEditTextRegion(), hitRect); if (!hitRect.contains(x, y)) { - mLauncher.closeFolder(); + mCurrentFolder.dismissEditingName(); + return true; } } + + getDescendantRectRelativeToSelf(mCurrentFolder, hitRect); + if (!hitRect.contains(x, y)) { + mLauncher.closeFolder(); + return true; + } } return false; } @@ -103,7 +108,7 @@ public class DragLayer extends FrameLayout { @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { - if (handleTouchDown(ev)) { + if (handleTouchDown(ev, true)) { return true; } } @@ -121,7 +126,7 @@ public class DragLayer extends FrameLayout { if (ev.getAction() == MotionEvent.ACTION_DOWN) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { - if (handleTouchDown(ev)) { + if (handleTouchDown(ev, false)) { return true; } } @@ -143,6 +148,18 @@ public class DragLayer extends FrameLayout { return mDragController.onTouchEvent(ev); } + private void getDescendantRectRelativeToSelf(View descendant, Rect r) { + descendant.getHitRect(r); + + ViewParent viewParent = descendant.getParent(); + while (viewParent instanceof View && viewParent != this) { + final View view = (View)viewParent; + r.offset(view.getLeft() + (int) (view.getTranslationX() + 0.5f) - view.getScrollX(), + view.getTop() + (int) (view.getTranslationY() + 0.5f) - view.getScrollY()); + viewParent = view.getParent(); + } + } + @Override public boolean dispatchUnhandledMove(View focused, int direction) { return mDragController.dispatchUnhandledMove(focused, direction); diff --git a/src/com/android/launcher2/FastBitmapDrawable.java b/src/com/android/launcher2/FastBitmapDrawable.java index 3e75fb6d04..9fa62da4a7 100644 --- a/src/com/android/launcher2/FastBitmapDrawable.java +++ b/src/com/android/launcher2/FastBitmapDrawable.java @@ -64,6 +64,10 @@ class FastBitmapDrawable extends Drawable { mPaint.setAlpha(alpha); } + public void setFilterBitmap(boolean filterBitmap) { + mPaint.setFilterBitmap(filterBitmap); + } + public int getAlpha() { return mAlpha; } diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java index d81183c6b0..960fa551c4 100644 --- a/src/com/android/launcher2/Folder.java +++ b/src/com/android/launcher2/Folder.java @@ -23,16 +23,22 @@ import android.animation.PropertyValuesHolder; import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.content.Context; -import android.graphics.Color; +import android.content.res.Resources; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; +import android.view.ActionMode; +import android.view.KeyEvent; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.AccelerateInterpolator; import android.view.animation.DecelerateInterpolator; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.LinearLayout; import android.widget.TextView; @@ -48,7 +54,8 @@ import java.util.ArrayList; * Represents a set of icons chosen by the user or generated by the system. */ public class Folder extends LinearLayout implements DragSource, OnItemLongClickListener, - OnItemClickListener, OnClickListener, View.OnLongClickListener, DropTarget, FolderListener { + OnItemClickListener, OnClickListener, View.OnLongClickListener, DropTarget, FolderListener, + TextView.OnEditorActionListener { protected DragController mDragController; @@ -90,6 +97,11 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL private int[] mEmptyCell = new int[2]; private Alarm mReorderAlarm = new Alarm(); private Alarm mOnExitAlarm = new Alarm(); + private TextView mFolderName; + private int mFolderNameHeight; + + private boolean mIsEditingName = false; + private InputMethodManager mInputMethodManager; /** * Used to inflate the Workspace from XML. @@ -102,10 +114,14 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL setAlwaysDrawnWithCacheEnabled(false); mInflater = LayoutInflater.from(context); mIconCache = ((LauncherApplication)context.getApplicationContext()).getIconCache(); - mExpandDuration = getResources().getInteger(R.integer.config_folderAnimDuration); - mMaxCountX = LauncherModel.getCellCountX() - 1; mMaxCountY = LauncherModel.getCellCountY() - 1; + + mInputMethodManager = (InputMethodManager) + mContext.getSystemService(Context.INPUT_METHOD_SERVICE); + + Resources res = getResources(); + mExpandDuration = res.getInteger(R.integer.config_folderAnimDuration); } @Override @@ -114,8 +130,37 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL mContent = (CellLayout) findViewById(R.id.folder_content); mContent.setGridSize(0, 0); mContent.enableHardwareLayers(); + mFolderName = (TextView) findViewById(R.id.folder_name); + + // We find out how tall the text view wants to be (it is set to wrap_content), so that + // we can allocate the appropriate amount of space for it. + int measureSpec = MeasureSpec.UNSPECIFIED; + mFolderName.measure(measureSpec, measureSpec); + mFolderNameHeight = mFolderName.getMeasuredHeight(); + + // We disable action mode for now since it messes up the view on phones + mFolderName.setCustomSelectionActionModeCallback(mActionModeCallback); + mFolderName.setCursorVisible(false); + mFolderName.setOnEditorActionListener(this); } + private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() { + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + return false; + } + + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + return false; + } + + public void onDestroyActionMode(ActionMode mode) { + } + + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + return false; + } + }; + public void onItemClick(AdapterView parent, View v, int position, long id) { ShortcutInfo app = (ShortcutInfo) parent.getItemAtPosition(position); int[] pos = new int[2]; @@ -138,6 +183,17 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL } } + private Rect mHitRect = new Rect(); + public boolean onInterceptTouchEvent(MotionEvent ev) { + if (ev.getAction() == MotionEvent.ACTION_DOWN) { + mFolderName.getHitRect(mHitRect); + if (mHitRect.contains((int) ev.getX(), (int) ev.getY()) && !mIsEditingName) { + startEditingFolderName(); + } + } + return false; + } + public boolean onLongClick(View v) { Object tag = v.getTag(); if (tag instanceof ShortcutInfo) { @@ -158,13 +214,44 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL mCurrentDragView = v; mContent.removeView(mCurrentDragView); mInfo.remove(item); - } else { - mLauncher.closeFolder(this); - mLauncher.showRenameDialog(mInfo); } return true; } + public boolean isEditingName() { + return mIsEditingName; + } + + public void startEditingFolderName() { + mFolderName.setCursorVisible(true); + mIsEditingName = true; + } + + public void dismissEditingName() { + mInputMethodManager.hideSoftInputFromWindow(getWindowToken(), 0); + doneEditingFolderName(true); + } + + public void doneEditingFolderName(boolean commit) { + mInfo.setTitle(mFolderName.getText()); + LauncherModel.updateItemInDatabase(mLauncher, mInfo); + mFolderName.setCursorVisible(false); + mFolderName.clearFocus(); + mIsEditingName = false; + } + + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (actionId == EditorInfo.IME_ACTION_DONE) { + dismissEditingName(); + return true; + } + return false; + } + + public View getEditTextRegion() { + return mFolderName; + } + public Drawable getDragDrawable() { return mIconDrawable; } @@ -216,12 +303,13 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL // forcing a layout // TODO: find out if this is still necessary mContent.requestLayout(); - requestFocus(); } void onClose() { - final Workspace workspace = mLauncher.getWorkspace(); - workspace.getChildAt(workspace.getCurrentPage()).requestFocus(); + CellLayoutChildren clc = (CellLayoutChildren) getParent(); + final CellLayout cellLayout = (CellLayout) clc.getParent(); + cellLayout.removeViewWithoutMarkingCells(Folder.this); + clearFocus(); } void bind(FolderInfo info) { @@ -234,6 +322,7 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL } mItemsInvalidated = true; mInfo.addListener(this); + mFolderName.setText(mInfo.title); } /** @@ -322,10 +411,7 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL public void animateClosed() { if (!(getParent() instanceof CellLayoutChildren)) return; - CellLayoutChildren clc = (CellLayoutChildren) getParent(); - final CellLayout cellLayout = (CellLayout) clc.getParent(); ObjectAnimator oa; - if (mMode == PARTIAL_GROW) { PropertyValuesHolder alpha = PropertyValuesHolder.ofFloat("alpha", 0); PropertyValuesHolder scaleX = PropertyValuesHolder.ofFloat("scaleX", 0.9f); @@ -356,8 +442,8 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL oa.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { + onClose(); onCloseComplete(); - cellLayout.removeViewWithoutMarkingCells(Folder.this); mState = STATE_SMALL; } @Override @@ -438,6 +524,8 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL int startX; int endX; int startY; + int delay = 0; + float delayAmount = 30; if (readingOrderGreaterThan(target, empty)) { wrap = empty[0] >= mContent.getCountX() - 1; startY = wrap ? empty[1] + 1 : empty[1]; @@ -447,9 +535,11 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL for (int x = startX; x <= endX; x++) { View v = mContent.getChildAt(x,y); if (mContent.animateChildToPosition(v, empty[0], empty[1], - REORDER_ANIMATION_DURATION)) { + REORDER_ANIMATION_DURATION, delay)) { empty[0] = x; empty[1] = y; + delay += delayAmount; + delayAmount *= 0.9; } } } @@ -462,9 +552,11 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL for (int x = startX; x >= endX; x--) { View v = mContent.getChildAt(x,y); if (mContent.animateChildToPosition(v, empty[0], empty[1], - REORDER_ANIMATION_DURATION)) { + REORDER_ANIMATION_DURATION, delay)) { empty[0] = x; empty[1] = y; + delay += delayAmount; + delayAmount *= 0.9; } } } @@ -591,7 +683,9 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL CellLayout.LayoutParams lp = (CellLayout.LayoutParams) getLayoutParams(); int width = getPaddingLeft() + getPaddingRight() + mContent.getDesiredWidth(); - int height = getPaddingTop() + getPaddingBottom() + mContent.getDesiredHeight(); + // Technically there is no padding at the bottom, but we add space equal to the padding + // and have to account for that here. + int height = getPaddingTop() + mContent.getDesiredHeight() + mFolderNameHeight; int centerX = iconLp.x + iconLp.width / 2; int centerY = iconLp.y + iconLp.height / 2; @@ -732,6 +826,8 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL public void onItemsChanged() { } + public void onTitleChanged(CharSequence title) { + } public ArrayList getItemsInReadingOrder() { return getItemsInReadingOrder(true); diff --git a/src/com/android/launcher2/FolderIcon.java b/src/com/android/launcher2/FolderIcon.java index 18b242bfa1..db3dfe8f2d 100644 --- a/src/com/android/launcher2/FolderIcon.java +++ b/src/com/android/launcher2/FolderIcon.java @@ -30,7 +30,8 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.TextView; import com.android.launcher.R; @@ -42,39 +43,32 @@ import java.util.ArrayList; /** * An icon that can appear on in the workspace representing an {@link UserFolder}. */ -public class FolderIcon extends FrameLayout implements FolderListener { +public class FolderIcon extends LinearLayout implements FolderListener { private Launcher mLauncher; Folder mFolder; FolderInfo mInfo; // The number of icons to display in the - private static final int NUM_ITEMS_IN_PREVIEW = 4; + private static final int NUM_ITEMS_IN_PREVIEW = 3; private static final int CONSUMPTION_ANIMATION_DURATION = 100; // The degree to which the inner ring grows when accepting drop private static final float INNER_RING_GROWTH_FACTOR = 0.1f; - // The degree to which the inner ring is scaled in its natural state - private static final float INNER_RING_BASELINE_SCALE = 1.0f; - - // The degree to which the outer ring grows when accepting drop - private static final float OUTER_RING_BASELINE_SCALE = 0.7f; - // The degree to which the outer ring is scaled in its natural state - private static final float OUTER_RING_GROWTH_FACTOR = 0.3f; + private static final float OUTER_RING_GROWTH_FACTOR = 0.4f; // The amount of vertical spread between items in the stack [0...1] - private static final float PERSPECTIVE_SHIFT_FACTOR = 0.3f; + private static final float PERSPECTIVE_SHIFT_FACTOR = 0.24f; // The degree to which the item in the back of the stack is scaled [0...1] // (0 means it's not scaled at all, 1 means it's scaled to nothing) - private static final float PERSPECTIVE_SCALE_FACTOR = 0.3f; - - // The percentage of the FolderIcons view that will be dedicated to the items preview - private static final float SPACE_PERCENTAGE_FOR_ICONS = 0.8f; + private static final float PERSPECTIVE_SCALE_FACTOR = 0.35f; private int mOriginalWidth = -1; private int mOriginalHeight = -1; + private ImageView mPreviewBackground; + private BubbleTextView mFolderName; FolderRingAnimator mFolderRingAnimator = null; @@ -98,9 +92,10 @@ public class FolderIcon extends FrameLayout implements FolderListener { FolderIcon icon = (FolderIcon) LayoutInflater.from(launcher).inflate(resId, group, false); - final Resources resources = launcher.getResources(); - Drawable d = iconCache.getFullResIcon(resources, R.drawable.portal_ring_inner_holo); - icon.setBackgroundDrawable(d); + icon.mFolderName = (BubbleTextView) icon.findViewById(R.id.folder_name); + icon.mFolderName.setText(folderInfo.title); + icon.mPreviewBackground = (ImageView) icon.findViewById(R.id.preview_background); + icon.setTag(folderInfo); icon.setOnClickListener(launcher); icon.mInfo = folderInfo; @@ -121,31 +116,36 @@ public class FolderIcon extends FrameLayout implements FolderListener { public static class FolderRingAnimator { public int mFolderLocX; public int mFolderLocY; - public float mOuterRingScale; - public float mInnerRingScale; + public float mOuterRingSize; + public float mInnerRingSize; public FolderIcon mFolderIcon = null; private Launcher mLauncher; public Drawable mOuterRingDrawable = null; public Drawable mInnerRingDrawable = null; public static Drawable sSharedOuterRingDrawable = null; public static Drawable sSharedInnerRingDrawable = null; + public static int sPreviewSize = -1; + public static int sPreviewPadding = -1; + private ValueAnimator mAcceptAnimator; private ValueAnimator mNeutralAnimator; public FolderRingAnimator(Launcher launcher, FolderIcon folderIcon) { mLauncher = launcher; mFolderIcon = folderIcon; - mOuterRingDrawable = - launcher.getResources().getDrawable(R.drawable.portal_ring_outer_holo); - mInnerRingDrawable = - launcher.getResources().getDrawable(R.drawable.portal_ring_inner_holo); + Resources res = launcher.getResources(); + mOuterRingDrawable = res.getDrawable(R.drawable.portal_ring_outer_holo); + mInnerRingDrawable = res.getDrawable(R.drawable.portal_ring_inner_holo); + + if (sPreviewSize < 0 || sPreviewPadding < 0) { + sPreviewSize = res.getDimensionPixelSize(R.dimen.folder_preview_size); + sPreviewPadding = res.getDimensionPixelSize(R.dimen.folder_preview_padding); + } if (sSharedOuterRingDrawable == null) { - sSharedOuterRingDrawable = - launcher.getResources().getDrawable(R.drawable.portal_ring_outer_holo); + sSharedOuterRingDrawable = res.getDrawable(R.drawable.portal_ring_outer_holo); } if (sSharedInnerRingDrawable == null) { - sSharedInnerRingDrawable = - launcher.getResources().getDrawable(R.drawable.portal_ring_inner_holo); + sSharedInnerRingDrawable = res.getDrawable(R.drawable.portal_ring_inner_holo); } } @@ -164,8 +164,8 @@ public class FolderIcon extends FrameLayout implements FolderListener { mAcceptAnimator.addUpdateListener(new AnimatorUpdateListener() { public void onAnimationUpdate(ValueAnimator animation) { final float percent = (Float) animation.getAnimatedValue(); - mOuterRingScale = OUTER_RING_BASELINE_SCALE + percent * OUTER_RING_GROWTH_FACTOR; - mInnerRingScale = INNER_RING_BASELINE_SCALE + percent * INNER_RING_GROWTH_FACTOR; + mOuterRingSize = (1 + percent * OUTER_RING_GROWTH_FACTOR) * sPreviewSize; + mInnerRingSize = (1 + percent * INNER_RING_GROWTH_FACTOR) * sPreviewSize; mLauncher.getWorkspace().invalidate(); if (mFolderIcon != null) { mFolderIcon.invalidate(); @@ -176,7 +176,7 @@ public class FolderIcon extends FrameLayout implements FolderListener { @Override public void onAnimationStart(Animator animation) { if (mFolderIcon != null) { - mFolderIcon.setBackgroundDrawable(null); + mFolderIcon.mPreviewBackground.setVisibility(INVISIBLE); } } }); @@ -192,10 +192,8 @@ public class FolderIcon extends FrameLayout implements FolderListener { mNeutralAnimator.addUpdateListener(new AnimatorUpdateListener() { public void onAnimationUpdate(ValueAnimator animation) { final float percent = (Float) animation.getAnimatedValue(); - mOuterRingScale = OUTER_RING_BASELINE_SCALE + OUTER_RING_GROWTH_FACTOR - - percent * OUTER_RING_GROWTH_FACTOR; - mInnerRingScale = INNER_RING_BASELINE_SCALE + INNER_RING_GROWTH_FACTOR - - percent * INNER_RING_GROWTH_FACTOR; + mOuterRingSize = (1 + (1 - percent) * OUTER_RING_GROWTH_FACTOR) * sPreviewSize; + mInnerRingSize = (1 + (1 - percent) * INNER_RING_GROWTH_FACTOR) * sPreviewSize; mLauncher.getWorkspace().invalidate(); if (mFolderIcon != null) { mFolderIcon.invalidate(); @@ -206,7 +204,7 @@ public class FolderIcon extends FrameLayout implements FolderListener { @Override public void onAnimationEnd(Animator animation) { if (mFolderIcon != null) { - mFolderIcon.setBackgroundDrawable(mInnerRingDrawable); + mFolderIcon.mPreviewBackground.setVisibility(VISIBLE); } mLauncher.getWorkspace().hideFolderAccept(FolderRingAnimator.this); } @@ -220,12 +218,12 @@ public class FolderIcon extends FrameLayout implements FolderListener { loc[1] = mFolderLocY; } - public float getOuterRingScale() { - return mOuterRingScale; + public float getOuterRingSize() { + return mOuterRingSize; } - public float getInnerRingScale() { - return mInnerRingScale; + public float getInnerRingSize() { + return mInnerRingSize; } } @@ -258,7 +256,7 @@ public class FolderIcon extends FrameLayout implements FolderListener { mLauncher.getWorkspace().getLocationInWindow(wsLocation); int x = tvLocation[0] - wsLocation[0] + getMeasuredWidth() / 2; - int y = tvLocation[1] - wsLocation[1] + getMeasuredHeight() / 2; + int y = tvLocation[1] - wsLocation[1] + FolderRingAnimator.sPreviewSize / 2; mFolderRingAnimator.setLocation(x, y); } @@ -296,31 +294,38 @@ public class FolderIcon extends FrameLayout implements FolderListener { @Override protected void dispatchDraw(Canvas canvas) { + super.dispatchDraw(canvas); + if (mFolder == null) return; if (mFolder.getItemCount() == 0) return; canvas.save(); TextView v = (TextView) mFolder.getItemAt(0); Drawable d = v.getCompoundDrawables()[1]; + int intrinsicIconSize = d.getIntrinsicHeight(); if (mOriginalWidth < 0 || mOriginalHeight < 0) { mOriginalWidth = getMeasuredWidth(); mOriginalHeight = getMeasuredHeight(); } + final int previewSize = FolderRingAnimator.sPreviewSize; + final int previewPadding = FolderRingAnimator.sPreviewPadding; - int unscaledHeight = (int) (d.getIntrinsicHeight() * (1 + PERSPECTIVE_SHIFT_FACTOR)); - float baselineIconScale = SPACE_PERCENTAGE_FOR_ICONS / (unscaledHeight / (mOriginalHeight * 1.0f)); + int halfAvailableSpace = (previewSize - 2 * previewPadding) / 2; + // cos(45) = 0.707 + ~= 0.1) + int availableSpace = (int) (halfAvailableSpace * (1 + 0.8f)); - int baselineHeight = (int) (d.getIntrinsicHeight() * baselineIconScale); - int totalStackHeight = (int) (baselineHeight * (1 + PERSPECTIVE_SHIFT_FACTOR)); - int baselineWidth = (int) (d.getIntrinsicWidth() * baselineIconScale); - float maxPerpectiveShift = baselineHeight * PERSPECTIVE_SHIFT_FACTOR; + int unscaledHeight = (int) (intrinsicIconSize * (1 + PERSPECTIVE_SHIFT_FACTOR)); + float baselineIconScale = (1.0f * availableSpace / unscaledHeight); + + int baselineSize = (int) (intrinsicIconSize * baselineIconScale); + float maxPerspectiveShift = baselineSize * PERSPECTIVE_SHIFT_FACTOR; ArrayList items = mFolder.getItemsInReadingOrder(false); int firstItemIndex = Math.max(0, items.size() - NUM_ITEMS_IN_PREVIEW); - int xShift = (int) (mOriginalWidth - baselineWidth) / 2; - int yShift = (int) (mOriginalHeight - totalStackHeight) / 2; + int xShift = (mOriginalWidth - 2 * halfAvailableSpace) / 2; + int yShift = previewPadding; canvas.translate(xShift, yShift); for (int i = firstItemIndex; i < items.size(); i++) { int index = i - firstItemIndex; @@ -328,10 +333,17 @@ public class FolderIcon extends FrameLayout implements FolderListener { float r = (index * 1.0f) / (NUM_ITEMS_IN_PREVIEW - 1); float scale = (1 - PERSPECTIVE_SCALE_FACTOR * (1 - r)); - r = (float) Math.pow(r, 2); - float transY = r * maxPerpectiveShift; - float transX = (1 - scale) * baselineWidth / 2.0f; + //r = (float) Math.pow(r, 2); + + float offset = (1 - r) * maxPerspectiveShift; + float scaledSize = scale * baselineSize; + float scaleOffsetCorrection = (1 - scale) * baselineSize; + + // We want to imagine our coordinates from the bottom left, growing up and to the + // right. This is natural for the x-axis, but for the y-axis, we have to invert things. + float transY = 2 * halfAvailableSpace - (offset + scaledSize + scaleOffsetCorrection); + float transX = offset + scaleOffsetCorrection; v = (TextView) items.get(i); d = v.getCompoundDrawables()[1]; @@ -342,10 +354,12 @@ public class FolderIcon extends FrameLayout implements FolderListener { int overlayAlpha = (int) (80 * (1 - r)); if (d != null) { - d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); + d.setBounds(0, 0, intrinsicIconSize, intrinsicIconSize); + d.setFilterBitmap(true); d.setColorFilter(Color.argb(overlayAlpha, 0, 0, 0), PorterDuff.Mode.SRC_ATOP); d.draw(canvas); d.clearColorFilter(); + d.setFilterBitmap(false); } canvas.restore(); } @@ -366,4 +380,10 @@ public class FolderIcon extends FrameLayout implements FolderListener { invalidate(); requestLayout(); } + + public void onTitleChanged(CharSequence title) { + mFolderName.setText(title); + mFolderName.invalidate(); + mFolderName.requestLayout(); + } } diff --git a/src/com/android/launcher2/FolderInfo.java b/src/com/android/launcher2/FolderInfo.java index 805a51f399..b5b5b29c19 100644 --- a/src/com/android/launcher2/FolderInfo.java +++ b/src/com/android/launcher2/FolderInfo.java @@ -70,6 +70,13 @@ class FolderInfo extends ItemInfo { } } + public void setTitle(CharSequence title) { + this.title = title; + for (int i = 0; i < listeners.size(); i++) { + listeners.get(i).onTitleChanged(title); + } + } + @Override void onAddToDatabase(ContentValues values) { super.onAddToDatabase(values); @@ -95,6 +102,7 @@ class FolderInfo extends ItemInfo { interface FolderListener { public void onAdd(ShortcutInfo item); public void onRemove(ShortcutInfo item); + public void onTitleChanged(CharSequence title); public void onItemsChanged(); } } diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index bda55919d2..323c52700d 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -1728,7 +1728,12 @@ public final class Launcher extends Activity if (mState == State.APPS_CUSTOMIZE) { showWorkspace(true); } else if (mWorkspace.getOpenFolder() != null) { - closeFolder(); + Folder openFolder = mWorkspace.getOpenFolder(); + if (openFolder.isEditingName()) { + openFolder.dismissEditingName(); + } else { + closeFolder(); + } } else if (isPreviewVisible()) { dismissPreview(mPreviousView); dismissPreview(mNextView); @@ -1760,7 +1765,6 @@ public final class Launcher extends Activity } folder.animateClosed(); - folder.onClose(); } /** diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 1fa23cf4c6..ca0847ef9f 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -692,7 +692,7 @@ public abstract class PagedView extends ViewGroup { } View v = getPageAt(focusablePage); if (v != null) { - v.requestFocus(direction, previouslyFocusedRect); + return v.requestFocus(direction, previouslyFocusedRect); } return false; } diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 1048fd5705..b07e22b39b 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -1199,11 +1199,12 @@ public class Workspace extends SmoothPagedView View currentPage = getChildAt(getCurrentPage()); Matrix m = currentPage.getMatrix(); - // Draw outer ring FolderRingAnimator fra = mFolderOuterRings.get(i); + + // Draw outer ring Drawable d = FolderRingAnimator.sSharedOuterRingDrawable; - int width = (int) (d.getIntrinsicWidth() * fra.getOuterRingScale()); - int height = (int) (d.getIntrinsicHeight() * fra.getOuterRingScale()); + int width = (int) fra.getOuterRingSize(); + int height = width; fra.getLocation(mTempLocation); // First we map the folder's location from window coordinates to its containing @@ -1226,34 +1227,28 @@ public class Workspace extends SmoothPagedView canvas.restore(); // Draw inner ring - if (fra.mFolderIcon != null) { - int folderWidth = fra.mFolderIcon != null ? - fra.mFolderIcon.getMeasuredWidth() : mCellWidth; - int folderHeight = fra.mFolderIcon != null ? - fra.mFolderIcon.getMeasuredWidth() : mCellHeight; - d = FolderRingAnimator.sSharedInnerRingDrawable; - width = (int) (folderWidth * fra.getInnerRingScale()); - height = (int) (folderHeight * fra.getInnerRingScale()); + d = FolderRingAnimator.sSharedInnerRingDrawable; + width = (int) fra.getInnerRingSize(); + height = width; - // First we map the folder's location from window coordinates to its containing - // CellLayout's coordinates. Then we transform the coordinates according to the - // CellLayout's transform. Finally, we map this back into the coordinates of the - // the window (ie. Workspace). - x = mTempLocation[0] + mScrollX - width / 2 - currentPage.getLeft(); - y = mTempLocation[1] + mScrollY - height / 2 - currentPage.getTop(); - mTempFloatTuple[0] = x; - mTempFloatTuple[1] = y; - m.mapPoints(mTempFloatTuple); - x = (int) (mTempFloatTuple[0]) + currentPage.getLeft(); - y = (int) (mTempFloatTuple[1]) + currentPage.getTop(); + // First we map the folder's location from window coordinates to its containing + // CellLayout's coordinates. Then we transform the coordinates according to the + // CellLayout's transform. Finally, we map this back into the coordinates of the + // the window (ie. Workspace). + x = mTempLocation[0] + mScrollX - width / 2 - currentPage.getLeft(); + y = mTempLocation[1] + mScrollY - height / 2 - currentPage.getTop(); + mTempFloatTuple[0] = x; + mTempFloatTuple[1] = y; + m.mapPoints(mTempFloatTuple); + x = (int) (mTempFloatTuple[0]) + currentPage.getLeft(); + y = (int) (mTempFloatTuple[1]) + currentPage.getTop(); - canvas.save(); - canvas.translate(x, y); - d.setBounds(0, 0, (int) (width * currentPage.getScaleX()), - (int) (height * currentPage.getScaleY())); - d.draw(canvas); - canvas.restore(); - } + canvas.save(); + canvas.translate(x, y); + d.setBounds(0, 0, (int) (width * currentPage.getScaleX()), + (int) (height * currentPage.getScaleY())); + d.draw(canvas); + canvas.restore(); } super.onDraw(canvas); } @@ -3025,8 +3020,9 @@ public class Workspace extends SmoothPagedView mCellWidth = mDragTargetLayout.getCellWidth(); mCellHeight = mDragTargetLayout.getCellHeight(); } + int x = tvLocation[0] - wsLocation[0] + v.getMeasuredWidth() / 2; - int y = tvLocation[1] - wsLocation[1] + v.getMeasuredHeight() / 2; + int y = tvLocation[1] - wsLocation[1] + FolderRingAnimator.sPreviewSize / 2; if (mDragFolderRingAnimator == null) { mDragFolderRingAnimator = new FolderRingAnimator(mLauncher, null);