From 8679a1241fe10deae8dbc71208bb166240e80380 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Tue, 9 Apr 2013 18:55:10 +1000 Subject: [PATCH] Also show "add repo" and "update/install" in action bar. The "update" icon was a "+" (add icon) which looked a bit weird, so a quick search of other UI's shows that the "refresh" icon is used for "update". The official Android reference docs say to copy icons that aren't part of the android.R.drawable.* constants into your own drawable-* folders, so I've done that here. The icons are from android SDK version 17. --- res/drawable-hdpi/ic_menu_refresh.png | Bin 0 -> 2025 bytes res/drawable-ldpi/ic_menu_refresh.png | Bin 0 -> 1695 bytes res/drawable-mdpi/ic_menu_refresh.png | Bin 0 -> 1278 bytes res/drawable-xhdpi/ic_menu_refresh.png | Bin 0 -> 2857 bytes src/org/fdroid/fdroid/AppDetails.java | 18 +++++++++--------- src/org/fdroid/fdroid/CompatabilityUtils.java | 8 ++++++++ src/org/fdroid/fdroid/ManageRepo.java | 3 ++- 7 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 res/drawable-hdpi/ic_menu_refresh.png create mode 100644 res/drawable-ldpi/ic_menu_refresh.png create mode 100644 res/drawable-mdpi/ic_menu_refresh.png create mode 100644 res/drawable-xhdpi/ic_menu_refresh.png diff --git a/res/drawable-hdpi/ic_menu_refresh.png b/res/drawable-hdpi/ic_menu_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..e13315f5da34487cba048540f41fed1b14706180 GIT binary patch literal 2025 zcmVC5uat znCKD`O-rn~1e*Zqs>mQ}`-uB+M>R(3R zlib`te&>14^PcCt=e)rGV>;-+0-Qh)5FpSjs7Z{CvL*lm=`p~+%N;0k3FQAB~;fiEXcjqTHpih17fuZ2@p7ejxB^>xb*~`Y)Dl zHy_egQYrkH#5jM#7wqn2`0g8H-2BRlcK#z^#>_%EMFD3 z`2J4N69g;lJ6(RP{y^|M0Iv{aI#%Hv7lg0pj4%8pXY=lwBUTGoFkZ^e%^kwUznT+)Xokh1pSN;eP&-buI}tVlL1U}xUwN!yQk^6MM~X2fjUG&0S%6 z<^8k}DnG9S7(n5eDdKq=@~Y{66SX@`sT_bhZ4B=l0F){SL-&TbKY-j~Qa}NLPnM!| zy#x%T>D@Gjeq|H!T;p-xDj5KF!^Q>6XGV>*>DtDaUCc#^pzyCIFc85l8{+^|fs1Bd zYECg$V;4+l(BawL_-J;s^Ax}|j52_Mh{|M;UKDy(MeFu;9RZ)J6Tis(el1^{JrDWk zfCT9R0OF+bQ?W3EAY;AO0S7uxOBiqE)YMr51`xHUo?oU^RE;x75niGK3=wpLrfnE! zI8WplBcI@|d-m)qWRZn~5yY0N;CTZjD;MVkNv{oJ2GBzH-36)+(2Fn^nyMM{+6 z4KX78_=`RvHIAAI&6~{kmLQiKD{r+t8!X{0nK-NL$ePi<9GwNOOb_R9ZYw?q4GaSk zfDQ?UE`*kH-$wt8I!PXwsI6h;J{_J3N1mF(U|&qaTY!MTsFz=Px~`I3lnP5Il)_Io z>NqS9O~$Kd2n2Zm2ezX1M-}zTCIfG&_agcY2a2!=K~Oheuv(NNaZfCRI3=G+#fO3e z2>>7qhnU5&FC-s1T>A_uHaIJP635M0zaP2fWj+A|NN2L6s)ao$FbE8t&iP1tJWV@zi6>i5aO79Za8?!&-wMM;KR$8P1_Ry3CQWyBPBYf&h*#4 zJJQ!FH{cuAttvDPuWhJ*xqLTyNNX#j}1qrrfhV96GPZ1bT1 zNiQH*$*p1=1(-dDBnxp09g)c^HD}}5B)LWJgPc9s?{;RQ9&};_2|zKZO6>&z9XbF8 zv$9Epj)eTFeI%+bE${Y{i8<*hs^BSwbi{)W7W6tAu~o7HGhBeDuQLgP0Y`RvFUGFj zwl0P)mt^}3z!xDPg;Yc-NP2}1-uBazp(o8pWi@o35t*W1{hDqi> z4HhIIFw$eLz-u`8nbu>Eo@hBy>#tnzYtkx&q?n3&z3yP#4P(G}P3<2SXE8JYc1OPk@2IE8dH<=*@WB0VyMVrVXACSQpcJE_>Y_H;s7&G zssH)-CmXOH6R?zbhyVZpC3HntbYx+4WjbSWWnpw>05UK!F)c7LEiyP%GBP?eH##*l zEigDbFfgP}a>)Py03~!qSaf7zbY(hiZ)9m^c>ppnF)=MLF)cDUR5CI;G&edmGc7PU zIxsNR6Uub}000?uMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o00000NkvXX Hu0mjfQR<0n literal 0 HcmV?d00001 diff --git a/res/drawable-ldpi/ic_menu_refresh.png b/res/drawable-ldpi/ic_menu_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..b25dc061616a316beea1da94d8f15d2b6ed6a146 GIT binary patch literal 1695 zcmZ{kX*e6`7RRHtt17K3s*I&VL=#IqiK<~}1lJx-)RxFnq=Lkfn54bY8md8qs;zn% zwU$;jZ48;2#}YbXOoOUrtW|E+Zj?sdm{0e9xF62>J@5NF|L1%=S$;l9byYo8005wl z@^A}~(e$vC$E0UMM9TQ^1Q=l&xpOrN9}%v08c2sQLV04*c&XW`Ly|E zGEJ(~mTb{;kn$A)hwtRC?kr5uX6DX(l)E<1Uf4IBj9J)FWjH=seT{Ml96$S>>c@mW!u)=@-Le*TD0>D9)^=xHv}?9wl6%}Uw7I?&%8C!acu*x z`f}R!QA*Uo-z~yg)(r_24d*p8wbK8%8R^e!L6wJJ{T!p9=~#A5xsK^WOKp3>#eD5z z+Ty9>58?#k+g%pEqBOixC34s;-s_nV6QQa$TedOr%EBpr9Ua9VpGRtMKg|GJl0b3X zuPu6DVNU(BSIWM0v083h+k$MjwfcVb=ZkGYM}6R&vhILKaRK*~Af-QLLTk+%nJv=$ z@h2WU^}O+OEV)K2tm$}saL0SH^$=q-o|EW9&r_SR?f*=7FA@}4+K&&^DYKkz=LXMA zRlHm3PsGk4Mr+jgarfHGn_6d&U9(~j;NYFT^gKK$eeC5Bv7zAkLp}A?T1D*KU(d2H z1oou1Nz)0rVy}tr(9u*auC3`6-Lgwa`*!4Wm3IPX)V?un#+Y<47a=XzD>#*#$kDUA zuRN=5Vwq;cN=P=&UtIne5cA|1gj`?Q-O4k{XbS{pb(S$tP4&01jDf<-n!f0D*EPb^ zYpu9ayHRV$`=c{C2ksRql18&We-lmDA1brO_NDwMDbw@O*m_u>qUAd`3{y}!Mg;Dz zl=NzSS>k!Q)H3ah4K%{j$XOfw@%Iob3 zd85=xx!!>AVkT0CwPtJxN?WT7@<~PpXQdq98wYVI}3i-SF1Pd`}8^_ zcI#U)uYpx51jW=>o({)n(&k0BQRncXo&h7#2JliKyEH=5t7++NlUexFb^jyg=cNNv zdp+BTm(x}GtU??kN6Z%1y4;;Es2klMBz4D8U9BZXwCjv^+LeXmDAvjILb9$|HR>On zEp@*V(l)k&(~VDHa*{VOF9y#w^5NsNO+yB0jwumiyOs1UuG0-FdYGTD5pj@|y?wFQ znJ(~Ze_Ya~Q{|#PRQS(;*u_kPH#E-P;w16e-IF!#-fyMo;wG=Xt1D=BPv6qW7~>Aq zI)7Osb6NoPrDR-Vx7H1r0xL~TPhnb%Ixxd_qr=S?1P*XWR&gu8L;;BYg_}Abfqf-h z=0JroSm5iT4Yshr(n7_1^f$xyxrZ~ICT-&Gto+iJPtDX`S|hSE~P%y+M2nt0&>=3s0V2A?(0=cJCKmI>~>r_HCiShpf)1F#~ z$6n)b11Xw9Cnh5Bl%zxe#2Ok%Cx0(f$Nx)FsCXg`V3$;@Y%DXnhbE9pqNm^zi2xUZ fOd6rCk4UOiAAEE)4(M`_JqL@;D1TB8!2v z2N=7Z%(epwmK8Xr18D^?ZvQoBE&~G#o2QFoh{y4zQ@wMhgo+%me_nUrJl|?d@U4cI z&C66+coe3&8|36XRdu=G64uqvy3gPsOKRexV=e`a{Rv4)Jrg@vE@o)$a!^%t)N~SO zYU0djoYo}EmF%5vb>>WYe>c@^%@6#CE zbTU$6p4~e&^RwEyj?mrnmi!66`B&V!FKBP-w=aLz3G7)VeTvuj;(8RAJ`B zz8Gc=bK@mk-)r+LYpVHYL>M;)bv`Kem%1p}8+!h)=1g zJ#8(xyx?T*j`G{<=HC80`7v89!Jk+zU@nHKh@mE>g7O#ze zM_K-ukq|V^p&;x=b?SpIo?n)mDyQC`boAf){+0zSYBu!`-W|L1{oSY9UCCUrF|wyV z>8(1MbTUzsAu~v##D%wE)o(Sks5$z-ELF7J-kR2$-(Bo>w$H~gVAV4BkJWp&$?ZCL z@lb|agQ|mW;-NW9(^m)|7Mya`BExI)-;{+0KC`6{CN-?&o|jShyIFo~?Z1~^Qy=Ov zlvEwxYkMytZ}DE%m&exk?Guc7&YHBkM`Y=O1D(Fr_cuMU+%@xT)3g9d26lO;Lg$6o zmtD?sXHqG354_Ryq^^gtoAc^74df} z`j5(-xWuWcnY;L(iv1(=qt7IzIXZ%$DGBdASM!{2mqF950EOFsVk}#^@4Yjg!xpHU znjAOr#GUoeeb07sDnxni-oA-j{?v=@#ZB$g_giL9bhXo-leOGlD^s_Z;i=@`iUmsH zlea5z$bNeA^7C!W{wc*vAAVTmYizdbM>})=`~|$9mc}s5P<5YD5;UP{$17`nKAHUj zD^6d}GKu`1@c8s&@u)w3?^n({y<5_uXtCSO`>d*;`s@|o68O|Sdo#aC$kCWDb~-th*Z#}aD;4g28KgS* zlwjoSthW)N*JJF?u03?YefdA58&&V#EPS!vdH0I-ClXW~mfeml-}<$^{QJ83UwoT= zxQ_Sor2X-p^U&nwniB!<^OTr;IQEOwY;coWv16Su2h)R-y8kyS{+u~u`vnIFf#W(8 zG)`>~;c)wRdxy#->j}3_{)>k*&1A8#oAMA?G^m!iMwFx^mZVxG7o`Fz1|tJQLtO(y zT_cMSBO@ylb1PG0T>}d%1A`@gMJG`-wJDNutX$cEtjw370~qErUQ il>DSr1<%~X^wgl##FWaylc_d9MGT&#M literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_menu_refresh.png b/res/drawable-xhdpi/ic_menu_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9f10ee8807efe8379066f03c68309187d13c06 GIT binary patch literal 2857 zcmZ{mS5Om*5{4lH2SN!Tpj4$wRUp!XN$5zGE-ED?p++!tq^lD^5EP|_CcT4*atQ6B zARxUPq<5tgLXnVM&Uw2JcXs~&o88%e_I2Ye%?;Us0zf)CI(B0tJ*x}C{t+|7h10n- z*ry&Oe``)CV zZIfrUz4!3FA`6A>iuCY(Vf|JwEJzZ_qdc7_;n59L%_4Du> z<#X-Z$Hwifssj-XNlQtbobU7sS(8|#I zwathsiq8R&I&bdA^6N@fa-?qVIC;W(jx3z%Y*K^n(=y5HnXiyeDC)67+(MVQ@TM4( z0KS2;35%YjHKpKyy?EB01c(a*xpnc;eoam>bSo4FSl8p+zuJ!tfOReE?;V~tRwU4Q zv@=YuE~%nFi(W^l%nHo$f@U=-T{Ck$*$$8d+fHIA|3rcv5zQn~v~Y>BPTGlYw^5`X z4jyAOQnP^BJgRL4i?sQkysocp?7%;?x*;-d3Q6ZVbVe=T#FcZr9|{(x#j`OXd3{4VLG z%On7kI+hl2FW;T4=Eq#`x8{x3fG$6;q9{rkd)Jj?vv)>ETf6Y%@%mgOOVVoZR`0jh zdUkRL924JlJ*#Y?yIgQ#4o)E%fQ0F73yc)QwCB2kbQ_fWmb$z}&+?URxn9?n2g~1l zw5f2EZ*erINkJL%jUxSXJvUBc?*Z$#YCH7&!*{REP6fB>TXKn};VP}-b1`pGFGvqY zpI^@Y;TSF5q{5%hgbV+IMzY7ebo_C5U8`QBcIm^PhKLHppu1B|U$JQ%+@%WWM?kG2 z-Z?^&fhJSWoN}Xqp3oO~-R#Sku!`mOq;+s$yOaH~Y{pH>1Ztk|BYGC=V;6ooK>DYA z5Gwdm?8vx~kLB7s^i$|>?k%rPp7WH4f^2JzL5IAq7{N9v7JTS|ZYDh^{r3YO9o-UH zdu1o1iU1M;$LiICV98iY!9NHUuM%C*Ey&Hce-KxwnQl3tR*5$#MeQie6g4ICVCJ5O zVeQ=2!}&p+oO)87iQyt&S0Pw{Nx2wHx;q$cK1zfK88Qh0vaR!s$ie5=8YJ^Y_l0o0f0^X0j5F;`a$9b364kCY zthTx3s%LLI+GY&=j!-iBdQ|+E?=;(LUlHu{0uGxK%v1)4A^((@@+q)$JL9RL-5&#DU`AkrQ{ON&V@5%*iJhE=X7A`=FuM}})T9^g9|RyB7%GYU#`I=C@5AfG1L7kB%-*3eMrO{T1x zRH|kr1~<=sI_g+>Fq-wHhe~6)Z7? z8r{*#;$J_@{#xhP&}sN$<>+uQ;OvbQ`4y2dg!>7#r6~neG?yBBr#AjZ!T*UF z=42{qPG07yxCE(Q z0|3#j$t_C#ULRzmWa@9kdg`S#Yu}tEr6igbS5~;U^XjZHSbEUJ8~ZW5HynHWs{j0u zQ$YGg`7K>KNWDOzHRq=}3%5?eRbB za_+EJW<)GCjpO+Am99F1%Gkt27}+-*^CulI-J>TR9}S`NGMS~$t&fU94KeMe%o6YK zKS720F;E;t$Y01if&HiMk_;9L3B&%P^rLf|vr?qe6Ul0$ zMy4?N5NGlUaVR~qax;gBC$@!C93X|*8KH@8ulWo!IrKOc63MYUm301%S)voA_SH6Q zbj}_cDJy^%q&=KpC)CJ1Ol==@^1VCiE{{?G??jb!zj60=_wH8|7M{AY46HObmFtPA z38~UpZZXe1R&`Pr%*BLjb?!WQkc`o=qjU?sXNcjo+SQg(3M~1UiXCj9DI1eT3vLKa zhbRAzNj5O%5H0ciO(f1F_M5-EVukqn2&n~- z+Ke!zeCU07`N))_;Hdj9-+Ii{A9(b=;hxxRwS{LZ8L={<1{8ezxz-2qEi1rQ4&5Jx z%S2&t4GBMZRH{AohZ-hVfLX^$mWc_W&5D&&?$vZQn%rr-JdLpmHnQ}nsJHIoiznJ<=(xoG7w}DH A8UO$Q literal 0 HcmV?d00001 diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index f4f467995..22aa7892d 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -135,7 +135,7 @@ public class AppDetails extends ListActivity { buildtype.setText("bin"); } TextView added = (TextView) v.findViewById(R.id.added); - if (apk.added != null && apk.added != null) { + if (apk.added != null) { added.setVisibility(View.VISIBLE); added.setText(df.format(apk.added)); } else { @@ -462,18 +462,18 @@ public class AppDetails extends ListActivity { if (app == null) return true; DB.Apk curver = app.getCurrentVersion(); + List toShow = new ArrayList(2); if (app.installedVersion != null && curver != null && !app.installedVersion.equals(curver.version)) { - menu.add(Menu.NONE, INSTALL, 0, R.string.menu_update).setIcon( - android.R.drawable.ic_menu_add); + toShow.add(menu.add(Menu.NONE, INSTALL, 0, R.string.menu_update).setIcon( + R.drawable.ic_menu_refresh)); } if (app.installedVersion == null && curver != null) { - menu.add(Menu.NONE, INSTALL, 1, R.string.menu_install).setIcon( - android.R.drawable.ic_menu_add); + toShow.add(menu.add(Menu.NONE, INSTALL, 1, R.string.menu_install).setIcon( + android.R.drawable.ic_menu_add)); } else { - MenuItem launch = menu.add( Menu.NONE, LAUNCH, 1, R.string.menu_launch ).setIcon( - android.R.drawable.ic_media_play ); - CompatabilityUtils.showAsAction( launch ); + toShow.add(menu.add( Menu.NONE, LAUNCH, 1, R.string.menu_launch ).setIcon( + android.R.drawable.ic_media_play)); menu.add(Menu.NONE, UNINSTALL, 1, R.string.menu_uninstall).setIcon( android.R.drawable.ic_menu_delete); } @@ -495,7 +495,7 @@ public class AppDetails extends ListActivity { menu.add(Menu.NONE, DONATE, 6, R.string.menu_donate).setIcon( android.R.drawable.ic_menu_view); } - + CompatabilityUtils.showAsAction(toShow); return true; } diff --git a/src/org/fdroid/fdroid/CompatabilityUtils.java b/src/org/fdroid/fdroid/CompatabilityUtils.java index dadf73636..f3e4b4a4f 100644 --- a/src/org/fdroid/fdroid/CompatabilityUtils.java +++ b/src/org/fdroid/fdroid/CompatabilityUtils.java @@ -3,8 +3,16 @@ package org.fdroid.fdroid; import android.os.Build; import android.view.MenuItem; +import java.util.List; + public class CompatabilityUtils { + protected static void showAsAction(List items) { + for ( MenuItem item : items ) { + showAsAction(item); + } + } + protected static void showAsAction( MenuItem item ) { if ( Build.VERSION.SDK_INT >= 11 ) { item.setShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM ); diff --git a/src/org/fdroid/fdroid/ManageRepo.java b/src/org/fdroid/fdroid/ManageRepo.java index 9416fb5ed..68ac78bc2 100644 --- a/src/org/fdroid/fdroid/ManageRepo.java +++ b/src/org/fdroid/fdroid/ManageRepo.java @@ -149,10 +149,11 @@ public class ManageRepo extends ListActivity { public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); - menu.add(Menu.NONE, ADD_REPO, 1, R.string.menu_add_repo).setIcon( + MenuItem item = menu.add(Menu.NONE, ADD_REPO, 1, R.string.menu_add_repo).setIcon( android.R.drawable.ic_menu_add); menu.add(Menu.NONE, REM_REPO, 2, R.string.menu_rem_repo).setIcon( android.R.drawable.ic_menu_close_clear_cancel); + CompatabilityUtils.showAsAction(item); return true; }