From 368608693ac7feaa4fb18bf4f4e010612d531ce1 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 7 Apr 2017 15:56:23 +0200 Subject: [PATCH] improve creator view --- .../res/drawable-mdpi/login_background.png | Bin 29752 -> 31899 bytes .../res/drawable/setup_customization_bg.xml | 4 +-- .../setup_customization_bg_selected.xml | 2 +- .../drawable/setup_customization_circle.xml | 2 +- Habitica/res/drawable/white_rounded_bg.xml | 5 +++ Habitica/res/layout/activity_setup.xml | 2 +- Habitica/res/layout/avatar_setup_drawer.xml | 4 +-- Habitica/res/layout/fragment_setup_avatar.xml | 6 ++-- Habitica/res/layout/fragment_setup_tasks.xml | 5 +-- .../res/layout/setup_customization_item.xml | 8 ++--- Habitica/res/layout/speechbubble.xml | 7 ++-- .../SetupCustomizationRepositoryImpl.java | 32 ++++++++++++------ .../android/habitica/ui/AvatarView.java | 7 ++++ .../habitica/ui/activities/SetupActivity.java | 13 +++++-- .../setup/CustomizationSetupAdapter.java | 1 - .../ui/fragments/BaseMainFragment.java | 18 +++++----- .../ui/fragments/setup/TaskSetupFragment.java | 2 +- .../habitica/ui/views/FadingViewPager.java | 5 +++ .../habitrpgwrapper/lib/api/ApiClient.java | 4 ++- .../lib/models/HabitRPGUser.java | 4 --- translations/store_strings-no.xml | 2 +- 21 files changed, 85 insertions(+), 48 deletions(-) create mode 100644 Habitica/res/drawable/white_rounded_bg.xml diff --git a/Habitica/res/drawable-mdpi/login_background.png b/Habitica/res/drawable-mdpi/login_background.png index 5da3913ebf5a984690345b39abe7eab2db3b9e7f..6d763acbca6110a97f5057f640390e61de0cf9a5 100644 GIT binary patch literal 31899 zcmeHv2UwF?w=OgOb9BbviZrDti1dVn8tRM`3lNk5Qbh=%hmwTeoKXiu9hFXi5d?-V z(u7bf5Tpe`iVz?pAw;?%(%b#O5z(1{4(I;oo_p`}!1Jiv@7sIrz2Cj|TJK(Kf8Z~{ z&mH*g_;+kb+k;_a`?_i0e*jOsVMsmTpKsmIn_}76_OoyN`HC%(z|F>{ ze%aB`1ZSeBtAunzgRE`cY)~K{v^!9njZH<}$K4v~jKZC?LD@UHstQgMYXwg_+Nug( zk<*jbbJsvQIG*>zpb&m=L!_TG5@su?uJ)aZj}jmNjlx-<^g+A0VwHSU1vlj?0p*Ry zV8N4{RdCL#fpWQ*KtJ=4m4>Ehht!f})nc z)YIGE{7<4a-H@IeyABZj!9dx%Ap!B9h9#>2u|`2{VN!B1sGSr9qF^m$BQGN@Wh<>9 z1CxbVTcd1IA3NG6>`xu(V;lkdY3;JD&c#1fLC$8Ce=Py)W{2~(#-M(%2h?L{yZ(dR&l`T(feLuTrMNi$A6N&hwb#G5 z3P@|HJfMrRQb+}qoRqAMqP3JY6atk}u$4vGpycdqp%B0_{co?rpAFRi&4u`+#z+Ti zS9_GL8u;VfK0f##Tsx$js}~CMU)e>#UbP0O6bge?v%|QdPg=XXyEr1PH+Cf0%hmP| zF0y6FPU757ZnM!Jkl!Zbe{in0D2(HOMN_wpato%D|DVnI-`<-$b9lRZ^K-lU!PTvuvDdOp6Me`*{MnWqWNdL@ek<$Gx!&cdL_T5~X4^M%UHE^g0Z=LG5t=bm3`|mG&n$my2>@A7Aooqp|lfo`s zJ3(oy&MsVAQ0%0z3)fCi+N!e)*A^5zDeS_v6O^{Z!nFm(P71ql?F6N*I=gUf zL9vsg>X`1;tJZyKwCU zrL8)F2TJi*Hd6!0_P)H0|V1@%^5zJI#8^0nbx(<(|6Orb3h9H+eRW&6D-e#QRx3%*?WUO#@t zR;?JY@bJdN7QPKXzd1^jl(+ND^r4#$!jc!l5d~(|HbZmv1Z-N^0X7rpZ1a(+Eypi< zp=9RmkB9Sb(){d}bt3N7Kiva1rWuyZR3tBpsI3cM$@4z)^?r%2S%r?TxFavs^1g}u z==ZPR)s%?h-`9T8C&rKf4Q+3V-m`3FF{5_d;%k<;2s|NCr!_+IU-X7*j-BPo(mhiA zkCt4WBpn1RtKyDUdJyc{r#T4Yjrmm%r^QG3#x+IR5k9J%}&o)ZLR=EjkJmHRsL?p_*+4q+dxBUu-M+~k%KbOmlajSF~a*l~K z4gK~j4e4A(6b1HbrBUVbUru_Y6KzH5@VR4EQ4x7=q)rTB)AC4%0Ilh+sSe3uo+upb zd|d5tSXx3O43T*|Q>L&JeD1N(M?&@M19rZzkxJzDz#* z2IkQu>h(}pOG2Hw+*5J=$3c3XSV(s^^pT<>>*6Zrrt$_4+;j^UJ4%m^)a4CDLzcLa z_aJt?^6-R5uFrFv@@@!UdiI(YeL3fz`-2<8;c=g}0o3JX>D?oVMw@Fcsx3gBzu(&R zSf{6{lXcEg$wY1O?T;jy@1Rz$-rWr_z{AORS(Pw8Ng;^N&$@pe!=*SydXABV zpKnU^(E&-~ZI33S+$5n35GPL(OeFNgQ$iyiG4l3kmagY&D_$>?zs;9?Y(Ua_q5sZD zzIy4dgK)SmJgW)hrB+;iywH@08JhD*dTk8_4X&13Rc9Sl6i0d&t|I^3AE#F41ylr#}V2-zq2MW~qFF(io=E07Bdw4t6?HA+O13lwg@CYwR zD?A3R+)l5PM6CTV{3z7)DyH5~MC6|@SLapCa3Cp&eOZKQX5~M!Qbf914fg7ApYh%z z-q9s1@7_F*eD(;~0^qn~*B%=ri-&N26>1aGXn3U&OCESQ%m_DVTYnQ(Q^90{jx-T& z;nv^0$KX!defylCLm}tFjx-pC2Xy85F{fS&E6QbMj5L-(njfosfC9%UU}w1=yfO42 zV{t;;;VFoDauz@^+&Hx=jme~Gf=&=kzuuE5kjagRD)e09anAJ+w@c_KOG5RZ0coa~ zMXv-3^burgzmggLY`@>PZ*vLGKHi{61#FM&tO|0%5GFA$pO-^|9Dh$wsWT`J zLJW>HML%Bk;OxpLDVaROMaSz9B|8SX=g`C)4+^~2a%J+$w4+?`*RL3#i{A_A`}^Va zy*a>edWF9}#+8uVvp`QQmB{sQ@^}|b5H%F%??tu%n8yD^xK$e>$-&i@Kus$vYU>;) z#nU(JB5zG|C>hBtHMlsv=bs7NRQG89P5%C1eLm+#(@wdr>W4a~p=)SyFYa{w{#9RL zn^?=CXeNxt45oD@@w#V@Bus*hE|+k#$fhqB?@DyH1#0GNPN;A=yAai3VK*8U#TlN& z3G<8Lrm>1{h!jeN`fQ+|&mFS$?d`Zb2$#51ddhVB&xr72m(hm|FaOdOG!{9=?ATvR zdSQi+M@3?m?4zx zc&Id4Pt)@XUN^^&X0@0;UMWtkOji<61FQtT0CE{lfHvXN=-fJ2o^%TSE-V-Z(Y~s5 z6y{~MJai+U(_TNhEn&zx;Yx!4XRhP!WxtvBJw^dTRbj?$r`7JTXPFjzp-NLV-g3u= zt^k%aGkU5cfn~<5&a#OOl*&<#ol5@aIbdE*Y4wsJ((C0Mj5I~{s%ed+bKU{2OK#o@ zLGzZ&Wjb-CuvEmrjb)`&>xpe}cFa5vIi&nubF7qkjRiLSewas7G@$xrM_LO5nNJB> z$&XWEkY?_Dv1&!1PGK`1<%$eW4SlWeh*b?`4Kf!!dvvvu`bd(9<=8#}K1nWw_*tIP z2*ik_Q)*~N{jCYA&uk{XP%bx~E~{)5`%9w0;L==ktO_GKMFxRU;;3Z>UXe>_%Qo@n zDqgbZ(hXUn@7uPoA2tW6}dVFn!gDx;!&V&3i zk0#K-icJeN%Nb>k=K9X+CQPK^HDm6mfk%_0*YwSz&lUHdXW@iLIxf&Ge{-u!NoZ1E zjn1)OGVrNdym2N3)uoB7sox5|N$w^Ii=0h>w(c{vD&$BXaSQI@=u#xLFOOa8rN7Q3 z1d;lj2xE_$J8FtC4~C+@SKGEmr_CB$q9YO75O}Y=9Z&fMPqlCwh))tRgw0G#D%$h< z7v+lCE>-9`_}=ESpUX}v7k3HITp3c*^L)56HF-$kDp#Oob9Oumk2D{8oG}ur6}h5^ z4Vr5Hw$Kqi6PhPexJ_39kA#Q`MZ}uC@He*M%_w|(o}BguY04dUMWPuQ(FBZf z&qy98A`;Tv(NGrF$uLlYCxl9p#Yw$hMHnWA``~9Izu>Vk>az)BPr9`x&L)KNmqsM& zBH$}_iF}gSp$o#1_LTYfV)cx4y^N@D>EXg~;1`_n^Va|7PA*E$q9ueHxKYb;j~{~7 zC=Ra%w0=9K|ImcM+~NX9^B>&ij=4}TrsHiWvAP1=Z(bhp>-*BflY(`Xl~oN|SBK*= zT9GW=zya&03S}!g5ci^ew#L`dOsv_@F2GFGYZ#{Wcbg~I|8b` z&8)b$*8mSgyasQ1G&xRYA2?1_4)6)O>!6(KSK%kqHrX$*UP$M%s&UO+p36@X7*&Py zDCbQD*iGw>gmm;=qrlv0nKFK`vM@WzWT}vAvyCEhDfb}V%gXCR=w`lbYxA1^b2ydH z?GxOt^cUyR$Y|l)b-$z+#!tPhQ$*$5n*^NiLG_v6Q_^YK^#FL$mLo;nSuQ7{B#+!6 z7~S;0LyLyBcbE0lOh=DW=3YN_Dp2&Mi6^Mrk+;oFDm4r4kbLlFfnsl^~(_(M9qmkviVLe!T=NWPM@ZL*liHh?`FM$}6#uLc(U zCC>*OzzJ;vbnIw;05wGZ3av)T#OtzP=3SOq7^gSyvj6na{P2Nc3^}*VlD0GkuUH!9 z&>2({396XP(r>k`F|%b_9AAd$Ti(#PT@078gB7+nbyk@zncz+5mX|F)5>z2%*`b2RH z%s9KJX;gY*ela(DbCIuCV5S!Buh8<%Q*ht2#p|p^00*xpFCGh(|4QP|;!Wq~!$ZOi zc@G*ebSbryX~5ZI>1ne16e_qN;FVU_W3)oE=>;uOMt0c9YpPDw)v4NL{0Me>Y`+;A zVM9&poIf8vSLVjkoNO6+8(pxc0fzX<4=yc&;xe{RVE=Qfwp)u*d_h>>&ZRuKY04$kWg zd%@7&D=UwHQ5{X@)&~@?h4Euq&*)*!y={vJgzS7*sEjWts{_4#PtmpZCW0c$Pzlm3YWmQj=pGAft4l%L z;rtel-=EZw8iIYM1G^TYXYWP5VG&bZ`_-}}?3%RV2&x`QrzH2Owfg2wI?rZ;2l zn0Ug>v-?+an0pQl7^RBf73n`#&-ReVN?WNF5W55xAp@CUITRPAURDi|XjC+Ny^91# z@x;skB=%r|<(!O&9S@_ijCDUARlBkA*4?{-U;n!q==*+syD$aL8-@3jDx0;s&1FTgcR5)~@zaxcEX>($I)i0iH=koUwOOAGyx zjYW+eKliUfwL!?Z=HJjQ(5_WzC`6~dX{DC$Ea3TSebanHEkcd?Q@62arS?-N6YU6h zX<-c&I;Z!f5ftg%_0F~fKO1!|xYhdU%LOeH3*r}4Ah8K!#tM3tm3pLG6;TNcjlD07 zM0#ivgVL}>pB_tZIe>G+D_9AZ`GeD=_MHs@{LWzTjSvhi)ueT zxgd%;)i`2#46q}`ygDk63a4AO*5K>?S<`u#kg&4r3uzwPY+>a_xB%N%ib(_xRArY& zUK5QoBcmL~SHxBq$?b{#f1Jq0^JdVQL@rv1eRYn=zZN>SudH+T@emQQfTJBqo?JLl*At4 z{D(lZwBq$`YkZZ>6P2B2~#g;)5y6(Ja zpzEPia9Hg8Ym@+H1xsXKqSkw=eF>hGhyp%4P6U8YwtSh zlO>Kqnngu0i=B~^5e)5c(-bT`FvyiU$Xk0XpO-ui!n7EaKEo)CF_?~GPw+i-<3!>AP zY9mtKC353kdTv3_iJK*aBFN(M2}fzsVqv_+x+#oPLA_j52mKOS0(Ne158LRoC45tbVOUMDX$5?8Pe^N(v1_n#u;;`I9L<;+4yoz^Kw_y8EowBO8}{@Sgu&Yng)+Gks1(lgiGEP$BJDP z8SG*BxcDm}@(Pj6`IbD+18$V3&_tsagPtbZcKTguOs*&bVnyE*W)?6u_n5T@_*8yr zulHz8Bzc5eXu}})_ba5l8Vj7|sF$?f7Z%8vFc*izI7byxth0k+8OjEkoXc=AzN863 z5je~%ThxUMu)%sX+9CB4&lx#?j4IqSza`ZP;Z-)2qcF6*ui>are@%YmQO{8ah1UAS22m0Dgs$Z2TkeEI zJ?%upI#JTiA$iExxcU=gXoKY5w2lF=j<-uQ9&zv#bU@w=cC#QRD_^~k$=i&-G{=#& zGE}?nL8H~qg~XNlrL+aFkw^_8hk-a#PI$7&GPLAi>>-s-l^#!1hvg@OBZaHuR9`f0 zC7~~9wy&`k+o%01y{Jx-Qn@}Qa>n)5oWFHqZ3Ahr^-EyWVuV-#pLJY$GE%CHigTc+ zNzEnq7(Fr#*BfMdQ{DPU5}m0g5duE%2Jvk?LU*zqP~qit%_sxQWwm!t=Vep(oC193 zFf>Ca&*3T%l^b1a{9|Yafc{ zwW91Z4VSxGz1Z5N$Z&~NK2cW*#{HEgawmRdh$usvUJ}SLWe*` z3uNwKY*pgtPKrCzkZ^agJA-ALBV!w0H(VzM4CN8Jys->8a}v&XNGVXwB9JYZ*2XMZ zR{??4k)LS#>s5=secDl&H0Wv|=v5eE4w$PAa6D%V91DmH>+!x5iXgq9r&#I)uK_38 zPAVxL71t0vZe^u5&+?jhnUomT7s_{LdCZI_RV3>M%86V%dxBa(f_&}Q8&jC9A_A!V zH0x@3ziaKDN_?yV-w3X(PI&BV78wf3u5-jk>D}ezdh$Jjj+ez zRdJ(dd*!=dm+i3yjN+?SD9L9|pnss5aThSPsOP5aKnN+mUsfni4B{8fju-PdP!=%+ z7+wH1ir0O>UPL8aF~52)o0T>BjB45-oqhuq4y~cn#^YAZs6-EM+IWFKYIHynS%Lvv zi`zIWwbo-uKHK$P_M*I3j;3n`t=ZfE%<88@~qOGhc@`$}96@7X+$aF3=MC5wy{#^kgE*PF1*q2oc> zSF4t%{KtUKxJ|^T;>~W$Yad43sqdW2W<*6X>ii8LF9`ck7oAdRL8Ql)fbMlMALWBQ z(vie!Db=E*T(eV0n|*Q3h=?dFTw^c$`rI?t_&(!GA=E0B$I7=NNY?(;Gyz~&56G$W z0W;5>0=g?&tqPZqiqW{0!}r^|1qBni-;9(Kdfp_fnnu)kBiF-joP&j32mcfmI6>=D z^r{GFz3$HUjE0bavy>QOh?*%F2e1ar{QNir4`~Jgs@9CcxHg*Ptvo}uQV8B_6%j1` zi-fpJ#W!-TShF$W=sQTr@ThRDD-c)!{7qM?R!F=seS18oy@>}fQzLb$q(Na!;!-F= z8!ZF`;B&89R4HdsY~dj{y*yD$HNBMnzTbnQl`lJC-U2P$m;<23gb=MyJfDYNg3*XNYG78KT^#{Cxquu4XQGrg&u zJhx-1v#3lt|W9vW52q#G-wL7SuJNObDKO#oUoy9h*8 zsLf62EDs&`OxLqEVBx+Ji4*zb2{3_|XG|iNCp~_hwO8G2hV@|RcD7H)g;TeBGK5f+ zK%L|ek5rv=SmJGFy=$^~lI7gfrA2|7iXat$WtT5buP;4yT3MqyM;47x^|-CZ09QjY6m+bmjKH_57(e^DzmCbh2p?`c|vg^SNqJ@(ILSPW8*cvdV?gc8`v_QoJEjP%rP+f0;*8>4=@B24Uux-H< zN8nb`aZ$Ji1s}=r`H%N?3R(Sh(^{24^3+cO5h!hA=29 zI?CuWWyr5L-{Q`%THQbUtRHffo2cj-wEj)kLU)_W-~ypYXIOnX80^-6rgWbV1?{?W zPsy$V-4m#zrY5jBFkjZUwm*0+!fAyP{LWfkJoBVT2XFm1b%nunWc;zC z_}wE11mOwaDV+ZLDQuYs>FL4CWlF}g^km=(#kbKE+F_wv*{^lQ3xJ4l>`S_0mRdvS zSqdzP|mStL`jJnS6l zh3NCRu}4W`hm~)ROK=3=WQq*v zn5)OT(e30eE#{ljNyElmy5tyN2Im5K^gKYVNw>n0c@kZ>!1nhUWk;gneBWRVPVm?} zQC{1Jmt;go>Ww@eI?y8$iSs9nRl-{9Yt&hzg@!c!wXhQbKXO*` zhipumI)LV)kw;Gh`A435#Z`_gUD)NhNqzkl)mO$&_un<}7cy=}aCKwP<`mPvl~{Se zC%7#xYWu^xl!29=Lq>aLL9xkDz-hiZmL3CSkuHV<*7OVlQ#qU==&m&+s;VW-Q$rv- zW=F;Wu{}sAq^DC(@#YIxi^D3Q5psZG(N>6v)V0O^T?_bzU?mTM z?$oPM-qU#v5VMMaURKuvc zY+}RG-wzE~R_ZqRijk2(WT?geTgzyj79d=o&>?KsTXrL({%IU(n@Jos>n#S()v}Wm zbFf*p-DFb*j64d8o()d&q0>jC4EEp16m&uphwB-5+F;rdn|oL(k{E6A9yFKxP4Ma~ z@DVT^|T?OXKmPcowh3Qz?E7=Unjj>xT2}tZ`R~Qy31fghULw6U3pd#$YE? zN8m8bB)|nCWI0{n{b!CNVNS&abc1=CJmRZl}4<4*EhB2x%ap|KX_?{ z;rck|__W%)1AA2vfGwV}UmpqUS~#?xYUSK-*W7~$wrmT5@cS;IJX_Sf9_aRBpGD;| ztyYOk%m}wUWKj04T13jKV>nXoTyf1>>i8`(R>>q2h@WO4f6+h)#`emGE~YQ1I0meM z)mYwuFIQjGsh+lvn|{=>ZXu}6n@VX9kg`}OJIAdM&|Kd~1t*1?s+A)B<-!2?`~okC8JOTKlSI**2@G#uBP9B6orEU^F<8~?@$)V z|Ff931hUR`HT#}&Z`pvFUz-Tn;x#g;tta(2lE;yEqFxWey;iEOK3+`gDa<8hxhQ5F z51xy1&8@Y%YSQCGEt{+?JRUq`74(}gd|~Wf*MhzJvT60IfTdN0+v0@&@pZ5IJ|(46 zX3ofY+W@Pmwcmnjtrl2HiOYAWfo?P^34PU~x8S~IxYb&>+ba7#jdQU5(ZS1QL~~Wf zU|^dOjk>Dt7N3NS33bpeR9+s!Q&uLj&jESlK_1$jL;d9$$KCpHjdcuaW$EBrXzm%e zRQ7?Yw|9$AZ0P%#Swh=q`>^8sxygK*L9v;r3Q3Ft8dkO4J694WY85mJCI-0*zHNdAzS%Um!Q#SeZXhD4@t0^*%9X*1~&kl*^Eo<)sE;GUE=(rQTCc z&F2aykDB??l@p08fy>I&ytagKsw%TO)qif>Up=KbR5`NVD!3@}+1kv3Y10|rq(qs9 z*AcL+V${VP8p;X61aiirB+0hwYZ`&oA@xrMfKW>=Lxq-ifW7?4=h34F&Zzwg>$4h0 z#%@4rZ@?MwN~}VL5)%Cuhy4uG>^gDJ>>>xU5L(7fCHSH8aPo_*igH2B1zkW zpG1y;-D&QWUw^ZnL(vNwo*y)dXrr2>su%62%LynIcCku=tPXV-&dy}|4K6o!12Ugw zM%-8mFH@aOCp8c?K|lzjYJ5t0jP+)0ystI&lsJLbG;j3~Nc%1IHi)=lM;y7%ke`ph zu&ZN!kfnjWK}w+&f~8NqJ8NhtY{|?XfdKv7z_3Dp-D5I@Gbg}#jN$zX@(q$m1t9zh zT)k-iB5YLlD}v6X;~uo&_2xM6$Gk0gfk+gVQOsT*%RU{3`keO!DhiDCk%akRfm)gqo&2s!18g zJ+wH!jb8x9{|A8b0#S=V|3gMJIp-_n)*?R?m505&5wAxUKf3rbkOJKIDp2ZaRCmu- zq%XZ1Lwo7NP3Jg^tA_O^m3mzlt$Vq>oPrPXt6Yj$A5)hDr<_nW%3PBt$+;2fYfc1q z9pX4SwZsqXKi6}a;9bqguNKJV&eFXAWWYj=rxtvP+^@@Bm)_K&GkJi?mfjB{Bic^5 z;?NTwO|P?O=yg3V@D_{%%fuW_i)&b!bEsJGF{du9k5A{#uZ@u|r@8@z1Bm8hT{K!| zLgu@fmhDYb+oKH*^nU<^GhOQ~5O2M75Vjd_ZBuzwb&ak(SncbyT#P{tEKa_>&t-AF zfhb?gRF7LJCwfiikZPC4r-6hMTzS31DWI7VWD%kMPB~8AHJEy6?7aD?$(8<8sJySKk6T05nRKi#e2TIjK%;pFm8Znn zlt7Obw|su5NW`Q>>j@E;B6%b!e1FV{1M%c&d980-9l8$~%2aN;m~#(7>9;oTiS|~2 z#b^sF?&{tF;6i1GH}x-I@CCFV1DX1TC~1M zx0Kb*c=~(|l{a7IaqtXv1ox1aHoq*JAsDA#xt_f=-|^#WehT&uGIk?D<#7V?`BqPh zIWUrqKvDLgD6eft3lMQtj#{~sJoHLA(gTY_$1-eEg)0LGeO{$@^(@a$r}T|`;V)^20jWG7j!7``rq+yf`5X*h zNna0mnCgh1p8tW68$5q0chXAHFu2yja}w6tAYSzQ0(X5pD%?2bVcOd0>f2bQ6d>gl zu#IMpYKEMo{z8j>HF35#W4!ZGVb62I`PXFoaV>wh#eRTu?G0jdkS5DjjohsK?$EVj z*_XxmYQy=?0C7>07!oiz9!-WW)5GlYMl^eGRUXo;d=hBzb+doMh+J2Fo=t2=%*^tX}F&3&IXXxTD8zib|qJ>>?9u#ei!$(YgWqv)LHZCz3%RXRQI&}$9Rmu6O zLW)hzXhf~zn6o$#GK*>eR%@>Q@$XgIdnqYyfqWsS1nxy|m;=ze)tJIHqt%5Mz?}<* zejMvm5VbT};-YuAWyy3mVLIJM7j9OR18^K5C+IX##{eQg;dUIg8wtWyW%)Wu*mkP^ zz?n`>0*)4rpg~nVjkii&Ks4H_sQTFcwa9S`G^O+ruI15txtLI6Z3qxXO>l1?x&^2n z?@veDn@$CQqt*6S;v7?q><6@#)x?=69A6B8k$anwb0T$;^ONe*OkZ3+kmUN1jt%Bi z+Q>^h(ka1Q6^hni7ZMZ;lzL|=s4e%8FkX77$5TuHBxS!%dO|{TVfY?#=Ld|8+8-}p z{Jn5(sB_MK-<{(7t$VWPDX6cefbm+Ig&VupjLaAZE4RY&*;uWl!Zi{5^^7d&%ZC``}9RLjxDV%+d_Z)$hjVxI&&n*=!vyE$*LMBw!& zKrc!u^6O!lOgWJrMoj(FsLyG2@5!!g1FohwFGg!-hmmdaYHN3>kFD=V8o{gT(nvb@ z*r`jm_7^1jtc3hdN?OZ1UQ1i@J~USy{njP>gj7abn`s~?j2a^r=;?n|Hc-nvq@SZ0 z9oIbUM$?>c=B@~^W0W~n`OPN2TaW=L!jaEZ_`$6(W8fsU?Cl!AP#)HO3nLk3Nm{L< z=LTPi;F3BE(+kvU*Q_0x_T%mIeoLWqBn|_sGQux9~|^e7*Dn+2zB)s=M{u zg&7W>*I!HA|ozS^cak_Ul2nEkF?q!mm{HFLKXRD3CzONSN^m??oV# zoGCeDGew*OGA&%E>_)fUvK^5(9urhJ1$ABH|tMw&z>;xZi4cO zSwF?YTdDT4vSD82@Kx5#B2=5YyvA3p&Jgr|sCz*Rq>!hK#of`_MzU~2+}=tgF^1gP z#f5ZAF7p;wGEMgu?R^Zwb_odRNvWi*n%Kl{ZjkWsjjt82+5X2sDW+Y? z0I z`sMJAi@0Jz0VIGtGzpy>r0N2ss02Ty4b z?gOheuyHq@n`a{*|KtThv6aib&r>1Q6=#xRO&8PY;NG$ZN{|WcLS}@eC=eKN@VNN1VkT6M;(>B9h#!V;3ziMxlZgtCeP;$idVqurRi}ZN3(7&o|M1f zXmd|GV6C@)B@o2w?D7HS5H@{=QxERavDhfBt_w9`Qa&}q3Gud!v}vE zihh!IB=)_`KL$YU(X=Q{ zG9Lq^o|6BzM(D}n$oxv)gD-31_L=-+D7r)#zFCFzvMxSjlYR)LZ+!X7ov<#)rrtj@ W^4?|D0kAe~7qsA-1!u4Q^uGYF@%$D5 delta 13056 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 diff --git a/Habitica/res/drawable/setup_customization_bg.xml b/Habitica/res/drawable/setup_customization_bg.xml index 515f856bb..8a74eb32f 100644 --- a/Habitica/res/drawable/setup_customization_bg.xml +++ b/Habitica/res/drawable/setup_customization_bg.xml @@ -1,8 +1,8 @@ - + - + diff --git a/Habitica/res/drawable/setup_customization_bg_selected.xml b/Habitica/res/drawable/setup_customization_bg_selected.xml index 690256892..87c99b359 100644 --- a/Habitica/res/drawable/setup_customization_bg_selected.xml +++ b/Habitica/res/drawable/setup_customization_bg_selected.xml @@ -3,7 +3,7 @@ - + diff --git a/Habitica/res/drawable/setup_customization_circle.xml b/Habitica/res/drawable/setup_customization_circle.xml index 59f17d3c5..aec0612c1 100644 --- a/Habitica/res/drawable/setup_customization_circle.xml +++ b/Habitica/res/drawable/setup_customization_circle.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/Habitica/res/drawable/white_rounded_bg.xml b/Habitica/res/drawable/white_rounded_bg.xml new file mode 100644 index 000000000..6661d90cf --- /dev/null +++ b/Habitica/res/drawable/white_rounded_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Habitica/res/layout/activity_setup.xml b/Habitica/res/layout/activity_setup.xml index 69b1a48b4..b058ffd0a 100644 --- a/Habitica/res/layout/activity_setup.xml +++ b/Habitica/res/layout/activity_setup.xml @@ -2,7 +2,7 @@ - + android:layout_marginTop="6dp" + /> \ No newline at end of file diff --git a/Habitica/res/layout/speechbubble.xml b/Habitica/res/layout/speechbubble.xml index 96efd7292..2a6d808b5 100644 --- a/Habitica/res/layout/speechbubble.xml +++ b/Habitica/res/layout/speechbubble.xml @@ -7,8 +7,8 @@ android:background="@color/transparent"> @@ -17,12 +17,13 @@ android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/white" + android:background="@drawable/white_rounded_bg" android:paddingLeft="21dp" android:paddingTop="16dp" android:paddingRight="21dp" android:paddingBottom="14dp" android:layout_marginTop="74dp" + style="@style/Body1" tools:text="@string/welcome_text"/> getGlasses() { return Arrays.asList( - SetupCustomization.createGlasses("", 0), + SetupCustomization.createGlasses("eyewear_base_0", R.drawable.creator_blank_face), SetupCustomization.createGlasses("eyewear_special_blackTopFrame", R.drawable.creator_eyewear_special_blacktopframe), SetupCustomization.createGlasses("eyewear_special_blueTopFrame", R.drawable.creator_eyewear_special_bluetopframe), SetupCustomization.createGlasses("eyewear_special_greenTopFrame", R.drawable.creator_eyewear_special_greentopframe), @@ -111,20 +113,20 @@ public class SetupCustomizationRepositoryImpl implements SetupCustomizationRepos ); } - private List getHairBases() { + private List getHairBases(String color) { return Arrays.asList( SetupCustomization.createHairPonytail("0", R.drawable.creator_blank_face), - SetupCustomization.createHairPonytail("1", R.drawable.creator_hair_base_1_red), - SetupCustomization.createHairPonytail("3", R.drawable.creator_hair_base_3_red) + SetupCustomization.createHairPonytail("1", getResId("creator_hair_base_1_"+color)), + SetupCustomization.createHairPonytail("3", getResId("creator_hair_base_3_"+color)) ); } - private List getBangs() { + private List getBangs(String color) { return Arrays.asList( SetupCustomization.createHairBangs("0", R.drawable.creator_blank_face), - SetupCustomization.createHairBangs("1", R.drawable.creator_hair_bangs_1_red), - SetupCustomization.createHairBangs("2", R.drawable.creator_hair_bangs_2_red), - SetupCustomization.createHairBangs("3", R.drawable.creator_hair_bangs_3_red) + SetupCustomization.createHairBangs("1", getResId("creator_hair_bangs_1_"+color)), + SetupCustomization.createHairBangs("2", getResId("creator_hair_bangs_2_"+color)), + SetupCustomization.createHairBangs("3", getResId("creator_hair_bangs_3_"+color)) ); } @@ -169,4 +171,14 @@ public class SetupCustomizationRepositoryImpl implements SetupCustomizationRepos SetupCustomization.createSkin("6bd049", R.color.skin_6bd049) ); } + + private int getResId(String resName) { + + try { + return context.getResources().getIdentifier(resName, "drawable", context.getPackageName()); + } catch (Exception e) { + e.printStackTrace(); + return -1; + } + } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java index 948a17a85..5f46ddd3b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java @@ -54,6 +54,7 @@ public class AvatarView extends View { private boolean showBackground = true; private boolean showMount = true; private boolean showPet = true; + private boolean showSleeping = true; private boolean hasBackground; private boolean hasMount; private boolean hasPet; @@ -107,6 +108,7 @@ public class AvatarView extends View { showBackground = a.getBoolean(R.styleable.AvatarView_showBackground, true); showMount = a.getBoolean(R.styleable.AvatarView_showMount, true); showPet = a.getBoolean(R.styleable.AvatarView_showPet, true); + showSleeping = a.getBoolean(R.styleable.AvatarView_showSleeping, true); } finally { a.recycle(); } @@ -191,6 +193,11 @@ public class AvatarView extends View { layerMap.put(LayerType.BACKGROUND, "background_" + backgroundName); if (resetHasAttributes) hasBackground = true; } + + if (showSleeping && user.getPreferences().getSleep()) { + layerMap.put(AvatarView.LayerType.ZZZ, "zzz"); + } + return layerMap; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java index c3ea65f3b..5646609aa 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/SetupActivity.java @@ -10,6 +10,7 @@ import android.support.v7.preference.PreferenceManager; import android.view.View; import android.widget.Button; +import com.habitrpg.android.habitica.ui.views.FadingViewPager; import com.magicmicky.habitrpgwrapper.lib.api.ApiClient; import com.habitrpg.android.habitica.HostConfig; import com.habitrpg.android.habitica.R; @@ -68,7 +69,7 @@ public class SetupActivity extends BaseActivity implements ViewPager.OnPageChang @Inject protected HostConfig hostConfig; @BindView(R.id.view_pager) - ViewPager pager; + FadingViewPager pager; @BindView(R.id.nextButton) Button nextButton; @BindView(R.id.previousButton) @@ -107,8 +108,16 @@ public class SetupActivity extends BaseActivity implements ViewPager.OnPageChang if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); - window.setStatusBarColor(ContextCompat.getColor(this, R.color.days_gray)); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + View decor = getWindow().getDecorView(); + decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + window.setStatusBarColor(ContextCompat.getColor(this, R.color.light_gray_bg)); + } else { + window.setStatusBarColor(ContextCompat.getColor(this, R.color.days_gray)); + } } + + pager.disableFading = true; } @Override diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/CustomizationSetupAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/CustomizationSetupAdapter.java index 00280f097..afbec2b60 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/CustomizationSetupAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/setup/CustomizationSetupAdapter.java @@ -58,7 +58,6 @@ public class CustomizationSetupAdapter extends RecyclerView.Adapter