From dc048187f53be02a8f8be30b4c37fefd4caf4d81 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Wed, 15 Jun 2016 12:41:43 -0300 Subject: [PATCH] New Trust Level Indicator Replaces The Stars This implements a generic `TrustIndicatorView` with a `setTrustLevel()` method which updates the drawable according to the `Author.State`. Closes #78 --- briar-android/artwork/trust-indicator.svg | 92 +++++++++++++++++ .../res/drawable-hdpi/identity_anonymous.png | Bin 975 -> 0 bytes .../res/drawable-hdpi/identity_unknown.png | Bin 1416 -> 0 bytes .../res/drawable-hdpi/identity_unverified.png | Bin 1429 -> 0 bytes .../res/drawable-hdpi/identity_verified.png | Bin 1009 -> 0 bytes .../res/drawable-mdpi/identity_anonymous.png | Bin 362 -> 0 bytes .../res/drawable-mdpi/identity_unknown.png | Bin 708 -> 0 bytes .../res/drawable-mdpi/identity_unverified.png | Bin 713 -> 0 bytes .../res/drawable-mdpi/identity_verified.png | Bin 531 -> 0 bytes .../res/drawable-xhdpi/identity_anonymous.png | Bin 853 -> 0 bytes .../res/drawable-xhdpi/identity_unknown.png | Bin 1470 -> 0 bytes .../drawable-xhdpi/identity_unverified.png | Bin 1565 -> 0 bytes .../res/drawable-xhdpi/identity_verified.png | Bin 1139 -> 0 bytes .../drawable/trust_indicator_anonymous.xml | 40 ++++++++ .../res/drawable/trust_indicator_unknown.xml | 40 ++++++++ .../drawable/trust_indicator_unverified.xml | 40 ++++++++ .../res/drawable/trust_indicator_verified.xml | 40 ++++++++ briar-android/res/layout/author_view.xml | 45 --------- .../res/layout/forum_discussion_cell.xml | 15 ++- .../android/forum/ForumActivity.java | 4 + .../android/forum/ForumAdapter.java | 93 ------------------ .../android/forum/ForumEntry.java | 11 ++- .../forum/ForumTestControllerImpl.java | 4 +- .../briarproject/android/util/AuthorView.java | 81 --------------- .../android/util/TrustIndicatorView.java | 44 +++++++++ 25 files changed, 326 insertions(+), 223 deletions(-) create mode 100644 briar-android/artwork/trust-indicator.svg delete mode 100644 briar-android/res/drawable-hdpi/identity_anonymous.png delete mode 100644 briar-android/res/drawable-hdpi/identity_unknown.png delete mode 100644 briar-android/res/drawable-hdpi/identity_unverified.png delete mode 100644 briar-android/res/drawable-hdpi/identity_verified.png delete mode 100644 briar-android/res/drawable-mdpi/identity_anonymous.png delete mode 100644 briar-android/res/drawable-mdpi/identity_unknown.png delete mode 100644 briar-android/res/drawable-mdpi/identity_unverified.png delete mode 100644 briar-android/res/drawable-mdpi/identity_verified.png delete mode 100644 briar-android/res/drawable-xhdpi/identity_anonymous.png delete mode 100644 briar-android/res/drawable-xhdpi/identity_unknown.png delete mode 100644 briar-android/res/drawable-xhdpi/identity_unverified.png delete mode 100644 briar-android/res/drawable-xhdpi/identity_verified.png create mode 100644 briar-android/res/drawable/trust_indicator_anonymous.xml create mode 100644 briar-android/res/drawable/trust_indicator_unknown.xml create mode 100644 briar-android/res/drawable/trust_indicator_unverified.xml create mode 100644 briar-android/res/drawable/trust_indicator_verified.xml delete mode 100644 briar-android/res/layout/author_view.xml delete mode 100644 briar-android/src/org/briarproject/android/forum/ForumAdapter.java delete mode 100644 briar-android/src/org/briarproject/android/util/AuthorView.java create mode 100644 briar-android/src/org/briarproject/android/util/TrustIndicatorView.java diff --git a/briar-android/artwork/trust-indicator.svg b/briar-android/artwork/trust-indicator.svg new file mode 100644 index 0000000000..c8f94b6f65 --- /dev/null +++ b/briar-android/artwork/trust-indicator.svg @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="49" + height="20" + viewBox="0 0 49.000004 20" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="trust-indicator.svg"> + <defs + id="defs4" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="15.839192" + inkscape:cx="19.828141" + inkscape:cy="4.1791031" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + units="px" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:window-width="1920" + inkscape:window-height="993" + inkscape:window-x="1440" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-216.17711,-507.04154)"> + <g + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;letter-spacing:0px;word-spacing:0px;fill:#b7b7b7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text4136" + transform="matrix(1,0,0,0.90497738,-18.96574,55.694085)"> + <path + d="m 250.64285,514.07648 0,-2.275 -2.55,0 0,-3.8 2.55,0 0,-2.275 -2.55,0 0,-4.225 -2.375,0 0,4.225 -3.15,0 0,-4.225 -2.375,0 0,4.225 -2.55,0 0,2.275 2.55,0 0,3.8 -2.55,0 0,2.275 2.55,0 0,4 2.375,0 0,-4 3.15,0 0,4 2.375,0 0,-4 2.55,0 z m -4.925,-2.275 -3.15,0 0,-3.8 3.15,0 0,3.8 z" + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:Titillium;-inkscape-font-specification:'Titillium Semi-Bold';fill:#b7b7b7;fill-opacity:1" + id="path4745" + inkscape:connector-curvature="0" /> + </g> + <g + transform="matrix(1,0,0,0.90497738,-3.4657389,55.694085)" + id="g4755" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;letter-spacing:0px;word-spacing:0px;fill:#b7b7b7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"> + <path + inkscape:connector-curvature="0" + id="path4757" + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:Titillium;-inkscape-font-specification:'Titillium Semi-Bold';fill:#b7b7b7;fill-opacity:1" + d="m 250.64285,514.07648 0,-2.275 -2.55,0 0,-3.8 2.55,0 0,-2.275 -2.55,0 0,-4.225 -2.375,0 0,4.225 -3.15,0 0,-4.225 -2.375,0 0,4.225 -2.55,0 0,2.275 2.55,0 0,3.8 -2.55,0 0,2.275 2.55,0 0,4 2.375,0 0,-4 3.15,0 0,4 2.375,0 0,-4 2.55,0 z m -4.925,-2.275 -3.15,0 0,-3.8 3.15,0 0,3.8 z" /> + </g> + <g + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;letter-spacing:0px;word-spacing:0px;fill:#b7b7b7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="g4139" + transform="matrix(1,0,0,0.90497738,12.034262,55.694085)"> + <path + d="m 250.64285,514.07648 0,-2.275 -2.55,0 0,-3.8 2.55,0 0,-2.275 -2.55,0 0,-4.225 -2.375,0 0,4.225 -3.15,0 0,-4.225 -2.375,0 0,4.225 -2.55,0 0,2.275 2.55,0 0,3.8 -2.55,0 0,2.275 2.55,0 0,4 2.375,0 0,-4 3.15,0 0,4 2.375,0 0,-4 2.55,0 z m -4.925,-2.275 -3.15,0 0,-3.8 3.15,0 0,3.8 z" + style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-family:Titillium;-inkscape-font-specification:'Titillium Semi-Bold';fill:#b7b7b7;fill-opacity:1" + id="path4141" + inkscape:connector-curvature="0" /> + </g> + </g> +</svg> diff --git a/briar-android/res/drawable-hdpi/identity_anonymous.png b/briar-android/res/drawable-hdpi/identity_anonymous.png deleted file mode 100644 index aa539d31b7aad168d93e4d2a45a28a6c3af18c7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 975 zcmV;=12FuFP)<h;3K|Lk000e1NJLTq002k;000;W1^@s6S!27f00001b5ch_0Itp) z=>Px&iAh93R9M69m(OclRTRfR-}zz2U?+_fWYQwI5R^$Bb6<m46v?6+cdm@!(xu%h zxYbQI{R><QDcQJlQwm)a!J2myv0$>2tfti<bkt1JcINA%uVs>UCiCJ%63l^t_h!!f z%=eyq?m6ediJjPgW+8-92%+?U;urEbOPZ53cUTL^*hh+A$Ps-3iR~o29;qcsA|QEm znH(8@DM$2YZQqatZ~^#nlnbyu3*5+VN6rUkf!z8FLq@*<)PXhIYqqDe??$z|1xa;a zE&EJ|5Jt+kUC*@V;twmL3bcWiq?V+%?dk}#r)s+mw1AfFwxsF^v!^PlEvc3LM>|{7 zXabZ)e?7+7P1Ce%dp+CnQCVHmdW^9fW9$O!S;mfP1M0wfnx;?q!|E^fq+u2OlC9@~ zQ^1Ro&j8~#ladyC>d|fB^CSsx0$a8=fj@vhCAUF$(==`EDe_f`zI@vYJ?;bfHg{u; ztv$!6uYS-Zu#0bdD1NCY$~Dl(g`$74`N>^vmd1ShhwoQ@-5b?3O&<VX0lal_=9LHA zdQJtGBpTh0UYGbLOXc1oU$YsCA7dQI2S3FhrT$*NcJFdhmHY|tU7E(Ve1$N)2E1?U z>lk-u&vE7#d!3ri=1#3vy9HdHnwt8p*=+tkWS6LeKC)SeF>d$sYc`uZQ&Us7Y%bSo zwW0YTgt~P2e9%IS=`OwoJT#xB*|jX?pB0$0?MsrXX_{WmIrh(IUGZ9$^3U=qOS%N) z<|j!qpLN8(`XBRcS7VG<b9FIEOOnp+(+;bW&e~o&z}UY84CH66{y=<S$@aebGYv}z zX!9=GY=E}<w@<cgHl*E0b;#yh1Z~(HDu0lE(7yaae{mWsmVJ7BveS8zk~2vqgrxHL zetfdiDVBZO)>!`8<aqE04T_a+hle+>uigiEXKrR%MSmgrv$x-!c^Tm5_0{{`4iACK z0gk}2;176N^*MLB^G5wb<%Khy54P?VYBpa=Xy<QzdhxxP=3kq|Z?W%y&jFkHY7j?; zFVUAj=xzSIq=|B+`|5V9@N-;A7khrY5@wQ6u5>@NIVI^Hu$puHKU6+&9{AV%K}W1% zd)a0&uB7p)X?G=!phaNWcH;nDtYLc@)R%9wC}|mJ<gY<)JkmB;zoh*7LkQ&%!bFal xV<JhCat{A;k|Yy3^h|^h%11^2iJjQ+_7Ccuw4?9iY1#k)002ovPDHLkV1hHr=coVx diff --git a/briar-android/res/drawable-hdpi/identity_unknown.png b/briar-android/res/drawable-hdpi/identity_unknown.png deleted file mode 100644 index b098e93aaea14e2c907662ff93b1f09f314f8bb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1416 zcmV;31$X+1P)<h;3K|Lk000e1NJLTq002k;000;W1^@s6S!27f00001b5ch_0Itp) z=>Px)LP<nHR9M69m``j}RT#z3x$n(%_&22jmMI0J2~aJxo%d)6RbwjA5Laj-V1fw? z7aBDtl4#;qqY|SLqtQe*8c4BS=)xES5?G)F;k}kfQrIX2WI(H6!FD<`?;aNn(AJLh z)fP$QOD1`f`{g(Hp8MT<zBj<FxD_`nJkN7I&vXAzd=n>GV7tKfsagQZb^tdOKbAnX zv}<Z<*G$FaecvYl|MH{Hn}t7afvU5ujgPs-)sMNw)z#V7dnS7Ul3FG01F#RkiYeHG zRsj1*#^R4lpa#!3x6>|PNG)DSExw($sloHjB<`*u*$CiR`LoRPyh-ItYLs+LQY`+s zl5#RL*15%vDIk>sQtRB}#+=NINvxi<q(K1v0Qw~jl1xux^`uD-lI$=4#vp+7qzTmK zlvXv+wi(J8$~4fnwK=6#lemCJlE=d^v|$)p0LK9|PT~eM0yrK7!Bu{_Vy_$Surf?L z(EJQFSHSFoP*Wu5%!2A>LQCtY<dxhyDme#wX6=gXgBQUw3F)^aah|}1oY)tEXM-T< zA7!y=615Vi0hk5gHd1o|OqWn2Y0I$mqX1s^eXj+;fW$rkzXP~PYEZ(tFbw-g9iud$ zG5G*%0F2;E8W-OkrgFw5o?7WdYwx11BanBAfqAg?4uBE>i2?wZn(<7cur>nlE6nMV zFkL|EN0~EUmfSBQU|YGAhg)n$!ban$SHcll_PJF$dhomMpGNOm7=}dvuK~cyw(On7 zJd-qXNi^GtcLUl!nlC8>a9sQ#2*%AHVRx&1FD>Bd7u>>g^~Nr=y1KebwR`!T5;$$m zsja2t`vg8Z5RBa2YgOc@Nj(MNs~`xE#k**|1^|yp+!ltx4dXk*lTPPyL(A*tAN-`0 zEUq+BQ?*h0vV;``;$`hlS@ZMeLh7wMY2Vu$bPra%>~p!Hy1KgWB|M+WWPZuza=(tV z18yYwgoG_&80M#n4{%Eu2KiA-96Pd}zkZ`z*xX`li%TTN$|(uO9&38Gmy&OHhrwqt z+x`sz`bq9Cm;6{c36c*1NC!c%Gp4m~C_Ccr@{z5`my`~}aAzzRI}difUaWdE4-8ex z$pb^L7pvYp4|YwU?e7Gz;GgWaZ1oEybxy#%IwdW*j-98=bLfn1^Czs~rbMwN38c!` zjQ{~q`58z8sZEJu%L!{H@M<6j;7JJsmF*b=5>ApMuYx#yfCK-qP1ogD6evSm<rpn8 z1O&)|SQPU`anPYCL56^1v?xPc6~8xOm6Ooy=`~SwwdAvY%JclxmG9GQqR2^Tw#5I8 zUr`_nRMiN}T*!4Lo;K#p)>3lk2c=|JAK33ebRoA!SZ0B$2^@ixjZoUZr>6h__qAu2 z(a|fUURrg3b`b#V-_ujD5lSdm@qfXu_}@sAiI&WRtu2Vrw~n*-!#|TdZliYOLF_M0 z+w<&<!jtz#QTsgD+9ne%*$o_wcL$+f7H69pSEOdnjUFBN!(=49N`gaw^0~GLvbjrr z&gYQM0;&hlH&uKR75Nnf8UmYot#k5g@#Aj>6I~aM9O^xHZTQo7n_CYZO%xx$gL-%f zY(h+dBrPXdok-cm`F`_5*d25X8-B;j`d%Vs*Grg1@(%z#F)L^}fPc-ec*HJ=OLs-? ziwCUx#)Tt?dPk36IC7}>fOX&46}c~75|>WE#hN7@2G|jH2jSnk>Fywu&_VJrfaVFj ze>DR*ETJMFU<b*=<=j|3O2YHJ>KHvoweS0h82Jg`_p4*fr`q$p#LY7QTX8GKAAbSE W&DerCQbEE10000<MNUMnLSTY~@SijQ diff --git a/briar-android/res/drawable-hdpi/identity_unverified.png b/briar-android/res/drawable-hdpi/identity_unverified.png deleted file mode 100644 index f9e2486261cf419e1a629e08bf671dc5034334c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmV;G1#0?<P)<h;3K|Lk000e1NJLTq002k;000;W1^@s6S!27f00001b5ch_0Itp) z=>Px)Pf0{UR9M69mR)QVWfX?rGe5iAmTuc^OS{|BE~zb*R%mBXXa!9%B!rlV0i!`A z276%>?^Fzum}m^v@Dnjyn26p;B3h${3r&O?O==Ngr-fi!3=OPoJ6mW=S)tqAotfiB zDVCpNC)pt;_FT;*XP%t*o%5aZ0dp}I_bn7fkrYLd{!e_tPBJq!F;kOM0-WX(Q4@eB z#|#SkjkQ6)vDPU8PV!Y%B>?K=qe`>=ZuadqZ$-`P&tG~10KWNo#bR9lwI{6#oaO@$ z1Ne!E0ALw_6KU(9ibczWV6pj7b$P0?x;#}G^qWg67A+IfRk_oARaFIMu3_drX6^$} zt0;<)HiP;jQr7k@vCUZ-?8(Yt&-N{`&HWK6D_sJd<^%8&QJjck0Ac{*0K924XhT!H zp`kX>C<-iy0t*ebiN+00@rHC&?=+v8YXF=Lg+i95X%>L9L{wvI2C1s*l|(MCC@~6{ zkvoy3yhMuf^SxFeH``oPS!TGVax2RWSD?Ubd11qn)gv)s&@J<b$HiBOFxEdH4I3s! zL!nUYwiWA@C8UL)G7!}?Eq2>6@&a7MOc?;O0r-fx06-={c>vy@mVSnr-%wSh4!}4w z4Febj@D~xsnK3lQm!`SwcgfuR)MN4WOCLxE1OXGWgz@qsqm(4TOaaWq03eH;_2Fw* z*0TYGhonf#K&EBEbLyOHaQ|2HzBNobaHEx{uUNlJw$j2+8F%uT*$>cWLF8U$oMMZH zB{!cr-r05j_O1wpLMZ_60>JXd`h}?pa*@Ci5tdpeJqYl@DgG_%Ze?S=*J674lkKCg zRF|g~nAS~sGc_*&Koo$!uzc~Q_k8;W;*UByyJC0CcABp!s+WkH0elw<X?^wvxl#>a z9Wx!!w12w)mKoI1*%d4HnR}Nv7wzu3AP>+iZVN;}&jop4d2`Y3VxPHprsD4he^MCj zW5y;$QEFyu&SWla0%+fKbME!)P*<-$`%d%KSJyl;Q721~@0OD?kUH|4r~9n~IeWUh zLSNYVV@~r`RecUXjG2#UnwFZu7@3IHFtb<Fv_rPG*wCoZwsA*6>$Nx~X3Du1r^Ln` z1+7D)LYv*q;xr$?m&{!9FYDY3paj5|w%5EKc2jH1SY3vTJ(EKaJUJ8i#xs!NVoz(! zSe+hrlili_<^wDO6b5Mg9tU`w8DS!bwhi*mPq{@2WuiD)yd*Luk~EP>Qd|_7n8Bh5 zh!V=Y^HXlyH#dj*%;Xkj&dtm-&6`K6UiB!7>X~}a%ri|<=3HiS+cwCw;11-QwX(#L zBr)~<DGzSl={wZ2%hwjUEXE{>NtRd&<eRmo1=|9g<^%9pCX9~u?j!)LY^tv%k>4cZ zZ4ImH%K)IGy*p`{FaUUFg3Q=jYgZL6ee%)xR$q>l^?7^dk56wa{NQ?A*x4JF4(~eX zy|}<{WLGUP$`eWA$R(-$kN)U@o$8(D2LgdAW+V!IC6_A}7d;b?33Y7IE`WY9Q}p7( zs^VbYywY=`glr;Y=(--YWl(9Uf1St8!Oy<W`t<FObM_?0jvpNv9<;7q9kh&zfm4T% zRh^8Eio+90D){}p96cY7YIX!T%?|_uYXB@1Wv(<PgdVLc^mR0<Te_~Bx~?B9^p&_o znO8F-NJKfhuAjDLP+oq?rjvcHy(fBIZR4ZIhweDz$;fbcB-nW_BAqr2dR*7_AM6Nl zn(z1fw*WW_;E2|xMebM<QC$xN0=-1U%)HtbUr`iUQIs4Tca9uYRb?CbvZ|^%HtNYy j6h;28)IS$<G5h!%wEA1&#&Qzi00000NkvXXu0mjfwM(EO diff --git a/briar-android/res/drawable-hdpi/identity_verified.png b/briar-android/res/drawable-hdpi/identity_verified.png deleted file mode 100644 index 02e819fa1023e98c5124d9cdb17b9ee85629c766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmV<N0}lL&P)<h;3K|Lk000e1NJLTq002k;000;W1^@s6S!27f00001b5ch_0Itp) z=>Px&t4TybR9M69mrZONRS?H#-rHw;*Y(<oi=B`tu2R(v)RvRokO&nKiV#v&RM86u zdMM(+i3=AFoDmgL4@gKkAffce1x0{}Dg=cV1d<!<L>veTq9G=Y>n5p-BWJzdkKxcJ zYJx1hl2h3tb9&Mn{pLUOX6Nk#IIshIWTt7Fq-mP;f8sMw5eQEK;i-K)fi~oOs%E6m zJ`Df>bMW<k=x;}U(;bwEj-`gr8Y9DJjgdt6SgO_H+m+u`fleexnbPH^`qS2Uf7%*X zy4}=?<S1*E_;%(u<y0y0;K>Ws^CCcg5g`A`3)S<L5)Za2fp+FMRiMOZeXJ*GWf&*M zII*6jl}U`&$6D6@ZOq>p(z>pz02Ei_ZdCG9w^PS1$ATyq^jIinr{YOFy6qcJ+R^BM z{pRy$GS4{{u5key+(%{G#JiOe+W^2)E|;t9xnfmBXbGPPO8I<#7r&MIALj2Ah=_U_ zgV&BeZN6|suRn<hH72MgtF9afQI}%@5Fr5oFiy(pw<|B#HgUqJFvGPlKm>t5bG~2a zKbOBDg3AD~D*;68MWlV>@0WhQ9iUh&ZuCChJ6rl)$j2wlboYSW<5wueC6Ha`J{S=Z z5s(PTbr859*&n2k9C78Xd+hf0j}A={!3ViqesyoFwvwNJgnYg$$ZF9X8j0QbZZc#g zpEc8R*bN~*;3DEf-GGRI_fHOJeObCS^?LMDPtyAEr)%>@qwl#B`FwAXrNxqauX-!H zK6mslB|?Xz38$a2fBOLdI5t`fSLN$h-VeXKxI8<xv{-WgYv^?vzu_(B*f2eFQJu65 zG#mL?2AVS$)k(*OX|Fd+r|=sVsJtRE?cCNN7bLb@5r6=I9;^YlAfcVx8Z56!o`32( zh2L;P3A;Wu<_<9l7!d&DgmxWkj)ex}ghW700;a~?Atmhkye7~o{DzNJBJitmC&MKY z$N|=GN`)UjKJ+ah(8L>?FGdHPK12{|+{qAu9{{#IJ*+!~&l?4JLXV}7J!8Ha>~h1u z%qUl;--%3`RrcQI9sXtZli<1%A#wPKJ!n>$u~Cq&tt{VO^^!oR@EdjzA`BOQ6Kg+z zs!T0@ANZ_L&Mv^6o$bqCT^i3W-SGX`m$F_$gkb=f^^!oR@EaDWw#kmqe<8nR{LSVI z<!pWLexaOQ2+Te8$J$NlDi`pI*BQ~#d`;7YrfK13{dHXr>$)yH_zPXv!yfd6HBA%k fqW{1Sta<wf?UTV$8BtKS00000NkvXXu0mjfkFeSN diff --git a/briar-android/res/drawable-mdpi/identity_anonymous.png b/briar-android/res/drawable-mdpi/identity_anonymous.png deleted file mode 100644 index c91a016de8d6f692e8850f77156e4b0d5af82852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#300001b5ch_0Itp) z=>Px$BuPX;R7l6|lub&+KoEsrWilJZr62(zN6>otfh@8Q3gW^$c%(UiHxMu2Qi%tc z%`9BRy%@yFq}?Pij3F5XCoTA(p?Otb)7{n8z`raO8`;b|18exr_^E!KpY)vm5WpUQ z((}BsD2no%w>K&el2=`G+jzH0I08&+jJyKacU-eHE6msO=0T(vbtO{(ZzARZko!E( zUu@t30IE#GSO*&}jFqZPH~q2swp0Phq^GP2$)G1bD&HpgB(n}bBk6DPc6Z8me50l^ zH5Omo8VkTw!|gXRugddw9>sbYgqn55Y~kHaLj<CyJf2L=*~h!wI1VI?^m?_FI}ymx z26oN69cv`w;Q8_4X}0FgNS**l0Nf7jVLYCsY|&(5EB`0;35=}H+p&?6Z~y=R07*qo IM6N<$f+AU;m;e9( diff --git a/briar-android/res/drawable-mdpi/identity_unknown.png b/briar-android/res/drawable-mdpi/identity_unknown.png deleted file mode 100644 index 6ad29f8a0fa134f02856cdaf1de831cce8158b28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#300001b5ch_0Itp) z=>Px%en~_@R7l6|mCs95Q546&=iYgfKgfk)Is@8Ri@|8Z_ukA%E_A?zEFl6H1-Wq% z)hcM^KTzv7Wvv5uZu&{>2KqVP8Hy;C!cuUg!BvUly!Y;DGs5UFDmDWK9k_5g=X^N# zd${Lb;J@u-i&(Z9v21g%yj`?f@?yK-fON+Oq&xN(JqQ(7&G?D}TFq#4m(asqLJzl^ z(dIpLuLVF3K(4s2313lwExnP5@In#cg>31K?4f%JrBqTWl?0He74IvmZ94=#d_w5Z zI#AalxZ^0Cm{Ux;D4p?m&&ks{O$!Hr{3k8GuRuIjN-b~j0QWJ|F940g#}0d#E2%RV zja%onO9p^dB0dOEvKl;XWSp_hvzH9#-Z9c09s?lSER`9OfNv}oCLQD2bCr2o8n!IE zPa3?MdY4w)wKdjb*`7m<>9k5#gWq&YzZnbP^{>4Q3*D|ahakY1)nf5_p?<KCNzGQc zw^0CorPS*R@m>H0rPOq_cv+g@EibLSIDBOCIO)NF;I`73^5ln`PJRD+CiSCIce2^+ zQZN{l!C>%IHk<vrrT7qld8O3nYVu`6oM&=_#GS=^Q(QohxHHe>?mT<!vc`OwS7RRF zs`F(68o=Rz)J+C6-m*-kwftx>BOrBC130{6d8Y1kM$G^~yvMo_jafqgkj|(XX6mjs z@7wAaH42FpO}`(o|Mr(PdFLk)_t&{MuIR$}s8LAV2VQM=03wiO+U?TdbA>!T6ao~B zTUR}Yo)B#rtSazj0^WGO`YG3l<ucPV8@^}2t!Xnl6(GL6i}$;i1Qt{8(-S4W3EQ^2 q0rUcRR5RYTZQ8{TN&A)mC+!dX&{>hV{oh3Z0000<MNUMnLSTaD!A_q5 diff --git a/briar-android/res/drawable-mdpi/identity_unverified.png b/briar-android/res/drawable-mdpi/identity_unverified.png deleted file mode 100644 index 9b8a13d4bfe10e6a710842ae079324dba4234c2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmV;)0yh1LP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#300001b5ch_0Itp) z=>Px%gGod|R7l6|l+jC*Q5eRbvu|4~=PriEHn%ZjHnB~&z3Q5gcU@?DQP@pHs276& zLtO-he?mq<H{Av0MF!EGf|YhQtpqK|p~8&a6)v}Z+uKE}bj>aMq6~WAh4a1d`SG6T zobMdqzYefk{1j^OQ|NE;R8*xox=O{t-t_QbZ+iGw7oe2~;3>xb4Vdd9)@UHp7Y$_k z%ykj#emiUBiKrex3P7qj-k%2g+eUb)fqAKc2m0Ga{xnZS7s`!GC5jVl&U&@)bTH#d zZwr&lmUoAmvK{_oIS&B5erHI;-x}xFH<h&`Cf=S|IF#5(=^sidH-8roa5uB~2%tu% z=N#unLQ1(<thWh;Jq1-50Bi}twSbtGQf`W`PR^fg>%B7c;YP@pbr<pgv)JuaFmwtK zUoozY-LZ_`pIUshv#ym7hpAgJ@YekEn5=X%9g#5QbD|~|lhfZ$;QNi}@;$wqd~)(c z)|D^pE-5<3vnAtt^pgDy3bQNaZ<IEkh}r=drIfRK)Vly=rIauBwy2NVrY5`#YTU^? zV`{>?0DaU}_2<>d6Oo6AddlQ`h{#j@6;c(o$(d{X^1;Obnw+^tsES(EfL0!?asjJ9 zWD8gYSgmfrnD=>Iszos}CT9-MKb|waR16HSOSQn5_f_q$k!KdcSX?dxKxZU;uDv7N z0|2qOTxJ%*()mhh;_9g7@^P2iIdt86?bZYH=*@ezw_hdn=~Mn}#BAn`>ABQQr3Gl^ z9S(=jZgYHcy6qQp88HbK>rS_Q*ml(MUg%&?CX;U}?m(cG#!S{ob7|gWjWh>ZX{_1~ vYUPP&oQQ&D@<AdRuLg^sXdn(M|4-^OYf^1*3JT7000000NkvXXu0mjf?!{M; diff --git a/briar-android/res/drawable-mdpi/identity_verified.png b/briar-android/res/drawable-mdpi/identity_verified.png deleted file mode 100644 index 79cbaedc29a153ed0df16987b656ce659a876b1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 531 zcmV+u0_^>XP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#300001b5ch_0Itp) z=>Px$%}GQ-R7l6|lg}>$K@`W|bZuLjVB3{!8f+_)wj$aZ7H16?4&vbAfTO#UgGlP% zAg(TTa1s(f5)IW#6Tyn8s6-=0LQuQi9S0<(+J?g}iI>b_=Dp9n_kHsQ;NO0+d7H7{ z+l>9cnJ+8m^aL`)008lQ*!xKVTJVNK4u?&!It6LaDM*73n_&HJa;^A+0yvM{&-*2w z_e(tIk^8?}fL1&L0Kgb?hBDIA)SYq3Psl`95T-$p0<2T62LMPX==0MZ<BI%<Zs~IJ ze6VU3)ht?$Mx!acdGxLXx3zZnP2SCMF1d~<0IG@zLazb|0b(!^geZWNNGF$ODo3Nc zvDMs8=*6SlOIXz98k<Xpob8fFRnW&-qX;A-#>3fBb|6i{;#be92T$b&J;KFxa-%WC zxv~Lkt-|H{PQs@6!UWTM`LumjXdd<8^FHyz4JB1^iv4v*-WEU=r`R8ED5=!v)0)o{ zV6v!g){$i>nt-@&jvQ~ABb1Q<>&P-Di|Q^_fYv<q`5-XD4AnF!or_b|)3H#+xVUDX zPsWY+^**@+5G0ObS6jsj(3=Ne3l8!&Ax|l96WqQQ94ysAU3rW#DwUvEjNbg8v=@%m Vpg!n)QV#$C002ovPDHLkV1nET^pOAn diff --git a/briar-android/res/drawable-xhdpi/identity_anonymous.png b/briar-android/res/drawable-xhdpi/identity_anonymous.png deleted file mode 100644 index c8f254fdac6b62ee348a82b48d5e166eeb6cfb11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)<h;3K|Lk000e1NJLTq003YB001Be1^@s6?ZACh00001b5ch_0Itp) z=>Px&4@pEpRA}DqnO|s*Q5?rV=XtltP$ILlB2q?~ZNCf4GOUz@OHywAi72;Rs9oSf zh)7(xpeD(UxFKYX-TdCwZbpexdWLDu_6p-YE<9?@=6$y3wb}DL-#WeTbDnd~=XcKU z{LXXE^FXRpsZvc%iO4h&nU?a$FE64EYlAddn)3XThz4v5ejiNI08Dwl7a{zX0=+<Q z@PDGiKNkEbOVAGBT9CF+!t9F$-y5g*X8|i!^^K~&0jh(%iJE<};g2^0HUrm(Twf3J zCQ8ZXi^$C|c`5%NM1Y9Y12;yvbtAa<uR9+re#r=c8Nh5{R*>cZbDd+pF|Hg~1{@fn ztybWINZkwP%sXRv4}1)E3jIO)q^h3_bTCnTGYq~PXaYKc*Fl7Q1_q|j&VO%v)bTis zR~t6euK)7MD*<K#Gk`p>7^nsws_K<dI-fYc8NrB+&e5=7+2EynEuGy(d1CFXUeNub zbe}P_sp|a#GcZy7%<#g#@4vFPqIaMtbHZBt#P|JN#5J>gpeJ+Q7<XAU`?OH`r13MO z81c?p+XkGq);{xnzki(YO5lt!99GS~3|lWr{LEjB=(pD11x{IOJAB{o8zX!n&<yNR z)!wlhpA^0c(NG3B4!l*>b0Oh}fJ)$qs{V)=!m;KTJO=~~903}~V0U9NI-dl7*n`*- zpk)jOv;=jErP%UAI>1%sfAB3V{a0C6RlNSkmmkUjE^k)XY|FL(xz^QHiqzTR`8C^e z?JjRt7p?m-=7(~C@mO@V`T2*Td280y9(8$h)H!pkzM*#4(0f;#pMNkOi;6V>apo6v zfQVE8UB9oJwybItk=tJfyv}Tg?$2g*@8B1&Peg7tZCN$+LDd!1jr#H{*8DKr(6zuk zpdH+Pmp3`%ab8t(!^)MpJO_>E%D`L%>VY0rZH+hpvF3;QC|?6C2R4H_o$b)BQMPM2 z;G~Ew4-O!M!OUrmI0<9T595Fpz&%yH6LR0&1?(1)trX`gQF8erQYs?lQC>ueNNLJX fl`2)L|585z?&-`o`IpIW00000NkvXXu0mjfNEn-4 diff --git a/briar-android/res/drawable-xhdpi/identity_unknown.png b/briar-android/res/drawable-xhdpi/identity_unknown.png deleted file mode 100644 index e3b91a85841af0985cc2635ea3ec9e516719520e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1470 zcmV;v1ws0WP)<h;3K|Lk000e1NJLTq003YB001Be1^@s6?ZACh00001b5ch_0Itp) z=>Px)cu7P-RA}DqnQe#_RT#&A&&-|mx~5_;t~=sto0Ti6t0!tnT~iYBB`btV=u028 zFibQkNGRCog@}qu2_+N~6v`qj`;eFvmIP-v3{x{J6dBEz)phT>&b>2FAG{mewz_xs zF6+H<|8Tf>&YUy9bI$)fGv~}eNhOt3QgO-{GsqY-sKoEPoIKkwGn=lJik_dyvjO*K ze|KJ^0VsODlSlZCuXUm+wN5m}7&HDFg#UP;8E7tMexD6!QyyI4W+pChGZWjCMb}{V zJqmo3O^*~S-|3_KL(i*>sgT&Okk~)3Qe})8I)JlpC@{%dd(>Kc6qsDB{5}~V=z>*V zI3um1X%$`Ng);<QFo3gfKCrpd@#bt^(ee9a!136rt9LU-1Q9{%-HbUNJ9Ps%0E?}) zUvwN~|1T~^zSD>Bt6S}b^DnAsN8UvhUG0VQjWKlt5dL+*)^1L1Ek=H#8$dZQ3>cbC zBY+!FDo!C~K}^*IFG`3Y|J;%Unczf;AYHbkYTBLCZ$d+alfaqmO5s8_wODK0dgx%c zd{st@Xa#UP@N_p-zXR49GwqP7oD|`&V&F>`_)=g_trLy7MdERQB%sYhQ?5tLT~RbI z76?_evjG6AXql)u3O~B;S5cZ_X=F$S$^kv1&YwTUZZojUTD##2onH#f0rmlZWFxc< zXiW}_Gkd;i+MUa+nm&8#z3nYd0=SOL{1~_ym|SRl>825LCrh+uaWXybx(roa2fDXX zMOzab-PZ2?xli3!thHbFFazhRGJVwT=?`{n*>|E}o|sD}k2-P4drE{og~oTg77l{o zcem1S`YiOWpPk554TAE%nxKldz^RoNlV7%oylidb_dV4Kg5Y=GuWW8T?Y`#w{<lF8 zr1HFHSG1mX-xJaGg~)fW(1?@Oqy5Iuqr}KrZl*d3gL`X&DtZpit`3viMmRKB+xT0q zb%P){>HGd3;2q!he+Yu$LLWOn8hBfTRfWoTuhNJM)xN*$^C)q{OgE|-B088HJrI;L zIOm=Xlbc2e&s%God)xRR2rl@(|0VFI@B2+b5S;I2=c|AQU|AvaC5H>S7nK){6OCEs zg-^siRB=$&r^`0l*gZB_Xt35sd4{kHyb2t**1nr#oo9g2zzc=W?{Obst&Ii?4ZEU5 z%FO}p0=uF_sy_z5gAcp_)c2xVeSZx8K=5<jh*huj!g*n*&DWI_s_05DoCj3*<Nl`_ z*wTygTZ)CBqXAljaxRw#u?T{44z#BK`mYn>h%ndEm&@veV&LawKx-^_Oe)X#{~Bmj z&ML>6m1A^?i%I1fzcrRS`mOu1++DjUwfDdG+G(SWndW!RuU(YdtFhc&4E&r7$Ox6g zLn=F#mr0Zl%e;@*TuOfO?4{(^-Qw&`qNrZBVt7bpMlP4{4~fIrjSUA+b<VqI*3>l` z%NkXAsc!nz$2*_f*l_TaIE*a@evbwiV=8Aj(bxz`sB*YW_CMTSzIK1g-TX_FU45j< zKDRyeUVEs${QbjavOl3p1k7-vvBsFZO~_v3K*#Z%g;VN{F`r&)b@nwj+2xIm_Q`a+ zbKV&9$()5#IzK266azn(W$4Vu-1LT9ohZ32<Nf+`<nDAG)>>;*UCIrKVxFGlM)xgF zq;ESMyX{*eZ>hERyF3SACU7IL7j(JCk`jmay5noi3UPD@$U2}7I9=%cTt3RzZpwH& z!1I#Ax}Tctfh#Q6QotLoG20tMcR7$w3bom{g!!lzr~&4Kyw!Mh{_Dn=n(PKBot?P_ z&CkVviAiCHwRU@s>*fQ%3S-Oz^v_qSiO_5Q(*FhD7~>gZD)M;|WsLDk{E|v4sicC` Y-%B_^7(+Az6#xJL07*qoM6N<$f)t6=NdN!< diff --git a/briar-android/res/drawable-xhdpi/identity_unverified.png b/briar-android/res/drawable-xhdpi/identity_unverified.png deleted file mode 100644 index 85785c09cceadbf4357e8ac8e0f25366ab5c5f19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1565 zcmV+&2IBdNP)<h;3K|Lk000e1NJLTq003YB001Be1^@s6?ZACh00001b5ch_0Itp) z=>Px)*GWV{RA}Dqnrm!SMHI*Xb9cAhwroom=xwKE3zZ1vT_!E%As|YyqG)^(5@JFs ziNRE{#78J<0)cNl0uePTFEJQvA_)p17$gw12@X}%w4elNZ7)k{yDr_b?BgCkP)uzK zd-p+aiTh6`o1LB6-<&gN?wOfgAgQF1O6vZU5F%9wk(%VkE+x(}Jk(Rn(tXdj#yNn; zdS1UX$pQC0-xA028}n$Xzp{vja{X}qsA*cq055;j`2ZdO;OCrcvGQYn1bKbzsg=)k zjbHg}*LbgwEgtC5Gn)@!34qUf$_oRU1B4KcHjgsW#Y5c1L%hwSxP%an0gOJ=`2Z$K zDVwB}O#mjx%8zLR6h@17ukDx}3NQ)<80}u$F<W7@XrLTmHXp#_0QU8IzptlmV3eg! z-%5>~LiGg{sxKgF<dmgO-}-;y3n9KVQg=_1un?kr%WIu)j>!!>83O|VJ;-Q6QE=EF z?$M_;P5bK}8*e%vz-3L-8hY1r&cmGZtZ4bxegNqJG66VxN;ZID45VImTT?Eyz*RmW zV7+ZT05AqtJ|SSe&|+CSqM&S6p&AMhm>WPlfKC9{dx}>|*&V^aLCGgV4r8PO7z^N) ze!89n@V*e!&Ji&;W4LOB&-%bu0GPj^)Sq4QU|<vhEX7LQsVVSTY~)=y^F{@9hR{t$ zy&V7mL?CM_F(`y1KcpQF2U+IL05Sq0md*gGKc8~x=xKW=fMZh1kMCgopx^^I3*cf; zj_d}|WzW<@r@pU0ZX~K_JzO%+?^Ub-h5$$hpaU2UU~*qR>t_%P<_mw#>Sf+h!-kNn zuc6V32-M!inl|mrymU<3H%KXuMu<Su`9zqNJ2v>?q5WsCBqU=mot%5+ob6@CaH=n# z^*@MdQ`{Yvm8U;-KRtY?J|b2p5P`0Fl(y1J^?>RO?~wA$FUFp;=JSbI4P&U1Qo7^J z87dLBGe#Tw<FmVT<n9jTow`rl&#T$GGg>DQf!v)+NBK)?t?Ja*ODS8U9JuLx0Gk1< zmQuFF==^*Dn*dbbiGRm)fRwUTb?Vh+mFgbtn&MFuGQLk&2--EpQ&y?&QJs2qw8jq> zK7i!_)(atAF*x4^U_F54cjGeyUu3!7&EBmj_mAAVs&jc*zk3&pLRhsmd)MJQd$S{* z)=4SDaV}xg`2aQoXpvHGGuY=<0QmscMB*z3A|dQZr*(S|r~3?@8Z5xx!|A?67(ZC} z0M-DQ6GgW<Mw}nbRYcLwnvRN4fJJ-`gaV9q)^t<=C`#b@$8<h`{ZX{vZ<KFv0;re> z9wUj6F)$){04h$L{igHB>0tznw!YPt#wBb5JlB<pb4zdXJ{Mxp+Lh)j?MgH7-@u$( zdXsyuD-#oCzS(@z+4QN4eRch8SM!CK#{1S!UF@qPolQ^J1O!4X&*{+fZg1}_X*yp2 zU})_lRXJbHSfPIL`O%Czi(LoNEl)TddR`#J@)G3$v-wOx;jVR!ZN2Me&Mm1Soz)Pr z_sVCLEbIN*u62!VOhI8nF5`p{c@;BmEL&LSAFEh^y2g~>CoSQ%-9Gm9uV>{puc!5B zOJ`x*8{4wm=au<03Uk9b(1GTw7I#o_9oICiE6!br>3jeMnx>rufcZ~Mnd5X6YzYV0 zkuzuH7ERN>QFHPOIp-UTMb4Fr=iQfkF6W9l=YK}xN1Oo8dC7|vzU7%2<XijE(9=6= z9S4RF)i?em&-`|~O>3)mZsNGy69-SEr8Zo$Vak}G)n-N3iJ$GKG)-%Y#{q+Z51^ZK z{x|1&Z~48JT*mOWl=5G`rfKIn=imCh%5ywFZz1Qr5r7?lJrdu@IiRZR1{=))TSgk~ zkWw~8XkYBR!B!Fw9Fj&CrIg#_j6l=*0Ez+F0BknG2T%<l2%sSn-^jlr#t%uOLsH6v z2KUVk0IGx#Pa-kD5}D2i5G{X2Lij=mn-D^c=ORi7VN3FpN-C+O2BrQ1>$?H|i<QY3 P00000NkvXXu0mjfb0goW diff --git a/briar-android/res/drawable-xhdpi/identity_verified.png b/briar-android/res/drawable-xhdpi/identity_verified.png deleted file mode 100644 index d93ae1df22bc1530da908a3ad53d12b92e68da8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1139 zcmV-(1dRKMP)<h;3K|Lk000e1NJLTq003YB001Be1^@s6?ZACh00001b5ch_0Itp) z=>Px(ElET{RA}DqnO|sIRUF5^=idBjZrYf(>C!aaYO<Enbe*ne>xOg#-4y4jWkSIr zKJ3AV3B$LEFQW(|_#ld)4+?z|6gMAcQPi~+oTyuO!XC=jLAN@)?auyP|J>XrH#a|D zBG|c^+oX2(CSN#&z&U(=zw`TZ?ztBzsicxh+L+>;yE*6X5<h=Q1=_GTJ06xcJl|2E z0ncWC2OiP}Y<Rw-fbwgMbR-|k{%aIMjIDF|+k&5W3o;G75IeB!j~!U{n+6WAck0=N zFXb8iiupToDBNo747VCP=kLgMob!rx%s$)j^Q!<xhq`;`_Zdk>Mv_r?@BBV6I<#)- zXCr=I0a%=rJ6rba?Tmpj2G+7)Z(p30JJ-v9JMrZ_%5TrE9__{2=5z#L0Dz1MIGm)( zTEkUURd4>s<!>uKyAMDC-~&*R9hCs8iLlAgS-CbVg^rz?>Qej^`TM%WT{iwvPffqK zDx*3*w8R)D0n7lH1F)DK3qpuQ4hM^h&+dW00^lj7(o8(wrFRkmvI7a(MVhmWv_K?X z@2kngj3gt*R<0!iIo-q-rliZ$<BprgGV_`#<~7q$7y~Z#dwxpH$qIlWA;iZIaK7mH z_p5-Xz18N??%w&mZZC!J1+7*@prpobo#}n#oHir(2_eqr$iSlF|Kki$RrPwnUpMy4 zr{(^(gZdU{8I*jDAOa=svZ+sA4)inNJt5*h=UP*2eE9)J{PF14Q2fGY-c7B~EJs~R zM!~9WAZWAlY~Rtqm*v%&H-(5>z9|+HU;Y;(78|yPhK9dTY64L+QN1M{A+lzKBonTk zcMqL9;XmuGq!U7jxz%P*vGC;_Mx+~}p@Hk?-A&WKImQ~FNbW!mBbY?^{#{?+r8CN? zOTimLh*ZA)vl#d}FJeLnQ<8D=@?cp~lC4A^$j&_}gfI(z?zTJM>P<Mh`-s+LrY*dr zN&~x(XiWg3Yk2>$E#G1QsHJMN>4%jbNDNh*O+P>_Yv;dx`IZ8Z(xvU;Z7I)+UdISa z)6&G!j5Gm8E9Qr{r93HJ+P+rq+nI0agN&iGpf8w-nJES$ki$)E;Qflzqd$~Q5P{kb z>X9dpEgm+OC1MQB7tF*Aodwrw1MJMt834|CsG`R3kO|06!uYUj`1I?Q7c0Z*??y&1 zegy!YiuUI(eD1x~^UhpHWLK(#OrW;e@OZ0uNC=@8`0~rv{G8`{U0vOdJuhjmxfEz$ zzwH|w`BoY9_~<Pm;v;{}xqVx`8f~uq@!GF$-;KC)p}s9$ULG*(Z^Yf_R8{@GkPWaq zpIOL&<0+j*061M9`cMdQCCB`hl+IoSV7NRqE`<1?zznoC-^v*fb9v|+Aw<8$=jJN_ zj&sht06ez_Ex363oO37VJXpZ`Am`j!;+IrXNhSR+^(S@;ev|OyLP-Ds002ovPDHLk FV1kAcHADaa diff --git a/briar-android/res/drawable/trust_indicator_anonymous.xml b/briar-android/res/drawable/trust_indicator_anonymous.xml new file mode 100644 index 0000000000..99ccadd1be --- /dev/null +++ b/briar-android/res/drawable/trust_indicator_anonymous.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="40dp" + android:height="15dp" + android:viewportHeight="20" + android:viewportWidth="49"> + <path + android:fillColor="#b7b7b7" + android:pathData="M15.5002,13.8797 L15.5002,11.8208 L12.9502,11.8208 L12.9502,8.38194 +L15.5002,8.38194 L15.5002,6.32312 L12.9502,6.32312 L12.9502,2.49959 +L10.5752,2.49959 L10.5752,6.32312 L7.42514,6.32312 L7.42514,2.49959 +L5.05014,2.49959 L5.05014,6.32312 L2.50016,6.32312 L2.50016,8.38194 +L5.05014,8.38194 L5.05014,11.8208 L2.50016,11.8208 L2.50016,13.8797 +L5.05014,13.8797 L5.05014,17.4996 L7.42514,17.4996 L7.42514,13.8797 +L10.5752,13.8797 L10.5752,17.4996 L12.9502,17.4996 L12.9502,13.8797 +L15.5002,13.8797 Z M10.5752,11.8208 L7.42514,11.8208 L7.42514,8.38194 +L10.5752,8.38194 L10.5752,11.8208 Z"/> + <path + android:fillColor="#b7b7b7" + android:pathData="M31.0002,13.8797 L31.0002,11.8208 L28.4502,11.8208 L28.4502,8.38194 +L31.0002,8.38194 L31.0002,6.32312 L28.4502,6.32312 L28.4502,2.49959 +L26.0752,2.49959 L26.0752,6.32312 L22.9251,6.32312 L22.9251,2.49959 +L20.5501,2.49959 L20.5501,6.32312 L18.0002,6.32312 L18.0002,8.38194 +L20.5501,8.38194 L20.5501,11.8208 L18.0002,11.8208 L18.0002,13.8797 +L20.5501,13.8797 L20.5501,17.4996 L22.9251,17.4996 L22.9251,13.8797 +L26.0752,13.8797 L26.0752,17.4996 L28.4502,17.4996 L28.4502,13.8797 +L31.0002,13.8797 Z M26.0752,11.8208 L22.9251,11.8208 L22.9251,8.38194 +L26.0752,8.38194 L26.0752,11.8208 Z"/> + <path + android:fillColor="#b7b7b7" + android:pathData="M46.5002,13.8797 L46.5002,11.8208 L43.9502,11.8208 L43.9502,8.38194 +L46.5002,8.38194 L46.5002,6.32312 L43.9502,6.32312 L43.9502,2.49959 +L41.5752,2.49959 L41.5752,6.32312 L38.4251,6.32312 L38.4251,2.49959 +L36.0501,2.49959 L36.0501,6.32312 L33.5002,6.32312 L33.5002,8.38194 +L36.0501,8.38194 L36.0501,11.8208 L33.5002,11.8208 L33.5002,13.8797 +L36.0501,13.8797 L36.0501,17.4996 L38.4251,17.4996 L38.4251,13.8797 +L41.5752,13.8797 L41.5752,17.4996 L43.9502,17.4996 L43.9502,13.8797 +L46.5002,13.8797 Z M41.5752,11.8208 L38.4251,11.8208 L38.4251,8.38194 +L41.5752,8.38194 L41.5752,11.8208 Z"/> +</vector> \ No newline at end of file diff --git a/briar-android/res/drawable/trust_indicator_unknown.xml b/briar-android/res/drawable/trust_indicator_unknown.xml new file mode 100644 index 0000000000..ec65b5a552 --- /dev/null +++ b/briar-android/res/drawable/trust_indicator_unknown.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="40dp" + android:height="15dp" + android:viewportHeight="20" + android:viewportWidth="49"> + <path + android:fillColor="#c34032" + android:pathData="M15.5002,13.8797 L15.5002,11.8208 L12.9502,11.8208 L12.9502,8.38194 +L15.5002,8.38194 L15.5002,6.32312 L12.9502,6.32312 L12.9502,2.49959 +L10.5752,2.49959 L10.5752,6.32312 L7.42514,6.32312 L7.42514,2.49959 +L5.05014,2.49959 L5.05014,6.32312 L2.50016,6.32312 L2.50016,8.38194 +L5.05014,8.38194 L5.05014,11.8208 L2.50016,11.8208 L2.50016,13.8797 +L5.05014,13.8797 L5.05014,17.4996 L7.42514,17.4996 L7.42514,13.8797 +L10.5752,13.8797 L10.5752,17.4996 L12.9502,17.4996 L12.9502,13.8797 +L15.5002,13.8797 Z M10.5752,11.8208 L7.42514,11.8208 L7.42514,8.38194 +L10.5752,8.38194 L10.5752,11.8208 Z"/> + <path + android:fillColor="#b7b7b7" + android:pathData="M31.0002,13.8797 L31.0002,11.8208 L28.4502,11.8208 L28.4502,8.38194 +L31.0002,8.38194 L31.0002,6.32312 L28.4502,6.32312 L28.4502,2.49959 +L26.0752,2.49959 L26.0752,6.32312 L22.9251,6.32312 L22.9251,2.49959 +L20.5501,2.49959 L20.5501,6.32312 L18.0002,6.32312 L18.0002,8.38194 +L20.5501,8.38194 L20.5501,11.8208 L18.0002,11.8208 L18.0002,13.8797 +L20.5501,13.8797 L20.5501,17.4996 L22.9251,17.4996 L22.9251,13.8797 +L26.0752,13.8797 L26.0752,17.4996 L28.4502,17.4996 L28.4502,13.8797 +L31.0002,13.8797 Z M26.0752,11.8208 L22.9251,11.8208 L22.9251,8.38194 +L26.0752,8.38194 L26.0752,11.8208 Z"/> + <path + android:fillColor="#b7b7b7" + android:pathData="M46.5002,13.8797 L46.5002,11.8208 L43.9502,11.8208 L43.9502,8.38194 +L46.5002,8.38194 L46.5002,6.32312 L43.9502,6.32312 L43.9502,2.49959 +L41.5752,2.49959 L41.5752,6.32312 L38.4251,6.32312 L38.4251,2.49959 +L36.0501,2.49959 L36.0501,6.32312 L33.5002,6.32312 L33.5002,8.38194 +L36.0501,8.38194 L36.0501,11.8208 L33.5002,11.8208 L33.5002,13.8797 +L36.0501,13.8797 L36.0501,17.4996 L38.4251,17.4996 L38.4251,13.8797 +L41.5752,13.8797 L41.5752,17.4996 L43.9502,17.4996 L43.9502,13.8797 +L46.5002,13.8797 Z M41.5752,11.8208 L38.4251,11.8208 L38.4251,8.38194 +L41.5752,8.38194 L41.5752,11.8208 Z"/> +</vector> \ No newline at end of file diff --git a/briar-android/res/drawable/trust_indicator_unverified.xml b/briar-android/res/drawable/trust_indicator_unverified.xml new file mode 100644 index 0000000000..3697685b06 --- /dev/null +++ b/briar-android/res/drawable/trust_indicator_unverified.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="40dp" + android:height="15dp" + android:viewportHeight="20" + android:viewportWidth="49"> + <path + android:fillColor="#fcd53a" + android:pathData="M15.5002,13.8797 L15.5002,11.8208 L12.9502,11.8208 L12.9502,8.38194 +L15.5002,8.38194 L15.5002,6.32312 L12.9502,6.32312 L12.9502,2.49959 +L10.5752,2.49959 L10.5752,6.32312 L7.42514,6.32312 L7.42514,2.49959 +L5.05014,2.49959 L5.05014,6.32312 L2.50016,6.32312 L2.50016,8.38194 +L5.05014,8.38194 L5.05014,11.8208 L2.50016,11.8208 L2.50016,13.8797 +L5.05014,13.8797 L5.05014,17.4996 L7.42514,17.4996 L7.42514,13.8797 +L10.5752,13.8797 L10.5752,17.4996 L12.9502,17.4996 L12.9502,13.8797 +L15.5002,13.8797 Z M10.5752,11.8208 L7.42514,11.8208 L7.42514,8.38194 +L10.5752,8.38194 L10.5752,11.8208 Z"/> + <path + android:fillColor="#fcd53a" + android:pathData="M31.0002,13.8797 L31.0002,11.8208 L28.4502,11.8208 L28.4502,8.38194 +L31.0002,8.38194 L31.0002,6.32312 L28.4502,6.32312 L28.4502,2.49959 +L26.0752,2.49959 L26.0752,6.32312 L22.9251,6.32312 L22.9251,2.49959 +L20.5501,2.49959 L20.5501,6.32312 L18.0002,6.32312 L18.0002,8.38194 +L20.5501,8.38194 L20.5501,11.8208 L18.0002,11.8208 L18.0002,13.8797 +L20.5501,13.8797 L20.5501,17.4996 L22.9251,17.4996 L22.9251,13.8797 +L26.0752,13.8797 L26.0752,17.4996 L28.4502,17.4996 L28.4502,13.8797 +L31.0002,13.8797 Z M26.0752,11.8208 L22.9251,11.8208 L22.9251,8.38194 +L26.0752,8.38194 L26.0752,11.8208 Z"/> + <path + android:fillColor="#b7b7b7" + android:pathData="M46.5002,13.8797 L46.5002,11.8208 L43.9502,11.8208 L43.9502,8.38194 +L46.5002,8.38194 L46.5002,6.32312 L43.9502,6.32312 L43.9502,2.49959 +L41.5752,2.49959 L41.5752,6.32312 L38.4251,6.32312 L38.4251,2.49959 +L36.0501,2.49959 L36.0501,6.32312 L33.5002,6.32312 L33.5002,8.38194 +L36.0501,8.38194 L36.0501,11.8208 L33.5002,11.8208 L33.5002,13.8797 +L36.0501,13.8797 L36.0501,17.4996 L38.4251,17.4996 L38.4251,13.8797 +L41.5752,13.8797 L41.5752,17.4996 L43.9502,17.4996 L43.9502,13.8797 +L46.5002,13.8797 Z M41.5752,11.8208 L38.4251,11.8208 L38.4251,8.38194 +L41.5752,8.38194 L41.5752,11.8208 Z"/> +</vector> \ No newline at end of file diff --git a/briar-android/res/drawable/trust_indicator_verified.xml b/briar-android/res/drawable/trust_indicator_verified.xml new file mode 100644 index 0000000000..40a8ff035f --- /dev/null +++ b/briar-android/res/drawable/trust_indicator_verified.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="40dp" + android:height="15dp" + android:viewportHeight="20" + android:viewportWidth="49"> + <path + android:fillColor="#7fac49" + android:pathData="M15.5002,13.8797 L15.5002,11.8208 L12.9502,11.8208 L12.9502,8.38194 +L15.5002,8.38194 L15.5002,6.32312 L12.9502,6.32312 L12.9502,2.49959 +L10.5752,2.49959 L10.5752,6.32312 L7.42514,6.32312 L7.42514,2.49959 +L5.05014,2.49959 L5.05014,6.32312 L2.50016,6.32312 L2.50016,8.38194 +L5.05014,8.38194 L5.05014,11.8208 L2.50016,11.8208 L2.50016,13.8797 +L5.05014,13.8797 L5.05014,17.4996 L7.42514,17.4996 L7.42514,13.8797 +L10.5752,13.8797 L10.5752,17.4996 L12.9502,17.4996 L12.9502,13.8797 +L15.5002,13.8797 Z M10.5752,11.8208 L7.42514,11.8208 L7.42514,8.38194 +L10.5752,8.38194 L10.5752,11.8208 Z"/> + <path + android:fillColor="#7fac49" + android:pathData="M31.0002,13.8797 L31.0002,11.8208 L28.4502,11.8208 L28.4502,8.38194 +L31.0002,8.38194 L31.0002,6.32312 L28.4502,6.32312 L28.4502,2.49959 +L26.0752,2.49959 L26.0752,6.32312 L22.9251,6.32312 L22.9251,2.49959 +L20.5501,2.49959 L20.5501,6.32312 L18.0002,6.32312 L18.0002,8.38194 +L20.5501,8.38194 L20.5501,11.8208 L18.0002,11.8208 L18.0002,13.8797 +L20.5501,13.8797 L20.5501,17.4996 L22.9251,17.4996 L22.9251,13.8797 +L26.0752,13.8797 L26.0752,17.4996 L28.4502,17.4996 L28.4502,13.8797 +L31.0002,13.8797 Z M26.0752,11.8208 L22.9251,11.8208 L22.9251,8.38194 +L26.0752,8.38194 L26.0752,11.8208 Z"/> + <path + android:fillColor="#7fac49" + android:pathData="M46.5002,13.8797 L46.5002,11.8208 L43.9502,11.8208 L43.9502,8.38194 +L46.5002,8.38194 L46.5002,6.32312 L43.9502,6.32312 L43.9502,2.49959 +L41.5752,2.49959 L41.5752,6.32312 L38.4251,6.32312 L38.4251,2.49959 +L36.0501,2.49959 L36.0501,6.32312 L33.5002,6.32312 L33.5002,8.38194 +L36.0501,8.38194 L36.0501,11.8208 L33.5002,11.8208 L33.5002,13.8797 +L36.0501,13.8797 L36.0501,17.4996 L38.4251,17.4996 L38.4251,13.8797 +L41.5752,13.8797 L41.5752,17.4996 L43.9502,17.4996 L43.9502,13.8797 +L46.5002,13.8797 Z M41.5752,11.8208 L38.4251,11.8208 L38.4251,8.38194 +L41.5752,8.38194 L41.5752,11.8208 Z"/> +</vector> \ No newline at end of file diff --git a/briar-android/res/layout/author_view.xml b/briar-android/res/layout/author_view.xml deleted file mode 100644 index 4fb0b9d6b4..0000000000 --- a/briar-android/res/layout/author_view.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<RelativeLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <de.hdodenhof.circleimageview.CircleImageView - android:id="@+id/avatarView" - style="@style/BriarAvatar" - android:layout_width="@dimen/listitem_picture_size" - android:layout_height="@dimen/listitem_picture_size" - android:layout_centerVertical="true" - android:layout_marginLeft="@dimen/listitem_horizontal_margin" - android:layout_marginStart="@dimen/listitem_horizontal_margin" - tools:src="@drawable/ic_launcher"/> - - <ImageView - android:id="@+id/statusView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentEnd="true" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" - android:src="@drawable/identity_anonymous"/> - - <TextView - android:id="@+id/nameView" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentLeft="true" - android:layout_alignParentStart="true" - android:layout_centerVertical="true" - android:layout_marginEnd="@dimen/margin_small" - android:layout_marginLeft="@dimen/listitem_text_left_margin" - android:layout_marginRight="@dimen/margin_small" - android:layout_marginStart="@dimen/listitem_text_left_margin" - android:layout_toLeftOf="@id/statusView" - android:layout_toStartOf="@id/statusView" - android:ellipsize="end" - android:singleLine="true" - android:text="@string/anonymous" - android:textSize="@dimen/text_size_medium"/> - -</RelativeLayout> \ No newline at end of file diff --git a/briar-android/res/layout/forum_discussion_cell.xml b/briar-android/res/layout/forum_discussion_cell.xml index 57383a7206..e8fbf8aa37 100644 --- a/briar-android/res/layout/forum_discussion_cell.xml +++ b/briar-android/res/layout/forum_discussion_cell.xml @@ -131,6 +131,9 @@ android:layout_height="wrap_content" android:layout_alignBaseline="@id/btn_reply" android:layout_toLeftOf="@id/btn_reply" + android:layout_toRightOf="@+id/trustIndicator" + android:gravity="right|end" + android:maxLines="1" android:padding="@dimen/margin_medium" android:textSize="@dimen/text_size_tiny" tools:text="2 replies"/> @@ -140,13 +143,23 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@id/replies" - android:layout_toLeftOf="@id/replies" android:layout_toRightOf="@id/avatar" android:ellipsize="end" android:maxLines="1" android:textSize="@dimen/text_size_tiny" tools:text="09:09 John Smith"/> + <org.briarproject.android.util.TrustIndicatorView + android:id="@+id/trustIndicator" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/date" + android:layout_alignTop="@+id/date" + android:layout_marginLeft="@dimen/margin_small" + android:layout_marginStart="@dimen/margin_small" + android:layout_toRightOf="@+id/date" + tools:src="@drawable/trust_indicator_verified"/> + <View android:id="@+id/bottom_divider" style="@style/Divider.ForumList" diff --git a/briar-android/src/org/briarproject/android/forum/ForumActivity.java b/briar-android/src/org/briarproject/android/forum/ForumActivity.java index 712a7f3fe2..921f26ec37 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumActivity.java +++ b/briar-android/src/org/briarproject/android/forum/ForumActivity.java @@ -29,6 +29,7 @@ import org.briarproject.android.BriarActivity; import org.briarproject.android.api.AndroidNotificationManager; import org.briarproject.android.controller.handler.UiResultHandler; import org.briarproject.android.util.BriarRecyclerView; +import org.briarproject.android.util.TrustIndicatorView; import org.briarproject.api.sync.GroupId; import org.briarproject.util.StringUtils; @@ -275,6 +276,7 @@ public class ForumActivity extends BriarActivity implements public final TextView textView, lvlText, dateText, repliesText; public final View[] lvls; public final ImageView avatar; + final TrustIndicatorView trust; public final View chevron, replyButton; public final ViewGroup cell; public final View bottomDivider; @@ -295,6 +297,7 @@ public class ForumActivity extends BriarActivity implements lvls[i] = v.findViewById(nestedLineIds[i]); } avatar = (ImageView) v.findViewById(R.id.avatar); + trust = (TrustIndicatorView) v.findViewById(R.id.trustIndicator); chevron = v.findViewById(R.id.chevron); replyButton = v.findViewById(R.id.btn_reply); cell = (ViewGroup) v.findViewById(R.id.forum_cell); @@ -513,6 +516,7 @@ public class ForumActivity extends BriarActivity implements ui.dateText.setText(DateUtils .getRelativeTimeSpanString(ForumActivity.this, data.getTimestamp()) + " " + data.getAuthor()); + ui.trust.setTrustLevel(data.getStatus()); int replies = getReplyCount(data); if (replies == 0) { diff --git a/briar-android/src/org/briarproject/android/forum/ForumAdapter.java b/briar-android/src/org/briarproject/android/forum/ForumAdapter.java deleted file mode 100644 index df2e4e425f..0000000000 --- a/briar-android/src/org/briarproject/android/forum/ForumAdapter.java +++ /dev/null @@ -1,93 +0,0 @@ -package org.briarproject.android.forum; - -import android.content.Context; -import android.content.res.Resources; -import android.text.format.DateUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.ImageButton; -import android.widget.LinearLayout; -import android.widget.TextView; - -import org.briarproject.R; -import org.briarproject.android.util.AuthorView; -import org.briarproject.android.util.LayoutUtils; -import org.briarproject.api.forum.ForumPostHeader; -import org.briarproject.api.identity.Author; -import org.briarproject.util.StringUtils; - -import java.util.ArrayList; - -import static android.view.Gravity.CENTER_HORIZONTAL; -import static android.view.Gravity.CENTER_VERTICAL; -import static android.widget.LinearLayout.HORIZONTAL; -import static android.widget.LinearLayout.VERTICAL; -import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; - -class ForumAdapter extends ArrayAdapter<ForumItem> { - - private final int pad; - - ForumAdapter(Context ctx) { - super(ctx, android.R.layout.simple_expandable_list_item_1, - new ArrayList<ForumItem>()); - pad = LayoutUtils.getPadding(ctx); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ForumItem item = getItem(position); - ForumPostHeader header = item.getHeader(); - Context ctx = getContext(); - Resources res = ctx.getResources(); - - LinearLayout layout = new LinearLayout(ctx); - layout.setOrientation(VERTICAL); - layout.setGravity(CENTER_HORIZONTAL); - if (!header.isRead()) - layout.setBackgroundColor(res.getColor(R.color.unread_background)); - - LinearLayout headerLayout = new LinearLayout(ctx); - headerLayout.setOrientation(HORIZONTAL); - headerLayout.setGravity(CENTER_VERTICAL); - - AuthorView authorView = new AuthorView(ctx); - authorView.setLayoutParams(WRAP_WRAP_1); - authorView.setPadding(0, pad, pad, pad); - Author author = header.getAuthor(); - if (author == null) { - authorView.init(null, null, header.getAuthorStatus()); - } else { - authorView.init(author.getName(), author.getId(), - header.getAuthorStatus()); - } - headerLayout.addView(authorView); - - TextView date = new TextView(ctx); - date.setPadding(pad, pad, pad, pad); - long timestamp = header.getTimestamp(); - date.setText(DateUtils.getRelativeTimeSpanString(ctx, timestamp)); - headerLayout.addView(date); - layout.addView(headerLayout); - - if (item.getBody() == null) { - TextView ellipsis = new TextView(ctx); - ellipsis.setPadding(pad, 0, pad, pad); - ellipsis.setText("\u2026"); - layout.addView(ellipsis); - } else if (header.getContentType().equals("text/plain")) { - TextView text = new TextView(ctx); - text.setPadding(pad, 0, pad, pad); - text.setText(StringUtils.fromUtf8(item.getBody())); - layout.addView(text); - } else { - ImageButton attachment = new ImageButton(ctx); - attachment.setPadding(pad, 0, pad, pad); - attachment.setImageResource(R.drawable.content_attachment); - layout.addView(attachment); - } - - return layout; - } -} \ No newline at end of file diff --git a/briar-android/src/org/briarproject/android/forum/ForumEntry.java b/briar-android/src/org/briarproject/android/forum/ForumEntry.java index c3c668f7a0..a24d94bbcf 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumEntry.java +++ b/briar-android/src/org/briarproject/android/forum/ForumEntry.java @@ -1,6 +1,7 @@ package org.briarproject.android.forum; import org.briarproject.api.forum.ForumPostHeader; +import org.briarproject.api.identity.Author.Status; import org.briarproject.api.identity.AuthorId; import org.briarproject.api.sync.MessageId; @@ -12,23 +13,25 @@ public class ForumEntry { private final long timestamp; private final String author; private final AuthorId authorId; + private Status status; private boolean isShowingDescendants = true; private boolean isRead = true; public ForumEntry(ForumPostHeader h, String text, int level) { this(h.getId(), text, level, h.getTimestamp(), h.getAuthor().getName(), - h.getAuthor().getId()); + h.getAuthor().getId(), h.getAuthorStatus()); this.isRead = h.isRead(); } public ForumEntry(MessageId messageId, String text, int level, - long timestamp, String author, AuthorId authorId) { + long timestamp, String author, AuthorId authorId, Status status) { this.messageId = messageId; this.text = text; this.level = level; this.timestamp = timestamp; this.author = author; this.authorId = authorId; + this.status = status; } public String getText() { @@ -51,6 +54,10 @@ public class ForumEntry { return authorId; } + public Status getStatus() { + return status; + } + public boolean isShowingDescendants() { return isShowingDescendants; } diff --git a/briar-android/src/org/briarproject/android/forum/ForumTestControllerImpl.java b/briar-android/src/org/briarproject/android/forum/ForumTestControllerImpl.java index ec1470ed85..2aef2ae5e1 100644 --- a/briar-android/src/org/briarproject/android/forum/ForumTestControllerImpl.java +++ b/briar-android/src/org/briarproject/android/forum/ForumTestControllerImpl.java @@ -15,6 +15,8 @@ import java.util.logging.Logger; import javax.inject.Inject; +import static org.briarproject.api.identity.Author.Status.UNVERIFIED; + public class ForumTestControllerImpl implements ForumController { private static final Logger LOG = @@ -115,7 +117,7 @@ public class ForumTestControllerImpl implements ForumController { forumEntries[e] = new ForumEntry(new MessageId(b), SAGA.substring(0, i[e]), l[e], timestamp, AUTHORS[authorIndex], - AUTHOR_ID[authorIndex]); + AUTHOR_ID[authorIndex], UNVERIFIED); } LOG.info("forum entries: " + forumEntries.length); resultHandler.onResult(true); diff --git a/briar-android/src/org/briarproject/android/util/AuthorView.java b/briar-android/src/org/briarproject/android/util/AuthorView.java deleted file mode 100644 index 4b11d51e8d..0000000000 --- a/briar-android/src/org/briarproject/android/util/AuthorView.java +++ /dev/null @@ -1,81 +0,0 @@ -package org.briarproject.android.util; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.TextView; - -import org.briarproject.R; -import org.briarproject.api.crypto.CryptoComponent; -import org.briarproject.api.identity.Author; -import org.briarproject.api.identity.AuthorId; - -import javax.inject.Inject; - -import im.delight.android.identicons.IdenticonDrawable; - -public class AuthorView extends FrameLayout { - - private ImageView avatarView; - private TextView nameView; - private ImageView statusView; - - public AuthorView(Context ctx) { - super(ctx); - - initViews(); - } - - public AuthorView(Context context, AttributeSet attrs) { - super(context, attrs); - - initViews(); - } - - public AuthorView(Context context, AttributeSet attrs, - int defStyle) { - super(context, attrs, defStyle); - - initViews(); - } - - private void initViews() { - if (isInEditMode()) - return; - - View v = LayoutInflater.from(getContext()).inflate( - R.layout.author_view, this, true); - - avatarView = (ImageView) v.findViewById(R.id.avatarView); - nameView = (TextView) v.findViewById(R.id.nameView); - statusView = (ImageView) v.findViewById(R.id.statusView); - } - - public void init(String name, AuthorId id, Author.Status status) { - if (name == null) { - nameView.setText(R.string.anonymous); - } else { - nameView.setText(name); - avatarView.setImageDrawable( - new IdenticonDrawable(id.getBytes())); - } - - switch(status) { - case ANONYMOUS: - statusView.setImageResource(R.drawable.identity_anonymous); - break; - case UNKNOWN: - statusView.setImageResource(R.drawable.identity_unknown); - break; - case UNVERIFIED: - statusView.setImageResource(R.drawable.identity_unverified); - break; - case VERIFIED: - statusView.setImageResource(R.drawable.identity_verified); - break; - } - } -} diff --git a/briar-android/src/org/briarproject/android/util/TrustIndicatorView.java b/briar-android/src/org/briarproject/android/util/TrustIndicatorView.java new file mode 100644 index 0000000000..ce01bf301e --- /dev/null +++ b/briar-android/src/org/briarproject/android/util/TrustIndicatorView.java @@ -0,0 +1,44 @@ +package org.briarproject.android.util; + +import android.content.Context; +import android.support.v4.content.ContextCompat; +import android.util.AttributeSet; +import android.widget.ImageView; + +import org.briarproject.R; +import org.briarproject.api.identity.Author.Status; + +public class TrustIndicatorView extends ImageView { + + public TrustIndicatorView(Context context) { + super(context); + } + + public TrustIndicatorView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public TrustIndicatorView(Context context, AttributeSet attrs, + int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public void setTrustLevel(Status status) { + int res; + switch (status) { + case ANONYMOUS: + res = R.drawable.trust_indicator_anonymous; + break; + case UNVERIFIED: + res = R.drawable.trust_indicator_unverified; + break; + case VERIFIED: + res = R.drawable.trust_indicator_verified; + break; + default: + res = R.drawable.trust_indicator_unknown; + } + setImageDrawable(ContextCompat.getDrawable(getContext(), res)); + } + +} -- GitLab