From e07c2d169aefcd14d6a6ba76564aacaa40f87479 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Wed, 26 Aug 2020 08:19:30 +0200 Subject: [PATCH] - use display name for avatar generation - use new server algorithm Ref: https://github.com/nextcloud/nextcloud-vue/blob/master/src/functions/usernameToColor/usernameToColor.js Signed-off-by: tobiasKaminsky --- ...FileDisplayActivityScreenshotIT_drawer.png | Bin 23356 -> 23120 bytes ...t.FileDisplayActivityScreenshotIT_open.png | Bin 9745 -> 9750 bytes ...activity.ManageAccountsActivityIT_open.png | Bin 11440 -> 11491 bytes ...logFragmentIT_testAccountChooserDialog.png | Bin 17328 -> 17383 bytes scripts/analysis/findbugs-results.txt | 2 +- .../owncloud/android/utils/BitmapUtilsIT.kt | 79 +++++ .../client/account/UserAccountManager.java | 16 +- .../datamodel/ThumbnailsCacheManager.java | 5 +- .../com/owncloud/android/ui/TextDrawable.java | 20 +- .../ui/adapter/SyncedFolderAdapter.java | 3 +- .../owncloud/android/utils/BitmapUtils.java | 299 +++++++----------- 11 files changed, 223 insertions(+), 201 deletions(-) create mode 100644 src/androidTest/java/com/owncloud/android/utils/BitmapUtilsIT.kt diff --git a/screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_drawer.png b/screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_drawer.png index a20e7280b40c24d3dd843fa72c1e03c5c80ecc22..be47302cb0024e8f1c49579cf168f31f4e7f9990 100644 GIT binary patch literal 23120 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 C@a7T# literal 23356 zcmb@ucUV(tyDuCmq9|ZP6a*|I3J6#z(oqo$Qba=NQIXyR=~Ym`hFAeXy0nDe2~9x( z1*8*t5s^UXB>_UncQ4^^z=ltPyIm|LyS$UrOS05g0YhL1D=VeEsP#jk- ztLmUoo0d>0=5t#%!%y~VUNc9bjF_*ep40W{of_Ecfi{ntp**PPjzQ7BJCB~vC8YKsdBr4kSS z&BTvF?I8W@&wUj(6pBR-g*w=>>GvO00O$X>^dFZam;U4O-T%rX=i8m(Jk6w+XFT)x zI^32@B$jFVh_tv6QFjuq9wsE5TCC{%Zqc{VVUEqY{K@!KiYDAe79Y+14-4x?g(JNY z6oX{VP4G|ei=tx$HO!>FbT5}qmIR> z7v0NcY@yb8qg#&|Ev)|BPBlr{1y5V$JKNgGGiLhShQIEdx#(E2S;(&Gj`_uRz3%Vc zEW@WmId_*n{CS{{y7~dnSch-@R$5 zj+ZZedpugArtFLPTgumpet4lkm#1C3L-J?+W}KXODDU`So!uwnu4e1X4=Oh+$Xj7c z6XcG;I}-VQ{XEBdS;c8*S_{Ma7Ys306(0ISl$3MP2bA_VZ_q->S%+*(d zX7g}oLglG`GKOz}%i5O(rzE8zSg@-<+Qj{SyM~!dOsTj=L+H8KV@z~vF(&s@vFY6!cuD`W97L8rsG+ortC2f za71Hnk}~!XGOx~Pe0q01GL`cquQ2ztllNLUJC7ozui5{qOk+*xicOeQwsyBb=$7eE z!ZfsmirOs!O>$PR_c!W0?wY+bOKPgx6EG}}F`J-ojz7wBl#P1vGXckb*16HBK{81( zZ)g1cLdIqsVN71;g!$1QjMn6=`Grf-YFKRD4h`L>E(wI@-pDn^x`#sYb*Jv)PKAJs zXQx7%WwxZ9+ATYnMN|)sA5z;NxMlX}KI%Zg)92ZXyX<-F_0L_{jQjQA&||@{_sgS} z=35T+F1C;pM=#1_`EP`#7CcX&>NdS%O_ZK0$ozGlrTNM@j>wPNveY1X_Uc=H*^Nx) zmN+F{2{cI!PvTB7NH(*Qrzdc6eZ0)R!?hhRstYer5_?KS;y+@-ryZ@snFR&jOb$3LiDzH`#{(FH|5>&;%@ zWLYj88>x!EsejCBJLzoHgHz$6TL5SxvQ0jp&1Ax9ebz77SmBJVXkyHzj_ZhuXt?qf3RY}Xu-kYMdK@!LFhOI7AoRS$yYU+2SvP=USCHHQ+uhMMu zG1bYsJ$bXa+m_kM=5J;O$s*`Y6f9TA)kWu1L9YX4Gv~+RopwC)y)=XEV?)mdWzDE^ zb!12e2lD+e{+{f{t{=3ftkw6t0)t_=gS4`g4qgK{t%3IEd7k>&F$msX>lzFt(wD=h>Yt$Vcg$Q+yrD1CH z;KQ1JuNpp7{h5HQp2jfgr&`N(n9+QOg0DI$ECbhM#cf$|^#p#DIKpl0wdX#sKgaot zeX8V?ihjP&r1iqto3%cMx(T*Z%1x8f$qUc->afppdy8-1ZKwGDt^vmj(R0nPU)h-G zok8*v1Wx15NQZ;31wupA98%Te^1ON?MZVP2(}*h7-kj??rEj#G(~1wtTU=u#kt>SA zPNj0+jcD^|**<@BFG0jdDmJkxgUht0-ZV_m-_PDA{83fL_`azdXPVl*1)BV0<97IQ zP8wXEUGcg`zO!UpogR>HBY~EKhncsL!zP3InsM`dCH)Smf#{{`QR(W?Rnj%}%{ z@1e6-76hxE9yqhO_{>>jjuuyy!cUUJ2Ho>;r+rgQO&knUj`wDHNY!NF*sRE~I_vy&&k8N~Os+8tOmn)jhsA&65?}tdJu^Cn zYDTn8%%WNm`$V608olUhy4{g8?=+L6-R@T{v2*vbkd=wlfy1-TJi0#!d_xx_l9LZ$ zL-}Ja6okcaC^ZU|I4F|PEls9&eP1|aoA$TxZydHR{caQ%BzR#Ywo8Foto`2FVqQf$ zFUo7sZ)p8dG}SoL9;=AH$ORkCoV0lFpiPmJ;hDN4*=1dVzv9VfPj_^p@iXh`J9noC zhKY5uRjAUYmgaDnfYh&8!Zp#}n32yCt5>&{ykEJ?T_MyOEU@P)yDaO=EN?;DVoZ9du)NSw`-YPIfmMNaKxzS25@lBp#{)$SyJ z2otQhyY8&yt+d639=j*97xQ?VUE_bz`;z}5g(te2&@Az=*f%+D`2cji@O69!7 zwO-BUGtL|5PCiQ@o}+DZIFUprd3j}K$06HyvzdRT=GhgqEbYo2d#+fUMrWQxqg35K zt!0qju6Ng5dX>YxhK!$v5nVGA~czciG%j9aOkDo^cP@rmieAQ%L z$M0CLTEKy8HXXU0TUv9E#H9|(Hw`fc`JAgNmaB8iMg0dxwiPp)K7YOp_?my&e>mUy z@vDszvQCE8D2_e7(Z?pTx?D?cV9C#@&91ya*y{Kl)sZ({jlMx97G9fOGNK%_ua-GE z2?^^qS&q5y^jm)>zQ4oEI_83&|IjB{{HK?1xe8iWS7$v8muf#`{!o^I9fe~Tksc6P zB1ULir{hLne;3zss9NVhcDiEuH(jZ$nT~?m@|tub%;;3VE(<7_@zYA_li77Xjq<&h z@@;;Ei@*Cu@|!^9OsUGrU%tZb&zb)lo${X~hH-Y~`a;9gaQY9Ps`>?IM0xzBT>hby zh8L2hE-2z*k^{dxEN%osO837KQT2)?b{zjkVEsce{ii$mTkQO$$5g(vcr7$!dT^tD zKJug2&K>^!j>u(yUy8`KfB&k+?E$fokycx`ZVi9)=FZozU(0Pix{3%1)&BVLqow&wdnZl!xx|Im{c)kcR~L`?U;6C4&eNmpn{Q+N6i&) zsviyb9x033kVX;z{s4%W{7-kKBF?^4HG9@v>-&J2GQT{}@_cOQ)o!eu-cOlLC>00J zrA_xJ-IUSsHXon$-lPqQ1dul3oJ&j93JM($ZfdD7|5%-tsLHUi$M5|<&ogGHlSlVl zJye!!S3Y1;M!KkcDW7sPP-D=epEE`?Pwwb8ed5}ejPoyj-u3Q9-8U8_^;|TeOcEGb zTGMuY;|x1x^9qZp0)HFhYEwsyQo(xv>Kz&*LLkRfxPiO+rShdUx7qzmIt+O{K82Dz=!GZpQR zvzAi-N!<}PQo#zF=iXrJ!$oP|MW?bP!&|h&$vSbls}B{s<2}NuXU>=lVyETo=bcU! zS&a+JN9)$_di83$jBYtqDfi_>rgSw`IIMZVO=N6-A6Ym5QKy8-!6p4~zbO92?{hdp zc4Zik_)t^^ZtI;^3U?QU2OlPBU2}?SPKZ-!_^vZrQ=jwG1N~%Sg0$$zV9n2;hw+{jV|)msb$1;xwjpnjG+k-8xUay{&pV ztK{Nc$Ic6LJYb>K{GdxS5_kt=xL~mf?8JpOeD32gAIB=-;<0_t*+^+;1kJi$g

