From a065c78b5fd1a4624406a1694ba111a597efa481 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 30 Aug 2019 18:36:14 -0700 Subject: [PATCH] Restyle UIComputerView to match other clients --- .../AddComputerIcon.imageset/Contents.json | 23 ----- .../limelight_computer_add_icon_1x.png | Bin 1543 -> 0 bytes .../limelight_computer_add_icon_2x.png | Bin 1964 -> 0 bytes .../limelight_computer_add_icon_3x.png | Bin 2449 -> 0 bytes .../Contents.json | 10 +- .../AddOverlayIcon.imageset/add.pdf | Bin 0 -> 1069 bytes .../limelight_computer_1x.png | Bin 9502 -> 0 bytes .../limelight_computer_2x.png | Bin 13331 -> 0 bytes .../limelight_computer_3x.png | Bin 22832 -> 0 bytes .../ErrorOverlayIcon.imageset/Contents.json | 21 +++++ .../ErrorOverlayIcon.imageset/error.pdf | 68 ++++++++++++++ .../LockedOverlayIcon.imageset/Contents.json | 21 +++++ .../LockedOverlayIcon.imageset/lock.pdf | 68 ++++++++++++++ .../Contents.json | 21 +++++ .../UpdatingOverlayIcon.imageset/updating.pdf | 68 ++++++++++++++ .../computer.imageset/Contents.json | 21 +++++ .../computer.imageset/computer.pdf | 69 ++++++++++++++ Limelight/UIComputerView.m | 88 +++++------------- 18 files changed, 386 insertions(+), 92 deletions(-) delete mode 100644 Limelight/Images.xcassets/AddComputerIcon.imageset/Contents.json delete mode 100644 Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_1x.png delete mode 100644 Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_2x.png delete mode 100644 Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_3x.png rename Limelight/Images.xcassets/{Computer.imageset => AddOverlayIcon.imageset}/Contents.json (50%) create mode 100644 Limelight/Images.xcassets/AddOverlayIcon.imageset/add.pdf delete mode 100644 Limelight/Images.xcassets/Computer.imageset/limelight_computer_1x.png delete mode 100644 Limelight/Images.xcassets/Computer.imageset/limelight_computer_2x.png delete mode 100644 Limelight/Images.xcassets/Computer.imageset/limelight_computer_3x.png create mode 100644 Limelight/Images.xcassets/ErrorOverlayIcon.imageset/Contents.json create mode 100644 Limelight/Images.xcassets/ErrorOverlayIcon.imageset/error.pdf create mode 100644 Limelight/Images.xcassets/LockedOverlayIcon.imageset/Contents.json create mode 100644 Limelight/Images.xcassets/LockedOverlayIcon.imageset/lock.pdf create mode 100644 Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/Contents.json create mode 100644 Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/updating.pdf create mode 100644 Limelight/Images.xcassets/computer.imageset/Contents.json create mode 100644 Limelight/Images.xcassets/computer.imageset/computer.pdf diff --git a/Limelight/Images.xcassets/AddComputerIcon.imageset/Contents.json b/Limelight/Images.xcassets/AddComputerIcon.imageset/Contents.json deleted file mode 100644 index 159ec2c..0000000 --- a/Limelight/Images.xcassets/AddComputerIcon.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x", - "filename" : "limelight_computer_add_icon_1x.png" - }, - { - "idiom" : "universal", - "scale" : "2x", - "filename" : "limelight_computer_add_icon_2x.png" - }, - { - "idiom" : "universal", - "scale" : "3x", - "filename" : "limelight_computer_add_icon_3x.png" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_1x.png b/Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_1x.png deleted file mode 100644 index 1c3d2db356846648e8f6c7f80edf0249e7d31116..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1543 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fjKx9jP7LeL$-D$|I14-?iy0Vf zTR@oc>YDW>Kn15WLn2Bde0{8v^KP? zWt5Z@Sn2DRmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)QswftllyTAW;z zSx}OhpQivaH!&%{w8U0P31kr*K;4;J0JkWw80ssa|MV*o3-k^34D_*SD#=VkI1fb^ zNCu(}>???6Ho%~2c&KES&I%S!j{PIaTe*iOHvLoSr54`BvV(^~=?F^U16TT)q1B$I#MHUu{b-w&PYE zVb9Z^*%@tqHtD8OzINd9IToyUjdv%_pAz}=b%Dhn#^;V3=6@5F+IB_jQfq6g{v(Tj zca}VBk;_=Q{;E-&tBtx)u6xqHmmRU2gQkCVoG5P2$H%vi&7dj`XwTHk8&2oO&;+$YkrQYEI^cEc0J zRB?|Bt2R#Wu(3LoVuewobOCC4^i zKDnTKMwKgbrq%I!>p$|IJ06$V&AFQX!}tCpdC|7|Ag&On$ik(usKc-X|aaoH$*@-*@`s>CN{t zteiC}brR*DtAC!)8^5wbci*a>Ac;@Y7s#o$8tyt@cyMN6&9Zwhc>3l{)8zltdFra) zs=(6t&o3WqA7wupn%6V8-~038>j!gpaqC_<(zcCjpQ+)hO{YHGsy)9@^1;j9C&Rh! zZn+^_$$zuy!3)hhck{0lUKF!C7=CKe9@dk~=DWGSj7H2DCF!jEI; z&YgQ|b6&o&Ke4Aw>tCMge+{1f5jx`0f3Cc!WA@lDVK@83UZ#JHVyUIpy=z2Rts|%1 zH9Mvv(Xx4BU*F1wU1w%py!&>Y%E9J^^Ayd`eDGBM%kP8pWwspy7T^pF Mp00i_>zopr0K^HE^8f$< diff --git a/Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_2x.png b/Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_2x.png deleted file mode 100644 index 661eddd89bf78dbb6b77b16e2a5b5e5965527852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1964 zcmZuy2UL^E77mCIQ0h_?BZMH*Bnc%^VuF+q$Vxj1BrYr@K!7ZS#3aBED6oJOY2tgk z3p{C}^iUqCi?UMWNE1bAArF)yAVrAa(x3Yhb$4Hzb7tn=JKrteojGUH-CP{xu!lQ368siEvW7pWKpEZvK%jRKp?$i_Hia^b>>|ii44z z-Jo_%HVuk`TfmVpD>*0>ie(1|VchYAFYY1@2MghHSr`N&Dk=&dWe#VugAt~dmX-*l z8N$rWM1(NmM2B;!fJrz<_j8cni?R ze!nOyIYamW4g@+FL&V#7ILh-#&S?;P)w-p{)x!M3!tvsja8(_nFf14jtWTMyPjx^% z@p#=^GQTS60P3oEMdkVeuyT?^M+Tuay<4f3Cu5`h?G4mF0?LDTEBe-ACs9MVb4CxC zm8(mnwO{IA)l`$1&EGglq`YJUmWLmk^MaPS4G`?@v%7J$Vf7~#aeG0OxW3)-EI>8B z@I)_Z%HfXh2%*==_rWG=I{NK=$fQff2BBsIqp{sFnRO@SWt$D{Obuz8k~ zrdiv>w%73*?)L{ZL(~UKvgn$539!Ksiy|Ly?}z*_^!>Y|eP~AcR`Y-_G2*wDo}v5- z)YJSy{<8(+lfb#=&D$fGQ7c~erOPY;0IZyc`uC+TNpcB}$$cM>sQUV@L_VySxM`P; z8YLAO7&TEn_uH)(YxA09dEv|m{B@P)~x7OCgj_OZ&5V2pHBdo!#^QYa@d z7n+$rnYv?Ft81rs+x$*zu70}@g~s{NZ}au{bl#j`zGz|Gw?0Y%jV?35oYyKi(<4KC zCH#=2VsVvyK<-VBjr|R>7WqhHCaU78m;RF5PiPhXWq%rNZnhdMLyH72Ur++n5|3Jc zd!qX9zg79g6iaOHK*2}Y1T++x|$ zJP6=onpJ&2;;R8RL8VL%6V*D4D)raj;5jz-PZk|KNlsnJ*>g;)$jcpm#UC=Lg9m$$j$H&pV%o{sE-VK_f)&FHkMyE~lojFs@E?V>ZAKfIV25URFl(61A8es1rApyv%S z8HqkCG0S1P6E|Zr(rw)!s<@eNPMy$yD|NFn_Uy+u@|=Vluag&NW3`LBofB5Flb=s` zJJDbktGyA)bI&Hwa6)FzRhs72U7t>+Fk_06meLWc`)QLo#cX z60WijK8(J6jZnt7Jld4PwlTuDPmwUh1-&aORW$|ouO+yid@RL2F2I_3`UBHd`&uav zhZZKrr;RB5eYz^Ley29qt#0M??7TYSeWzL@)`p_!?8WjmIG$5-rRQ1+f2yn@DZkWO z=+J9mOaGup$}a5xD`l=-V-Hm@H=Gixy+OOwl)*r0X4P58`Q6h$WIpOhks=>V)JB<} zlz>1=RH9R#$Ue25Qa{v$bvUZ42T9G&rkHo*>OnCQUhy`^G$iG{l7#!Z$SdFnF}v|) zKi!k$Ke~pD2Pbjw8AuK0%C~=~)U+!(tx(#&oVcIw`IqyFx)U$f32iRJHaugrEq`D7 z-C}iGt?3b;11%XkEOlyIa)XQ;UUEz}v%jk{q_pF3SCC!nrTuQTf_7P`@lnNTdCIbp zz;G!sO(!^^MWB3IO@m*NK3aNW#I zZBPIKrH2uwUFfs7^O1?9tWI?3i64zCmBw(|8vi_AIT4u5!+$S&J#OQ0GxwA>BvD0T zi3mymCY$QyQe^nfl?pLdV0O_eQG6^Pf{*rd{zWdCX;(MV^3Y3i*9Z!bp b&Gj7(&A4E)y}`@@@fS+8cfr@$QWF0Km7-B> diff --git a/Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_3x.png b/Limelight/Images.xcassets/AddComputerIcon.imageset/limelight_computer_add_icon_3x.png deleted file mode 100644 index 9323db1f999db7b868153c20796bbcc0032093e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2449 zcmZuz2|N?*AD=m5u3T?!LkD7;D>fU=y_}hlsEvkYY-SiznmgW+_*4CJCdn}(yqPz2 z5K%JzCHL7V<*t<8sowYfU(e_BT)*f0JHFrN^L#!}nya&&I7kr$006`>_SSB^dH+rq z7UGS!P}~~c#24;nX9=k3Q|9tEA{6`M;Q#~!zuM0_LnwbG3Jw3sipLL1 z$5WvC5E%6TInjs#f0y?kUOOj0+`hB=kqpU`24O`d;Av#4JDE%}NAG9{#)RMl32p@Z z>1ZVMzY%{|irfi_aG??jJgz&8%=MAb|FQkVBcVHV|Be0+ZNFQ2;+lhanf|;ebC5Qq z7X<+9I)$-DyL*Y;^>Rv8wvny5&0QLGiVPUJ-n*dw3MWz0j*{;}1JTO`CyatpaT1mg zTS1gCgT4aR0>z}ITBOcNlM6Cb8N1Q4viwqFB0^CnEoNJWW~fn=@44~CrB8)i-=Vmk z*Gsq0t&e%KPPWDvd(U1@w&znWDl2<9AI`^riJ-_hQrp71Ns@aN6>QwI`K~S_-zR;6jIH|e!eC-KOIr3WytV2vR~;oW=EA5ASzPfttAf+(uC?FTP44%;4B z*77dZ++ct{`1*GC8F$`x9friXD|dn>JPw(djEgfSRL&OfI&tX3m`y@_9rVP#Pi_@7 zB9*$*3~*+3BttQGJC7~)uY&>01W~FQ5A%n^|WA`fYv0Uo4 z-kY}v&)jEKS6{cg=HPh3$NL=lXi4>8&hh%po~YYy6+Y0s9sxOTQMKcXmW+#cMCv-b z*}iKGJ>{hGq(nKaF!Bpr*+GSq^u!!AYJqhdmLF}>uO(P$L78Z4+S+)h z)ENto&%P4Td(kT5m&eM2L;7p=tZSxBANvTw=OF=sf%gyRvlGuT-*miq)itywdpHiE zuixIBTGZu`yK%wtd~6N(pHh)8P&0*q8_o-lYdi)92HvALbn~&ALd9ZULT6MV+lpvN zQNz$%HKO)l{Xj}tDC2>%XYD5iS)@dOu!t#e+GpQB*z@{X2f-C|nk2Y2T$&>POUF%H z-SdnnTb(+2pudlH)q2lJ9Gy@U*wg6}&5>(}?m&&>L9cg(iM^J55KF!>E+{Y62X<+l zGi5SxjcgPm+32^eNIL<~Hg0kJq}(lp7*jyN5OMi{Kz2^ENtiLn+*3~=S>vM(=t#zL zJ|37m13&X|EUvy*yj&rPZpLpoJ;K*1b!zpFV19qov>ww>);S)NP?BMuFMw^dU=`PA zib*H0`@Bb=g-_NV0l?r}IfbOe-_=J|kl9tY3#AF=RQp4r=IwfW$azc=4&{gm~b?Gu$B9B-MNtkwxV zIr?xazxa21#~THpgT*hT<}O1HjF-A$t9_4SZsu>KH@>~DNWa?n3~Q5@1Ihh$i*JgX z3SY3lWCzcIY^$r4@hR4cO@Hvw*bP@R#MQPXj98?uFABV1X4i?mUYt~eyL+Ux%Quv2DG34SwX z_{=1Y^Crl%RxNCI@u4<@w%n>wv$M}t`@Lt3rpp~(F)>V_^`e35ipVk8lxQ}Mg0`)d zGh>?;Rd!Hc`chOdf~64#q|5s{6D}~HG*qgbv(jp=w5PpB3x!<~p5)xP=ij@L3CVRB z&q<#huusGz73wW}JyT{XE|u%LS<1Dr!n!=)y+C*@WtZRVD{a``)4h~{sPIk2?IqR| zEk|TV)`vewIeST-PfK4WsuWrJ{aPUD;9z^|vI^t^Q(sR_17K?G;0hwzhX?ETZ(xHn z&X$ZGPmVu!LG8;NC*gA@+b?>$z<-`3c2^m8mHre~%3{QpVKWD?KoAD&bYV5EN$0>B zYqpbbS=u6dGunSllik~v#R=40`_PfEY^YShDVm*M>BkB@(yWLAwo2Jo+sehyO59+D zL5-pnW?P}He(RO-&ug?!l_rNA&T5$_yd2Ka?NTy;mcGG_jbma)<;IxpKKxDnK>*vY z{u?s#d8-g|7dyjGl*F>1eDf^@=VrGy^!V}P6xV2(r*|whY?p`olnjO;0{qC;Jpjv= zy$rv>x9uBx^taXSg`CZ`-K|42cjJPC(?cXN%*mF#2_q7WYSW2d~lOj8JDPju&m z-VX`b9n>@A26o33yv^jhxO}juskxc1ezByff3AtijffQ+_g3Tn_H1%WW^r-R1g0qo z5}iUFtS^z)DNSgYtxJzNaz@8PJMDFTq)e85fwJf!PSR*pFpWpCm|gwvuCQowqqpytTeotV&4F6JY*a zs1AR`f^!UFd!DaUYdTA}MbKqCAQA{Dd>AsPZ|KhiPN*lGI^CZ+1?;&P1G13#)~>^c mt10=WNSASxh9ec8S#d3{u=lrc(tKb$|0Il!vvrLnj`0T%Bs3WS diff --git a/Limelight/Images.xcassets/Computer.imageset/Contents.json b/Limelight/Images.xcassets/AddOverlayIcon.imageset/Contents.json similarity index 50% rename from Limelight/Images.xcassets/Computer.imageset/Contents.json rename to Limelight/Images.xcassets/AddOverlayIcon.imageset/Contents.json index 3a06eed..def80db 100644 --- a/Limelight/Images.xcassets/Computer.imageset/Contents.json +++ b/Limelight/Images.xcassets/AddOverlayIcon.imageset/Contents.json @@ -2,18 +2,16 @@ "images" : [ { "idiom" : "universal", - "scale" : "1x", - "filename" : "limelight_computer_1x.png" + "scale" : "1x" }, { "idiom" : "universal", - "scale" : "2x", - "filename" : "limelight_computer_2x.png" + "filename" : "add.pdf", + "scale" : "2x" }, { "idiom" : "universal", - "scale" : "3x", - "filename" : "limelight_computer_3x.png" + "scale" : "3x" } ], "info" : { diff --git a/Limelight/Images.xcassets/AddOverlayIcon.imageset/add.pdf b/Limelight/Images.xcassets/AddOverlayIcon.imageset/add.pdf new file mode 100644 index 0000000000000000000000000000000000000000..cbc761598c8663ce5f9e387ac0967590c983dd80 GIT binary patch literal 1069 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 diff --git a/Limelight/Images.xcassets/Computer.imageset/limelight_computer_2x.png b/Limelight/Images.xcassets/Computer.imageset/limelight_computer_2x.png deleted file mode 100644 index 25468de1070e582b9f0de5a775341b4dcbd7b304..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13331 zcmZv@19)W3(>9(BHnukA#^%PEWMgB(jcwbuwXtp6wr$(?m*Ozz-8CVy(jxFM*f1ac@Y7SiV57~uN!D< zQB^w-5FY=3j&Jj2mG)l(qb78C(^gplvjMKvUe+*gL{l}{>|LC1{tmzr) z80i21I@y~T{_pVqAHDwhr=YEYj=hzwqLr07FW{fKBNVgHF*1-h z(9w6{rvHCS{O?G)|53>)V{2mYDc0QCIZT6FAy4&tl58|KZY?!fT^`_vKJGH;A^L=`3K3;XUeSRpn4iAeho--M# zwPUoM-GivnilHqWH}=yNZb!}E1R*;%Uq|)6o>a)@Dxg@QN`^L z`>}(|m(E+Zo-S52TY22lOTQ<5z8y#Tygd`jd=wX@7Z+15 z9y=zrq)X#SGr8m~A?OO5aO8!O1?(5Q<4Nw*R@|d4EUVLJyzsx4p)TAf@A}s2IyL~+ zDf6T-^4-iWHtjlUAgNc;R$Zl&>J-WPBQz`5EuF~7$XuPJGC3Va-XFEz6QaCc zS0_IQMHu7EO?``IFF&U{Kbs#vk05!$-xg+WX3!9r+%1g|>yDSwPtuW9YLSl|TgL(t z@VFc$GdS#4-p?l8-{iJ353$@8Mo6N#nXo1Z3EsFiKd*wUc~t?nk}`GVfAO4R_532m z*ZCK(*@oJI?9Ao_KkR}Bhx7CE_XUG4Y(DQYz0NSFo56N)ZF5%Iu=No=EuG zy*|G+*4e|J^8C@?a&<4)nwd&(JcF8}B|33d)q^LEoPo@!k}F7*)BJo{B=8(v-FVoR zyIahCedN2g`do(AGUBZbvX}rf2$#><$H_Cw0C)80CQ^Y4MOBfOP8pgK6PN!k!y-PZgvs4|E9k=z>UU zb$_nm`chYA>a=H>i~P4g;SqlA&r`M6)9wY&QRGw9%`x#j7o{Xz8Ext$8!yH@oWzrCZ7U8&`INL@Wnu#D9iOi%6hs_QbeM@rk z@>w2|MQ#sxOgagfND84KOFIT}EV*ct{hUMtgkiii>ztr`vh%n4`w?nPH6k&O$FsxKU)3B^1cs%qoDfeoYGxpe zmx*0m7Hopk^h>TjLkj69%wE8`64f!pqSDQ~<1K3(oDEcbAp_Gu(VY}(|2>XiDT)}O5px#%S}+^ zOjdL~azuW@2OI@iR8wsN)%|upxEvko-deL=EKM@4Jh~b9UY16)ZU6Y>q=YX^Px0zp z$TVnEQwc-mym2Kdbbj4>Si{7HvGI%ywrq&KTI_IFjiK$78mlR&3&O0{w zFNM{G!16-dP(+g48bQJFzaJs_lm6(%l1S|~O>`3v%`7NBAA{irH<32)ay8%FFdFY; zaMfkD3-E#fAK}B5xUYbRo+U^RU)yT5;vj#(8+dw6o33N3vI%IAeNkR5){xS*UBtiu z{$biM;4N(;Wh#&ZfdeZa-Z%GGahy>0EFVpPWHLFlo@fH}%$5N#jprAL-ivAtfVp2g z@g#69xa6MsaEj1Vx-hl?piU{tWahz3-qS@TH z1Lox(v6Xgy6u5A|-3M=B4~Ap5!l+Wt*L#9Ut;~tmKZi8j?;l+%RBfKm1hCv_JHFB( z6N@b~^b3Bv0{XQzzyHA^i?(ADFZJCG*N*`$v7jh|8EBLwE)HCe8zFt!vP&r*mh={cCvi~9E8ePhuY-5h1E*m*n8AK_l=Z{I``AXFoWWvj7y&nm4rYm*6V23PLhD6;pSweZMm`QOZb(c} zPzU6`(I~b3IDG4}I=%A`x5_`Nf|kD_{k8TKcE{*cE$(4Kl{2WF`;OE2kE17Ekp*qI zxIo@|9aORf!F=xJyc7t{WI{BZtLxr#DY}+brEQWR61Rrp=uW{3EFTtag*M^(KKXXI zFK_Q+XF&3lL~6gu-uPJw>?#oN?_=v`2rwE_q58w`n7ORoPV#LIrPI6&rZ?yfMmD#* zJt|pH^hF~4*yK860Im07+oMp$Y2fvLS;3mAJlVa4S+Qy}{=o z4Na?t7U0_Zz3Q4hLGC(!D@~=KLTOJUrBUqHFixeBQ0=()>UON90;haQ+Bg~U0+Tz8>;yu5N`;R^KFVU1P& zuxQb0^aJY!x0Mz)0a~Y3pJqZy!WaXyO+fgl4H%@^1EQtSsq<0%Z_W{ZaY>{%xlC7$ z)J){KN5OwqIHDb}*l}lH3-FLa4RDhuGCKt&;`rDMPM$2gRz&C+msV|qb@}@g=a{4m ziSDzCF5`r)xbCw;O-{jegzCnH6H{ttFNi4d1bBd=Hwb0;4Xa8MFlSGe{@D7niX&~7 z@>$GB$!qMbsHsC$X&*q@i9s*Y92HWOrBe}tjK#|li7myfxxY|yFe1R=IR*qJ$1 zDs&A7SVwU>|8DAhkj-knYXk4auZo4h2$yoVq8~hZ=@MllQ}pFQFL`%xV_Ca!Jr16; zVU}bp>yzaNTG&;TyhVIed^EWFm3@u1LLuKsZv=FqC=%6TiRH+Ebi2z(MnMfT6G*7~ zTz|ac5v4F-MYuM%6{^G-POgN-s^|CP6jS+g$Y%bLM;7Yl0{7PvH+0q`9ch{(7hl2#l?4wX0 z3S}kBRY)SaZL8~*Ak&Zq)4}6xPqEqS{so!nPdoXF#c--#)~SgJ#iTxxVf-N4v^&j# z^WUA9!F8%E>aq5uefJ{md8GUrG)pqnYji+MHL15FOA8GJ&ZyP8qQ5h;>q2137x$G< z8TXI{8)x5iOL}J~2 zMWnhOVq^p7Lhg%@Xjo{J9rfQTm~B;>AJ2YB)*xV)K4_F=1?-2y+2Ponq52oE9JE*R z1nq_M_BVE%94RYmR>rFh_crdpcQjLi_zGu#r~>f}7?Una=^~bS85?SxlLkC>a&_y7 zQvr5iyX(4Oau*MZr%r40;a-c5H2RamckbYHfNrWFsc8KA84TCRX@0r=c-^wzzymA4 z@O}Tu@=KAUqUSuDt|!BV1tV%OgFwntNM6Th|8v$S`O?vqQj1s-*ckY93tmCNV(P)I z>3hh_wqj;v=M8$nn;N%Xttd=+Kp#|*{7*M;XH;XJr5=4GAzKS0BcxP9j(oD|y4+R! z?_!9Wp@l)ZNSh;wKTCJb&}Utxg(D#Gz2$$m`u}iCv^+(lR2QY>r5~%y#!lRm>OrE{ zG|5){OJmZbNCxFp9V?v>&I&)R(OB>dJe)+@P1OimT$0?c&Bpv zdhCawg!Lz(k8^_6~SMSrj! zqJRJ$&?+>Blh~M!co5fi`VA_JWpHFF-?D&O8`G7YIcgdt>Oa>@SC^(DI?~L8)YDVT z80;8NFr(Bf*^**(KPIO^si|c&OB4*$&&^F#2)H}UzEB;o+vaf{GD&FZFXJ8*HHC1({fT9>c&p(R#krANz_@5kk-? zm1adV)U5)G;HV_iqb>Tn3VjS}YGLZTO(t_T&%}=#diBnk*(v2dNpteKV%+y|XwVWA z^b$Rezax473v`l33V#{c)p5Gw(bp&J%#~A9RaQwa+?2JIE0Fb<8k@@OEBw7dpX~V& zs9Hg8s9z^FFMf^NPNN{LIZ3?_IY=^wi|@K-^!<$Fh)8A=WQP^%YAJGITwm^mThuu6 zrJmkV*g(}t4)1?JNn3p4PMx3{I?rO{$)0m@I@KzNMm3HvS-rx~PQ$w?%glDF78tdT z^1~)&lCz%Q)b{e`vjf1U3cJKS+vL! z(<%i4!+`K@hFpF{QmCICZPLQsabt2d5@q7g^Gru*yrI6q_q1WFDle?(#IE)4<|!TD z&rRQI*vvgx*+dptpOGB`Fi=Pq1O-Gnv!q?OkVEagO|*U_6Jz6Cp{Ek=DG#f%CR|Tn zaG0*nLq*Itm`UA{MRWau!f-PqR%|QQg6MzjZvg%j#G@ABCYRup zK&Q_~H4?LMGrfuQ%YK1D4H0KaXlyDk{Rdwl7jz?IW!I>6tSE57Bxr(dd)Y{3*`CE? zXkmu+E72$GKfO(b-T8`^dTQij9y7(sO3}|);OK@)eq}+fRp_oEZ*EiyJ;&sh?4bu2 z2|Sh)<1G)RSAtovNV&C(*UgWpJWjQCwNBObN3L-^Z!${b6hBwH)4vuEZFKtN$f0dc zDO91cqNuHhQ*~5gpVsoUBrcb-5(NRZ>tFF__P*c8V zk~qGLLuHO~^2eQ(KvY8=F^)QZHFVAy5Wv~$+xa}vw#wc(>F`0;0shM131Nz1NPdJx zcv-(@Yx!^%zIwmbesOa=da<)7q)#2&cjp0&Tss)SuFFO6o3Fi>J1=@Gu`q7y%_@e$ zuqkG^3EfK4M5g13RyzOp+1UZ!*>ewy{oL7b4+G2{&FcM<`(dB|i_LHK`a3(aDur6iL@lsjdF>FbA z&OQkptt2e}otC~F={7|9FvfN zfBVG&re(|Q;$(|KkXETHEx6Iu3)P}yoF)AShNpA4hUeTq#A#W_P+q13<}fSD+iQZUm^9R&h* z9N^iXh+`<4Z`;TGrNH6fH$^*}RVV}C>hE^~CDQdqd3Ye%5|a0viplxenf>i1*Ck!Y ze$J|sZYI}f>fw6wGIJA!7JyT-`8Z0t<#<;w zxqZ~_=d@&F*as$UK^@v*F7ry1!06(Oegyy5*Is#;!aL{Q#PRLCt5Ic2zY{R&=wL-g`V>JFMWgUp{YcT1;K5}R5~(chswp17@I0JCpSd~w!)C;MNrp2NU4a`Qt}RACdg!;0H?cU2C4h8s#)S5 zH*dQzus~yARY+&O>Bm4i(}?lo{2Z@xGGAa7iXIzHC>Q~MNp)#BNseT#+AfyXm(N=e ziI0p5*UIVFZ5I&;Iiw|Puo&g6i@WV;dZv$w`=o&evrmLSbBJ#*mZbYJWd z=3|9^yXUsH79DO7(mY8k{3hl-&J?Q^)#poCMhC=}^1s5;{Fmh!t8!3*N2iD||+M_%ovV*Je)yC-ZI++4TKP5hj57`Z*D){&O12M3QF!?%eQA z9_tN2ERczGx7_*tZd1!t6gHMn5t}{h2@0CG>eLFfN9_@&!IplOZDQ|HxA6pG0wJtJ zf}EcR(bY-75biM|F_p)g`Q0oU>Mx@bos+ZOdb7sbzCcfPCkYylaT+{F*qWu#YiEk5 z`WNvMD+PZL6CZ9J(c%BwSuZ92ga5Il>}nHLw70Wu3FdYGRk(!SF#sK+I~EoZCMuP1 z#rrYKJ+-nwg0wk1687-b<`H+4hBD~tgGuwrk;ulrVo&pp3R*2r+O<4;a~bm;WNAv= zjN%B=3m(2=Mlpad90BVI#?u`AjRGemIdp}xhYp5P46&}e9@~JGcNprijuj@HrgT4P zDDDVVpoae?En`%1^u){_VnfK=fDo~?e;hCHsQN`>=po4y$aAw6TQL8U z$G=8ljG_D)dn5msnKL-C36vllXXK7F#7>y6w{4To3Wh2u+O{sxDcf&{$YdKI+Lq{f z=U275%425%KAkyhEA**mU3QIm=&fv}TT56NB2D8(55#8zC0T@-SH(UZF8AR9AMfRZ z7bcfNn6u=y+92)Qyk+BMwTI>PedXQSWtfDn)eRJUwreaZVugsiZ(qajna+HcZVnKd zG=MBQZ2}3G2uXVWzta##+3SKD80tP@;w1N?<4WxL1_{|gH~~guMIBt@Gu8XpN^|PA zGPu)+GJHcsbm(b*7V~YUr{xSUA&vvEuuGY}pgdVz90fGLipU^}pH?5t$L3w`p;R$g z-ZR`}5vfn9JnW~OB3zb;AJ(W-QtvnMtuE%n=^m4#mYby;7j+yJ{Yww~}5*Cf_-=jWsNlF7~w{LRFH!#UKVPA9ZT_frbZD~>! zl}=^mDvy$G&?Dy_!^d^+>IPW&p^M}_>{l0tbZVS+t|1+EGI}{JT#|XcusCzfEC%Lz zcN+YR?|!bpQc+4%CM19ikeoV`IaRYhujP@BOb{g7#T6nyH9`M+wklY=|8yM1%XAw~ zcUv`a`Y1PAzxEqk-=`!Sl`QW)2xHz?ZX~y#$O~U-(-O^Lv;Bk>L z`I)Ar4z4jHewUS*TYUVVTvHgKq^u`xtf+1-2v<6FrJ$>$Yp5=P%F)jJ)?bFso+ceCvTmKDYbL-jQFq4K>I<2wHhNvbw~6TADS%vK?Zr( z&@f}EsiHOkJ=ZhSI`owY=c*!S7(KrQE%hi+5+x-wlD&+&lIxRfF&H8wqv+SPYgc?^ z0u_TkKR}yvaa$qK39%)630!VvD0-BTH^9y2Bq#NKq%2kauT#>d=k$6jY*dZcan0sT z{ygjkOQnnohV-SQ+h$1eu9Ze_xF4x2%%dpTM8x~=O1jcteplV2tL=H;Qg{3YME*-a z2oTJp6Juw6OZ=9**_p!zmO)BSA&Wv1oEY0j9^^Gg`Xkb@F6S`5YJ9Y-M>T0?Ptiox zA_0h9fFu@+pE{?QpGqlVc~*2DQo#9}pIH^{@fW?m$qG);Vpa zv2NGQe!FN_zVK;!uW8!3N4D}*(|DuGXAx#mP=_*s)klLBw&7|eQM2L$@|D=8|B^6W zRe0S5YUyyxC*pLd>(r%#rR zcT=>DZ#)te_bqIO-!G_kd)z>yQnyU=J#2E=KZ9T|1~NB}(k(LY*&ko5G72rG1a-lzi-*#lvibz& znk(-5nRux>5s`x>7HvI%4mNy4R>%`Aj05Gon10e?S8lhKZyRTn%;tQDx6(FP9nQx- zZox7}(+}~?zv>763raFNmE8&fW&Ote!65;HY)6u0&@16#Kwt3;!@VEq-{F_qsFB@`q|HC8jI8jKjP={eu8d}cU$rHVjt!=sUtOh zXx!^6n_p_*pi&?B@J(7w%Xy4P%I1b!>)0O~=i`HaDx2=}ciL2^v6y{sM&qG+ktgQ6 zKdqxEbHj`yTGCb`A);6}r=#%mwRwfV{=ATS(XF?Pb;5XBoEJXPar9jf+qjrQWadN9 zKIjl)NJ9bxX`O|do05jXiLok{d02BhB*Md6A?)sljkJ=5^0hpt z4Myk2{e6qmys`>87cOEoGPuJUIOOuqpGLD(P*_%D$P9M>;O*;2QSAT>epn`Ky&TC3 zV~A?(EsN6Yp0s3$dVi*+I2Rs zL3zVSe9xfUm-|zm36^N|O@ST|>w-|8ZFGAY&MFuZ5(O~>dG6fUpT!wHX|j^NNM=;4BsJRjRpP4AEhLyOqMKVIVaEAVE-9m8eCWo$@N%1i$H5TIAs2Q*+w)H+bt zV%*O;hMM7gaprsKYYV9BL$Tu5N()9P*Lui~%t6CM@Y_732oJiAI*djj>|E@Jju&et zsQNe$Ptr*PSUwE1Ps4*h_;c)SV$-|E4=yc7!5KXgjA}TkKge@>;dGasP8y$~@)*1G zbbPg4cx?{Gjw{Vy!DGHbNzBf|+}r!Zqa~re)8>0J0IKdxGkM$= zJRTOk&b_X-i@5eDpynb${EC#c;SPjJA=k0@n(o0CNodzlRC>&ICOfZ>MzW538)I)Na3JaycRBv~4wd;iUsQmSef1`Uj8jcSWN{;E$0|yt}E+2)k zZKJ#DJx=%?nZxkov?~Ay`?|qCd>EYl1s+%EefpPC>=qZQt3sTD#M1TJb$#W>aP#EH zK;=8Q!B4=32(%;c?Q~ydy%F--r?62Jux)!Z|XVqY%*e z?S$F&{7`d420J%$1o)f6m=lCQIuYE@t2DzQ{K`9%#N|{@{sbNcm1!S^M7kzo2C>bw z?+YmG!>?1Qa)?*qeVR5FkgvoI`Qc5zO%r%LCV3rqelRSN6S(Zf42xx`I-U18g>Uuu zY;k&hv{At5gtb)@xIJtQx>lL>>o?i%hql@uqjYxZ#6AM-8B(V4cx6K>?=)4n$Fa-@ z*_p*i?cVDJl132{4Z}BAoV&67ZR~aj9Gq_YhEG+LJPw?^9*bqVUWCX7XJz=>iTS*` zx>{Z@TJwRPOUC~cg?Rl?RL`E0aeUb7_OpDnbbkheiOuN;cR5J@e1Cp_ee7(jsbh+0 zolNy?7dj0&9pJwfADjL%mz3*N4mFbd;w(q+#sRwbYryYY2IUit8ZPhRwykLgB>u-;9p1 z)Qc+-FdI~jQ!{Kt<2rIny7iX_NWQ0TzR$ZtzV(-4t+)PRH%(8M(=^uCmU!~5zxFY> z9@pJ|Gd#9?!8Fw@Q<|>FKL1{2300b@JN+IqAAI`Ymz{Y%N=KBFMAJKk{I=Z{ znp+{cOM6g{^W2h!IKf}SxHkqo%}I#DhW`F%3b3^#Xzo|be5~JGrRvS0>{uCYdohV_ zFDB9?g+@k39J|BgV}Z}%=MB(}GsiSNm6za~DT#fjy!vc_ot0ls)n?q=gvDjC4iF3{ zASHMKrjtEi9Cdy4oO_eVLp^k(fKO)SRR{b)YybNbGVG=8@EVEhib;A%aBYUbYVeIH z^`hAESD~WiT9Z%ZT9?!3GtayF%De z)Z$U2J+e^@MrC4k`_hLa+?G?)yD5l|m@gH4-=DAt35S5&;>yP3YANMma1~K&`=!d0 zVAoL;D&wnpmZ+qT$NcvuT*r;hagG=`a4I7#RMjpk+hT`r0kBEGhJLB; zyw$QA9{fNvldXpC*|??YIkep4)Hi|N3|``+AV$@nhrny@sEvkE>{>F^oeV9NOvEtc z;0;hUZ8dzTb!4lLEW}8(whC0AE=Rz>-d0KCl)Kb08S{Zc@LJVy8!A9hTq{<4{tMvvA zFSuOi#&yWU5JT8#iq+d1?cbhk-cFG1#545tYK(hKoElimB%{k~3XJ5f%gbL0W0uxTiBYjIeUwUAJ<*0xYK(@-1cR zz($5Z35vX=_YRY+3z%uS2k}S!k;FbRWBXz(lUAa%i-g7zH|m zJg)t_l12`#ziJ1vN7Oad5SeVPzAuVZ_H?cHcDvn8i=^^Yom%^!!^tyE8o-8q*9ci= z@UO)~EJ+M}g;Rb%qy*9O*x3^c3ZjHPtVd0SsM+1b}z1o2G4@>sREYLSFmZz>xq+Oh$D7^e`b6CK^T4kKtOybs)zMBvfTRd0A7yL^7_6Sg!F z_%fI)`C7mIn!hGH`0#keKUnH{Ts;xfd}yWzFp%X*_+FJ^d>1#C^4PVF_FO$ot|O4T z#R8D2xA8q~Jn~9|m*EO$4U3+l3yTK3KeSX_e%7i|aK;jXV zL_mn#piy*1&DNx6oo?(a#IS4_wv%doym&|UH1ve#Lk}7=RQ?{zEzZ(HizSsXjgZ0`SBi27KOgj)+=Lnz8|wfC!S77MpoGQ@8SGV%Fw<7+_CZ(9esJI3i`dB#nsh5?l;43XWeaT_YL4brfv^ z_;wmSe>YpGEzdyruyV)!t;GwQ_<~h5*ouSJR@*jol?-my!q84u*heva@ymKF5~;*IA(uBN6XRptz6)MZdY?l4FLW|5pq8t# zU-bYj<^f?^WWjvNtS>*LNH`L=wjmkZ-g2pxD{sEz4r(fkMmXY6=me|dr3J5uT((|r z?m}ykLB;8#X>*yL+Rd=AH_}Aik6m&M^HSJqidtje4azx@cA7)HWRhBAOTp=S@ zz#iL^Ec#uA^}h^WB5NiuSMSn3y^WCDJbo%{F?%-L(-1@VfJiJ}_c?^jXKC*O;si2P zzi1QU^hJ`qY2}xScjWAGw_VonaeAJc8||H}tUT?nFA+HG*HA=*8Vzpjll9Z;!b*0` z*|k+>i<3kEPaKR7L{0S?`rZdk6o0L|G4Gm?F6~(vG_{wiz(w^)=x*El6QI+<*cX8< zX0+`DZzaDC*UdF)wNYDjHTSl*#zXz&PbNLgoU)d>w^)*5Ky$@>=k|E^JhRguW))bC z>Res<;axW3dK>>NH%~`UUqL0cDNufuE&=9l2Jbaid#g0Z{*sE$s*RwR{9@u>u|v_| zKyNM4Xc85#i1$dvS&{C{q%lyd=A_Z;`QCU1sFV>%oaGpFUrqQ#WNO?)0e6-NL7 diff --git a/Limelight/Images.xcassets/Computer.imageset/limelight_computer_3x.png b/Limelight/Images.xcassets/Computer.imageset/limelight_computer_3x.png deleted file mode 100644 index e93d41726cde0a262426d125d527f3067cb941e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22832 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 +stream +xe 0 D5-U(ktRh8 t︓BbB)̸=1fWsWPjjXbkG ݒr%c?=?~Ӄ~L+ +endstream +endobj +5 0 obj + 115 +endobj +3 0 obj +<< + /ExtGState << + /a0 << /CA 1 /ca 1 >> + >> +>> +endobj +2 0 obj +<< /Type /Page % 1 + /Parent 1 0 R + /MediaBox [ 0 0 75 75 ] + /Contents 4 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 3 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 2 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Producer (cairo 1.16.0 (https://cairographics.org)) + /CreationDate (D:20190830180932-07'00) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000517 00000 n +0000000301 00000 n +0000000229 00000 n +0000000015 00000 n +0000000207 00000 n +0000000582 00000 n +0000000698 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +750 +%%EOF diff --git a/Limelight/Images.xcassets/LockedOverlayIcon.imageset/Contents.json b/Limelight/Images.xcassets/LockedOverlayIcon.imageset/Contents.json new file mode 100644 index 0000000..d374f9c --- /dev/null +++ b/Limelight/Images.xcassets/LockedOverlayIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "lock.pdf", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Limelight/Images.xcassets/LockedOverlayIcon.imageset/lock.pdf b/Limelight/Images.xcassets/LockedOverlayIcon.imageset/lock.pdf new file mode 100644 index 0000000..7c4848a --- /dev/null +++ b/Limelight/Images.xcassets/LockedOverlayIcon.imageset/lock.pdf @@ -0,0 +1,68 @@ +%PDF-1.5 +% +4 0 obj +<< /Length 5 0 R + /Filter /FlateDecode +>> +stream +xUQKn @]P!u,_*"cZq$|B wb+Ć> + >> +>> +endobj +2 0 obj +<< /Type /Page % 1 + /Parent 1 0 R + /MediaBox [ 0 0 75 75 ] + /Contents 4 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 3 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 2 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Producer (cairo 1.16.0 (https://cairographics.org)) + /CreationDate (D:20190830180930-07'00) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000669 00000 n +0000000453 00000 n +0000000381 00000 n +0000000015 00000 n +0000000359 00000 n +0000000734 00000 n +0000000850 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +902 +%%EOF diff --git a/Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/Contents.json b/Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/Contents.json new file mode 100644 index 0000000..ba046c1 --- /dev/null +++ b/Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "updating.pdf", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/updating.pdf b/Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/updating.pdf new file mode 100644 index 0000000..549477a --- /dev/null +++ b/Limelight/Images.xcassets/UpdatingOverlayIcon.imageset/updating.pdf @@ -0,0 +1,68 @@ +%PDF-1.5 +% +4 0 obj +<< /Length 5 0 R + /Filter /FlateDecode +>> +stream +xmQm1i `eR.G`|"K0^f{Jox}ϸ$T<.JFMpRyRiM)WJQ` N¨<"d]Qݭ dY(5:wLݱlVw)Xf'ed> + >> +>> +endobj +2 0 obj +<< /Type /Page % 1 + /Parent 1 0 R + /MediaBox [ 0 0 75 75 ] + /Contents 4 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 3 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 2 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Producer (cairo 1.16.0 (https://cairographics.org)) + /CreationDate (D:20190830182029-07'00) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000638 00000 n +0000000422 00000 n +0000000350 00000 n +0000000015 00000 n +0000000328 00000 n +0000000703 00000 n +0000000819 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +871 +%%EOF diff --git a/Limelight/Images.xcassets/computer.imageset/Contents.json b/Limelight/Images.xcassets/computer.imageset/Contents.json new file mode 100644 index 0000000..81d660d --- /dev/null +++ b/Limelight/Images.xcassets/computer.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "computer.pdf", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Limelight/Images.xcassets/computer.imageset/computer.pdf b/Limelight/Images.xcassets/computer.imageset/computer.pdf new file mode 100644 index 0000000..be00acf --- /dev/null +++ b/Limelight/Images.xcassets/computer.imageset/computer.pdf @@ -0,0 +1,69 @@ +%PDF-1.5 +% +4 0 obj +<< /Length 5 0 R + /Filter /FlateDecode +>> +stream +x]]! {^ʔ1< E NYpm=)ו7iطHb"=3_\WF!K%X@;$ڮm@ǿ +!d}#T;7_۫,L٘EMHS~8$XFٴ<\WͤMlee Lg7 +endstream +endobj +5 0 obj + 212 +endobj +3 0 obj +<< + /ExtGState << + /a0 << /CA 0.3 /ca 0.3 >> + /a1 << /CA 1 /ca 1 >> + >> +>> +endobj +2 0 obj +<< /Type /Page % 1 + /Parent 1 0 R + /MediaBox [ 0 0 225 225 ] + /Contents 4 0 R + /Group << + /Type /Group + /S /Transparency + /I true + /CS /DeviceRGB + >> + /Resources 3 0 R +>> +endobj +1 0 obj +<< /Type /Pages + /Kids [ 2 0 R ] + /Count 1 +>> +endobj +6 0 obj +<< /Producer (cairo 1.16.0 (https://cairographics.org)) + /CreationDate (D:20190830180928-07'00) +>> +endobj +7 0 obj +<< /Type /Catalog + /Pages 1 0 R +>> +endobj +xref +0 8 +0000000000 65535 f +0000000648 00000 n +0000000430 00000 n +0000000326 00000 n +0000000015 00000 n +0000000304 00000 n +0000000713 00000 n +0000000829 00000 n +trailer +<< /Size 8 + /Root 7 0 R + /Info 6 0 R +>> +startxref +881 +%%EOF diff --git a/Limelight/UIComputerView.m b/Limelight/UIComputerView.m index dea2e51..6bf33e4 100644 --- a/Limelight/UIComputerView.m +++ b/Limelight/UIComputerView.m @@ -12,8 +12,7 @@ TemporaryHost* _host; UIButton* _hostButton; UILabel* _hostLabel; - UILabel* _hostStatus; - UILabel* _hostPairState; + UIImageView* _hostOverlay; id _callback; CGSize _labelSize; } @@ -32,14 +31,21 @@ static const int LABEL_DY = 20; [_hostButton setBackgroundImage:[UIImage imageNamed:@"Computer"] forState:UIControlStateNormal]; [_hostButton sizeToFit]; - _hostButton.layer.shadowColor = [[UIColor blackColor] CGColor]; + _hostButton.layer.shadowColor = [[UIColor blackColor] CGColor]; _hostButton.layer.shadowOffset = CGSizeMake(5,8); _hostButton.layer.shadowOpacity = 0.7; _hostLabel = [[UILabel alloc] init]; - _hostStatus = [[UILabel alloc] init]; - _hostPairState = [[UILabel alloc] init]; +#if !TARGET_OS_TV + _hostLabel.textColor = [UIColor whiteColor]; +#endif + + _hostOverlay = [[UIImageView alloc] initWithFrame:CGRectMake(_hostButton.frame.size.width / 4, _hostButton.frame.size.height / 6, _hostButton.frame.size.width / 2, _hostButton.frame.size.height / 2)]; + [self addSubview:_hostButton]; + [self addSubview:_hostLabel]; + [self addSubview:_hostOverlay]; + return self; } @@ -47,38 +53,23 @@ static const int LABEL_DY = 20; self = [self init]; _callback = callback; - [_hostButton setBackgroundImage:[UIImage imageNamed:@"Computer"] forState:UIControlStateNormal]; - [_hostButton setContentEdgeInsets:UIEdgeInsetsMake(0, 4, 0, 4)]; if (@available(iOS 9.0, tvOS 9.0, *)) { [_hostButton addTarget:self action:@selector(addClicked) forControlEvents:UIControlEventPrimaryActionTriggered]; } else { [_hostButton addTarget:self action:@selector(addClicked) forControlEvents:UIControlEventTouchUpInside]; } - [_hostButton sizeToFit]; [_hostLabel setText:@"Add Host"]; [_hostLabel sizeToFit]; -#if !TARGET_OS_TV - _hostLabel.textColor = [UIColor whiteColor]; -#endif - _hostLabel.center = CGPointMake(_hostButton.frame.origin.x + (_hostButton.frame.size.width / 2), _hostButton.frame.origin.y + _hostButton.frame.size.height + LABEL_DY); - UIImageView* addIcon = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"AddComputerIcon"]]; - [addIcon sizeToFit]; - addIcon.center = CGPointMake(_hostButton.frame.origin.x + _hostButton.frame.size.width, _hostButton.frame.origin.y); + float x = _hostButton.frame.origin.x + _hostButton.frame.size.width / 2; + _hostLabel.center = CGPointMake(x, _hostButton.frame.origin.y + _hostButton.frame.size.height + LABEL_DY); - // This is required to ensure this button is the same size as the others - _hostPairState.text = @"None"; - _hostStatus.text = @"None"; - [_hostPairState sizeToFit]; - [_hostStatus sizeToFit]; + [_hostOverlay setImage:[UIImage imageNamed:@"AddOverlayIcon"]]; [self updateBounds]; - [self addSubview:_hostButton]; - [self addSubview:_hostLabel]; - [self addSubview:addIcon]; - + return self; } @@ -99,10 +90,6 @@ static const int LABEL_DY = 20; [self updateContentsForHost:host]; [self updateBounds]; - [self addSubview:_hostButton]; - [self addSubview:_hostLabel]; - [self addSubview:_hostStatus]; - [self addSubview:_hostPairState]; [self startUpdateLoop]; return self; @@ -116,23 +103,15 @@ static const int LABEL_DY = 20; x = MIN(x, _hostButton.frame.origin.x); x = MIN(x, _hostLabel.frame.origin.x); - x = MIN(x, _hostStatus.frame.origin.x); - x = MIN(x, _hostPairState.frame.origin.x); y = MIN(y, _hostButton.frame.origin.y); y = MIN(y, _hostLabel.frame.origin.y); - y = MIN(y, _hostStatus.frame.origin.y); - y = MIN(y, _hostPairState.frame.origin.y); width = MAX(width, _hostButton.frame.size.width); width = MAX(width, _hostLabel.frame.size.width); - width = MAX(width, _hostStatus.frame.size.width); - width = MAX(width, _hostPairState.frame.size.width); height = _hostButton.frame.size.height + _hostLabel.frame.size.height + - _hostStatus.frame.size.height + - _hostPairState.frame.size.height + LABEL_DY / 2; self.bounds = CGRectMake(x, y, width, height); @@ -141,40 +120,23 @@ static const int LABEL_DY = 20; - (void) updateContentsForHost:(TemporaryHost*)host { _hostLabel.text = _host.name; -#if !TARGET_OS_TV - _hostLabel.textColor = [UIColor whiteColor]; -#endif [_hostLabel sizeToFit]; - switch (host.pairState) { - case PairStateUnknown: - _hostPairState.text = @"Pair State Unknown"; - break; - case PairStateUnpaired: - _hostPairState.text = @"Not Paired"; - break; - case PairStatePaired: - _hostPairState.text = @"Paired"; - break; - } -#if !TARGET_OS_TV - _hostPairState.textColor = [UIColor whiteColor]; -#endif - [_hostPairState sizeToFit]; - if (host.online) { - _hostStatus.text = @"Online"; - _hostStatus.textColor = [UIColor greenColor]; - } else { - _hostStatus.text = @"Offline"; - _hostStatus.textColor = [UIColor grayColor]; + if (host.pairState == PairStateUnpaired) { + [_hostOverlay setImage:[UIImage imageNamed:@"LockedOverlayIcon"]]; + } + else { + [_hostOverlay setImage:nil]; + } + } + else { + // TODO: Use updating icon if we've not determined online state yet + [_hostOverlay setImage:[UIImage imageNamed:@"ErrorOverlayIcon"]]; } - [_hostStatus sizeToFit]; float x = _hostButton.frame.origin.x + _hostButton.frame.size.width / 2; _hostLabel.center = CGPointMake(x, _hostButton.frame.origin.y + _hostButton.frame.size.height + LABEL_DY); - _hostPairState.center = CGPointMake(x, _hostLabel.center.y + LABEL_DY); - _hostStatus.center = CGPointMake(x, _hostPairState.center.y + LABEL_DY); } - (void) startUpdateLoop {