From 82e1ef0ea62f36b15426010e04b4187f036a4c0b Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 2 May 2016 12:27:35 -0300 Subject: [PATCH] Add Snackbar and Toolbar Button to Forum List This commit is a small change that replaces the custom UI elements in the forum list with a Snackbar and an Toolbar menu. Addresses one part (2b) of #305 --- .../res/drawable-hdpi/social_new_chat.png | Bin 716 -> 0 bytes .../res/drawable-hdpi/social_reply.png | Bin 1487 -> 0 bytes .../res/drawable-hdpi/social_share_old.png | Bin 1695 -> 0 bytes .../res/drawable-mdpi/social_new_chat.png | Bin 583 -> 0 bytes .../res/drawable-mdpi/social_reply.png | Bin 1340 -> 0 bytes .../res/drawable-mdpi/social_share_old.png | Bin 1394 -> 0 bytes .../res/drawable-xhdpi/social_new_chat.png | Bin 830 -> 0 bytes .../res/drawable-xhdpi/social_reply.png | Bin 1701 -> 0 bytes .../res/drawable-xhdpi/social_share_old.png | Bin 1989 -> 0 bytes .../res/layout/activity_with_loading.xml | 4 +- ...act_list.xml => fragment_contact_list.xml} | 0 briar-android/res/menu/forum_list_actions.xml | 12 +++ briar-android/res/values/color.xml | 3 +- briar-android/res/values/strings.xml | 1 + briar-android/res/values/styles.xml | 4 +- .../android/contact/ContactListFragment.java | 2 +- .../android/forum/ForumListFragment.java | 88 +++++++++--------- 17 files changed, 61 insertions(+), 53 deletions(-) delete mode 100644 briar-android/res/drawable-hdpi/social_new_chat.png delete mode 100644 briar-android/res/drawable-hdpi/social_reply.png delete mode 100644 briar-android/res/drawable-hdpi/social_share_old.png delete mode 100644 briar-android/res/drawable-mdpi/social_new_chat.png delete mode 100644 briar-android/res/drawable-mdpi/social_reply.png delete mode 100644 briar-android/res/drawable-mdpi/social_share_old.png delete mode 100644 briar-android/res/drawable-xhdpi/social_new_chat.png delete mode 100644 briar-android/res/drawable-xhdpi/social_reply.png delete mode 100644 briar-android/res/drawable-xhdpi/social_share_old.png rename briar-android/res/layout/{activity_contact_list.xml => fragment_contact_list.xml} (100%) create mode 100644 briar-android/res/menu/forum_list_actions.xml diff --git a/briar-android/res/drawable-hdpi/social_new_chat.png b/briar-android/res/drawable-hdpi/social_new_chat.png deleted file mode 100644 index a6a42eeb6779836698a0e2c213955518d2284373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF)IP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*e; z5*8vPkK3&P00K-&L_t(&-tCydiqt?5hQDNDoK;UATtN^8z3{5YnB_CNVvjf+jGN(Es06^;cEHV1o@d zSf3UF7-M#TYrrBPY%!1nMwXTfhBMixZbe`7D`~$Hi4BFGB&_s zHr$dBK^bEr;Iba@HxZfnjFeGNqh;B?W8e{R0eGUa?hK(kKu4syVxJJ20N;DMR*AI# z$~1h6Ep}c>Ktv|Sn8}dD_2ysO91=W%+ym&e(B20tqc?ynh1|Z7dzQKRSP9%OQKA(11RVC_fi&-)wSPKQb$(yN{G yRTEnhD1ilVq-ykI6A8?Kr#=OC$brHBcl!gr;iHsZJEg+_0000H diff --git a/briar-android/res/drawable-hdpi/social_reply.png b/briar-android/res/drawable-hdpi/social_reply.png deleted file mode 100644 index b0fcbf356e9d6363ca546c2d803f15f01cbcb21d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1487 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi((%jPA(9p@$$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1PFwUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZns$C zG!Lpb1-Dxqaq86vIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1zW=(s?$H2hk=;`7Z zQgQ3e%=6kTi4w=lul-Y)A~WTYmeL_NzEiEUWn!ml{1XZnXMd{E7bEjT!6i33h|l}f zL9L*mX{p!W{n+=_XRmMCy}5JC)5<>W`+9Pl@owAswe!DM-Yd`8wa)#J&7z4D_*ECM zOlc6}C_C~-Z&{G0`Te_$aSgBCCZ9~HnctXbpsD;rA!vp8nx<_A>ll@Phz0P>ZV;@| z)@WVJ_3@y%vRz-sjOOWz0vR6;*(pfWCa9ixaF?T}k@bQ^%7?978y<)|#suVksS+`0 z>JJsP5zg7P<6PR>H`^KH|MWk&m%nW)lXHE{>W1(SEbk7QR(y*(;Q8SXkBaWP&AD#; zZ>N7!;O0BnE6(KC{9JX-r6p&UCN!mG3&=Fu&T`bOO<>ZwF0g0v!Jt>&ap#MwS6-0K zm~nz#g3;UT<#Ue*OgWd<%YXJm09) zEgqlMyuSQg;;_W&`(I2oHBo^wX)h>Dqp>Z2x;P145`X1}|vlay?`=yJDF z)lpBCn23v5UHx3vIVCg! E0Fd4yZ~y=R diff --git a/briar-android/res/drawable-hdpi/social_share_old.png b/briar-android/res/drawable-hdpi/social_share_old.png deleted file mode 100644 index 47ae186749df92bbbe77f860ce657d3edce27765..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1695 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi((a6=+z{J?p$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1ObbUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dZnqfX zG!Lpb1-Dy_aO%|uIz}H9wMbD769T3m5EGtofgE_!Pt60S_ab1z&RAG31Ob*hqyVd$&@e0?F6+aZ5Vmma%%tHl4yS%3><;9deKG$0k{QVu* z(Om)}@(UIugmMIWEbQv{SR1OdNObi{laoK>f3UYLG%oKs`Q+HS#{Nku9`Ebl?|lB} zyINZ0w2Nm1&1cytF-~k)s<+_k`@m-9bO%+@EP}SI-$v5tH1*xvsgtSL6aCUo&$~l+gVH$_3M> zz7VNyn(HUpCC#|g&D3b-)8-W3`;%||W4XgT|HnOx3f8j1sVS+;4seGuuXc0be!=wm z=P%F#{y_ycBL!qFdQ8PDSl$bF@iAo|y1x%+MXg5t6Q;W~!$ z1CL#`yq#IzJkt@cou^s+fq$l->s-H-*fl4^8aiiiR)6q*i)p=IF^YyNiHco4#qzH>@thHg@adu9v^+S{5 z%Xg}ax0)5#3xD>RTR460yT|uFY`QG=a{1hI*Nj?Ul`hEqXmLU3L!8F*=}w8JMlUag zA5^`!>*U+pT<-jZ?Vf__FIu*~JhG{CeSTe)ON^n}P3`;=QG>)E@pqO*xE1fZmAUeBeq>m#v&8dz8O#4l82{04kpA_% zLE?yFL67?WWxpE_FNoctR(AZu&(4*v{QlU_IRQ$N9u3bvx;HQ~DDj*tE_ssV52`Xe MUHx3vIVCg!0FRcDBme*a diff --git a/briar-android/res/drawable-mdpi/social_new_chat.png b/briar-android/res/drawable-mdpi/social_new_chat.png deleted file mode 100644 index e78580b8ec8bd72df2953c1cb27afbe201205552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 583 zcmV-N0=WH&P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*e; z5*Q}EVKO=Z00GBIL_t(o!|j&6N&`U@g}+V4BuYXGK}385%kc>;1q;DKAHl-X*2Wje zTlfYd2!e%J=(P-15=AQ^c1qOj+T4X@GMnGsMbHDw!p_dzGv}UrXW$=y9RYx~b^~Yt zVGc1OpayhAZ2ryfl^Kj?h*)rrb-)(S>Lbv4iew$y2i-hE`b_w4xEgd zl!V9Gd%!jm$e2{14y;;hgBiMBeUgsqdSG3BFl&47O+z4_98e&PN5afut!)A&5qV2% z#Z_%6wTzy5pyC+wz~`-4fzynSV*@-Ts$?!%ngawxl3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi((%jPA(9q4)$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yuGh!_r(RHE$SnZc?2=lPS(cjOR+OKs0QR(1CT_R5 z;4}}aHwC9#3|(>R)dxC89~8AnQ4JFUrXLU!o^XL2c+yYJ1E%*PV8T9?$e6*vz_`xS z#WAGf)|=_)wOs;5jz2d{>zR_YH0A8H>6<2`7~Z^bgR^u0vG@g3gg&#MV2g~{P?Mvx z;--fZw^_@_p4Zi{?o{1fXZ`)}hj(dywX@8(m*4-nulSs8`Y~ZAk(em=gB!Q9T8IaP zh}YcTe)l%J(+9cZi2^J$T@EmZiak_eJ+1TLc58!b**`{?drU^9a^Vio&TU=pkUTem z^^D7$>Pk+9=dTl9^*_G$!=F*@dDHiGZY}{K_YT;uXl^%Q%BVg2;aSt`^cc_fJDhth5A9xcNI%f*PFy1FxYamU!fRpg z=Os)hzF9CG-6E^~k~u?6W_7yN#s1UZ;x}(&xXx6^D#4Hzm9{f^%|mridFJWr=d#Wz Gp$P#0tKPN% diff --git a/briar-android/res/drawable-mdpi/social_share_old.png b/briar-android/res/drawable-mdpi/social_share_old.png deleted file mode 100644 index 8aa52bc7d8a74739dc5e0ad9c35a006bdcbda182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1394 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi((b2-i#nH^v$-u?X(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq1POzUQlAlEdbi=l3J8mmYU*Ll%J~r_Ow+dR<{_r zx*C|6;xrGcHwCL(zX?XsPZt6!~N_cHET={uFrtNkzkS!VgX`uUvq-{%A>P3%ye zo4R$$P9vsGUuVhntKTf-c4XerEM1^8%Wl5D8KY;Is07o~8hN(c34Apt;+kv>I8GhV z7M#4TInMZ-gK9y8xv&3^Ke9W{2q+v2=CM0HQFj5`mu8*0g~bOm&**h*mYK6-YPR0C zDqYzHpHAu@^jgI_rAh9>NzZK-Crwu{>u!0>8o|#0k!wSv+5;By{-a6C0x;41s8gPWIyAJ`XhKC`V`OSS9g zlY=YfeJJM8Iri)Gzn7OU_`lEcewZiEaCW6ozDb9;OyS+PHMNQH9MX)*3j(jn32d8f zvSDF(^5H;cX*Jyghk|p0m;dLOCSeor_~e&jM@#lKA&y!3;*W)>qUEmjQ;cf-`n8N$i^W2yU>O2ZR}N0 ODd_3y=d#Wzp$PyYS@Qk> diff --git a/briar-android/res/drawable-xhdpi/social_new_chat.png b/briar-android/res/drawable-xhdpi/social_new_chat.png deleted file mode 100644 index 9d5d9049252fe043a5b55b80cc8b5b8b8af37b3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmV-E1Ht@>P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*e; z5*j37SuvCV00O>AL_t(|+U=S>i_}0E$A5dty?7Rah^r_FT8M=wGPNJU+OOgFu(KB| zM9;!+AlqnTF^Gzd9BOmufmf|>%WigTo}6Ltb~Bl5HkoAp%@UY|Jik1zGYdgMK|w)5 zK|vi=FMFYsx&xdArk>li0qkk5-{mcgXRdDoSAfJ*!;RQvfG;*T%mO$ETm&Yb0$7vZ zXTVz*025&BDS${qcUNou()OmfCAlp9@=vwagCaM!0YD_byG4y}1AwD14-Ax2#};U< zTMOXm%L4<~hxiO&TGn`50Gk=w%dXjf9Pix%UMw;`&-HBp^n~(z;8#WQyCZOogZqCi zYrGAB1b7bYSLDVIGo9N~ytjz)*({ppZdGV=*$*sgye)uHMF2*18=n^fM#5kRI9~yP zb@>3MF5_(gM8LfYtHAHF0LmC|TL!Bfj^YBal2yMzS_b!lzq6YsE1vPUfc~;Vrf3;_ z0(`Ey>$?ivckCHTyI=w&Wn*ogP8wk5yhCjy{dkm+ygfd?Ee<3aJv=EAF*d;ZV| z1OV5|RmT@qwe?l9&mRGM%-<6<(!ccOdMG{3qR{{5 zMGlY{{|-FJS$aD&3w*Sg1&mKg(B@nqDY8EG^fr~jo@;Um8zN1XO;UFGb5!tv0Kl(S z*hY~wOJiwtItSn<@JYJCgGx(BLz^Y1ZZ;&r03ZMe3hJ`{0Ve6U!bNUCRR91007*qo IM6N<$f?o?}0RR91 diff --git a/briar-android/res/drawable-xhdpi/social_reply.png b/briar-android/res/drawable-xhdpi/social_reply.png deleted file mode 100644 index 1dc01d7df2c545b5cd55a8cd8da5768e7bccf80c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1701 zcmaJ?c~BE)91V8`5o!<=L6=2QsAP9zLP+EaBtROH(m**zR6?>ygk;xbF+mvwN&y8g z5M)|YMbtW2w2nnZQp64&MWNuJ2x27yDiswfI?`dR-5_B9knYUxcg%b5cYN=g-4!j4 zu(x%!rBEpLf=Hf(979a+C)VV*RUg2}BH*N@%5Ol){x`DJURNN;jhtR4UKf z+KL8HC>AReu?a+iD2gM)lr*UcL(?g7l1-rm1nY3AEFC3)6m+vf6$p+tUI77xJP?d$ zieM2QhNdYZx2w^Z?c!M3_H-Fr4h9DS0XhyTphO8Npi^e3G#p(ZIHk)W=ca841g0QF zdLZ~dsRU6p5QeEyfJuXWWw0Lt_%Ub*17%@D$7vmuxc(doVMfrn~j zY6VUxFcn}@l%`;rL?B3J`o07uJ}axzOt*<_7^IWp5JH1ZCCvauqW^~~m9uCKAwfUn z`%z&{Y!;3}5>$g_s%7NCrFxn|;hZovDkU&=EQV#wbTK*&BQQ-Gh67QhiT$s+CQ*W9ppF0=7 zIk^y-3}iam{~Yzq7U>_;bk?}!V%GYoiuAjhG&Vi)^*i#uxCnUMSlzv6-wD&5xK7{f z@RGR=uICQWjO$yTINGa-K?i(geo67t^IJ#GIwqw#^0Wh=JMp;}eL&As6UF=Z+Xn3V z+lHeuI)3ZwVYK$#>G~>0Uz_hxSS`@%cRcN`>noQmF3h`GGEhb}fNnYkpvEGnm{?-Wh%sZJx4FPvrJ~I#I4wq3D z{{1C9|Jw^uL75BNJYLq6W?LLgx@TQ}0DA0K6*HvwDfn@pL2Tm$zP#)fU3Gl~ZwB#G zk>wpRxhIUP6V@MZeNt~(iN734eAwR9W!wn{TX)MNb?wLO9QipL3R{KDON$Jn_?}CD zel{_`sn;unb-Pw$VtRkZ*A*j%ae}4O(&Qmp8eC$u;xL3Y(D^<9-J(UTG+Z>pak> z#EOSqujKF4pKRw?RavgODtyp+^44DW=D4RsZbrnQ(W)xFnp$bKv#}l33q$BHyoLJC zA$m{UI-8+K1wK_rl5_jtjQ7S)7OCHEtT4*!EIn71{^fW(Iy3;2-Fc!^u3R}_O+*4LSsvn)0A#`vNhs(6bqMHx|a+?m>MKXxNFBJJ{;?C+0^ zt4f6OBYC1-yNcSl@!nMB_Xo|qf8tW~V%;@b*-$}xlwm{t zO`>V(?T40v{Pufx@BK)nBX zdPH(7#P=y2T_yI9uzA(6I%KGzQ0Xjr(ZUTpet N2>4>&nb73?e*s@?j?e%A diff --git a/briar-android/res/drawable-xhdpi/social_share_old.png b/briar-android/res/drawable-xhdpi/social_share_old.png deleted file mode 100644 index cdafd8abca1912ff47f812c38fd29994da1d7867..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1989 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=mqmiqtfw7yZlYxt&p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaT(5}%PQ9SSkXrz>*(J3ovn(~mttdZN0qkk3Ox$j9 z!D${;ZwgMg7`x)ss}FRHJ}7FDq8cUyOg|tdJmCU4@T8xb2Tbopz=SQH<8*_8fyLa@ z#WAGf)|=TUvqc<5j%BAkN{LA_a0^_#!@=gr4tLcZ%6b`mi!>^@=dpf#bkhF7k27{z#eQf`3A!8nes%cO z_j}j1=$sBx-r35;hzvJvTeV8dzen7Mb+RMlgoE3g)-Sk!bK}O17q9Yi^UU6`GeLC* z$Du!Km~EJNMO;?TRB{l!!Me&(k#}pasN%Hdtq)9oEGmAyf$>=P!L13lz3&+JF6ck; zo-=^+TXE$NuZG+?59jgdMSmQ+#8_&f$|K^;Tr0#Mc^utLN#$(OCCN)fpceC_nGK*^* z@)IcLcx+f=FGDO0);PC z?>sp5Gjh&5ZR2|WD~tAj! z5BZjSeV#SrPT+P=zkRcf=NGVO1y;3mY!aEXr22Y8Yv0Vi57qHavvpEIeE>M6PH$$7w%PO zjo?Yk;;CzR9b5F%`_9eVd&J6KaRjWa%(pgLoow*<;Q!~`mzRlAATC^+E$@hXW z(-vS@Pji@KxmTYh|c;{z_~*34>)Su>JmyxMk04e%=Bcn!Xg>giN6%N zl*;B`X*!WE=CaF2P$Ae;$FtufTxhk#A{DiJp9Sv}O*`Tva3Jqx*P?IAA=@>oBOf&y=jL{>p8D)FT)u0pE7NF_O#`AqG^P@Pf<$8;+mTuTgZcc77}oYaQKv@kcl?na|qusqVxBjVXzD zkH7epUh<7WxbIY#;qn=8LM~spvUn4xo;c@{eJ|6})VBDECCN32X0gak+cw*!&HjMO t*XM;l=luJq_@lkkp#cFW-mc>|U|2pqb=lf2<{6-h)zj6_Wt~$(696}+7_k5V diff --git a/briar-android/res/layout/activity_with_loading.xml b/briar-android/res/layout/activity_with_loading.xml index 4f153dee1..1aaff812a 100644 --- a/briar-android/res/layout/activity_with_loading.xml +++ b/briar-android/res/layout/activity_with_loading.xml @@ -22,15 +22,13 @@ + android:layout_height="match_parent"/> diff --git a/briar-android/res/layout/activity_contact_list.xml b/briar-android/res/layout/fragment_contact_list.xml similarity index 100% rename from briar-android/res/layout/activity_contact_list.xml rename to briar-android/res/layout/fragment_contact_list.xml diff --git a/briar-android/res/menu/forum_list_actions.xml b/briar-android/res/menu/forum_list_actions.xml new file mode 100644 index 000000000..ddc26364e --- /dev/null +++ b/briar-android/res/menu/forum_list_actions.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/briar-android/res/values/color.xml b/briar-android/res/values/color.xml index 763b9c936..16a1983ed 100644 --- a/briar-android/res/values/color.xml +++ b/briar-android/res/values/color.xml @@ -31,10 +31,11 @@ #ffffff #333333 #333333 + #06b9ff + #ff0000 @color/briar_accent - #ffffff #000000 #ffffff #FFFFFF diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml index 56553c73b..9934c12dc 100644 --- a/briar-android/res/values/strings.xml +++ b/briar-android/res/values/strings.xml @@ -77,6 +77,7 @@ %d forum shared by contacts %d forums shared by contacts + Show Unsubscribe Unsubscribed No posts diff --git a/briar-android/res/values/styles.xml b/briar-android/res/values/styles.xml index 914f0a37a..22ad6a119 100644 --- a/briar-android/res/values/styles.xml +++ b/briar-android/res/values/styles.xml @@ -67,13 +67,13 @@ diff --git a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java index 6e063bb36..9838eb06a 100644 --- a/briar-android/src/org/briarproject/android/contact/ContactListFragment.java +++ b/briar-android/src/org/briarproject/android/contact/ContactListFragment.java @@ -98,7 +98,7 @@ public class ContactListFragment extends BaseEventFragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View contentView = - inflater.inflate(R.layout.activity_contact_list, container, + inflater.inflate(R.layout.fragment_contact_list, container, false); BaseContactListAdapter.OnItemClickListener onItemClickListener = diff --git a/briar-android/src/org/briarproject/android/forum/ForumListFragment.java b/briar-android/src/org/briarproject/android/forum/ForumListFragment.java index d3bec0aee..c31fde439 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumListFragment.java +++ b/briar-android/src/org/briarproject/android/forum/ForumListFragment.java @@ -1,18 +1,20 @@ package org.briarproject.android.forum; import android.content.Intent; -import android.content.res.Resources; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.design.widget.Snackbar; +import android.support.v4.content.ContextCompat; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; -import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; @@ -21,8 +23,6 @@ import android.widget.Toast; import org.briarproject.R; import org.briarproject.android.AndroidComponent; import org.briarproject.android.fragment.BaseEventFragment; -import org.briarproject.android.util.HorizontalBorder; -import org.briarproject.android.util.LayoutUtils; import org.briarproject.android.util.ListLoadingProgressBar; import org.briarproject.api.db.DbException; import org.briarproject.api.db.NoSuchGroupException; @@ -43,12 +43,12 @@ import java.util.logging.Logger; import javax.inject.Inject; +import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE; import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.Menu.NONE; import static android.view.View.GONE; import static android.view.View.VISIBLE; -import static android.widget.LinearLayout.HORIZONTAL; import static android.widget.LinearLayout.VERTICAL; import static android.widget.Toast.LENGTH_SHORT; import static java.util.logging.Level.INFO; @@ -56,7 +56,6 @@ import static java.util.logging.Level.WARNING; import static org.briarproject.android.BriarActivity.GROUP_ID; import static org.briarproject.android.forum.ForumActivity.FORUM_NAME; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; -import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP; import static org.briarproject.android.util.CommonLayoutParams.MATCH_WRAP_1; public class ForumListFragment extends BaseEventFragment implements @@ -82,8 +81,7 @@ public class ForumListFragment extends BaseEventFragment implements private ForumListAdapter adapter = null; private ListView list = null; private ListLoadingProgressBar loading = null; - private TextView available = null; - private ImageButton newForumButton = null; + private Snackbar snackbar; // Fields that are accessed from background threads must be volatile @Inject protected volatile ForumManager forumManager; @@ -93,13 +91,14 @@ public class ForumListFragment extends BaseEventFragment implements @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + + setHasOptionsMenu(true); + LinearLayout layout = new LinearLayout(getContext()); layout.setLayoutParams(MATCH_MATCH); layout.setOrientation(VERTICAL); layout.setGravity(CENTER_HORIZONTAL); - int pad = LayoutUtils.getPadding(getContext()); - empty = new TextView(getContext()); empty.setLayoutParams(MATCH_WRAP_1); empty.setGravity(CENTER); @@ -121,32 +120,6 @@ public class ForumListFragment extends BaseEventFragment implements loading = new ListLoadingProgressBar(getContext()); layout.addView(loading); - available = new TextView(getContext()); - available.setLayoutParams(MATCH_WRAP); - available.setGravity(CENTER); - available.setTextSize(18); - available.setPadding(pad, pad, pad, pad); - Resources res = getResources(); - int background = res.getColor(R.color.forums_available_background); - available.setBackgroundColor(background); - available.setOnClickListener(this); - available.setVisibility(GONE); - layout.addView(available); - - layout.addView(new HorizontalBorder(getContext())); - - LinearLayout footer = new LinearLayout(getContext()); - footer.setLayoutParams(MATCH_WRAP); - footer.setOrientation(HORIZONTAL); - footer.setGravity(CENTER); - footer.setBackgroundColor(res.getColor(R.color.button_bar_background)); - newForumButton = new ImageButton(getContext()); - newForumButton.setBackgroundResource(0); - newForumButton.setImageResource(R.drawable.social_new_chat); - newForumButton.setOnClickListener(this); - footer.addView(newForumButton); - layout.addView(footer); - return layout; } @@ -163,9 +136,36 @@ public class ForumListFragment extends BaseEventFragment implements @Override public void onResume() { super.onResume(); + + snackbar = Snackbar.make(getView(), "", LENGTH_INDEFINITE); + snackbar.getView().setBackgroundResource(R.color.briar_primary); + snackbar.setAction(R.string.show_forums, this); + snackbar.setActionTextColor(ContextCompat + .getColor(getContext(), R.color.briar_button_positive)); + loadHeaders(); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.forum_list_actions, menu); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + // Handle presses on the action bar items + switch (item.getItemId()) { + case R.id.action_create_forum: + Intent intent = + new Intent(getContext(), CreateForumActivity.class); + startActivity(intent); + return true; + default: + return super.onOptionsItemSelected(item); + } + } + private void loadHeaders() { clearHeaders(); listener.runOnDbThread(new Runnable() { @@ -203,7 +203,7 @@ public class ForumListFragment extends BaseEventFragment implements public void run() { empty.setVisibility(GONE); list.setVisibility(GONE); - available.setVisibility(GONE); + snackbar.dismiss(); loading.setVisibility(VISIBLE); adapter.clear(); } @@ -240,10 +240,10 @@ public class ForumListFragment extends BaseEventFragment implements listener.runOnUiThread(new Runnable() { public void run() { if (availableCount == 0) { - available.setVisibility(GONE); + snackbar.dismiss(); } else { - available.setVisibility(VISIBLE); - available.setText(getResources().getQuantityString( + snackbar.show(); + snackbar.setText(getResources().getQuantityString( R.plurals.forums_shared, availableCount, availableCount)); } @@ -363,12 +363,8 @@ public class ForumListFragment extends BaseEventFragment implements } public void onClick(View view) { - if (view == available) { - startActivity(new Intent(getContext(), - AvailableForumsActivity.class)); - } else if (view == newForumButton) { - startActivity(new Intent(getContext(), CreateForumActivity.class)); - } + // snackbar click + startActivity(new Intent(getContext(), AvailableForumsActivity.class)); } public void onItemClick(AdapterView parent, View view, int position,