xfWa 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 P^ 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 diff --git a/screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_open.png b/screenshots/gplay/debug/com.nextcloud.client.FileDisplayActivityScreenshotIT_open.png index a7896adb5c85e322ec5613730c0699471de936c4..78f13a1e932f1c3bb8096d0f18b8b95d4b186586 100644 GIT binary patch literal 9750 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 PFUZN`PRA;bTul5ApPUp` literal 9745 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 diff --git a/screenshots/gplay/debug/com.owncloud.android.ui.activity.ManageAccountsActivityIT_open.png b/screenshots/gplay/debug/com.owncloud.android.ui.activity.ManageAccountsActivityIT_open.png index 793fc3768b0b2c3a0246f0d6fa9aae3b88dd6b66..bab3c63e9eda03c52560b68ab221b65d9b63a936 100644 GIT binary patch delta 8997 zcmW-ndpy(oAIBA472Qr!E}ayo+=|f5NEbRKPAPKlluO9u&X{kdl0zi-uqow|%VHR2 zR;h-uk;`JX6=oR5W@cma`}%o2{A1g9-_Pg!dB5M!*X!k@%b3f{qriv1FIeA*9-d`v z$u0DGBwEX7ZX=wZEZp@(Zo|9d7hgZz__$7GwfOPAA>o~&O&5J=wUr-DZ+N=T-)yCsARS#VU*^q=-D&P!T@X%Q80CrBQY0Or zLa+ogmkn}~dI)Tj+~G;NjCvhp#;zTkf%)|95`Emrb(>T*7bVE}E~OFtD0y9Wexpn(dZU6Nv^@KSnuf-9Cm@ZGnID5vhjp+BW z;+)NA*OU=~U5QHS!2AVQu>n zpPnLXpSGQ51*5lC>S>;C;6k&EqUV1ZiAKV5h^uTv_BRzTy=24I=ph8RihNnOs=s3P z`;%>ZrWK zOjJk25}C0)LMW#&D*Ja^B8_X%`0KHcR7f+-hc{2{v#P+;lDkS)r91$`Jv>nu#gyE_ z4F^<63QVh8CDZ1DT5yMGv!`nx8e3`M=s`FJVllR9@y8Xe$PKVjqRrHhG}NtDs&LE` zX3XfjF~De&PA5H>=#lLn+95gM8<4w~vPBR^vN`G%v4K z$p9w%+kUsoF`4%kJzU^Ugs)q5)5Pn8quP@UDZ!iZtubWG+yE~ebmIb1;HCo-)@nS!5 zN?2d&;tkhUscY^ia5bUe!y4pr77PiCKhzbE3P#3RJ!$U3>diStS`Ss zsggyux3+ndG@X0uE>mT(+lf^~ zF|1&0K12KJhf=eP&d`l{qroP(KRpylKlA1y_l~ORrdm96g4mBtgNxO3uoQbsEgbt) zrKYd_`6=PpjJ~b*3=u} zB_(0^&62opB@ZNx`r=`62;fcDz#Hy z=vmxX`q%pctB_ld^6wcK>jIvi5mgN}<)K^wL&uB} z#)gG4l0!s3mTDPG;)J`p-9Ylwz;t_t$V-squWSg7)w*Z}g{Y$FCrmvU8yWwbV z;L)qzA6|(PpS6$UXHb4VDz#B=bX>65SKljGC2=yHs%5jj3&=` zGnX1vxwN;~mIgcxtHN&R4vz~fz(WSAAp1@hvn{=wt@y#()F8{+hx7f84pqtQ+S?~f z_iS8D0&nRWwT7=f(M@xNKGp4QFEi__RLwG}b!~xERp9&T2@Lq0SE{jJR&+@;_OO19 z{b4Bai^t>KO%EZJFE{x@3VIYybK=oq6o_zNWh8Wy7p%!^D5U+=c)|7T-2tgQPHf&( zd%%2(yV>x);^v}i@VNLuzUe8>^JBugpoz--=rFvmwWnvc36Zp0%cj4KQ^T3Rp!7a& zSCz3`RpK9f7~i>1s(*${ft6-kHPD?Gy3r14yTbqD2Hm?bQIU$ukw>XYC<)Y_&3n z4<`M7tYAX@+eW%3!K}Hqy${gB4Py#0%VWwtA!b|$0x|Y%(yAdm(K%)w#2keq`e(DrFI0so<6$HNA+k0uN zu{kxUgeL9u_aJEkaj;`2txAVJw;%r(y|&7MQZgXhbrqD&CyO%fZ9f7mfn!$E>ta*n zLD*&gcA%hk-~{kV*=lwEV6(!}-j2?R_T=Qc&aztFm_KlFi;?(r6-%)QSQ8=iAbm_# zh<5Xf!JN9Qa>T{=h69Iv=&CV(|20DmSBCpmvhFf;P|+P3jY8Y*Rb}Nczy#bZY9&bLbUQW0mO*kL{I@9VqmQ9&a0l+mQSUBb*9f z!96G6#XQCOzM~KL-_sno6fHI=>eu}v&Gn>_Q@`~)jYX|ePjU)^oCUzHq;UMK_RP?m zjl04TM-@9mTh3^zPH8tlf}y3M#|-keZ$8^IH3t4wx6JrRaB7maUnhinF!a`ED00JA zbLoZsPuN<;eBYZ9c;{I8^|#iZt#Wy{Ipa?~SCAF=0&(7tWz)+GKFfX7tVA^M#zHX6 zWjBS4bz(6uDsuF(^N)R|p6=Hp8`S;d5>|e!(}ry5w*R#soTx81sb~#Mb>liUdBDdJ z(}@lv3EO$tGq^w5ke23Dq2GE-we|)T<8$^iPFHHQjzI~+s`&hyWHR_|J-Fp z|7xlc`e_mdCN%FsojoFMHi6Z(c1l9zch-VPm-WJQxGWw9A88B)@h_(o4a7I=;b&@n zKnT)ZKLVs6O|Z;DxmCDqu-oPgIC~N9*AF=PEOkH+IMTJ{7MqH^EJuH8gEN2cCU@95O3}G2=85ITRzuot+@c~Qfz0U z#-rjyJ2)n8kz{sO^ndXK zFcw=Pdp3o>81l`pl8I)pRD;0En(zB^x@Ca#00z`7Y+EbIwVf*-QH-0i`9!P!-BK|J z?UjA&&bGB5a+Y^A5WwV{(77hgAXOPM{<3z^HBcxm68YX-fpe>FM&1gmhkJ;AtZ07F z{TVxoDn;kR9j@Oge0o36p4z$ee>svVxnfATq0+(5MO5S4l%ScQ?yIf#CW6r2X%C$p z_cHxtYq#INR5|_Q8VOjnWhqJaVp?2LuPq+Wl^@bn2Ry#FoMs=YQ>&e_VKb64I)mp9 zSbh@;4$i@{Rx(!_MvurN;^J)}w zhpf)Gar;-c=@k5<($Q^9wP1geSJqpfgn5D0O`Tvv2Xc6E9H{UBqOx)HKVfWA6h3I< zNv?#SLv**D3YmP9xFjv2rl_P(0oB(C2Zn4tJ7z1fln;)_x)n*@0n+DMsb$2>6pBC^ z!zsj#nQmKl0Q-8gZFZX8v%pjW4lG1$wVE;YEU%6KC_%>04;BvT2-vvqB1uD1i2X(G ziKQzBP2O}m$dPfvVja4|!#vGJoCMzEHQfe1B-b@8VVn?I!p^Ax;c~vO;&GiY-g(P^ ze;g%3H*W%dS&N_=7I>w@%a=y>Nw;*dedS|+0CN-aZQ&4}H_l{K+>J{D^ zW7V&7FTp3LS~DTrt)#Mf*~(J~3AW&zSX6w&$Vyk3@UAbzOfJ{O@zeD#< zBjq3Fy#c?~;Wo8NTCIxEG2UYplNdy{2gyXanTVJZLG!@1mRQIky@+mX6b-oS760jr@yr>7%|w#eIJnDmNg_r1 zEb0d10KRsj?Aa+yPV$mVaY1e0l26hmglMTexMjiS#pGi2MO=B1ZiR;Ji-R{cV#d?? zow}I*oQ!T=3Y*aH=JnKoM#kgRfz^ee1m*xW50zG2ID%{0$h2IUar9Eh2xxMeH>GeO zEB1cvXlUQD$ygb`MTF!n2jMEU1pePz(z!Fjm2`IXTCmiUl?KXbLJKIvebQh{%b(K9 z84dj8R#4uMe_S#2F#UNu;ox)>Gp5vH;p<)@IJP~fn`RPL3#PT>rcP_a2zt8HN>@DU}tTkfcIV48=?0y&TbOahvTgA@tk|BvA z(57jyY@JB~#>M`H+dA?W#v5unPgI1jwv3copv9i>e2y{idk*UgJY(fmUbe-=psLER z;`P&)=Cj}P<4lvxoGohOp{t_|bce8Vb0fd|;^lL{T5KS$44ILS2q@Qr!@j4=b2+f| z`IJLu)hU`*t(!x-O=y*m4nRV^U(8SB2YYJ8uz@V+Y^^kl+Rf|_71bXebwNKcK&OV? z%&pe-TK=Lk4A*_+5m5f#{Elq0I4v8rvhZD2YpW*wZ8pp+us??%wC#k>(U0Z0Umr^k zatGZs_CtB4vNvTI(JII?}x4Gi$A00C2al{4TE6&+;~GH<9qzA(r2go zP@Taq#F1-$7Z}@~k3>@I5vD>sIBN$*r>HlC4Rp90F$V*zt*~e!7*%ub(v5XPN0ME( zZbd=Bi%(DL0gD1#*zVZ?w-AzgR3*G=BUd$_?mnQxsVI3o=D*UmlK1{t-!Q4gKgT}_ zL@BUTQ7mbnwAfAI9Tl1792-vWMMmCF1*s@CXqeD` zi=pklcVu|=H|2C7)5)Zmo??->L-jh)h68A!I4O{p!?Fi+&7j(#({rAVDP0;FZweF@n7XnC z4Elt5_3dw-Ts0kfXCJ}g`b*=Rhn+a8c^3%VLhpkUSs2^>XYyd%k(gEr0J^;hJcuue zhhHC;PJBEU3FqSxTz#Id++s!%EuA%8kxBAI#56k)NEN{jdQny)UsA}z1!TY}G>T7x zk!thD%3jz3wl>f5G^qWvym%4*V8Ii8Yp&jJ|8p;I9Ublt`E8eOR@3cPWgmEReDRja zP)dp5fB=hMxwWTm22eOnDux1#dpLqWtkk1p>k3$y)mS;zO@7`Zg)C}aJT7LWisyko zz|n$kAF2r;=s~xOJtH*`qiwf-Z{I2jk7$4SqVqZDd-e(nDU%Nl1ZQ8?XYwl1ks7Lm zI66vKa&JUMS=Q&`m`e%wY;LXFrz=dZ1&g||OwE}B*tW{P8OC308&nH~XFa{qeaS3@ z8p6;%unl1|-R)DQ_{lfZ?q9RwE|f(!Nb;Ce@B9^}nClNS%ZrDL3Vf%DWYzqR;z_$I z7C6})^)43-^GX>F2ZwBoF9(BrIl_tQh{U#K1)0&i?XPG!mPj}FP8Crt#mW+5d}w|s zFmo{{rzW^X{HP&S%p4s1S zRP}v=5va4R&S+XkG2NmhZmlFA{-ICvx68Zi0fA$zUiS%+yP08lhNIEzdkyi7c0nIJ z)-g6?*Fkj!&?OqkICby<;E;Rrv)8WMgF6v=MywV#z{B~8hd$EDSz0zrmXi)vZkB5` z))4^&VPni&%ZULTSrunVH=Ss@>fqdHwr7fqA+{F8@jKWo*(@s{8uU_mq2K;+&UAEu z)o<1(VMW7%81w(2^Pl9o;h`JzdfoS9OiGg?m`+Z$I@L*ja3Fu|Qz<$gp`OPX5qv%R zxx4+8BHgkbIk!sC?%Fo*Us~u?x*FE$TJkMFeXd{Q3bqqQr=;43MITNUyAt7rL*Oa1 z*fNXiEC2g;;?6^ZHD!i~=BmK~NmEcN*Y9cE{y!(0I_%p>pp%Jkq5P(PX$%Hd=)wjF z%Cg>Mj~o`b(ZjtL!2fG%vdYx3;;Kf+>S8v%^PQ*K`L07%I}Qmhz@#(JdNH);X7)`B z71cFC8prD4Zy6QP3?O9USZS2+}P*d+f66 zRp0v9)J>dPg`;mS-*Bb6QJxD{SZlIb$%U9$VSw&`%E>Yb^_ryM(o7#AWfCl743$)zN&{6;- z9D*BIiM!_5qez{!6pAL~Vn6+x1#NbAvSlnOPYqSQzdk~iz%svVr-sK?DVUHR8z1R< zUY~R!6{B-$wxKV7Wn?bo=)I~6EM9Qy_0|TIA9H{Pi-DIc6)XkV)*hlyx405d)vx>% z|FrmIYcN^!<>6CujhnJQnibs^DgzjztO|{TL$l6VWPAy7U6h+ej#Q5zze$3ho$bHYl*MXz6|Ao6MGzfA7D04B-MP9BU}_g255~zH-gmE#w|EgJQ6mTDXzA zc<*DYSBt-ACVp@I=Q}}48BfEJ8>5)zG`9zHP28AS#crsBOVrdcvQx!XCA}*K%W1vd zPK~tV%cn2{7emqqW?bZGwDZgpeUmOJ*=csWIR^xb2jANVDWJ=JK&PVF#V@o>(0gcG zl;=rbM9V!p^zyL-r{sIQ5;D?H+ypHc?F@{LHgJ}>RRYFMwzzVc@Pvsugc`l0$U~PefRhsX1geKDBV_L$Pm@P z&MFqden%fLbutL+I%SK&$jc#3C%sljRk#2k6QGH_+LW*Kbw2e2hBHpz`TBf4PsrA9 z`1v+&E)1PNA>@G^#9z;UX229D=q{s>+ZA9$=P%KNb3g*1ti{M-`CAE?X7G*zpYQoa z5HayxFwqDq)AJ0kMbNpPw^7cF?Qq!qsZwomJu=&&Y1u+1JKg&CX3-&xN~3|9;9YN>DoC7F2(eunKJO5DxK@`=B(g= zg8J?K>TmqUqrrng`*fPrW$bF# z=Z898Y@24VZWKrn8COlqt%+c02zp5~z;&Vs+~R>`%8h9_^?8X(H%?4 zWbyy?*8eldu@Tea-!`MU$7g2leQgm?+)_ctO;t^ub4Lv&1~m+o-2HwSZMFO>A!69# z4KJzd=xN1OBetyPyt3G8$FJfu=Xile=4omxl#t0w%Y3Pwj?Tw!|40D5U)x<>;S|BYccDxbG$XnVF(H(9T?eP5pxJbIz(1mEo&(eTE{7FduBYAVUf5k#=a(hkga-=)aPL3p;C8|@*>R+ zO#=>xQHB=cz<)YWH+QJl8Hf1N=hPOp=b9`OTWa@M8g7CXx5cmXN!AD?9!&k{QE^tJ z_YR;sM(9DUsi`*mqu8zbA3tr3xNJd6b&KEt=7lDu-`AyAL}HOk0qx)*n1eA4h^zc& z#uEvRD2sqOp>I2I`6Fv7Kf{PdMpS#7>io71d6sD-me;6Ms=f6n`sN$~5@DEpC~Weu zv4(gE2D4E`(N7S>DvSd((6 zyc5+UZ+WE4GSI8<^lHBD5$?l1X*8j%Z<1JbowGf5qa0g9UpvEdjxVQrF~@s+(;0?f z1vKaC^9xSk87`-i(Z-j&+@os%>oF__^Rqwr~?H%S0jX z&*dR%ywkeUkf_N4ClwW7S_0)zx~l4;A#&oTvz!o2#y*o6j1Xo(m@b|E+ z`s7<@1v@grAjzM#+HNif-Y0?4G%5FRcgBVte_?lO|F=1#=(zFv?;3!i+fPKBD Z=@}nVn0caZmmK)>_eJ{))#q+M{vU<=zNi2I literal 11440 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 Fe*wRX;LiX6 diff --git a/screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testAccountChooserDialog.png b/screenshots/gplay/debug/com.owncloud.android.ui.dialog.DialogFragmentIT_testAccountChooserDialog.png index 69d4abdb45480a925a84144a8f1ff62ed25f11ec..5f0ec539533336b09d4d32072c20f511c4e1ecd4 100644 GIT binary patch literal 17383 zcmeIaXH-+)+U^|-7ErMvO0yuA&{TR?1QAer2rZz}dkwuQB1#n{ARr)BNJx+pN7ag(flC>>bdGXq6~C0SP=-m(K)&ygmvETm;AGfDq9G(i zP~7{^?utkiFU0IN=O>d{pC`*b#0tLy%TLuDy`)bn}cZ*=m-hv9zQ_RULtpo~<2g|8;$fj>ca|`Bq!ZC3|+=HIbRiJ?cJQHLjqy z2Wr^%W(}*8`fA%8@_n3(i!mZE7F&>G+e?m*iOFv4b6b4x^F*(5z@PjrdCh*{?db!7 zO?RbVoMEfhX%*w`?d$HDMZ8^g9QqN;`m@c15n^;|Bzg|>Tkel}{8PiitE!E3`QNMk zh3n6@dSk`Zxpoa8S8j$hHd~cm&r(FMLF+PtJxk5 z{7Ef$uld36=I6K^_s$1s2GtgNFZk0bQEpZq55}LQ$Wmej5Hq_n$Qd1s_SZb%cw0EHR>s?a{s?w417F{A9v+^uaY^?%t1`dmvBvQbr@D}a z7?IgRyKruyRSI4ut{{=EJB)CG;d>;f)L<0}YiOw$b^*CJRN+%{^3px9FoF(G6Gidr zay#9!yBnrk!$HhOfz6*Kx{?ESy=FVoLkul87Dsvu%vF8HQSh4B;}E#7r^>OnIyEOkniS^9BKx76u5eKT7#J=Xwlvp!&(r*CBR zIZ52PW|O|)`0=KCG1;+-GUT%$!!GXh{riz%E-EuTCd@50 zn=buOpD%v1pHN;d2rf8H0Q)F{t^XAR z6CZQo_dq-Qxq?HYf+L^!DL$RCG>K_rTjSLCB7!DAy?X?$OE$S)D_!UqSG35be6sIV zqQG|&L_!H`XYBTNO)MjFdQRthug%b^YTul6#ePh5tn9}TW}vKmB}3jA6rcWwJ*k&= zQ;Eos`FHVTyV>Zj$%?P1J04bRr7QTeQ?Ln4XKT3Y>vswUwc3)xtl|mgDnwg7^Lku* zgPnH!xXL{nKi^TquS}fM^xuuBrXBc*Mu`KZNUlA=@EQ!QlP^Z~?P6&8z@utc^ZNLD zzhz3l(q%t0^QPGGJ)JA;UcU9BTdLd1PyBR8I=8}3u6vRh1r&}&T@1BwhqXOgo3HoA z3$67lV|vTtb)xkuZ5^A7)vLd}@59^1Ap&;Rc1a&Uex%HXoZ@r|n)KUTbxxV@#U>)B z+N&i!Xm(ZG%VEfcp`<;-mmC*4UJh-vadq8YW~aD53N+hV?DPMfJ->=SaZSXrOIKAq zW_|RnM~U@wOKq+Bk9AF*Mw=$4)Ie5jV^xgp@qZxGQ4RJ}h zpv}tJNTNBh`&I%s;ah>9Ctn{y20iZIpWh^NkkUga%go3cc+G+_Ep~tJ_kKxwx5aTs9b<8mrY$aRQR#B(xmBBifp1*n6qIcq!0pAC?0DpEN zi}2aVPA^Vc$lI{Ot%WKot!$D@%6H?NE#mwwjqg=YdeE?WY{`&Iby|qQg|b7f?#!?o zfniEP)ZzBRbhFLNJU8Ha3qj30@ATBo}SJu0Z3)$EmrL22TQ%Dy$R z@aeV7T)Tbles5ypX??o)GpAdgv_Eu|7xQ&fgA{mX^DUOAm=Z%Ba5D zw4U6&PF8IiyN3{iu)?1O@4Xbfc;wH)7w-kn@8aj~D^#C>zC9LoYf6^wS5D5h`N5xe z-5&k<68L`c;B}$uXl-!IZ|P@$Ns>MDM(y@j^#3@+4`&-o%Z;32nzz-#=ZD3bk>46xm{ z$?e&lWEXwnIw=o{?m*_aMb|!Ke4pQR%8U^H`3gBC1jh+0^USvsqopE4CkVP}>@qnu zk#(GVoxG}~%7JpPLSok!94fQ09hpU-F`V^WC&%75izLL&3g(9f)EKPn~2? zTy(u6RV;hG6Qb$#J4RP2@_3XXyT~^X@hronj;jnwmtj3VzR~0-`tNv?OB_>@q`f+I z^NiVr005^f&nIL_&J^ZNBtAFruXL4?T=0n@WMK0p8MjiugVd-4j6 zIjt!!drq)&qlQM96=;eROxcscU(=cBNLRwj2Q%VOXC0Dy5{~;n?ZqK%@isjL_T=KS z-bjI~CSaEp=6|O_zQ!m@xqEj}lmI^L!RmX0E?u!)Gq25`PP{i0`oplq0r?=qp5!v% z5Ea`c@}o#CItEteGQQ$Zm+@IIo!4Hp-aA~p=yp??pI5}TcQqiTS9wc2&su+89f8!Z z3XAO^WHaR0pR!ZF=5zQhE)v7UW8qf88{s^)GI#>YG?k@R!6xQZ63}wtsWz1m^VTH` z1ugsWLqQ5T6NB*u!FCdw4xWxu#wrBS9VeeGYM-zl?qJ437R^qmeB5V@Dy}VAhKvXn zGtx&lBmMXU#YOE0%v9q9@ZkE(?rV;BrztYQr@_fJS2>)!spiIlYWyT@{o&-rJKuxl zvlou9B|tm#O&bUSq-@PvwG>%IYfKS<4| z4$7Z*2;WxQk?7TS{jnh(W3bUpmkwFFq;a@1uaFbOif>~`}4O7oIw4io|&V}`7Xbka#hU(?LwN0-8sbIuNyxqhu8 zDkwD{J(ZEPb4L6~S`)#xBJE5cPx@j*XD zo?FI9uN;vqTB$D9pp14+rfrIT9H#4}s(oM-wwspdH!YG!7W`(bxn(<8>g*tq*Zkc< zI?u3qHbMLSOo@uhsHE)`>6#g>uUYmIZW|wvCTq66KP7u`XI5Nb(N=TSv-I_BCS|uD z7=ate0N>p|lQN`aM)4uT!%wBXDtZsi);PY>wc#S$2ZP6d+KuRUa~nKU);B zNo#fpgQ_z`ius@39z2ID4_~*wWh2p?B1gqLxVbG*&Wa}#91JkDFY!q6)~w45kypOT zwUI2ZoOe6>+Ld)pDm-+GezlZKIoNVqiSQ6((r|YD zfz|dE5Rpl+w4uKHS56jqD=jjfU90s$eXOY^!ru-tad5OkXO1jKCUf`4qIls1ZZ}6t zP>N-dV|Va5hZOV{-+BD0ZW+AUuMfiKE_81B)u6^TFB#9)GHK2G%(J2}PVj!?GRDXD z=St2T898HG=7(xXahS4;@{_4sPbn3T;}_5_eJ|66Pv4^HwQJ@=T{!vC_jDNYXmR?5 z7Wz?KGJ~GAXc%U&+W_{0@bJr#mm>FPIFr1UW~$9|&Mrgkb_@~R=+f2p4zIPD9*Pf} z)yX-PcWz0w6*nYpNTSn7iVp&z!uGwF54T!emuR2aHj_~o!sY$bGn-qdx$-mO)%K>SP4#?wW?j8@KRXv@jH@C~mK8@3g?)2xot|ipHwF1? zp=F9+FKihkdigopUk925tLC8U5pq+zxV-2FcJlE2t#-1_os^4Doi^U7z{2loQ2NOi2r`Y#LXi*oCq3u~*MJ745@UV~H0 z-ECo-55sEc=N_%TaStMx^Ynz4g9_X08=N@3=usEd(uU#gMjn zrivzu-mupJ$q!s2HaZDN9fq$;-qds32_6}_-#fzvuz9Q&@%X~}O`yjq1@ z5kHu6R3)!`b=`V#-P`R{-Qq~?Lw7mz;@n|<(}eObIYo@xj^*6njGmgWA1Oc7)HC_2 zNtcww^)lIO;*!n1(_GP;_O;%~o!1z@B(8c(h&&1_ zeL3m;+MDZFrLtqnBV_xBcLlF3BfL5d8=UBwM~_AEWvJ}ttIf~T`4jtDRpA5SNcL;8 z>@rn(2e+RF5qiHWKNPEv{+P2oLoUgantpmS-ujC!ORmLYc8bhK?uy=$foN*YVaQ0d zeNHE7<26@8^jhu2VZ)NWK%QjTF`v)HKZGm?CqsWXO}4V%Hn>tH!e`Pe*^PEsYlI0; zCm^qt%v56eei_#|4TOhFWLCtk!%1inL53EO{mwQ zS#&m?hVgG1JjD-PJpE3EIfIi_3Tjighb*S;z1{na8ywSyy&D5h9L$BLf)SH$El zq=q}jxr(o(+ja7qL6$>&Cyh-vK7V%VF8RD$*@tk0%PAYZ)AC2#WI*EXvIi6I#u|#v zGp|x(AEThKIWVK!gF>@kXA|!{f8__*#CnI)W&QpF^FOLb?t2~%`~MR`RGEPn`^&si z;nZ8Tz2B zJJpX~<|=CJyQJvB6|#%H8v!^Q@#C&>zz&jK!X<;^(!`HD5rHgUtYPZ?@*wCNpn)vx zTydkXzc&wXD26F6PqsOl)`vS&G$r$DcTPJyyYKDL$zW>J5a!G7*sy~Pj2m$|26%ME zTCbsi-l|5^HIMK8wA9AKfxM#9r&69YR?fz{L1)ZiOL4cgC(21Zjkn-9qrP#*3w%>t z(J_GD8GBwgr!I=eLjLGVPZs9b>%J9ymsm!>M8y$sv*dkT&9hyt2R58GK~EM~J(U0du+;xf$l$@4Kn|MkI- zZhPSiVmHnH(9gHVk&@?pvG_dAo(uDm&v{RME(maxenyzli8%WQYmFkfTQ*tHetaiQ zwv?Q+{6HZb0P*Hz&b`Y-E9DDEb(GoNObXd(`l)B)tt(wP&*s=jCh^7`q(2Z@C zC&kYYSRW7f&u$LFP5jK&W&fDF}`_F?9h|aqj_of6ID{J(7RGwTzYDz^oyXbH(KAjQnd})wnwy z=42qT9iJu$JEuBLG+!cD`Vsv$MnY%=eeVVN%A2v|Gm#E?nD&)d*ES@;9n1Y2F=*IU zd&PFq(WC-Rx%*uEP4(5F#5jCpPv}5;*SWcV2`M|Hg@H2xlbdU^_CRa8FaK6HtnkJY z58^x`polINeg>I51hJS{iSk%YdjEcyHl8YVVkY@AAzZn%VD-<^Sc4(C*uIS@_g26p zt)OaSl!-WtBl4M4`tH)ZLp9=+qPXykEYMP2l~Sax?Trl)eWE)S@UJGoA0`Z>2(NuJ zRZyKp*X8ZQZuPk}{P<3u5-_P8L@eGNTv^?h$@p+uV>a(upnH25qKgqt)yR@9RY(!vuPJH ziY31B96!yqmzgNJW;6JmvMUlRoURfywsN-9vFH5TCi|cSRDOxSHpRkG!os=CwV!^x z!9HHlDFGFgJF9{+dhsF+i0npKB}npJQ5|nivKs|caR@2+RrN&CmNzFZjY9J-30agj z>cLxkcu1CQ$@91xb{rpUf*>2q$^kZ=f=tyogH-uoqc7PmHXUifnAHRk+X<7Bcjs;r zLRHM4BnbaHa^m8!{MByyYwxEl(|!4-lq%cq?B`$AQ;PGdb_alv7`uJe!BFRq-%5)Z zjf)3xdt?f%e>0qxaB;@#(ReWV>x@O0H@XJ?Nz`#@5Z~?Q7~`{0K|*1WBuh8ci+35h z&zfTST~i#Xl@&y%@tE7%c8kN+xN$(7C0T!at8b~(b4mUr$G8t4MyV-`9N3Tk>1s)m zWp_GddqroLw+Y!dO0EMDRb$`6PLAoBoi}rtQ@dz4W9!8y<%5bY8Hl zz*8sb_JYq5Q%3y^AqJdVYS#^;eZB1JDl^{Jj{Tp58Uh!OX^ET2`jkEdFXd#zCsa;O z@i{S?MJc~f_Rsg1 zMR7!Cjzb;h6ufcAvAGYL8&-3Qs6u0PN5g|bwM^CQj^%gfR#w*|))A$CGsnyQ@(AVK zY}y`17+tK9M|85~>eg#0Z)s)@WCUm!)Nb^I1GxHe1=;*6H6xXPas=v zKVCEB;c-q9InDJPnWNoR%pu9KLgQ7IOtkUwtzOiPnxPFww&`*fk=aq}9x#R@O1U}L zI{Jc03-g++AEw^I5l?1zH?~*W5aU@Y-NY)dD=-)1%=A#@10!o=n8aV0J|uP3_0k~g zuF-3H1aqA&j}`kGC7yBtmdwcExP4`#?52^|rTH$6ZkJDT0hP9tsi`3%kCU)D!*20_ z!-DKuTBr$g@CSM6MVa6a#@ZT+*Dh4CIQ72?8Ke+`vHe7%82ph9y}VEhZrRE-ipn_K%c7qED4W|U|9IMM3}`%Ef{lpBZAV|j>vUf=*82m~8f+Qr?kfhPpVT>B#m9B(r~VN2MmK zTB#qJR`{M@(`5EOMO!tNPg&^s)e7oOBYiH^2wt}QN>3%pU$czS12vDr1a^x$vp+x0 zbvKp__u8I*)4JYA(ze@s_mNencbVdY^$#A<6*h73;A%+zVYXFULgu?I(Zgl0J!FyD zHQKHm^t4gY!=9J34t_YI>`BMAAZ4nK_f-dB&8AuP=MQ<6<6@BnE9Asx~7B@K3!FbYpnjha=xa z!g&7z0Mmt%)=Q}&T+8tGmu)fwawCnZjwweXR}O30-sfkH(43M!tDf;ch&Xi8o*mdy z+A|ilsJ@n1Z1He)B;Ph_XLly6x6J!4>FIbRqaXkKNnif=$fFPHgCWoS@Mu24(h>q##-j zg^l&ASL+c6(WVWNG?^ss^am?vxF408i|j@ZeY$Yp)94CiaxD7Pd~Wf=vH1nLIzyZD zewBouBd=c1uTRcm`eqI(@4CvIzY?$~;aj4oZDM5=ZT}x9 ztbM1QfxVIRhK*;Z?|ff+sbOwC@D+NWlgG9fwMkn`hVsHf(ccfYF||jpf_iOdZaP$4 zrgJNKm{iVf&Jb(iX6;vTr>VKvvk+UkMU%4aFUZ_OCN-Sdkk;@X&n!_7Dj}u2-g?7) znX6#ycA+^#8(Y_JhNqdZPu^pkFUM`5g<`{;dN^5DqhbPW_1J2&P@Bfbmy2(^9oc&e zvrxQ!8|E0h-Zw4oqBZPF6|x?cJM$i5heJ@?j@tzV#6OYbBwR>Inu~5C1VNE%o zMg7VAQM{de@NtlgkvoGKLyXAvGQ!-mAuY#?9rg~WO8eE*#qHl&wwAWB{EBN!64NTW z?{BMDnTyPZQ5rAYwo4e^v`!hIH9IFkrU1Ivhp}-)xrdKwX~1KSpw~3S!s-vdK&~bk zHz`nrAjhIOFfRqqufBaFf9)oNq6HNBceBjj?Ii!JjVb>IQYrWtbn}CKbryHATZ6Nz z_$M=|Qz-@WA!=oGbS!k3t4D>UXaW{$5F*KgRk-SM9)kP1*yphw?zh;bmWZEtk0twD zo14^KkR9QA$p(kMAoU2Ed*JiT#zQB@1P?(3=!+UwASf^EX?o~ zR8UJ&#AjHZ1b;HQHU!oheu=S>5Q~g~8<5v+M zwZ1J6k%A8ra_JZLcfo+Kw zYH+6wTC?!#7U2*?gXn9DgFZr*twlCH=>F7)A$C9m_f`c2%yxZ^+IM3xp1<{MZ$)me z)vk88rHpCF*o%1NTalW+IavzOCwEy}3s&2Wbv+Y1pjvv^p)D8jD#6$7rv`ERxp zyVa=<0r3o{ks9~flVYVbK|yIrl$?5f%dUfFS13DE$<|q>5?d?_#KMFD z>x=_o28}VgGw3~w)h#enCRYViZ8e`$mv$a<0p6g=JT}P4RmbK5iyTd1NdwX?TI*Sp zg85JLlHQx;bl&q#mi!pjlAVS&z3txgGkDoYTfMh01Wk^BGp&n=xOFR*PyfZa8&AHq z$!;~vZccGGp?KrA!fP^tnPhetuK*biWsc&}Om4edqzdz>Kr6`^+MbJ>ms;>+XrLYy z{`My^vM(@zFDiR3I5A40LdHhMDof`JcsNQ0Zg-rxebV37Jw`qQRCRk(A0C|@EGyhu zZW5$X8Q+2OYX2I^WI>QyLLz<7SiSrg>tj)Jgq(7=>!gi(Kt|@0JcgXduG$Y2ITxaZ zJ#m-x*{qHR@=8iu;3Pj`Nm#YGpS7kyycAn^-5`!dN*S@n)C&oh&i_gj%d6PkoE3HX z{g^l&Yq*U?u^M|;vk6-bCsY4&enkD{{5YBhoF5s$`LPWH>Rh0n=W!a|#^Z%f6N=xk zcL=0&B!l+jKHi5he`hThS8r*iDI}ab+#`ehPfX_HcNgJDACdt9Kvnre;v7Ba)TKZA zk>)pov55z-ax*YpaEo&4R=EwwaRmGVyS1KfJA7uJa8&RAI`eMZxorN43S-rIfLG$- z#a6OX{*t%JxW8yi(W}UHY37C8)pF;unj#y2KN+4iqi$f5c->&`?iR3EC4{$$JMJg& zsAaFx|H@sk{(()mrP*M7FFwXCMA`Ivv7aK_W1)QuI047Y{DY{8P2KUZ@j`$8CSpLF zzQ>)J|3Ex5z1c+(pYwUp<}8wa1~DZ#II7@wl##uV?&TtxN?=8BbJVF`as^N*O)HiQT9gLIHt;v!^@lvrUkMInMjk6Mos?2 zgajL4p1=dM+MlQ?WLqS#sBJp_&d|LtFaOF10dMb-k#f6qHVS8+srw3tgc05CJrKP7 z=~B!yXyU%%fmJKlsH_0Uqdtf7rAMqBv%OfR{?Uta{^fXk@_M;X5K!FpsJ%K?lRkt8 z#r)6mc-Zu&wTV?3Bg?Kym`2ld0YBm6iwrW`6LKy@hgW4wY7rMoU{8-_p^zzCvJ3PM zTLWF}9YmQP_6~nKvST63K1=aP4R<0&7ab^gAKgb@DYpE02lK)_R6(pug+6#u$~{+R zty_DyQ3>7$%lsYO5PnI>4qzMHs7d~d;Ff&@gd#kJ`t5lTW{!-vojhncP-HD?_VcvI zB@Yya5r*;yyeoj>Q8_uSzYm8*0n0Fm`)?#e%YL6^8T$(laVV;AIG~2c@BT z*)b$mk$`>q-^>gF;PSIdF_$n5nWte_W@H$mXq|8V_wCh88FKmKU1{14ZT<1N{z5=Iq&+S( zb1tD>w8udZl%;Qj+NK-*7QF6;d^;Y=J7~c&p=;+c^L5zs^-a6_W5GKRsQBQ7+jdJMP}EK zimmY7T@jdR(dx_OSoL@^}+v%jWj&X1CkEj)?~VMdj7K(rQeDk+`;e z=YiJ%zS)gWV<>Panbw*GHWfFem3=v{L;^9-Wg&-sd}C?MeWv?%0Ba0Xw1U<#KE!<- z3Jc6s-IKJn1I1jN3v9f?by6)rEGlx9nM3^a%9?guoPh{ihGP#JH7n5Rn%8uDz#it2 zaPS9aTT!gJ({{iZ|KcEV$}MWcd91!{y!;;Cf$Kla1Y&wiqjiX;<5#3z0*zam`Uhlg z3h2{&9wuQ1TAmi}E>B7h=!!)XjAi$>UE%pQgYu}9dd~7n@2Jhm^wh?F3?D2NdZir5 zs2e0EX394e{_tEqIXuTiTgrlgh$MmTfbqFXMw{blLlr}cELB{LJi*V0eHeKvvc7~W z49o7{T3P_H=Ud(J20s7UjX%wB>vFRBOtedy!TX@14kye2{L-> z50ZrN7?P3IN-Oou=&dGJ$GlP)J8GPXUR14%l>@@4stWUwXjmWUIGQy@48vNC>xRNidi3UUhnq zu_9I!F7}D@I4l{hQ4xSqRbs($*}yyxZLnQgCj`Ez@V7acJ)U+q)PHC5k4aP!AJWp= z$%OLMpcwqY!8hY!$SItU8p379U+d!ZAWH;!YP~A$uX4Xv1Rhd)qP7;sr?}i-zGrPO zs5W4h@?)VD)cdLER~5dtoK388QWoaxbNyYiTXRBN>tsht^f%~pB)gZ=;9nB=lvc^x z$oF|=6Ko{GJlzK=vVMbQ?1EL>1&NdlNa%XyI3ph_=i{-p3O2`!GTueD&QpV@V5KuE zozdHPl5wK>?AJzLkPYd6RpZ>VjgHMc;CS*2MkK>rkRhevwGVaT_sTpFwt6|=P9~OiXqgV~{=J$`TYL%g4VpW9-+^|8pJvzcUDQYy3}lM+6}t|EymBRWpQu;8A9-qJ8&b zu_Kk1496PuI1uMWc@YHR00xkQzCINhXX4+lmMk4Vfd>+a?Aj)y6bMesxf0k$rJsVV zGhvARp4sEbzDN+v2KL?cfbqoMR8P*9I|Q<;0GY+_hiFv`gPB+j07I`i^3X!oRic;=0494-AsyYb3S2DRZULq# zm^XTEYjxTbgnZMl3eSO`Yd>-I8H*6>y9AOzDG>V#fvG##H%|oxjWbK?HqX+P2R3OV zCI!k55^D_QFdnC09)SkUzF9x=<-Xs z&wT=>#QsK5ZfZ#s^DtKd9R|Qx(Ffx5+}9L;ms!msE6v@uBgdi^%W-I@JTHXa&KBJR z0asR5wwA@Hs4pNG!!Ga_6k4_!fZ~@C31x7#dSq$(YYOn&uHdyc;*ax@3uY!P`S(9}lb*J?*7l5)!whuhFMy5K_X+mIi z@gTJ8fer+wXzKQaST6=HNWWyi1wPIvA<@sDXAin?YPfH>DM;J(-GRq@nQ}-n>N**r z<8>ufbT3yxTS4K95US@#AKILwR#7YWc72Ed{>|@hEqI{DKuNhPykq~ObpG4`tuKKG z4&`cpRdfIS^NbG=xCl?Lk|7elrI9@Xs>rqf(-F1)0IDGQs}X;^_b0&x%BT#-{3 z%*euMs0I!-2RzWCz)~jmsFQ%4eUF78&v>N{=V+wLXHnrzH#{rK7nX(&0X%0bnQjy` zE@=QOdCz66st^TgmBa(4NzVRvr{4PQN1-%@cftq@ko`L;jk5*f3`=l(6+j1U9IfeT zJm&D!d^P?V)P(A~P(j~pxR9luk~|^AW_lVK<~43}87eG{6;G%4NWKRewyfHrqwHpy zz%6AkB}RYsP>4h> zHpuOEM9AEdK5xUe(L-PnFzQ3{=H$s~fQxNTJXQXpj*(S%=)2!D9-NEFX<75e^KhK} z2vEH4ro4u_v%Cg;6rJ?bi8wEAh`Hm)oAOYCambSoME|Dl@p7pS>tV zl=+YNbw+BWb?v|O^!?Y+_P?O}4?}l9V7Z;T7 z9?xP_K7Z$DC7_g+`&Du96bAh@fp#!QXuaGk!*e#7huglZka@f_LvOm7DkG>YIZ2SGfIWg}4+CTBNe9MRLekV5SCZbC(PnJWv1wM2vvG zD&DSf&#n8~iFgN)zZVynHw}PSB^Sh*SV0rny-8t*BA0QMrjIwHM65f1Ky|X;kGNZ| zQVO2e9wC=Hr|&o0px8NnU#iI4K`(T;i`jJlMC;_Z4EdvtD+pv!$E3*1at}qS6$@HXoX7If5HU!-FoQ1e^vS8z|^|xxGJa4jd0r2G7E{b;M$f zwHeNA=)>*>Y}8&BXxy6ulCTI++S1TTkE*RCAA4Y%z@6QvZXhZPwoHN#2MmC@bHS?t z5+GT2Kp6IAKDcxd`YyoK^Co+nahNIf&*IOWot<%`TP=?Mra)UZx=AeW`}%28FkdtW z$SCG(a)BJ&U2ONB-2$CiBeFuzYYzJ?|GJ3SeC1^MNRE7voD2ZLnUXb%0(nk9 zI1x$}a7;OX4uy5NXZ-Dk+1-8AydPU}_c(yAks6?9pMbU7NJwuC2e|`O&pL>{zDEz( z6Z>6kF+qgo@7p>CN*ovbnUD(=tDUN%&Z7#fGvE=p$8zK4?Cw7G1|V_7-xfc0EqbU@ zXKH6HF94ak0?OE1ahkRdj~-zB3f8c!H&NboegN-2k0)u31ulLM?l?2M&r2hpfnw_X zk$TV=Q*XLaGzHhhox zPicN)coRbSR+QVQz2Rk!;Z;V64!J}-1VLZmUknu6&nB~iZZj^wRn0vw$#^f52U)R+ zC8st^pbkix+dBKFdqRmnzb2T83<{%z{yI!6Ws}Kc%%Bg_JuBS;DR!7q><-tA3_k`J z7uK;U?m7|9bOJ97OjE3Hq3p15Heu%7+{j%zjbaO^MdZdY$qz2wR6#VPb_wbm!IG`D zZq@t{q0AQcc7oWW_&ZqsS$w=7mHj5;_D=c2agjGMEJgEe(ktODpYGNMXAoM1E7LAK z0SqF?8HD_XVGR!y{13yC*PA~@thgTgO;(Sj?oRJJ*Ew%nAoq&I?&MW^!tNxbVYp4# z5|6eObe^ezPVf6%sDg4}CEr#F35|P_D{M&u9=|z5>ks~}XLl?DEhicMS;N(T9#@ii zJ@$5Yc5gSbdFonO9Wi>efI$vpiARWvTRpR{TmlxIt9E~37(TKH$EH`MSNd%Y02V!6 zkKbJ{sVc*L2aY~%a3g<4*0jWEX;?W8O8FR3m`4n*v)UG;l=x4sbC&HMuspM9?6{H_`5xcq){VRH&`I@iP?ybJ>)Z#0S;D3&rmQog9eN5yR791( zpV(gs0%=+EmhbjbgG2F$nycw_Jk92v=PZt@mC~bdOz;@K{Gb9g52Dqc&A=ia#`i(@ z4S@3hi1}yPq$*9KCPlYeK zJ2k={Dvc-TvV}rzImc~vqq5%G7+A&MGdCJmxF$6IyCsoygqh23Z=*rZ4isht9-lvN zAeRSAecv9q3i=xtTBqoda|^%@!L;cBn*ngYiWh!}lJr{^kF$9uk|x2EgKQ^c=}GpIXRFW4;O2X+b#!MTIgcG?WNv|KWwMK_r3$3U?Jh;pgg~9+zO+#s>^c?u zR|+y%8d@*fUGVO=UvTxe=e2_|mV%!j!ZyJh>>6-0b*OEwvK&-#2D_aiRu0Fee`&v8 zVQ|$ZNudi3Fjm;lL^MVK8XV~HTw%c*Ud_+q*Gs&UMv&}Yi%!Zp8>*-nqbb421oO5z zlVhl)t=_|M4$5(jv%GCi)J(YabH`Sy{MDArm3b^5J1hmve2VfeUO74v9hA+^z1UdF zc$8E5Xh?|cSkj?UhU5O3u6NyJgAJS+k0upRZ zfH*0JC}sP&IZ;o6B;%f)ms6AeKg;X?S{%M2-N*1h_9X=ZlZ)arKIbjrhrTPiuDTqH z5~);@@>hkFTJ?gC`@5a=jRfjhh(JQLgse2!p4VE+TqhmYcUCS@)1wzOUr|{gFKBNU z@*C-%b?^nXN)7|Ab?V9ZW=AGS+))d|1OFa&_^%1vzW^BjAK1jdTBv^uR{WcT{*5a7 gfA1?Wp6$s=^v}i(r{glf7kEIF71b1Q^3PuVKPXU6fdBvi literal 17328 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 diff --git a/scripts/analysis/findbugs-results.txt b/scripts/analysis/findbugs-results.txt index 9573848579..18eed1357e 100644 --- a/scripts/analysis/findbugs-results.txt +++ b/scripts/analysis/findbugs-results.txt @@ -1 +1 @@ -326 \ No newline at end of file +320 diff --git a/src/androidTest/java/com/owncloud/android/utils/BitmapUtilsIT.kt b/src/androidTest/java/com/owncloud/android/utils/BitmapUtilsIT.kt new file mode 100644 index 0000000000..abe4c722e6 --- /dev/null +++ b/src/androidTest/java/com/owncloud/android/utils/BitmapUtilsIT.kt @@ -0,0 +1,79 @@ +/* + * + * Nextcloud Android client application + * + * @author Tobias Kaminsky + * Copyright (C) 2020 Tobias Kaminsky + * Copyright (C) 2020 Nextcloud GmbH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package com.owncloud.android.utils + +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotEquals +import org.junit.Test + +class BitmapUtilsIT { + @Test + @Suppress("MagicNumber") + fun usernameToColor() { + assertEquals(BitmapUtils.Color(0, 0, 0), BitmapUtils.Color(0, 0, 0)) + assertEquals(BitmapUtils.Color(221, 203, 85), BitmapUtils.usernameToColor("User")) + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.usernameToColor("Admin")) + assertEquals(BitmapUtils.Color(0, 130, 201), BitmapUtils.usernameToColor("")) + assertEquals(BitmapUtils.Color(201, 136, 121), BitmapUtils.usernameToColor("68b329da9893e34099c7d8ad5cb9c940")) + + // tests from server + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.usernameToColor("Alishia Ann Lowry")) + assertEquals(BitmapUtils.Color(0, 130, 201), BitmapUtils.usernameToColor("Arham Johnson")) + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.usernameToColor("Brayden Truong")) + assertEquals(BitmapUtils.Color(151, 80, 164), BitmapUtils.usernameToColor("Daphne Roy")) + assertEquals(BitmapUtils.Color(195, 114, 133), BitmapUtils.usernameToColor("Ellena Wright Frederic Conway")) + assertEquals(BitmapUtils.Color(214, 180, 97), BitmapUtils.usernameToColor("Gianluca Hills")) + assertEquals(BitmapUtils.Color(214, 180, 97), BitmapUtils.usernameToColor("Haseeb Stephens")) + assertEquals(BitmapUtils.Color(151, 80, 164), BitmapUtils.usernameToColor("Idris Mac")) + assertEquals(BitmapUtils.Color(0, 130, 201), BitmapUtils.usernameToColor("Kristi Fisher")) + assertEquals(BitmapUtils.Color(188, 92, 145), BitmapUtils.usernameToColor("Lillian Wall")) + assertEquals(BitmapUtils.Color(221, 203, 85), BitmapUtils.usernameToColor("Lorelai Taylor")) + assertEquals(BitmapUtils.Color(151, 80, 164), BitmapUtils.usernameToColor("Madina Knight")) + assertEquals(BitmapUtils.Color(121, 90, 171), BitmapUtils.usernameToColor("Rae Hope")) + assertEquals(BitmapUtils.Color(188, 92, 145), BitmapUtils.usernameToColor("Santiago Singleton")) + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.usernameToColor("Sid Combs")) + assertEquals(BitmapUtils.Color(30, 120, 193), BitmapUtils.usernameToColor("Vivienne Jacobs")) + assertEquals(BitmapUtils.Color(110, 166, 143), BitmapUtils.usernameToColor("Zaki Cortes")) + assertEquals(BitmapUtils.Color(91, 100, 179), BitmapUtils.usernameToColor("a user")) + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.usernameToColor("admin")) + assertEquals(BitmapUtils.Color(151, 80, 164), BitmapUtils.usernameToColor("admin@cloud.example.com")) + assertEquals(BitmapUtils.Color(221, 203, 85), BitmapUtils.usernameToColor("another user")) + assertEquals(BitmapUtils.Color(36, 142, 181), BitmapUtils.usernameToColor("asd")) + assertEquals(BitmapUtils.Color(0, 130, 201), BitmapUtils.usernameToColor("bar")) + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.usernameToColor("foo")) + assertEquals(BitmapUtils.Color(182, 70, 157), BitmapUtils.usernameToColor("wasd")) + } + + @Test + @Suppress("MagicNumber") + fun checkEqual() { + assertEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.Color(208, 158, 109)) + assertNotEquals(BitmapUtils.Color(208, 158, 109), BitmapUtils.Color(208, 158, 100)) + } + + @Test + @Suppress("MagicNumber") + fun checkHashCode() { + assertEquals(BitmapUtils.Color(208, 158, 109).hashCode(), BitmapUtils.Color(208, 158, 109).hashCode()) + assertNotEquals(BitmapUtils.Color(208, 158, 109).hashCode(), BitmapUtils.Color(208, 158, 100).hashCode()) + } +} diff --git a/src/main/java/com/nextcloud/client/account/UserAccountManager.java b/src/main/java/com/nextcloud/client/account/UserAccountManager.java index 5d864f0a66..8eca155bf4 100644 --- a/src/main/java/com/nextcloud/client/account/UserAccountManager.java +++ b/src/main/java/com/nextcloud/client/account/UserAccountManager.java @@ -20,12 +20,15 @@ package com.nextcloud.client.account; import android.accounts.Account; +import android.accounts.AccountManager; import android.app.Activity; import android.content.Intent; import com.nextcloud.java.util.Optional; +import com.owncloud.android.MainApp; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.OwnCloudAccount; +import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.resources.status.OwnCloudVersion; import java.util.List; @@ -154,13 +157,14 @@ public interface UserAccountManager extends CurrentAccountProvider { /** * Extract username from account. - * + *

* Full account name is in form of "username@nextcloud.domain". * * @param account Account instance * @return User name (without domain) or null, if name cannot be extracted. */ - static String getUsername(Account account) { + static @Nullable + String getUsername(Account account) { if (account != null && account.name != null) { return account.name.substring(0, account.name.lastIndexOf('@')); } else { @@ -168,9 +172,15 @@ public interface UserAccountManager extends CurrentAccountProvider { } } + static @Nullable + String getDisplayName(Account account) { + return AccountManager.get(MainApp.getAppContext()).getUserData(account, + AccountUtils.Constants.KEY_DISPLAY_NAME); + } + /** * Launch account registration activity. - * + *

* This method returns immediately. Authenticator activity will be launched asynchronously. * * @param activity Activity used to launch authenticator flow via {@link Activity#startActivity(Intent)} diff --git a/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 02641a98ba..6b527d2a78 100644 --- a/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/main/java/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -1136,13 +1136,10 @@ public final class ThumbnailsCacheManager { } public static class AsyncMediaThumbnailDrawable extends BitmapDrawable { - private final WeakReference bitmapWorkerTaskReference; - public AsyncMediaThumbnailDrawable(Resources res, Bitmap bitmap, - MediaThumbnailGenerationTask bitmapWorkerTask) { + public AsyncMediaThumbnailDrawable(Resources res, Bitmap bitmap) { super(res, bitmap); - bitmapWorkerTaskReference = new WeakReference<>(bitmapWorkerTask); } } diff --git a/src/main/java/com/owncloud/android/ui/TextDrawable.java b/src/main/java/com/owncloud/android/ui/TextDrawable.java index 3e5f45e715..f2106f1b5f 100644 --- a/src/main/java/com/owncloud/android/ui/TextDrawable.java +++ b/src/main/java/com/owncloud/android/ui/TextDrawable.java @@ -69,19 +69,17 @@ public class TextDrawable extends Drawable { * Create a TextDrawable with the given radius. * * @param text the text to be rendered - * @param r rgb red value - * @param g rgb green value - * @param b rgb blue value + * @param color color * @param radius circle radius */ - public TextDrawable(String text, int r, int g, int b, float radius) { + public TextDrawable(String text, BitmapUtils.Color color, float radius) { mRadius = radius; mText = text; mBackground = new Paint(); mBackground.setStyle(Paint.Style.FILL); mBackground.setAntiAlias(true); - mBackground.setColor(Color.rgb(r, g, b)); + mBackground.setColor(Color.rgb(color.r, color.g, color.b)); mTextPaint = new Paint(); mTextPaint.setColor(Color.WHITE); @@ -101,8 +99,9 @@ public class TextDrawable extends Drawable { */ @NonNull @NextcloudServer(max = 12) - public static TextDrawable createAvatar(Account account, float radiusInDp) throws NoSuchAlgorithmException { - String username = UserAccountManager.getUsername(account); + public static TextDrawable createAvatar(Account account, float radiusInDp) throws + NoSuchAlgorithmException { + String username = UserAccountManager.getDisplayName(account); return createNamedAvatar(username, radiusInDp); } @@ -132,11 +131,8 @@ public class TextDrawable extends Drawable { */ @NonNull public static TextDrawable createNamedAvatar(String name, float radiusInDp) throws NoSuchAlgorithmException { - int[] hsl = BitmapUtils.calculateHSL(name); - int[] rgb = BitmapUtils.HSLtoRGB(hsl[0], hsl[1], hsl[2], 1); - - return new TextDrawable(extractCharsFromDisplayName(name), rgb[0], rgb[1], rgb[2], - radiusInDp); + BitmapUtils.Color color = BitmapUtils.usernameToColor(name); + return new TextDrawable(extractCharsFromDisplayName(name), color, radiusInDp); } @VisibleForTesting diff --git a/src/main/java/com/owncloud/android/ui/adapter/SyncedFolderAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/SyncedFolderAdapter.java index 7720eb7f11..89bbff62d2 100644 --- a/src/main/java/com/owncloud/android/ui/adapter/SyncedFolderAdapter.java +++ b/src/main/java/com/owncloud/android/ui/adapter/SyncedFolderAdapter.java @@ -337,8 +337,7 @@ public class SyncedFolderAdapter extends SectionedRecyclerViewAdapter private constructor } /** - * Decodes a bitmap from a file containing it minimizing the memory use, known that the bitmap - * will be drawn in a surface of reqWidth x reqHeight + * Decodes a bitmap from a file containing it minimizing the memory use, known that the bitmap will be drawn in a + * surface of reqWidth x reqHeight * - * @param srcPath Absolute path to the file containing the image. - * @param reqWidth Width of the surface where the Bitmap will be drawn on, in pixels. - * @param reqHeight Height of the surface where the Bitmap will be drawn on, in pixels. + * @param srcPath Absolute path to the file containing the image. + * @param reqWidth Width of the surface where the Bitmap will be drawn on, in pixels. + * @param reqHeight Height of the surface where the Bitmap will be drawn on, in pixels. * @return decoded bitmap */ public static Bitmap decodeSampledBitmapFromFile(String srcPath, int reqWidth, int reqHeight) { @@ -93,16 +88,14 @@ public final class BitmapUtils { /** - * Calculates a proper value for options.inSampleSize in order to decode a Bitmap minimizing - * the memory overload and covering a target surface of reqWidth x reqHeight if the original - * image is big enough. + * Calculates a proper value for options.inSampleSize in order to decode a Bitmap minimizing the memory overload and + * covering a target surface of reqWidth x reqHeight if the original image is big enough. * - * @param options Bitmap decoding options; options.outHeight and options.inHeight should - * be set. - * @param reqWidth Width of the surface where the Bitmap will be drawn on, in pixels. - * @param reqHeight Height of the surface where the Bitmap will be drawn on, in pixels. - * @return The largest inSampleSize value that is a power of 2 and keeps both - * height and width larger than reqWidth and reqHeight. + * @param options Bitmap decoding options; options.outHeight and options.inHeight should be set. + * @param reqWidth Width of the surface where the Bitmap will be drawn on, in pixels. + * @param reqHeight Height of the surface where the Bitmap will be drawn on, in pixels. + * @return The largest inSampleSize value that is a power of 2 and keeps both height and width larger than reqWidth + * and reqHeight. */ public static int calculateSampleFactor(Options options, int reqWidth, int reqHeight) { @@ -142,9 +135,9 @@ public final class BitmapUtils { } /** - * Rotate bitmap according to EXIF orientation. - * Cf. http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/ - * @param bitmap Bitmap to be rotated + * Rotate bitmap according to EXIF orientation. Cf. http://www.daveperrett.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/ + * + * @param bitmap Bitmap to be rotated * @param storagePath Path to source file of bitmap. Needed for EXIF information. * @return correctly EXIF-rotated bitmap */ @@ -201,167 +194,115 @@ public final class BitmapUtils { return resultBitmap; } - /** - * Convert HSL values to a RGB Color. - * - * @param h Hue is specified as degrees in the range 0 - 360. - * @param s Saturation is specified as a percentage in the range 1 - 100. - * @param l Luminance is specified as a percentage in the range 1 - 100. - * @param alpha the alpha value between 0 - 1 - * adapted from https://svn.codehaus.org/griffon/builders/gfxbuilder/tags/GFXBUILDER_0.2/ - * gfxbuilder-core/src/main/com/camick/awt/HSLColor.java - */ - @SuppressWarnings("PMD.MethodNamingConventions") - public static int[] HSLtoRGB(float h, float s, float l, float alpha) { - if (s < 0.0f || s > 100.0f) { - String message = "Color parameter outside of expected range - Saturation"; - throw new IllegalArgumentException(message); - } + public static Color usernameToColor(String name) throws NoSuchAlgorithmException { + String hash = name.toLowerCase(Locale.ROOT); - if (l < 0.0f || l > 100.0f) { - String message = "Color parameter outside of expected range - Luminance"; - throw new IllegalArgumentException(message); - } - - if (alpha < 0.0f || alpha > 1.0f) { - String message = "Color parameter outside of expected range - Alpha"; - throw new IllegalArgumentException(message); - } - - // Formula needs all values between 0 - 1. - - h = h % 360.0f; - h /= 360f; - s /= 100f; - l /= 100f; - - float q; - - if (l < 0.5) { - q = l * (1 + s); - } else { - q = (l + s) - (s * l); - } - - float p = 2 * l - q; - - int r = Math.round(Math.max(0, HueToRGB(p, q, h + (1.0f / 3.0f)) * 256)); - int g = Math.round(Math.max(0, HueToRGB(p, q, h) * 256)); - int b = Math.round(Math.max(0, HueToRGB(p, q, h - (1.0f / 3.0f)) * 256)); - - return new int[]{r, g, b}; - } - - @SuppressWarnings("PMD.MethodNamingConventions") - private static float HueToRGB(float p, float q, float h) { - if (h < 0) { - h += 1; - } - - if (h > 1) { - h -= 1; - } - - if (6 * h < 1) { - return p + ((q - p) * 6 * h); - } - - if (2 * h < 1) { - return q; - } - - if (3 * h < 2) { - return p + ((q - p) * 6 * (2.0f / 3.0f - h)); - } - - return p; - } - - /** - * calculates the RGB value based on a given account name. - * - * @param name The name - * @return corresponding RGB color - * @throws NoSuchAlgorithmException if the specified algorithm is not available - */ - public static int[] calculateHSL(String name) throws NoSuchAlgorithmException { - // using adapted algorithm from https://github.com/nextcloud/server/blob/master/core/js/placeholder.js#L126 - - String[] result = new String[]{"0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}; - double[] rgb = new double[]{0, 0, 0}; - int sat = 70; - int lum = 68; - int modulo = 16; - - String hash = name.toLowerCase(Locale.ROOT).replaceAll("[^0-9a-f]", ""); - - if (!hash.matches("^[0-9a-f]{32}")) { + // already a md5 hash? + if (!hash.matches("([0-9a-f]{4}-?){8}$")) { hash = md5(hash); } - // Splitting evenly the string - for (int i = 0; i < hash.length(); i++) { - result[i % modulo] = result[i % modulo] + Integer.parseInt(hash.substring(i, i + 1), 16); - } + hash = hash.replaceAll("[^0-9a-f]", ""); + int steps = 6; - // Converting our data into a usable rgb format - // Start at 1 because 16%3=1 but 15%3=0 and makes the repartition even - for (int count = 1; count < modulo; count++) { - rgb[count % 3] += Integer.parseInt(result[count]); - } + Color[] finalPalette = generateColors(steps); - // Reduce values bigger than rgb requirements - rgb[INDEX_RED] = rgb[INDEX_RED] % 255; - rgb[INDEX_GREEN] = rgb[INDEX_GREEN] % 255; - rgb[INDEX_BLUE] = rgb[INDEX_BLUE] % 255; - - double[] hsl = rgbToHsl(rgb[INDEX_RED], rgb[INDEX_GREEN], rgb[INDEX_BLUE]); - - // Classic formula to check the brightness for our eye - // If too bright, lower the sat - double bright = Math.sqrt(0.299 * Math.pow(rgb[INDEX_RED], 2) + 0.587 * Math.pow(rgb[INDEX_GREEN], 2) + 0.114 - * Math.pow(rgb[INDEX_BLUE], 2)); - - if (bright >= 200) { - sat = 60; - } - - return new int[]{(int) (hsl[INDEX_HUE] * 360), sat, lum}; + return finalPalette[hashToInt(hash, steps * 3)]; } - private static double[] rgbToHsl(double rUntrimmed, double gUntrimmed, double bUntrimmed) { - double r = rUntrimmed / 255; - double g = gUntrimmed / 255; - double b = bUntrimmed / 255; + private static int hashToInt(String hash, int maximum) { + int finalInt = 0; + int[] result = new int[hash.length()]; - double max = Math.max(r, Math.max(g, b)); - double min = Math.min(r, Math.min(g, b)); - double h = (max + min) / 2; - double s; - double l = (max + min) / 2; - - if (max == min) { - h = s = 0; // achromatic - } else { - double d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - - if (max == r) { - h = (g - b) / d + (g < b ? 6 : 0); - } else if (max == g) { - h = (b - r) / d + 2; - } else if (max == b) { - h = (r - g) / d + 4; - } - h /= 6; + // splitting evenly the string + for (int i = 0; i < hash.length(); i++) { + // chars in md5 goes up to f, hex: 16 + result[i] = Integer.parseInt(String.valueOf(hash.charAt(i)), 16) % 16; } - double[] hsl = new double[]{0.0, 0.0, 0.0}; - hsl[INDEX_HUE] = h; - hsl[INDEX_SATURATION] = s; - hsl[INDEX_LUMINATION] = l; + // adds up all results + for (int value : result) { + finalInt += value; + } - return hsl; + // chars in md5 goes up to f, hex:16 + // make sure we're always using int in our operation + return Integer.parseInt(String.valueOf(Integer.parseInt(String.valueOf(finalInt), 10) % maximum), 10); + } + + private static Color[] generateColors(int steps) { + Color red = new Color(182, 70, 157); + Color yellow = new Color(221, 203, 85); + Color blue = new Color(0, 130, 201); // Nextcloud blue + + Color[] palette1 = mixPalette(steps, red, yellow); + Color[] palette2 = mixPalette(steps, yellow, blue); + Color[] palette3 = mixPalette(steps, blue, red); + + Color[] resultPalette = new Color[palette1.length + palette2.length + palette3.length]; + System.arraycopy(palette1, 0, resultPalette, 0, palette1.length); + System.arraycopy(palette2, 0, resultPalette, palette1.length, palette2.length); + System.arraycopy(palette3, + 0, + resultPalette, + palette1.length + palette2.length, + palette1.length); + + return resultPalette; + } + + @SuppressFBWarnings("CLI_CONSTANT_LIST_INDEX") + private static Color[] mixPalette(int steps, Color color1, Color color2) { + Color[] palette = new Color[steps]; + palette[0] = color1; + + float[] step = stepCalc(steps, color1, color2); + for (int i = 1; i < steps; i++) { + int r = (int) (color1.r + step[0] * i); + int g = (int) (color1.g + step[1] * i); + int b = (int) (color1.b + step[2] * i); + + palette[i] = new Color(r, g, b); + } + + return palette; + } + + private static float[] stepCalc(int steps, Color color1, Color color2) { + float[] step = new float[3]; + + step[0] = (color2.r - color1.r) / (float) steps; + step[1] = (color2.g - color1.g) / (float) steps; + step[2] = (color2.b - color1.b) / (float) steps; + + return step; + } + + public static class Color { + public int r; + public int g; + public int b; + + public Color(int r, int g, int b) { + this.r = r; + this.g = g; + this.b = b; + } + + @Override + public boolean equals(@Nullable Object obj) { + if (!(obj instanceof Color)) { + return false; + } + + Color other = (Color) obj; + return this.r == other.r && this.g == other.g && this.b == other.b; + } + + @Override + public int hashCode() { + return r * 10000 + g * 1000 + b; + } } public static String md5(String string) throws NoSuchAlgorithmException { @@ -372,11 +313,11 @@ public final class BitmapUtils { } /** - * Returns a new circular bitmap drawable by creating it from a bitmap, setting initial target density based on - * the display metrics of the resources. + * Returns a new circular bitmap drawable by creating it from a bitmap, setting initial target density based on the + * display metrics of the resources. * * @param resources the resources for initial target density - * @param bitmap the original bitmap + * @param bitmap the original bitmap * @return the circular bitmap */ public static RoundedBitmapDrawable bitmapToCircularBitmapDrawable(Resources resources, @@ -420,7 +361,7 @@ public final class BitmapUtils { bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); } else { bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), - Bitmap.Config.ARGB_8888); + Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(bitmap); @@ -436,14 +377,14 @@ public final class BitmapUtils { imageView); } - public static void setRoundedBitmapForGridMode(Bitmap thumbnail, ImageView imageView){ + public static void setRoundedBitmapForGridMode(Bitmap thumbnail, ImageView imageView) { BitmapUtils.setRoundedBitmap(getResources(), thumbnail, getResources().getDimension(R.dimen.file_icon_rounded_corner_radius_for_grid_mode), imageView); } - private static Resources getResources(){ + private static Resources getResources() { return MainApp.getAppContext().getResources(); } }