From 4518f59a540763a447940d3916ba3b400cf43b3d Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 24 Aug 2016 15:27:40 -0300 Subject: [PATCH] Improving notices with messages attached in conversation view --- .../res/drawable-hdpi/msg_in_top.9.png | Bin 0 -> 16296 bytes .../res/drawable-hdpi/msg_out_top.9.png | Bin 0 -> 16258 bytes .../res/drawable-hdpi/notice_in_bottom.9.png | Bin 0 -> 16110 bytes .../res/drawable-hdpi/notice_out_bottom.9.png | Bin 0 -> 15910 bytes .../res/drawable-mdpi/msg_in_top.9.png | Bin 0 -> 16095 bytes .../res/drawable-mdpi/msg_out_top.9.png | Bin 0 -> 16035 bytes .../res/drawable-mdpi/notice_in_bottom.9.png | Bin 0 -> 15843 bytes .../res/drawable-mdpi/notice_out_bottom.9.png | Bin 0 -> 15818 bytes .../res/drawable-xhdpi/msg_in_top.9.png | Bin 0 -> 16728 bytes .../res/drawable-xhdpi/msg_out_top.9.png | Bin 0 -> 18567 bytes .../res/drawable-xhdpi/notice_in_bottom.9.png | Bin 0 -> 16174 bytes .../drawable-xhdpi/notice_out_bottom.9.png | Bin 0 -> 16162 bytes .../res/drawable-xxhdpi/msg_in_top.9.png | Bin 0 -> 17102 bytes .../res/drawable-xxhdpi/msg_out_top.9.png | Bin 0 -> 17014 bytes .../drawable-xxhdpi/notice_in_bottom.9.png | Bin 0 -> 16487 bytes .../drawable-xxhdpi/notice_out_bottom.9.png | Bin 0 -> 16461 bytes .../res/layout/list_item_introduction_in.xml | 26 +++-- .../res/layout/list_item_msg_notice_out.xml | 32 +++--- .../list_item_shareable_invitation_in.xml | 33 ++++--- .../android/contact/ConversationAdapter.java | 91 ++++++++++-------- 20 files changed, 109 insertions(+), 73 deletions(-) create mode 100644 briar-android/res/drawable-hdpi/msg_in_top.9.png create mode 100644 briar-android/res/drawable-hdpi/msg_out_top.9.png create mode 100644 briar-android/res/drawable-hdpi/notice_in_bottom.9.png create mode 100644 briar-android/res/drawable-hdpi/notice_out_bottom.9.png create mode 100644 briar-android/res/drawable-mdpi/msg_in_top.9.png create mode 100644 briar-android/res/drawable-mdpi/msg_out_top.9.png create mode 100644 briar-android/res/drawable-mdpi/notice_in_bottom.9.png create mode 100644 briar-android/res/drawable-mdpi/notice_out_bottom.9.png create mode 100644 briar-android/res/drawable-xhdpi/msg_in_top.9.png create mode 100644 briar-android/res/drawable-xhdpi/msg_out_top.9.png create mode 100644 briar-android/res/drawable-xhdpi/notice_in_bottom.9.png create mode 100644 briar-android/res/drawable-xhdpi/notice_out_bottom.9.png create mode 100644 briar-android/res/drawable-xxhdpi/msg_in_top.9.png create mode 100644 briar-android/res/drawable-xxhdpi/msg_out_top.9.png create mode 100644 briar-android/res/drawable-xxhdpi/notice_in_bottom.9.png create mode 100644 briar-android/res/drawable-xxhdpi/notice_out_bottom.9.png diff --git a/briar-android/res/drawable-hdpi/msg_in_top.9.png b/briar-android/res/drawable-hdpi/msg_in_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..bcff2b787928c06f490cdbc77b85eaf411fd81b5 GIT binary patch literal 16296 zcmeI3dsGuw9>+&3RPa$OyNHjqAubBaWFC2^ydtPjz#^i8kFAr*42&e1m;?w&J!n0) zYOP%rv_7gwMb{Oq93Sg*Wov!n0l{{utx!*O_lQXGzvy%f! ze)oHSzu%qDy}x@Wf6UtSSu;ljjtzt$Xhd>SVg~n_!u>0U`g89AbjU*f! z{Qn?m`_51ZdUG99E8MaHd*XCXN=SpSI2$l zn-QtR)y0t)Bh~W>C0S|dk_6U9Nt7}bOk#3eqSneVr54vHq9izqsSs3wU|JZH>$pD! zD(QJiV*|Nw(KaKk%SfEjla8}uq`3}s9I3iBMieNGn zF`JS8JnfDQ$~(w@J?)uARtm|W>}?R<(Qhbj&V&Q? zm)}VC`dIUACKqTUiBKlW%;m9j46uFySaVqiYtLl|NZBj9AoiEo!O#N$)5P#JnWO zUYgvlz%5OF6N|MI++6U(_G$AD+3mq6a(C!w3XCcR%`IaL*5EV&qZqf&wWtP%aa^TP zW0aCa-B|eeKJEkOD9oiSvHY$MqZ%03W@4yLsnW^iQ&C)pqMo6;dJP=J&eD!T!ba(H zxPpvzA0z3WT}6_Rz#kh*nNkulpRpL(LVKhq?u(8CCm?ePOAcj>MLdq42GAuM;U~|; z{4dVk%awGWsRu97yFUIe=FUB%FP5XHw)>VZzjNynY!tzjbtcQ2UT!ghPG02RcvK?c zpuCl$%ET}oS1h>JQz^Yc+&zI9X{?c;40@z9PRf*($Z&TncK#4hdwf8lU&m~(qmsk#O6GF(5qccmrQ&nb?Ait0 zt=ug+_iF&@{W;KQgX}$ge#Enl0G+xp_Y?Nl5 zF;-v8jQn8Us_;NtlI+KpHrwQmmUlaTFl_!$OYI*@{y2Fya-pQ-Y{%cnhpmopQHKqI zN+GB-Zlk&_uKvPR9 z0nF}+V-84X9Cf5;cI^!HU!xE3Ti3RyacTL72^BREhHkR&51KhLy+*2pnK7?JlBTAn zwtM&PeP)WCnDN#dQ{ukQsy-O$_i1Ws>bblV3+kboW2fE?9X4&Te)gA9wN{(0^Ik(k zLvYyYyvTpX_zkbRlzD4pkl%;8kGk>;3;%W_^cOO0UgQT@g>0rN_pQ<6^a~d)dRl$@ zbobS+bHORq_o>jfpxn#yYwgI~DP^0>%F3=BX;Z-$Guq}J*dG4zzoQzTSj^@VqeDVI zJ^5{WM@WdXa^vdbH$E@k^zE~Y7ZaM6?R;|U)~)*TC9{VNtIAGJTH1Aa)!m$&oLz?w z9a?(q_R}TBhbyvIB~A!#*kak5wdD5YeNv-h0QJE5EK*4pJK7PN+JMb z|3y@vIrDSXf~tACU3FzEZ*P`CO9`PEavzbgLMfujPO^ceInZNQYyj;Cz z_$1^XK~wxsoP1H5n8b7Gz`STTd7RwLa-Q7ja1yRj+Qx|Vq zOeJ5p{%K#ssqMRVy}PWW-s?`UmpZF*AtZ1c6O^DCIOAF=!M z4lmc=dF}g^V|R9)ze5eL7zy1OGHS)m=A-Wqfn=-iR!sQyND^bnKZXCbVPC+hiJ>ch zvhEIxcWkLf(XsL2RA$z9Ge)K?E?9Jkii+5>0nyzXN)(nQ~wEhQn zt=ym}_aB}R>|cNO=l3g0iR?*n>d`4fN3~=(ZA^<_gG8s+RqD?VYQFzfZl%8EF`<}M zSwFUMMAf`Kvm;IpK3p^9Xkg{wyf4%lOQ5@k(T?qptNILJwwUUXC)q)wq(_R0l0QmmjD0& literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-hdpi/msg_out_top.9.png b/briar-android/res/drawable-hdpi/msg_out_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..b6898258a9b40c45dcf5432be4bdad69e8bfa94e GIT binary patch literal 16258 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 G<$nQP7dC?c literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-hdpi/notice_in_bottom.9.png b/briar-android/res/drawable-hdpi/notice_in_bottom.9.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5916e12bfad69105ad0704505fb26969641fe1 GIT binary patch literal 16110 zcmeI3eQXow9mg+-k&qFUsO`q60MFIB7IMB9-`T#yF@!iYp>>*uWF!<79^ajvTWp_W zpJS7DErU^MqMK4^X~&DGrXr?7SO)E0fUPAJi@IfOswfpqT|LGM4Qy?-bqUq9?m55b ziSsCb^p9ye%WuEu`}}^t=lMKucYoY>+gk6hsa{-75JXK&v$q}oJ^()}tLDLPdnmaA z{>+aycgG3hi?-izyb~<{%};&RU#;jo}5>#no9@nsHDxM==7) z*hTo}XiM&8^;E-u?wA}9+r4XZ>7Z3_?a}q9NKwgT(w4N_v{(?j3j#&66w8vZ1{vQP z(Lsug#P7}q$;a_3aVe%obybU4jJUwBCG>i$)ksu$<@yzl`h0~{k$8?Cd&v?hys6w?XaV-&(6j=T4@`0NAVe4|eokgIgekG!p4F$&xAE;b@ zSt|HM6R}VRv@B6dND0F{amauv3n1E~=~}!;n;~UE&Oj`eSXTox05p^t-ISC%gPWmb z-7<43JJfCn#pe?rim7n=gOFE~5=OsTydEgnWK|Y{6cAXuoh6+T$B_X$=OSG^Cy=z$ z?ht6n!2#Ckre+LNoK?A0B`LCNM%E;lrT|2gWV`H??RL^3OAeA@6bI=NoHXg@IF_L~ zft6_?pRgp@v_vhDxDFzclIx3V^hM_UjKDZaMs@&_55R7?039HCr(IGc5O4yS&xbB? zpBCDy#MFL8UK`WGnI#kjvAAMP=Xz^?J{Q(pj&o)~h-#TO2`-6Mga9ea981yx&Plrb z3{T1u?+nN;#R+Jao0{fcY!gi2&dQKve)P(tr6t7$04;6Uf{O=A!0zzd z0hiBJ60Ddj52pmc^vTq$#&s>WwL~zQXlym>mAY;xAaNR+KmW(Wj7M+2F0keuL#44##`>) zphjdZ8NV;z#Ho%mCy;tTB&f(9D({#tKwaFFF?b>Me{t+)x1^^HJ=(?M{FpX&yl59h zmjAyRyX=TgU5@#+J$?BaJGa;vQvh7n9hw%J-DE_aipY!c6fe+~;!1IJFpLNn3s+bv zg&^6QNDQAQtAVXkW5CshjF=Ilq$U~zUa!eO2eXP&TDK&QEQtXv76!UU4TGRUMI%8s zRV*y2Sv=+%wU8Er%~CveH&w2dWi^LBV`ffl14ZE8vhb$L~I5f(Sj zHfP=k70Nnx7ae(cjg(22aV!yXj@f}LxfjSxnQSS%(||WQRN*dX+H5MEsh{VcVvj!0 zs7Nd`2?7Lfnz-l^fforg}&`B}PhV%6;v+iLeOWyuRizUno6Zoa z%8%xy&-}V_+k({xid~*8Fzc z#!l;BZv6E~aMPnth&u;cBO8vK9lg}_s~_I=-j>Ai&Qojd_3t^ok?$v7dGN=Z`nu+RWB>Mx@x>Pp?5zILl~=B=UU%)p zi)Vr7De>t0!@FCKbwACIJ@m^vUi|wn(mjWt=q8?fWT;gO-r4tN#jZo2^miU@xR{Qu z9O-6OENwm3dyDAmS$*=E;kpa=+&0$uR<-3T&$|D(aM9brSG}M5pS(bMhB`m|X61XQ zU%$VvT{u6y?95NKC6A^Le|2G{cw_Y1^EJk#s| literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-hdpi/notice_out_bottom.9.png b/briar-android/res/drawable-hdpi/notice_out_bottom.9.png new file mode 100644 index 0000000000000000000000000000000000000000..b941097643c79bdffe74edb04ffca9f4baad799d GIT binary patch literal 15910 zcmeI3e{2)y8OM)N@gso&g3zW_SI?+wtK@vYZQo%#rEx+6bI6=f64rE_@6O37w$Jfh zh?A*Xnz2zN=rl^`Hr91p3C$R=blpa?b_${kVr*^MfUJRRO4+1|trAq424&jVd;a;x zak%`^KlaCKo$bf(`+c70?(@FS`=0-}J&g?;mzUgMf??S5`Z|9Qd~XKt^-C6kPbSh+ z0lt>T>soaTD_w2A7hvD{?tMV8TWxMJS^}RFBrWO?Wi6yQlF>L&W0rGy$cR4ryROQ#XQ2{v?Zf>dn1zg$OFT)}4?PAYWHJP|Z$ocA2Z4N1&RWO3Wx43XIv^0~O0J zOF5r-cOsGkElY$FQKBG^4j52H0mM5rL(@C7Ia21jQxJMlt4h(l2F0)7bAX6>Nc;d-tPk)4q252Q3~@k!_c@(Vp%-Qux{MVu{=(? z7$;9kPFAE{9%9Zg`B{}o1*J&WjI2o@O%8~_xLh11$qeq4Wfx9SiW7J9E)oy1EKQLt zPs=2qO$Y^>m8d?Z8)8gSGS{MlBpk)N7%t4=A;s;)DVYre%N53*yuv$qCggUxbJqg7 z&kF5V66#Jxu1#psR0+k!gszy=*=x_v=UmNYIHw9iP-mZ$EXoYWN;K{akuIF4SsCXU zNyZgPWF)ZQ&`us)?kxBGIe`S8bT=TG9lhdcLt%vphgpz|4@+sZBIV?8-pz?hm~n;} zkKsKY!(bE#=kx@NX!J0j{lIp%1BRRK&*a}o3DA{Yzv zw4t{ADW^TmL}@{hA)q;u4Y3T1a|-3cNjI3?e3<5NmL_RYV%U(#foUzaEpRS@WGhHoAjxc~lxprEx)wHi#Dub;9TcQ5y^S+|J^EwWxHBE+P9SxNv35oF5n0D)-ORB|kLb*D%+~ho z@-0WRrz>|Uo@0_r8t`@N}$MWndBm*Wd#8OnyiLbSr`M{tjVGw&MOM6h2qGP5Y`e=(eSBJv0WkJv33uUZ-kWjJ+4}dXbEsyijVOS z#hM{6bGtV;Xs`;1sr8QX5VP6}^)2Q;6zNXsT{H<^1Z93^T;c9Q*Venc!rg_gdC#pe z)$q}oYz57bmw8Vjq+m3G`*6kQcS-!exmF79d;`L<9>EE|`X;jc{2af&~Z{OvBPfxGWLD0)z{uVQC{=mWW^h!UfZ?v=J^#M6dwi zf@xUV2$v-ySb%WBG%Rg|%MuYRK)7HUmNvp=i3k=TTrdqw8{x7<1Pc%@n1-c&S6n6e zr)!lMc%-%mJUcr+u3iJr-P)wOU;xAV9>%c#uVUE8cfdDj?jI|_!frUtL^{d zcrAu~s=VI6p*eZ^!$Z%+-nK0pfBCU1F-pBzb@AQTR^0gSec!CSr~Z{+@9KVU|KQJ# z?)vv%CZ9d~+;h{Brb}&Ai{pYf zF78h+_yC2NZ-nc$kvwi)JrPS2Y&gM5i zUFs2k-?#RmraP(~+Cj8K~=u|s7C_r1qGaCOu1?Vb;A zPG6|#fA#9gbK`3H{=l+{vAwT0OzpmS=`wL<-#=HcKK9J#JHGP5qEqL>$F5)fO~2rM z@Q(+E7VTvZJX|&$S<|gQHSM@Icz?-{pZ$5T(R*QJsFHmg-&A_TyKHFR;y~>1(B>cf zr0KP-uOAMUovWPSes|>Q;qQNMwDRn}+e2l;Z0JX;T?5M&wfyI$lSe1ko*fO2_FX)- zy{$_s6+gJxjkjT?73Zf`>_1am@{9h~y3qw^ADFoOha)HD^Q+YNOA}weaJ+Mi_uiVx z<`2tm32ybN_V-u(YYqF>so!quf1|PW#b5n&&-%p&_x!nQ`9oEG_Y5!IuFF@yJn-@Y a?5~bBm!`&^>@}a{uCHnEpLk-&!2bY+#Fx1M literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-mdpi/msg_in_top.9.png b/briar-android/res/drawable-mdpi/msg_in_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..0307d2f6818e235b947ca2473a26dabb88adcef5 GIT binary patch literal 16095 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 literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-mdpi/msg_out_top.9.png b/briar-android/res/drawable-mdpi/msg_out_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..526edd212be689c540547304450c4a6dae1dd77e GIT binary patch literal 16035 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 XYJVr^aQj;AG4hh41)e=~t6TmHdq(AZ literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-mdpi/notice_in_bottom.9.png b/briar-android/res/drawable-mdpi/notice_in_bottom.9.png new file mode 100644 index 0000000000000000000000000000000000000000..f64d08347c3473dfc38e7b082e8dd629327fce6a GIT binary patch literal 15843 zcmeI3ZEO_B8OPUYA=rSThPF3UT)K{a!Zbqu6J#p$Epkl)F#~uXpFpi|=kP zyKDRGw!~>d2oU) zLhz$L+Yz@YYVk7Xzm9tPhqqAFUEkBAF*_Fdx~v*$kD?iUz>`a7VQ-2GuF7Q6)6BSC`7ZWAi+i<`&=rexx!Md9xFnC4Ryl!p`2rqJ3h;jMP8ZK|UWOGJ zEY#I7o#7A^Jesb_ikb-Ug22;0RTSxjAo^*)BnD{K zCwK#_>J=5<7i8uPQ(0BTR8=VoHKQ3SOj8CT3!;}30OzN@n&ziD4tQyQz{k>kqR4Zs z7~nNFP)b-8Y*wPqjAbhs6%?;Uhe;$=R7FV*&}xG9(UKxc@LB{wO9_ot1lE^OeQYUo zmHVvFVPNV*KwD!P>3j)g71ILFa&B>#)^oY$ik$NWA?vfpqymZe@f=4>UP+)8QG{Le`4P~jNqD(xz+wl?S3kUWy> z_RV@mGls2|r6JCAoI8QquVj)y3o#|fQUmG|WSq%M>Hmv!H@}kp@8*tUWuE=Nn!Cb` z&Me1LZO<-WXXlpNOrXHBjv7X4ev1)xs;sI?JP=lFP^lDel;dPrBfPIfyBws@6NwQq zG(9mgGe*AJX3UrqqpBww1KzJ`iml8mN_F3=IGQRa3^T3RAw8`m0h7%ngG{Bds%Pbx zYco=Y35NwjLXfG|T;=7Q_|6#(Hv%QU<#9n~RvX$s<{U+-!F+!o&%zhOIqyZ+Y8iEn z<6Wy|)V1PycSg5Ed@&o+T;=85mdJS+J@8f>guId@NI?c|Mm@Up97x5&I=ox4oI^l@ z6!Si)P}4D9aTMVYD~?q{(Xmh}RX5G~U9iv!Z^_}W0jB(OVAcj%K72mOFO@6$B%>m+ zND>4H-Xys2d=Qo3LV(~+f(y?FQ3);t2;L;P@O%)J;6i}lO@a&02T=(w1PI(=iiNQ$xOJG-1@B}hemg9zj8e}DIJ)~WLLG`w)2rj|HW5hts{%- z{_yt)>Tdo_N(tZQZf!pLqqCm6W7o_Z-&^?B^6?wTE`ja2+`NgB-e+^z)-#hT@$<67{oqmE7C$}dz zwVtZqL-UjCr&FnsDc@s2;sOHnrGt1w2WW~-)=bm}+ z^#fc=e<}Lnf!%{EcQ>{4H`Yzm@B8MbV~56G=Nb?4)TW8)hi+N-&!rP% z`q-xU&zJ0Iz3<57$D4K~xBcUxx3uW(OD_Iky641~+xctJt~TnYuPg$WMnC)8*T$ci z*mnPu_h0_=J?#tY@7(k5kyDfVFXs67-&_)%8bAHm`2*3l*B{(Al-Vm>xbIWc8?meJ V99w?IbRNU*Y~K(*+}iuy{{Ud%d{h7c literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-mdpi/notice_out_bottom.9.png b/briar-android/res/drawable-mdpi/notice_out_bottom.9.png new file mode 100644 index 0000000000000000000000000000000000000000..674b59a31bdbb79f63c751184e9fbb2951fd96a1 GIT binary patch literal 15818 zcmeI3ZHyDg8OQemLct|PaFJ4~rnn{qXj$)i-|XG^48*?6U2=x&ofD3RkgRvd_7>ag zc=xdHB%+j*52aNih0v0Oh@vzFE-%nFB+;RkORg=nC5hBFEkU}LMoOyEM9>c@iW)>` z{kk{yjqXD}RMl8_wx9XW^E|V^nP+DGVZSr5@s1ljU-VEEbwgioY!H5m@c*mVFM#iz zsm=)eSXk)YVo}uRI-UOx>Zt=?ps3sS7>QwfINq;lX3nqbW)k?zxdQA>QQ>vvf~su? zwl@jVM!w5;>EtP&*U-Cso5eUAFGNAc=p8G9p|On#ZEU+H>%MgnPq?hW06Ac*-f}LR zx0G_1uM$^*-<@X0=dE7do+%h+~7VVF{>;sCx$-UF~Y;5U6_x$lGm0!8yYR zYL{Qv8a{=QVzvTW*BFomIheL(>!w^b5u52nAaQUm*n5m68*VPw`K*6sYx}s_+nd5nm4r+oxr+6VmheSc9 z*&r{;tR@L67YsAAhH0*Fc)p?OlCN-5-B_T+Mf*?uDJTE0Rzy^Y;R6VrI zy(M%E6pbA~?r*QvcPJz%5gfcr&78g zNcCKcSJY_mA(5}YAATg?!7aAs>=$QpCx*q{k_1-LYwO)O%ma4wu- zyV{yVu6j6$svX))fuQR^)g%$FZk4BHK>)NGQXwFb<3b`Ek_1_;$9K8Uo}-ij`G~Wt z(`<<5T;ud$rMvh`4vUb6?W%#>YHi(o?<7G$J)j11Iw6>l`^92=rv^se4) z!KmF)GzIW5%2quAXQNc)zBrwmPRM?!K-#x~8PeVotRqMovuwrjSpEnP#J_ zXY-hgnpv|5hXo>hm}%GS@^Vgm=ZuCMfm+$}0%4}54edYd97WlYO8+3o!WR>8-fOOI z8Fk%)cXi9CYt!@YykSS+(N!5J((LkbZcCI3j3Ia{4kD5$@?w}ln^BJeqYSdcF$3PM zSk56JLW&h1RA}qCrRgZZAvPUdLd~&SDz2O6$}U)Kg}3DJ*8tP_Inc5}HV&W9@=NoI zKFg>`ERqBPf;R~+JRd|QxDX(Clid^QDZA9>fuKy>XU2m^B)v7!cx@52PjI} zPf<6SkKg~R9*XLi=!15yV z{H5bd@18u(FYfG(9q;~%Z^@E3I(EnApY5mohqiTuJIV_#Uw2_=JZkNYzI^823ogu? zT=np=fmPJrE59iJY1!2qzkcHAarL!##`SGugX5cy4DVZ!xQ;rVo!ZCkIel_p;YSxQ zy^#KOFx{UPJj;3l-+OQUv!Uk(^N$?3wDoU)R+g{1>)NG(tM5N_c;r-v_(RX3SCqGw zznEYWKmPv4XV$;FWo+@XNp=rZCj2kYKkIQ*rgR#Pw=Q}#F)n{N+OzVp|GYW%WiYr?dj5UR*z@g2Z>5gCcK=6Pr>-sE9NBvG z%(K%b75wz)6HC5p|K`nKzPkCD=(n~d-s;``&mQ0Ldo%0q89%r1V`B;^-9qLd^`2+- zLF(xn&m}r{$e)j>`S6wA~`(tlE5qjv=56VBi{Fgue{^QB` vj!)>v&o4dl&dq(VA6|X_UngIGo7&kweZl@<({AT!>%Q)dv6pUtVAp>E$H-_m literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-xhdpi/msg_in_top.9.png b/briar-android/res/drawable-xhdpi/msg_in_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..eba9138bca21366f395907b0dab1180f4bd1e40a GIT binary patch literal 16728 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 literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-xxhdpi/msg_in_top.9.png b/briar-android/res/drawable-xxhdpi/msg_in_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..e9829962e5a21490a451ade82181225b99fa7353 GIT binary patch literal 17102 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 VWXp_?z_|uNp+S*>y8~2N{{@Tj&Taqz literal 0 HcmV?d00001 diff --git a/briar-android/res/drawable-xxhdpi/msg_out_top.9.png b/briar-android/res/drawable-xxhdpi/msg_out_top.9.png new file mode 100644 index 0000000000000000000000000000000000000000..054f45de3fc0f1c87bf6ed7a5a39db4c8426aa39 GIT binary patch literal 17014 zcmeI4X;>528pneRN>E%QDxxvcDuL{K3}FXBf-C`oiZIDcAV3mK!lp%01QEn*<&mmr zT?!g;16u{PDAuhlt+igUDuRNwR$Rq(mg;q@kK&>32rm2(Q+BlrZH7yBHBtQnD9Ew$GTu7~F&XI^J(1jGik!3rG|x*|}jSdpL*fFxHjUX&(;1E?VbKul97YV^W17gASTA$)BrrjdwURSXF( zBzIFnqD&G*^wjDgB8SSQC>Sgzktd)sI07c0?M!6S8C)8jO=Acs43-dnv+2a17fFnV zuS7afDGc%Q=}8A$E~GevAxTK1rKYA*Q(084E*5qd2xxRBjmf0IH7NRYjR8obX!LWs zgY?Gng7gZVD#@VIYKW$|fLxnwa3PUQiTYkW{Zc1MBz>tg`W|{PM_L+?L}O6tG_{&G zn5W(l0`)g?P*1%yJqeh|ZVuK@Nq%<!J=?MP(fiZATEV3 z;L#~^Hk-+yvjt3$F6d2Y7HmKwKaJi1XcSOSUsP}s1&gPo^93vlLm`(_cuKf0d;y87A2~dV{0oF*z(2 zO9@iAau{eAS^=NWra(#n00Dr>;RA}^TxP-gbM?Y812AwhEl}wVT3x!CU}~ais|kgc zzhBxbB&t4;V;@a;R}caU(E7czlXN z$>vf3Ig<}#q05y@IbXqnx`x0M-^_jJ9I0`TMr_*EDRe%CDUiZjItzaDo#;#<9bPTn zE$ON?bP&B(X-EZhkb5k=AjRFsNKo&tLiF@B9UB}fhd3`nr2)06ddJ?l?>i2iKoJLM zVj)mW>vilcK)Q%%rol^8{V$H)hb`#=LyzoY|NQvB7`yHfeSbOjuI+)#*R*pBJ#`QO zFKek*oA_aq5$V*Aygwe~1sI_ImBN)W7(y0T$Yl4fl)fO{H4!l+T2Q4-e?P{+)n9$1J1tS!`6^F!J4u{1N(U8SRk04bVlqmC3!FMZq(;>j%z#Z#y zLMnrLMw)pt-~s6OG*fy!yBCYuZFAQ?*j)E(8#C6T^kh2ccrP5J1pP3>P{dgo@!p06{k~T}M&`k^%Iv<3J;X(jGH!)o3d=M&z3jqY(#BibWL8urm1Q2u+!-dWV zp<=iYK+sJL7djt=is3>4K{qj6=zI_=h6@1%-NbOA^FgQ>E(8#C6T^kh2ccrP5J1pP z3>P{dgo@!p06{lVapC(Pv4u47bG51P1GH(yd+gwcZ;6TpArc&J#YZ??W)=?jrW5{t zjKd|M5%FIK_K{;=P z+0-1z+=W8LcCT#zhT%m={U1)$e`a?tU_{(xTb{!2(9bV2o~}HYViose<>~SJuT@Wa z7cenybhr(uI8k8Rz{P}`*#}>g zNfR?&+p2FY14gfb%ED}zQmTv5zm<_*<*?9ZU$S!{qiV^xA}Hqe59eoYKi6?7XzQnu zwO2kmFB+~UZaY>L*)qAz+LqRl^{6u1vG!+MZS>!-(@TV5i_2W0qWSxJ z*HxzjzI^hj!)?|Kkl5@NNopUn$a^)D9C-Hb(u_|o*@c#{ie{5yvunrBFj|poTE><= zIL3>Zwc5KWHSnUoT;j}|3fOr$J$273{34;CgIul4VD z4;PmROK;BpGAC8D_r^YX+uXTV*8g&^v+YUcnn!mXlx5f6<{pSCwP`GrQcCiTn`|^+ zcfPHBvH^dQa{9QdQ&jq+#<#`GYCVKS4=yaKJh`mn?QmFeJHr<-CsbRuP1HH@fkPlCtBQYy;7E)Jp66W4jw| zeh6^%ic~NET+!&MrOw$AoN?#OnU3Ec+i$TKPnv!s)VD}^KF@wtKwNf|d)t2+Ulzw& zU!3)jD7g4B;pH{(yV=f{hiAu^iq^mFY`7P>^6Y(p?3nRM_`_;XCs};%k4ucQ_F$J= zktu{@VBe+KMm&6&vok$^#F0s=;dPCFHeYRj zRy~3|OQt!oWBakok4VL5vYX1~9Y&uYGRju?l@ZR^eB9tP=7j5>kZoDj4W&)(&pI5v z=FBF~ig1*zidh5v{^#7X@y2VEocxKkV~@5h0}|tWU+g1`MBXL30+K#F@%HRf@8~t5 z*Oy4W??0JJ)wI%2eto~iC>tHL!Peix+8FOUQs!1Snp`ui%qPfVN)Tr)zP!C6u+)YS zlWZHdcN!taB5aNkXKkGB?!9hn>L11_>z~x-PhOqBf6wdSF|nKQ<E=t%vu+eg)cWath?xY(@~mPIxd_L)B=ZU%nJ*zDYYcTJkFi-X4C?`EB+oH zZc1pyjI4QeFQxlPq~nE!d}2I#O6u7%*@=+s_>cniR`X#tx zX?AhvO6eZB`sJFfYp3NK?^wmgW~$t>o1$Xp2keSV+3z8lnczNBb~+fcFW6%RC(OFk zVOP16=py09SZsg2?s!>Fa?SPVimLBRPJ37stpe{l*S!wjoteEyK07iDU%uJrH|H9U z@iiVeYYXQQ@Vgwo{s8lF%$TF4SvQ>GKUwT7buMWO&kgneJmYS9W;XG}H~3wCfw~>` z4(FJszI`cwT^6RfwH#ivrik%s;b=>IX^~VeA zZ{q(-BGfXD@k)g+-7O+oX%&v1O+(Szc9NM%CNGopmDUz0^psK}DlnOuv}2P@Or~wx zidayvyq1=i)T#?B#V!T6u2evvmbIc%P%1v^L6ki{7KD|>2cXvOoup~PZ99iQ{KK zLB`!GzDFUAO}8V+y{ot)yI{|sVWN4rieh*Ns|vWipf-Y-(*jN48MDATMl=70$VaI*rX2)JDyzbRl*2IHE* zcd=NlR0OLCWfo@U{NZ?M1!w^>vDVZ^9NIT`~&m=M|FVms&N&j zcDvQXdHRJyHqyvpJ^e*hURGVm`uTDn&4TJvh7Xio0a`b3wbu|RyMpxy!-fKVCLL(F z{0u$l<1P2Of}j~%&AM1O$m0hL@L>UXOL>9!m+~W|9F&6)hf6GQ&Jh5L%7|`kfE&S0 zR6=gSF%{}+Gk}txZ<^)f!0@MBHl8jQuPe`H1%is<7!$){28V$mQCz3PP$QuwP=}tu zQ802bt%lGu41<}~BZi5Ls)1BdDME9G;c1X&5QxdBa~ic6W<+%i<3Mqo)u9HX9zz{k zErDZNBf((CaKflyLlWhA`~u~n*@0`}KoSE<(X2*?qm0o>p+=*YMGX`|qYej2;xy*O zz@>&mN4XCPZDW0011+9EUk4IDAd3* z4C*Ab7)lv&5+x|To?vLuUK%&6hqy=D1QM7-G9Vf5z2VX72~wlcI2lyu06>FijRu1j zWt|koP!vHLC_0=gDp({}7)}&`p@S)x^9#JMDoPNWC@wX#*+;G}4GS*r8aWQq1gnCH zqQynb>Zd?oh|P{Fi!?dpAtnk{7^VvdmNGE7mP9oqVL+Wu&;>?@(W6?DATb?DIgAEP zIDVA-$T=!YS&vm*)ltlV62>C1q!W4*X-vTg69#5Ws3pN#BM0&GPN9=-V9UCe5+^IY8TvG1;J zN)PFJ_!1-IV@Tg=OZ7{-45#*70 ztc?=b$V|}{;kZeoHxY&~?ZF_Snox{JrY*2BOmv~!Z3c{ET zZpB%vjwCgtSq&G%9tB*0b=hqkxLfgyn*dIN3ky2I%CMgIM|tAlb|T^#r3`q6CQH<9 zb8sCDm4cgc@OwZ#_=8}`5;?g2{FYxLm-Jgkg<{D`ARyAFj7ypiq{_G;AkwCcOPUX) z%D5mP(x!|{nh&JPxF8_Xri@FP52VVtARyAFj7ypiq{_G;AkwCcOPUX)%D5mP(x!|{ znh&JPxF8_Xri@FP52VVtARyAFj7ypiq{_G;AkwCcOPUX)%D5mP(x!|{nh&JPxF8_X zri@FP52VVtARyAFj7ypiq{_G;AkwCcOPUX)%D5mP(x!|{nh&JPxF8_Xri@FP52VVt zARyAFj7ypiq{_G;AkwCcOPUX)%D5mP(x!|{nh&JPxF8_XrX;SI$RoC_2Rv6>2_B%0 zP59Of9==u3xrO-%Qau$x9$$(eSNg&E41$zn2y%8If|#C0klXl%1zkA^GG4AYWM`Z`TCMq4%$xn`)~a+DP!I8uHDJmi*=*TTVH#JZ9sbOd^K&gJM~2OnE6Zp z*0}l1@?Ul(<8MyyD@b_az~#o&(+7Xumv(B?ORnDk9Qjj`wTr*yO3eaKZ|u4+?^0GQ zcD=1sI%-XaW*@4JMI58VLlG|?14j46l`G#%4-1zU`Y&r9VCydSWxU?EwA8!iX>@n> zNBXss>c+m?d&P3s#^Q}@QSU*^Cz~wKPWz$x@aV?M^i<@H(c+PwDjvfbxt}{@-m1Fn zjENnW+d9V69C)nejiVFOzq{$Fv5(uu1DUX*>%sa96Wi7kNLE5r>%vX#+;AF%*zD7E z-KE@Gea?6K_}84nDGm+bXi=>t`k%_?_{e8sh*6B;O`A*DFxpS}iIc3t+ znR%^!kK`vA|6Vb*7;Tx>H|NFg=UzF{^RvlGjNP93!I+gdH0;oJ)Z9_3=`M48u%dbM z46>zlT~W&n{iLSDCy&=Zl=reB$$sYX(qG1nY0BOo&(tq_uap2JCLi5X zRQO_IaZAT!Yu-NNXDR+$e0x(TT~F5ElbE?vJ7&#|b!VQZO9Ez}_TM?FDX!8ZJ$I+| z$0nB@oxiT5QV2{8e38^vQGam5gS&;Y@yox$+gcwH?!MT68@cW6xa6#@+7DCermjxt zPVSp~zVO(4U$^PDclBfz<|TA$Z`oNsjUroe3U^d4>5a+SzDjrDneUcxRMPaC9okQ= zQ(M*~ZW4OF`M%sQj7#w>a;p-4|EZuK1}|Y58GMdsj>|uQF$=GyRt4YnS!GRwRz)Y1Ox_Vk=0}KQ!d&5ClPnCd8YPz;`)#7Y=$7d|sZ=cpQ8UcEqPU5hU~} z{`~|}xotdx%wEr=q`A_}3k)P{lMxhap=EBH1Jp*4$T@BYLFUmeiG|K)>`~J1{&7?) zVW=qS617=wcEr#*Onfm%Cl@bFA&c`!JtduE42g6bKmZ%0CacB+Z;CiD5ZfqLyh;QlZ2pTD?r6*5f+WED0`GXfU}7Q|M8J(g6Nc za!L0~Y77CtB00)xNHWEBrvp}$G{@y~7%;4`uuxX0l(AekaM$ZGIga5t3TmLvBD;%l zqjqPwH;6BeiFT44<8U#oUBbsDENp=*N-E_O^}M?KWpkL#J*n)@ZhC+t<|Z7NLMF#- zHY}K@)0IT~8yVEonNsASu_W5b7H}jDs)q*;6uT0%uDiF75h!*gZFdC?1;$J`P_X|(5a0OXZE-Do${ha0bW z-8^&3JJgW?irH*JU8jT#)<0>4rXek8> zX0BYN#I+Pf$s@5o!}w=acdCFC-Zew9BuLW(#6Xc6N@>*-sD=WwSfQXbs7|kyqZXA4 zSIAX*oRaH(2?K)lN|a!Cx(GW-clU(>Npv`YD+yeV5-LiE;Iqtfswu6-f@^U# zZc+F`2e|hNZK645B~8U~tj)8890cd2`RN=b_08v=HP_AAvmgvi?>1Q}np9bI1gfJc z3bo=Y&^oi&G>?D@o9%Uhe)jfdr9W8IbgiUU0Oahf1Z=N}(DH0O~=j*XdL! zZ6yebAaJ#gAbq(4g86g#-~<5ZJ(=Per;Fu^0tCK^{8p1puXwc7C*(7a$+3qf*cA)} z$!}stCjrKSZ+1YLzsX(?K9RRVkRi}$Eqa9x*YXn^?9O1Kp@dRNpn94lm0GKspsb!D z;Nu6l_no6KhqfE}T^*H!X{JvBTe@0rP%CE2af2MJ7H>;DwfYX?WUa13f}`hVg9T~y z9wUjqT}2WT!yg-JnOZV^31g?&Lgx%$+(#YzPC(`m_H3FmVm?P-0qhcq@q?Go{4b8( z<1Oi4Ll1Y+KR^C2#?CvUk1j{w+U~u4`JLMk!_fp-)+sET|9F!TcJd?l$D>Vzi}tS+ zO^QNcP-+Y++_zGCf_Q5}G0ZH*Sc@Kw(R;P=F#>ABF~I#AMYxE^iV|2iAPz+utSo0E zTt>!5WYd_#o*jw#3j=EUkGU8&pXETaXrnR`3sxN9#h>{684Wf9!n5Up?Wk87TtAIJ zit-CQ^|iPhyf6j-+3gxA!>;MVu7NV_>i0~wGcF_Eoee4u@ZxVv3?3NC;8vVAYSe0_ zIue76VUI+{P3NbX7;v}Z&3(*rye;C90A8K87~dKXK;ZL?<|^p=8~ za`68E*7FZRuPw6Y`1vh=_`CF5MulRDNgyD?rie?J52T8?ARxk~h)b9cq>8v8Ai}1I zOPCL&int&k!lsBzm=C0ixF8_Hrie?J52T8?ARxk~h)b9cq>8v8Ai}1IOPCL&int&k z!lsBzm=C0ixF8_Hrie?J52T8?ARxk~h)b9cq>8v8Ai}1IOPCL&int&k!lsBzm=C0i zxF8_Hrie?J52T8?ARxk~h)b9cq>8v8Ai}1IOPCL&int&k!lsBzm=C0ixF8_Hrie?J z52T8?ARxk~h)b9cq>8v8Ai}1IOPCL&int&k!lodu5dR~#v>iNGTL>PY)%~-u0X%#w zA>)(G2vR&1L0(ydAYBi^_YDLokR!;=CU_l4Vk%G-EB zKH|yjSBGzWup?sN;L2ahYEowur)v&Tg-aGKA2el12m5hG_9Eq`X*+AJ)(FSq!>OjL z$qw_fOzD;Omh1;(E*{;}usZoO*~{xrEH(XFR+h!CmL0lueND$t(n}Aj+M4v!-a0ep zh;-akq`4n|JvWQLAfuE}D4Y9@3LO!;{nF5pq4B}$^zGfFxL;3up({hLtBC#eCG~`p z_pZ8DJY4VpG$C8peW(i~muQ!l&`zn5$~6<2fZ(m8J6=zd4SKMx<(60(jSbZF_HlThq09ox@w zVXRcvFDYzVMM251}vUiI*`hN#kx zv8R^gmfZNfbyLQ^6=&)eC`u&berSjue3J>=@ri03y}AEHuH)L1&#$dEWJUbD{oKuT z`~KHGkHC4Nh#I$FwDLeah##3L)R)l3{HrZZmaGn{O zHRs-sXI!JR2P`U)e(|5y^*;}@KWKKA&>QBY?rF!k41B=ZumA2kI{e$t!3oQLm^5=x zHG+e)Hs3tN9*5#4m~&L50x9b3brhlafW&hk39GGy~pr>EU~cm57t z^^|9>B+j|gHRLW@Q?D9}E|^}?IP77`jGE}JA6~pZyJoLsD|Yb2vRj?X;dkc8G=Gvn z4mimjs2u+4_nRl=Ew19wR_*D``l5MphQ!>2z4Y@V)z6$?b$Hm)o&Ddwv1?5+n|qwA zw$|#Z>??L19{o*3!jx3BZrQu>;-u{M}`sS#s3+LAEHJi^r zUGe6Cv(1%@-BZRJ%QG4(?@zxTI=DP{Q)7MIqAy?6)T{0ui~V%Z{ObNS^(VKtYrj0T z>g}}ZmFG9UeC+l%eO-B2?734D+fV;1tMa;a!2xu4W7^#9l^c?)ww`_F;KpaGf2g&c z&s=rCU{+1pq6_xTx#Pb$^lUk8%$XTa3}x=W+f}P>Do)CM{pZ6W(;W9ci;mbowRK)Y zc23bBkKY^_J96*L#`hn7mlrZpomks(N0W4K(wLibW6uqI-F5BOkeThRr5h~T zzqWjTJX*dq%Dp=yPPVgt`|_7AjT|w1e)#HvNM2g#uSfsp{FZ; - - - + android:background="@drawable/msg_in_top" + android:textColor="@color/briar_text_primary" + android:textIsSelectable="true" + android:textSize="@dimen/text_size_medium" + tools:text="Short message"/> + + - + + android:layout_marginRight="@dimen/message_bubble_margin_tail" + android:background="@drawable/notice_out_bottom"> @@ -44,10 +52,10 @@ android:id="@+id/introductionStatus" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_toEndOf="@+id/introductionTime" - android:layout_toRightOf="@+id/introductionTime" android:layout_alignBottom="@+id/introductionTime" android:layout_marginLeft="@dimen/margin_medium" + android:layout_toEndOf="@+id/introductionTime" + android:layout_toRightOf="@+id/introductionTime" tools:ignore="ContentDescription" tools:src="@drawable/message_delivered"/> diff --git a/briar-android/res/layout/list_item_shareable_invitation_in.xml b/briar-android/res/layout/list_item_shareable_invitation_in.xml index 63c628f73..5d707e361 100644 --- a/briar-android/res/layout/list_item_shareable_invitation_in.xml +++ b/briar-android/res/layout/list_item_shareable_invitation_in.xml @@ -6,37 +6,46 @@ android:layout_height="wrap_content" android:orientation="vertical"> - - - + android:layout_marginRight="@dimen/message_bubble_margin_non_tail" + android:background="@drawable/msg_in_top" + android:textColor="@color/briar_text_primary" + android:textIsSelectable="true" + android:textSize="@dimen/text_size_medium" + tools:text="Short message"/> + + @@ -46,10 +55,10 @@ style="@style/BriarButtonFlat.Positive" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginBottom="-15dp" android:layout_alignEnd="@+id/introductionText" android:layout_alignRight="@+id/introductionText" android:layout_below="@+id/introductionText" + android:layout_marginBottom="-15dp" tools:text="@string/forum_show_invitations"/> diff --git a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java index c2fc1c026..e86189f31 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java @@ -37,7 +37,6 @@ import static org.briarproject.android.contact.ConversationItem.FORUM_INVITATION import static org.briarproject.android.contact.ConversationItem.INTRODUCTION_IN; import static org.briarproject.android.contact.ConversationItem.INTRODUCTION_OUT; import static org.briarproject.android.contact.ConversationItem.IncomingItem; -import static org.briarproject.android.contact.ConversationItem.MSG_IN; import static org.briarproject.android.contact.ConversationItem.MSG_IN_UNREAD; import static org.briarproject.android.contact.ConversationItem.MSG_OUT; import static org.briarproject.android.contact.ConversationItem.NOTICE_IN; @@ -140,7 +139,6 @@ class ConversationAdapter extends RecyclerView.Adapter { } private void bindMessage(MessageHolder ui, ConversationMessageItem item) { - PrivateMessageHeader header = item.getHeader(); if (item instanceof ConversationItem.OutgoingItem) { @@ -186,15 +184,24 @@ class ConversationAdapter extends RecyclerView.Adapter { final ConversationIntroductionItem item, final int position) { final IntroductionRequest ir = item.getIntroductionRequest(); + int backgroundRes; String message = ir.getMessage(); if (StringUtils.isNullOrEmpty(message)) { - ui.messageLayout.setVisibility(GONE); + ui.message.setVisibility(GONE); + if (item instanceof ConversationIntroductionOutItem) { + backgroundRes = R.drawable.notice_out; + } else { + backgroundRes = R.drawable.notice_in; + } } else { - ui.messageLayout.setVisibility(VISIBLE); - ui.message.body.setText(StringUtils.trim(message)); - ui.message.date - .setText(AndroidUtils.formatDate(ctx, item.getTime())); + ui.message.setText(StringUtils.trim(message)); + ui.message.setVisibility(VISIBLE); + if (item instanceof ConversationIntroductionOutItem) { + backgroundRes = R.drawable.notice_out_bottom; + } else { + backgroundRes = R.drawable.notice_in_bottom; + } } // Outgoing Introduction Request @@ -204,17 +211,14 @@ class ConversationAdapter extends RecyclerView.Adapter { ConversationIntroductionOutItem i = (ConversationIntroductionOutItem) item; if (i.isSeen()) { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_delivered); - ui.message.status.setImageResource( - R.drawable.message_delivered_white); } else if (i.isSent()) { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_sent); - ui.message.status.setImageResource( - R.drawable.message_sent_white); } else { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_stored); - ui.message.status.setImageResource( - R.drawable.message_stored_white); } } // Incoming Introduction Request (Answered) @@ -265,20 +269,23 @@ class ConversationAdapter extends RecyclerView.Adapter { }); } ui.date.setText(AndroidUtils.formatDate(ctx, item.getTime())); + ui.notice.setBackgroundResource(backgroundRes); } private void bindNotice(NoticeHolder ui, ConversationNoticeItem item) { - ui.text.setText(item.getText()); ui.date.setText(AndroidUtils.formatDate(ctx, item.getTime())); if (item instanceof ConversationNoticeOutItem) { ConversationNoticeOutItem n = (ConversationNoticeOutItem) item; if (n.isSeen()) { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_delivered); } else if (n.isSent()) { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_sent); } else { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_stored); } } @@ -289,7 +296,7 @@ class ConversationAdapter extends RecyclerView.Adapter { final InvitationRequest ir = item.getInvitationRequest(); String name = ""; - int receivedRes = 0, sentRes = 0, buttonRes = 0; + int receivedRes = 0, sentRes = 0, buttonRes = 0, backgroundRes; if (ir instanceof ForumInvitationRequest) { name = ((ForumInvitationRequest) ir).getForumName(); receivedRes = R.string.forum_invitation_received; @@ -304,12 +311,20 @@ class ConversationAdapter extends RecyclerView.Adapter { String message = ir.getMessage(); if (StringUtils.isNullOrEmpty(message)) { - ui.messageLayout.setVisibility(GONE); + ui.message.setVisibility(GONE); + if (item instanceof ConversationShareableInvitationOutItem) { + backgroundRes = R.drawable.notice_out; + } else { + backgroundRes = R.drawable.notice_in; + } } else { - ui.messageLayout.setVisibility(VISIBLE); - ui.message.body.setText(StringUtils.trim(message)); - ui.message.date - .setText(AndroidUtils.formatDate(ctx, item.getTime())); + ui.message.setVisibility(VISIBLE); + ui.message.setText(StringUtils.trim(message)); + if (item instanceof ConversationShareableInvitationOutItem) { + backgroundRes = R.drawable.notice_out_bottom; + } else { + backgroundRes = R.drawable.notice_in_bottom; + } } // Outgoing Invitation @@ -318,17 +333,14 @@ class ConversationAdapter extends RecyclerView.Adapter { ConversationShareableInvitationOutItem i = (ConversationShareableInvitationOutItem) item; if (i.isSeen()) { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_delivered); - ui.message.status.setImageResource( - R.drawable.message_delivered_white); } else if (i.isSent()) { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_sent); - ui.message.status.setImageResource( - R.drawable.message_sent_white); } else { + //noinspection ConstantConditions ui.status.setImageResource(R.drawable.message_stored); - ui.message.status.setImageResource( - R.drawable.message_stored_white); } } // Incoming Invitation @@ -354,6 +366,7 @@ class ConversationAdapter extends RecyclerView.Adapter { } } ui.date.setText(AndroidUtils.formatDate(ctx, item.getTime())); + ui.notice.setBackgroundResource(backgroundRes); } @Override @@ -431,7 +444,7 @@ class ConversationAdapter extends RecyclerView.Adapter { public TextView date; public ImageView status; - MessageHolder(View v, int type) { + private MessageHolder(View v, int type) { super(v); layout = (ViewGroup) v.findViewById(R.id.msgLayout); @@ -447,20 +460,19 @@ class ConversationAdapter extends RecyclerView.Adapter { private static class IntroductionHolder extends RecyclerView.ViewHolder { - private final View messageLayout; - private final MessageHolder message; + private final TextView message; + private final ViewGroup notice; private final TextView text; private final Button acceptButton; private final Button declineButton; private final TextView date; private final ImageView status; - IntroductionHolder(View v, int type) { + private IntroductionHolder(View v, int type) { super(v); - messageLayout = v.findViewById(R.id.messageLayout); - message = new MessageHolder(messageLayout, - type == INTRODUCTION_IN ? MSG_IN : MSG_OUT); + message = (TextView) v.findViewById(R.id.msgBody); + notice = (ViewGroup) v.findViewById(R.id.noticeLayout); text = (TextView) v.findViewById(R.id.introductionText); acceptButton = (Button) v.findViewById(R.id.acceptButton); declineButton = (Button) v.findViewById(R.id.declineButton); @@ -480,7 +492,7 @@ class ConversationAdapter extends RecyclerView.Adapter { private final TextView date; private final ImageView status; - NoticeHolder(View v, int type) { + private NoticeHolder(View v, int type) { super(v); text = (TextView) v.findViewById(R.id.noticeText); @@ -496,20 +508,19 @@ class ConversationAdapter extends RecyclerView.Adapter { private static class InvitationHolder extends RecyclerView.ViewHolder { - private final View messageLayout; - private final MessageHolder message; + private final TextView message; + private final View notice; private final TextView text; private final Button showInvitationsButton; private final TextView date; private final ImageView status; - InvitationHolder(View v, int type) { + private InvitationHolder(View v, int type) { super(v); - messageLayout = v.findViewById(R.id.messageLayout); - message = new MessageHolder(messageLayout, - type == FORUM_INVITATION_IN ? MSG_IN : MSG_OUT); + message = (TextView) v.findViewById(R.id.msgBody); text = (TextView) v.findViewById(R.id.introductionText); + notice = v.findViewById(R.id.noticeLayout); showInvitationsButton = (Button) v.findViewById(R.id.showInvitationsButton); date = (TextView) v.findViewById(R.id.introductionTime);