From 0f81f67b346814f220c2d9843c87b39cbfa2e2c8 Mon Sep 17 00:00:00 2001 From: brianjjones Date: Thu, 6 Mar 2014 15:57:42 -0800 Subject: [PATCH 1/1] Initial commit of the Homescreen app Change-Id: If1057f57109faac93ab1d9b1c28e7a9da800146a --- Makefile | 20 ++ config.xml | 23 ++ css/images/dashboard_selector.png | Bin 0 -> 12543 bytes css/images/default_icon.png | Bin 0 -> 57641 bytes css/images/icon_direction_left.png | Bin 0 -> 1304 bytes css/images/icon_facebook.png | Bin 0 -> 1370 bytes css/images/icon_speedmeter.png | Bin 0 -> 2475 bytes css/images/icon_twitter.png | Bin 0 -> 1382 bytes css/images/music_selector.png | Bin 0 -> 11158 bytes css/images/navigation_selector.png | Bin 0 -> 20708 bytes css/images/phone_selector.png | Bin 0 -> 11583 bytes css/images/radio_selector.png | Bin 0 -> 9358 bytes css/images/social_selector.png | Bin 0 -> 15135 bytes css/images/video_selector.png | Bin 0 -> 11817 bytes css/style.css | 519 ++++++++++++++++++++++++++++++++++ icon.png | Bin 0 -> 5427 bytes index.html | 124 ++++++++ js/actionCatcher.js | 155 ++++++++++ js/installedApps.js | 265 +++++++++++++++++ js/keyControl.js | 154 ++++++++++ js/main.js | 236 ++++++++++++++++ js/predefAppModel.js | 152 ++++++++++ packaging/html5-ui-homescreen.changes | 1 + packaging/html5-ui-homescreen.spec | 36 +++ 24 files changed, 1685 insertions(+) create mode 100644 Makefile create mode 100644 config.xml create mode 100644 css/images/dashboard_selector.png create mode 100644 css/images/default_icon.png create mode 100644 css/images/icon_direction_left.png create mode 100644 css/images/icon_facebook.png create mode 100644 css/images/icon_speedmeter.png create mode 100644 css/images/icon_twitter.png create mode 100644 css/images/music_selector.png create mode 100644 css/images/navigation_selector.png create mode 100644 css/images/phone_selector.png create mode 100644 css/images/radio_selector.png create mode 100644 css/images/social_selector.png create mode 100644 css/images/video_selector.png create mode 100644 css/style.css create mode 100644 icon.png create mode 100644 index.html create mode 100644 js/actionCatcher.js create mode 100644 js/installedApps.js create mode 100644 js/keyControl.js create mode 100644 js/main.js create mode 100644 js/predefAppModel.js create mode 100644 packaging/html5-ui-homescreen.changes create mode 100644 packaging/html5-ui-homescreen.spec diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..95c9382 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +PROJECT = html5UIHomescreen + +VERSION := 0.0.1 +PACKAGE = $(PROJECT)-$(VERSION) + +INSTALL_FILES = $(PROJECT).wgt +INSTALL_DIR = ${DESTDIR}/opt/usr/apps/.preinstallWidgets + +wgtPkg: + cp -r ${DESTDIR}/opt/usr/apps/_common/js/services js/ + cp -r ${DESTDIR}/opt/usr/apps/_common/css/* css/ + zip -r $(PROJECT).wgt config.xml css icon.png index.html js + +install: + @echo "Installing Homescreen, stand by..." + mkdir -p $(INSTALL_DIR)/ + cp $(PROJECT).wgt $(INSTALL_DIR)/ + +dist: + tar czf ../$(PACKAGE).tar.bz2 . diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..0b574c1 --- /dev/null +++ b/config.xml @@ -0,0 +1,23 @@ + + + + + + + Home Screen + + + + + + + + + + + + diff --git a/css/images/dashboard_selector.png b/css/images/dashboard_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..57a75e578f45b31da2bb3443f2bb31834574d2c3 GIT binary patch literal 12543 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 literal 0 HcmV?d00001 diff --git a/css/images/default_icon.png b/css/images/default_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1335774dfab3ffdc8f828b72ab8246ccb31127be GIT binary patch literal 57641 zcmdU&2Y{9}*0wW!m;yuZFhd6^B1J)Zvv*X~Rk31OyPs`WS9I-utF8q_aV=}_x}Ycu z0%AcxdhZ>iml>x1=gRZmLwE(tuI}d_$eZNk z3;ze7o@&2WC%-+$f(ln3dB%0lWmd%}xZ%&#axUY9OZ)ac@x)86y8f!`F1hOJ+@t#T z&As~Ct1iCuj~6+2(}EGF3>kRJ`WoHym+b6w%)PficFa{LS5MD9xz7W)S9_#ctGo(1 zN8g+G{QT-CeO|eL|Kz$~J$G-?-~M*{gVj%Joppc4ytGw$FZ}J!7w^6Qo1*1^dhzl( zWAfKbDIGbt$J#e{jQC($+PL(rCywlJQm5OqUhC7K^0GU>oH%Lushz0`bnkxX#!b!1eBY&Kxr0x- z_pX*M`A=@}SB)FrD{&+^mfkLR%WTE-tRWLNtgaZ&q{A|P1@QOZhs@D0u#Pf#tYCHbsr)nQEv}2`ZJHB=9xksv7Yj>2~G_~T}Q>S+R+o+1?w%IT? zwXD(k=dUbXJ?)LFdpWoK`rD?Lwr=-9o!bvjz5R;P7n*KPzT}+D=l&=Efs5a-)N7=B zZvBGOcU+Ba`al2h==t+kuUa+l=!t#KI`5m)Z!H}%{@ih=m;7q-d8lf;oIl;$cjBQee2hr?s#OK#*coz z;KIw_PwVnn>)eCBx@*;lRTEZqSXFmb-uAOHMx5X4ntv9YvZBSw-&}Td?bSJ}JFZT> z=*dHRpZenPlNZ1G{J_ec9y+tnThEU=`JI#Qd9`ZC{~6w8%AGZiI_9OfUU+#qN}^5VxE96#*4(`QUxf5f_B>ymcfn3a8Z^*g`3cSwucPuEJTHKg{9wcdI1 z*q3Y1e4zH10}np5{l+KPK2_5U^ce%kr%O|Oi2`P2TNoKZBiV(%}HZvKbnM+|vrYRZVU zr_4WP@hcgx)Htqt*IjS7ef{#6>OTKTzZ=J1`O4-epZ)Bd+n+u5s#liW{OQ`ldbhSK z8CY^f;VZk2$QqRTK~|I0g;`T;b^D^zHCJ`3-|owW+fM3x_Jm%2Upnvc^M)<|>m#G5 zcYAU6fd3s(>A_1U{b6O3l~+ud@^PbIZu#=z#~yy{ms7r- z^1_rkPjz~_d;7VEtbKaz({rC*`r+U+Z#uK}s8>gQbkR}ouR8PPGd7PJbLCxUb~)pv zL8qR1_6Gyr8u3=sIiI}s$t#s#8GZbt$G`FHoFNn5-8Sm$QLlYi``y*^QWw5G>WWdf zo;T$DnnOPP;_V5WAN};vTR*<_e@nWjW#2Qu;v4nPtbf~e|GKtX*VDQ#89w!y%{_1Z zV&@a<+YK2sEoa)i4l74ho!oNbr6W#xdgc*BY7QBF-JLt`ec--h?wH(mSdX?(*PXQZ zt4~)Qef_R$&R%}Yj9nw1{^05Hn_gY`&gRaWFWr34qJMnb@gFUpJ)^^Q-%a?c@3NCt zPw$!ekH-(beCeCFozVA$p+iQlZQSmHc8{F?*4%eLeCfv5^UvE-v&Zfp*ZyN=kCojH zU2@2hGtT|?&~YDr_2J|bCS3LGxpyt?`pHr>5)d((s=N%sxyJ@l-^qJmrg zoHzDwJ-aTvX!rZ`H}!t-xzW9=_kQS(x9(W|`CECHeD(dqZ{_8$eRAp}Q!lM}*NL~S zoAX`Td27ylV8U%#&F{MBuG8=C`M0a@9aLv}`(d4KoW7{kbXFYC78(2qNQ+;dXfi_iFW_Mj1ij{4&<^}4ie^>*hg|M=O`;!Qj5SutWo z=E^_Se6rnFXJ38u^Hay~yz7-3ueGhxy6Y3Yj=lHz!yen(JEzsFH6Cobz3Pok|CVv{ z`1<3AG-@}!^YnY?_5DMu2FGtdvej|7{Qdh!#&o*5$rl}7YQ1{&Uz@-7@R(z>k6rw9 z*Jo=CzajUEL%MhUwEdlbf8^n7`n;ZZ+@qt0Y#6fU;u|KvdC^_(mws{O10S|)@OawS zmw)i^n<;0s$r#n=<#hwkY%#Z0+WSK;I{o6YQ||kw%M))rd(f0k-+u7T!iNuiX3Iay zHdPs4W%=Jny>$06r?;s;Xw9c@Ue@LPZr9wrFk@x)l!NX*E%nWAAKgEy)fKZ(cw^J) z!`{B_(`L6EclpqBKL6&9&qpR)zA^LEjMaDDx^dCmO=q7lsNES$N1j)B_lUYZs^542 z+tn7<99I1=^I9yrX?5LuuKH%|Q;Qz^*K2P~9DU)mi)UQCe$A3L&z@EBiPwj%8CLPi z?D-4+mA&+|e{I^eyZ^#=!=|)Y_{p84`i_2aY`2fbT=dGPr>bKpM*?i^S+u=C~_ zi$|U}x8Ta@o9q5*%{A86-Uh-J!^LT8Qlk-{Lq|(HXc#&%Z8toj@WWzo9xcnr~dCV zlU6joy5G&K*5_APn%^M1>w+5|{L`Du(`Gijq5hEi?JnyxeEaYLPoFZp=&bY4`uK!z zdrY6RVaYAUM=Weu>6wn*&bayL9Rt6(?V2^( z-BvJryysayz1}gelftgIhP*QulK;465JVcUT&FCR%WdKAG?Hv zghW$6!F+rO4W}?lMZan^A-*&W%_gM(zi`(6ALyC<1Iq81U=0v>0GNdD)VXuBjEqi6 z$w|!<6A~LHBqr8NOi0La2?^Q8oehf>N{g|VSQp-7aSO|KxU$k6rDbkwX=&*ygK>FD zamoDM`MW1uxdrf;2U{N+zxsiZe&6nQJy2s9f}_W;Wy_X1b?VkVIwd)!TT)WeA&H5J zO;b}-Gb&W5;L_96U0PbIv$RV|N%7uz4BG@}d_Dvh1JDtcl$5xlq9XIfuCQ>A+q0+8 z6%-V>{QP`N7w$H`g~l_rxVU)Y>eZ`8&7C`UtLXv2crgB5fK2=1-R}}qQ&a;nxl7ls z%_>%`c#eV9J2^R}byikpN_JMZGn&ir@a*2b+rzPE576xKP#F{skL3kp2yb$7vcm&^ zT3TAU&&bH|@NeI-!|mR++YxTxzP-p~%_=D_9=mPZ))&6|>MO=^v3bV(|LHvayN1-1 z)4ZD8rcImbwQASCA|*BT__Wlt=2a@^Bvh$V#bsq>`Ej&s*DiAwnMd0XJMo;R9$@J;Yo|8 zwi2qW7HOe;tA!bPRXxcy}HMj$$8D%bxhLp_UtLRZ_Fp3ylNuA_BWlBL*1nJ ze-%?xfaNZwXRlseGBO^>%*yK6png5a#&zx5wH`}sCS2m}$JoOW#$!Pl=(I5`2Y-AT z-ViV1lnZ52M)NRvcpSXAPzJor$+c?La=UHgyn6K-!*=^*TPtoDH+Jlo#$IGR`>yC- z%76YNy+TR<6-=#SERxi`dGjibn>2aUb|3@m)TxtL$tJON>(<%Aw51#j35y#^+ zp(@W4?FYjPOlT^vP<#p{Pif?d#?=jAg$@t}B%yfWp{(-IgR(3fwQJXAHwCz*`T4uw zT)b$}6$=+G+-yaD^~Dw);@xi!s#WR-=YRo6oNZg#yK2^`QKMeHy6*e$zqgfWefbDL zF##DG79%Ph-vH>!Q^Vlrnue{hoPeM_yB#_RU{F?|C{75tDuWF1KocFB=;DzK+EKG+ zO=nGYt5&Uc>o;szZ`-L`$Bg;p1>^lyM{T@K(B(G+)hhF&vvK3b6`M70{&Yr0=1F;Z zxe0cm=T@v(;SCp#FbpCmV?h%=q#;^#l_7+OrA^Z&Va~CGT}G4EZsW@jyV6Z-{lzHP zC_l%A;8Ldm4a;&pr96eor}H#u(7-xTid(XDNttb>-dQkz{zXfcEZJ^6zsjhk&Up8m zfNB*{Q*w`s6X<;0rlBP4@1hnE@_u%}9 z%BkrpopFt;(6p^fPE2sS#=YaVzB}Bn-(2jftmKpS<*W|$z>}t9h*z?eN4^|<(qA-{ z<2s1;uUWm?_JJFh+bQI^<3Im=lJOOrjJ-ls@E3&fby9Ti@c0FSevH*BL1t>d{sXSG z#*EI(&C6qhIDg(e52(u07Q99kaTE-V3@;-AkAaj&8I^<1RLilT$*Jw=6HzGesN!b=ZAoOB?>!OxMC>V~fM9h&IsXymJ`^0+9o5$do*UZcE* zIXRU-vgPPX6Q63lzdiEBNGPe(2&JsG6r|$CljRF116P+?%Hw$SOYb`tF#Y>i!?b^BXxpCvh{?U$`3ylBY z+8rY^-u-lI;!7MLZNii4)vK4?x=q{HDpsmEpiyqFTfTg`KLVl%pvVxUQAP@dhL8co z!zc+2q%v%VI9?)6nUY$KUBbZYTvE;YhLjy2l-YFpQ zLTGq7^bnm8-O!!(;mD_hqjyv5@MfR$diCy8Z}zO2ry1`K7LO&I16wp8#ML5yvplaTr5oNE3%9V?o0x+)TkSf(knv z=^WYI{@%TgI{>!s6v4{$YlfA)h-2?Bx{)Vc(G3^R zkM80nU%-kEO^&k2kxbFyRk_8B7yA*Ll$_kwM(xMO+t2dvPS{V<&5&VWECJH0cdpyowXz;FXRMCHf8d#Ya1!hf9s@K^{(N;tUWrPxiRf zIcDcMc6at+YhhKGvIzH-=}VcQmVNU&QcW`LteyDDMs~y8NVbS8nL%VnHF?GU(@#BnV-@^|T+E4hi zF|`U4?QFV|-O(OVzh1rc)pm>-Do=xP3Q-U*KxHf$jx@ZY$Cul?pGk1vb-KW&VSA(` zwbT{b05xn4y1kD1$?qtlaq9O+M)Cg%*gx5X?Dat>)wx%~kH_FwJJc@1&?&8Ugn7^e zo;rj0kc*?dY(tty1#IA?FJ7|bnMREob+mjo#Cv-oOb2j33se(G3sRakYxcC=IcvxR zl;NGND0^?uCyhsODNl%Tprbr#84BGbL;Q>=_?ma@>c(y}HB)S)S*NzKWYeD&AZ|bj zyX2USIb(=sVXGfL<1v!sf|>fmCCo_WPR52H9m+E;qBcQ8jsQ>_q(AwgETyRzx#AO# zWWk3l={JGsc8?TxhBMYh0_@=6mz z6P-rkC`-9W^j_mcxzR6x!dD@?l7VAJwf~7`Y`-BgjcF0nu=8pi{hV(kq@Gm5g*HPo0AhFJRz91|yr%j0)dWG}{>eQ~CxN6m^@}g1zh14)INuwyB!6O9)qVht8 zB@_^Gl#$G)4Qjca*#^v}Jub1(uIWu9)>T_Vt!G4|wan@%vNEQLFP~(2ez$A+Oj59t zv%4(WmwXWGPqs+D5IK{acpSrD!X8E>KH`fb1 z^+xxh-N=V78^|WmaL`4=Cia}T%go9=%#QL-|9srImyBhRxcsba;Kuq1TPRwxp&-R|+ceJ|+Pa0So7>o>1CC|r z4Hv=jHIs4HqhOn#jz1J2>^rKGG$$4=byURwm<{jsCioXLv`W zBVgPwsFt79vuDpg*qa5-xgy1(fGVV+#HEx%=y*BkZ2WN{UHSV9kqd8ayUSjdobK}K zS962fZgb;jEpv(0Y{H`ub+cFUp#f}rpaeUQuxa1AuIXmRX9DIpaho-}<+PVvhpb|E z*Hu@$6(#n%V``)mb!pO-eri|PIiaPc*aN-QD!3OuTjMSqneU3MgH@Nf0biK zO)PaSzxb!?STN7EJ-n++s@L4*dF`Sf>eX}%g|r+xV0`pWNltR9Y3Xj*==tulmzLS{ zG8J8w>Zxvzb&g_dZuH5LNKjdImZ>0m_0MH+`T6^HCybmrFD->wxpAK#u50NMZ;xo9j5W{))WRGn&m1hz{K(?UIfF;@lSS^b z5%X+lX1dB%E4U)FcBx%9l_uHnGzd#MrUXqJ4_K7B-Cs>vSiz9R7uIX#c3$?BEA4PZ zY(7u+59BZ$u@(pt;?aq;EU0r2!acSwWV8k%D)LPUettl(yyT3ltJ#e-y##?!br+04 zJl;b`5kkD662D}G<)o}ah6{0~277zaKWmq24Jauoaz`Fg*PYg_j{APm_b$zj2|bh^ zPCG-e*S`~sjArFi>=p35rQ_Xz@1Aij%8ht%{d09=~xP&=A)q*foU!GAVy$%e8Jd*n~Z&6v-T7mf3+((?n*oDj4o|i+psm; zV@(YjlIV#Z>i&eh0SG=B_Hi%USH!t}2-b{5d*i-Fa!PXVVl$6s0Lp}BpgO7%U2)A) zq7zD;(3F@ZNoUH2w$euQ*{CS3YIva2E}q>ej5wceU%<5^lP&2P*MP zr^?84c0-qb%`lhR>(p``SYEX!mEMFQz@%AH zZ9Yq>UZcikmfQ!&@`M#aujHh}#1k&DA0xLQrB`U7T8H_DiBJ*d`BOP7M2{oe~>48VQB4D!t;tg;%##4}F3 z)MXF;iz`cw77JEap7LNZlFsN8I(Y0`33U1sjm|C}{JaaN--LGU+BHi`N^ZW}dJBc* z6vsdj_L1?a5E@=QDnkezV+m+zDkC`xxg4YsOu0NO%xi$U{Xsc7`2TuZYd3b*MmKZH zQr9MHiff*k?{e&1fXis=lfw|`B|xQ%>Ld)~Q8})@(%hGG*1IcSob4*w2u-xBltQLi zzk(WCHag3!tiP{^4Ex8FtEn~`t)$HcmcKVoH0ZHB^3A7p=ILrVfuUI%SWmalI(eybE;LVn!uwY;S{R4gfWWY z!E>`uJxazT)CdGvoD2wEPVz|0`0RE8mg$#zRURH1R8kThyo@-%h3iuMng>@*`UefCI8kMAp%acyE!^NF;vUk(-V{M~qkIrPL+F1r8k}VPIDO0dUY1B3VDj%sn z9s%XAYCL!mh~;apff$WefotVWNJ_=ZuJ+~kxGKk-Q?65}cNj-ko_o%zR52kVGxHoX zPq|^kk!to%wy)UiC1FrJ!ektb%cz2eBLonQ0>EI}q#R`kQ6O|-TJi}2oT-=hOLVvs zU#`^77mA7sT=Rz2-QdB4-Sf{s?{#2QQ+K?hF65#MaYEdI!V<&j-h1zLbyh5OO*7lO zT`oEqw1&h+Ct(CGqtyg?fP7mm&ZvV7(D;4mMiAY^MR6a-=#~k%wN4r0HjjM4&s5ko zbfMkV4zpb^ivy}Z`ZSTg;sm=r0U!(pH4^8nf9Qo15Zsp3={w3kA33FVd6|ehUH8Y#m(DI8I52Ar%&GVzsLO|PhM8?1q z(4Hrn_M_=K0yOFf*6}v1a$DaT7JU{fHe0DvVt;vTLtB|O%~oyfIhPzWi`BCC8Yj`# zv7@ppW+&^-F)}Gc<3li^BdFyKkNQV1tDJJV+qGo2+coPew`j7j<^#I30Ll$u3X?r(F z`vULQEp>%+zI3}6O?OEa=e|LK&6wyf-4xO`=s4mmfp%{o*-lfBvL)yRBbR8dwfYl! z*w^6P_QGwxfPN%Qf-nwK>J6o9ydTjy;WWv zlsw`%;^MvMo_l=Tkb&dKg7v*g?W(TI%J>++4qV$0j)G>=X8buEIhzj%VyMj6E#ORmFZ`t6A zzWK-%o8k$}XZ!NVMqx%K4q3>hE{-xeOM)gRKm@4LVQ8O3bElnlntS7oH+-YHJH@V1 zPQ1tnK~%d4Uw+wcpxBH-&&NT-pv*LMNP9KYwb?q~Wq$FXo6-3Kx1&nE*hq|xNJG>E zCJ-&uGz=Y|ylSpXS^AwzoIci7usiN}#@dD;R;h;f-+_Y)a+%kJ`O1&F7 z@UvWm`V*IN2<_W*?%Qv_^&O40W)K+@9g)kl*vk4!wek13X$PI`)*dv#%ZWy)AG|T3 zBM@z(bQ#O0yNs2yTgy2~FF_fV9g41C&u~bwmIg*#5CT zXqD@@(#|Ki(oQG1vTYk(;^L_;ZN_IVWyNfh7p>oi*)?I7eLGSPWmUf#E!zIV>#x7w zU3S@JUOz?{BY|>qlnL7b9oiF5JmIHoHf*91hGj|f6&a>uMs4^=eb># zGF??W*5x)UKxVF8=qfLm;IdZDcGc{GRLWGUSKaEW>PJ2=U^AP9PIbw?q@^o-#HGLT z)cMdmB_%b(u2-Ab_3BK9Yhu$TO^&ho{CIkdgwjJKl)}WdBUSGyPPBuJ=AC0BGXgSt zRx^r6@3b(2BXI3Y711-BDH*P?MkBYgO<$Max{q65se#Mfw$|0JQ_~&Nv7M>3ccViC zm66cuB5iu@;hs+t2_Q5uECOtE;psf)vr<2n~bqS5e6l*I}-^WkqXrWrI|FL$+w^h$D=&a4(uM(Ul#0nLkMOxOv_K z3{*cmM+2Dwt(kgHW_6d)u8;e=@e%I%53hAgR<3b9dh~EClXP%3N)3`eVHz3^TKDeV z-F*8_#<+3gyw2F3eHk0;c=ypqANj$D0pU}}hYy+9Kp?0r{TVtouz}(18((g-4d8c2 zzTs+CtKw=lt?%u`%xVTM-#SoU^3`{ww`7x+ozVwA9POfBwOMhMBeaK8tZV|EHhSv9 z1m)SYyyZe9Od%C1t`I?~MRu69a)B$U+tkmz9w>|vn}y3~UbDIB6$6rii-)Grxyls^ z-Sj%WUG;gR-R#-3{hsCU!w+|d9CC>FG?GRi$g9EVb>W2L5gPH7-%sNBN~9(Y#7^1c~C8%*;q3(02k!cbZMVH>+igAiMVFX8aHXu zB=`RN?>qbQn_q@FY{FnM4O|YZlm790Cwd>cpjW)$1LmPM*-SY(_ zk93%)HV~?93YAA0IpvWiKi!T2tSwt@xqhDMH^G#s0-#Ka&gCXQe?`wLgx z+m0%YrV&~`0%J7tbk(y@2t5WqWlGaC-IfOJ-JCfy{l0}WeXejAA*@HQzy7*=_St9s zp;ND3y?n^Dy1zy<{pr+@c5&%Sdg8>19z6C?bQ<{RsFFd*`A6&4t=$nv9N`W+=%Dgb zPeudza>Oaih^lYj%IsjX%G^0~yltqH8N%BrRsfsf;zwXC+Xs@bu-wj;E1K%n03*%E zH!e;Ks?9{jmt_#8EY?wZ`Q1t?*Qlvosr0B zks-MK2%YPDbrJwoyZLmW-J~j??zJZj?I2my5jt!_2egwqFJG6o)P<7_>Iyr?f#j(S z9fLBV&AmYTQCWq4hA|we4p3pp(xp-?UEX_1BNQJ_O(;r*zS8OATv5$t7LTUW{Q|2z zdeuJhy#OcLGb&qawsCtbf$dv`tD$_GS18imIZSYdg^3C%HX+FZM5J7i&7T z(FnM#o3ukC(@4=&9gJjC#y^dcWQrx&^MKoGws2L}&-H64qZB87XdD1C8pvZ>#dC89 zz_^-WO6ER!ydk7NbmZ|hgTaFbd->sy_(Y4BBYGGz0s)m-15in`tEK~nPO_1ywvjLJ zWmjk#)uIuqJfYHRkL`Xvp59_6FcqN)!BK#;8bdtZK@&Z}4oV8XU*c9(%ysGZ#AdX< z8khla(V0Xvk~LDTUCg=GqpV|?k$HNIC&zZw?cge}o8t|S4$>#ofx2lFn;tytBVckF z#D~PlQ+ren8V+OP;|(r8>Qvi8n&O1;NH@~zU`)AO=I~i0IvLZrfPfE&9>`Zmji`~` ziHCIQ9D)dsADI?HM-TXH5czLaMZ+L=u`eUUD}fLSDxWkwCe_U7=JxK!~aU3$_ps8KN z1s?g7QyJ3md0Lr&)x@9Nq}t}=Mk6M|C?5hVnuL*7K1PLJ_WdfirTuYkr%mm)M=W1A z{irqj@NzJ5`|lsO2FxU$^E4p6kEK1Z_S%2?hB+=dKLUx~P95}4dOy=I#=;H7BV>qjcnGyKw1Z6Kr!bk+U&rxJblPxEv?o&lmJO1B!ZQYPvOT!FtMHZEf4Ot^4%TPd#wtGn)wz(m2|rStX+E3$$n}xsK88Mn8B*{Vqz#K0iVDb5?C~^5rx2@yxZu@TIu(R!An@W8@F(3icrUG_k z9z;#Mew4D7(m(^5FQ*VsNX@b{^9jDuY7`-!>Ft@ zS4R3we$u_!;v!dUz$V(;Bhec!j85V)P_4lUfM;Mb-TDx)Egzp?qj-gV6*#+sJ%hG; ztp}-N$4>6hLp%FJ0j^hREIJV?F5L+kdFaj5&6Eu<*SL&CE`^2Q?jVaQOMlzFKw_{Fo{qxdX z_pV)BdS>)hbb%4jbf6;!>esKI8!}{wvi%f!%PqI~nSeErk*i&_Havij zv%lr$KK}S)1HY01+uC*PbF%Bz&cKf@^UGyQ4*;a&aVo_(H=&~gfQL4Njtgm|u_yMY zJ<5ZQeZ#bP36WJ+TFO%^rGRSjGXA25cLE3{5I`CqDj*&zRh$sRFfz7JeAk`Ze!G2T zuD@HnB{tQR?s2L1wza*9W^aPqgAaxF5?_HGD(tY^iaQHjf<2kpx=yC++OfXt)3TcD z+q#;oS}EP$0xEPxw$}1c20Da|3LC9B;fN6A3CMQLtYFoTeKojt-H8o5JN9U zlz=X<;|0N|Jos?j=3?`aP*&(Rj(Ns)Y|+|vXw%x2*rU3|8P!}B`!+)3n%S;?HG5#7 zDwh&|Y4>II;~QhQdTASR>ZKmSFdg!98N->dMg+Rkg8@sr!LK;sjW^!t&O7fsKi$y* zSPNzNP&RSuFKgJ|C8VdhS{dmsp=Oqi>QXm-Q-PcMuchwc(aYTc8@bmHsPFn8l;zqt zs_9m*t?%!3a;>f@SaJnsXjA1Wlx<0)FKOwI9TYb*c3Em{rTz%X{)}Z^>&?fj0F3dT zhQ?P;TI&SykcVqY91q-Y+OW>eoWH=;uaw|gXXm>{)l=-LfJ&}{O;sF5@Qozu3*}2$ zFC^~gKzVoGd8Y?l(;bZlC@yQb7bmTAv(^{6!*a7+9kVFF}m3XV<2AQ0-5}6x$bNFV)LsFoq2e4MAK$ z3Pgn}LwR`UiHsh0mzA)b=WaQl0B7bntSC{59M(*1Q*{3 zPmKMD=dHKi@}J42GsytR!*Bq?9hi7fr7yc;juw~MfdOSTx~YORodP*KYaQfv)H~Dz z%6n2CSOb+;Y|;2ZEe5R&b-&#M^ekm>|we^#U;i0G(N0^IF(RPg{e$wh49Eg#QH`6nE>`3>-l28@Rep+g7cNq(3XjVC3z&}aRFhSAgxm5mR@Bl>mMUFWZD zX$zaCP!F|zdjorm(neabfmdR_*uKFMrBm%o4;D{Lbp^Jua#JaW_Dw+`D$KLLH^h?(-+lL;f3lN}2%9Xx1spkK$?yuHiO%%;zylBX z(M4JGK^N(T5lQ1zULkrZPRR6)Jmj!BLT8<3A!l3tj;`3&Q=8UYkpT#ZMFwn<(eMCV zly1I)ZOm+nu2ehI7237?U90n4t1i9E2LpAWzwCu>vaQ;N{`fG@C+tUgY9lr_x6r(w z&$UA_OpB+Qz_utaVQ}JTa6An`+Vz}*?S-I40+Lq#G)a`G~uX|b8fVCXC zvMX`)Ax#{oaIfGW(%@m8Ha({rpYOc_wbcG{`gp5#a43KZG~#3=6l9h|F9>8MckN>}*e zJ-pC(Er(~jIdG8vgqvISwNc4QQp|ZY`7vni|6YhKVW(%H&39rr_fE(ub)WA@bc6ey z=w^TVt_LeNx+KllMF&C$^u)n~?$j?w9<;Dc)L~@}zkNq)>E=zFKFr7{HaYfjw&*Ye zIg&4Xgf!xzLkDyUU05!pQwLbH+;WZ1pya5Orz+XJf-6slFlf2{$Em%v2R>e9qQh%L zDfwZ0DTA$$FI}J=$Rp$a`|o#0AAPi+g(<`4d|TsA_JuBPKUw>{iTB!B_4*L9oue2K z9#h_;;^F8L`-;=5YAp?mw>?(-lnD|ceriWNO=&{fVSh@w*j9^=Ow8Wd*D~!z%Y?0U z>eQWSxU>(2VGs=v(E}ZPR0g6FeCU)%SqvnHTsbal0f)iK%*>$;N3=X^CUD8ed0;FY zI&`Q9TZ7bR#`1|HpE~I{IMkvY=!2792MX`G>n``lE3fo?d}cT?qoRKUU+v?IvuY`! znypW)*(%y%findF-*^y?Z0#2tuelLS+mpm4eXal&>_Q%1g2M za_pA?QTr%H?eb+y-4WdmbKP4vb&q{G!JoQuIjY7=ZhSqYsRzHyHngcJW;{NT7Nh-G zNZD(zz1B^dG1twr&!hSG)@-8jz)!ERDhlxG2x6j5&?$2-tixd4*ly+mUd--vcoH9>{4{4D+F(pX^8)y-m*ixpU{t zH{SA^%SWm)v##1EyzJfN*OjY8&HPXPCK5sGq`3xpM3ImfKHcftc`Ot8(Gx>6c6IY1uSsJh+H7rsNYK*bO)~Y8` z)6%Z9EpQ58NEo0I$E#9RAZ3sNA6|LtQ7Rv+=SKtNQ8$-~teF71x%c@l`=HLQf{nt$ z5(C8A;M-?wBqww>X#HiO|Fj0V)^@(J?2l(FX1I!WEQ^zF(l1m5U700#^_K&$kN@?7 zeXAwG)!n|_ZCyRf6*oM{+E2~qutlt}MZJqguF+8}majb4f zi_aHGx1H)h3q@zphb*8_^4u8aBp@6jw5a6*1iaxawbu2#q$X6F| z%SII;r=Y)%Z(i9e@T@YY>!>tH@{9s%gFD+e~n^*C>#n!AdXPN1q^)9P)dBtBlL=xapL7kmO|vSmMUF*?p<79TDb@q%G-d9 zr3s^iK7td4)@V8-I>Bs?>DY%c-2oH8nBqAA;llzvmc(&1uhl^3K7+5%WT8{-qRlS* zo45Vt4by4l6K#sNO_cdmt7|V^aeKhfE@u+vPTZ&SN7_WT4CB};^yGy$QyP5i{C=#Z z_Zg++|6rt=G0heUMK)3%O-xF9${uy`JyngP5RNp4QCt9eLM&f#LMa;3;^XizLXk`7 zNI2{``wm41Kka(#tU!bfD22H@9Xyf+7AGhkJMP2JTjv1kO8J`@JItN=X5rTDy2nD zRUKRlvv$syF~i@r16VGhxRC^p^g|bUrf7~NQ~q%ifAumpLM;qOC~>Qoky}1$3%1(_ zcKEVIbdaF-$~LkeA)fkVt2_wZ+K?t^l5-J~{;ZZsCP@ZV;GwtGNaP~QWa*5gg^;zRZmd}a- z8UxlykVzSKKH(>1MyC-xuvT!_o>Eu8a+=GvKTT0+e<+6QPcBy&q3m$A5fY&2C!-UO z_h>?yN~>+;&HOwXrG8}E^`+Iz8<_sDA;jX0RyS(`#mZfL=cW_O$v)T(rx05ax6%5Q z?Rj3ati6Ri=iZ+mtf|T};bs@Vw%%Z%jxmA078IZYDu*N`RE{tNi@4GXX_Ri2!q2pV zTx6vk+{2}JJJ9WVPJGZU=8;`u-vMn{*Z!bQ za*>V{#lP6F1pON5MGfu0R@?|uInpsE_4`(CspnnZ}6gYp_ z_0igCb(OE7em#xWR6bOfZh(d|B?H|7SzaJ3pAe_eZ1ke-1NfTIzCF!z?fv;tP^~h$ zRndm^>;Gs1xyUWAKox}wh$cfQFKm#iRztLolCFJ?t)teCaQy@%n#Nd+I`M*@FjFvs~NsjqZ!DzV-LLc_fN!P)?2LNc(eY2YG4(BNMMQZ9?~I ziFQcxui@qEDATX^tgjX?{^EUqeGWh66-pLqmN$i}Q}rp&UXxjCui)Nb`9C^JDgUFO z!eGWOwe@DR^`bvpMP{q0_p0H5L0k%>98Qf#De{r|)XQCZ-a#<{t$a*| z2QCII1CO-N^Z5do5Q2G}g`^7$QeFQVwqxD8$o5&WUj=v&@UJW?~+i(0+KLP3LxXX09DV!Fc<}w*`$rDcKiiC9?7vfV!-$& z$Knw~WB{LUga}MOj`w0}{PxVE%g!uw-BOmiVXuvJ#e1T6fB9;Fbdb&p(Fvz^NoT^a z&0%|)hROean7x)`pO%jPWK?vSQ#fmq-R_HCBo8|f^{Fnx(0c`9Kgh+|^7pP?V!mL} z18$ByW9;XE8>NuRDrJNg*_3s$y-{(9jkJa+87ikZ3d)JbnhKpXP9d~1yVKC{hR6I- zUpY{IsQHQ1gXTwPY_mi!jDUR-ID|47cry|5=Sp|kqhI{NQY&WRvsbOuNkE)-1g7ja8>)A2CQzkeb$=M7M2a; zs%L+Il4taS!oof0+hF?1KWK~&az7i?Sb-9|XdiE{YW~GW!oBv#PRgHxlj!_LL`w>W_qe(R$*l6o#7YEjL?XU9L-(M`Td#X%K zIraj3&-8^Z>$?x!%2kW~+lrj)G76>F{`6EH`k}9QNQVwS@OzP5AJ6x5?iB zDp<4BU&FG(NS;EbWBPRA`klEK}^0flu3} z<7^oLId~~ch=+#ays*tvfoxP#?4z=aRzGPF9R^5a8f>M~Dx+zeoL;y95Gg)G%gs5tzpM>;}_0ZIq?r=56RXe6fH18$DO zvXsaDVo-e{1J;yIw|8paw@pW1HC_r6hLsWLOEfe>Mqr)Qqn{c{Dld7lx(N0$25B0P zTzKgyya>)wA2c3F<0ueE8o83~iLoE@a0az$&-uMNAw>Hf2@31Ke8oXA#&sC z%G1bHTciVY(QIQhdDW_w18kT6vo2pkT_x||8mZ-l6B3f_sI7`Uj6KFiY+L9ks78p7 zP)dtNI&6#@Og^BaY^bo($W~mk!ch65#p@!O@pSk_i|0{VG70HSIJGO(Uvi*PR(YaJ zp3;(GGH2MeXg@n-*lc+}YaNv=uT1Rcmu{58vKXPngl;xK2iV*5jM%mSg0fPW0%66X zLxWe2YeyXU;wMyt#RpCKqJ<$cF`_z+>JSL<9;kdgJwB~^1QKc0r98C{y5a|tLm98H zwYk&)wPj<#F9B3_#)tpWNR=>CI>{d8tYT})$i&2?PX1Y;{Q#@R2{@&Z0|+62p|L`` z>QpEh;!&u4!Vm<~;tA`3ejq1+(3`TMJmpCb0SR4vABjmfckMSvnh zbrYBS)j&m{RbYR_HznP^Cil1jajtoLzB)3T8mEd00ZWd?s^QQ=Wn~CW(JJ#}p~@3d zK6GI{@p_RC%Tg|!x|=#*9a zEpLV0=)TZK=;xNj8xcQx9ZLBhbE-4s`AtBj0;>#5CE1HkmF$w|X`4Dvw8r`RXmqH| zf#Nd03`$zO#Gxy#MkyWgD(^sH$Qus`d7%sQsZ05Up&XS_=d*H5x9`~{%SE=s-D>&v zP1QKzD)b9NwKpvCn}MoItWr(KgALfBmaYjHA+Ty2^w2P2T)-k%4N*DLVZQ2CJxVJS zujDX;;KKUED-g*G^TTx57L_9eQ1a|RVS{amZksV<`g2D9kEUDXhE8qRhlX;$wX=%- zsI^B(s@V1H<7U*8t-%)T-5iBRl0FoZ(h8+-m?wTh3>nW09ph3~N z-i0#4Iw^;4nFBRPR2tP_Z!Mw}_hpe$?7pd$_H&_gdpS zX-A9EP*D0PPKd`Tlx|8BVo1soiVk03U={Ox02yBwI*10dw((51 zweu$X-sBg?_N$Ig>Xnm@N)!I(({EUruQ1ZWgKIYgPPa>-o6Q)_1qMdKC{k9TLY>1{^ z3?3R6I$kvKN#-vJC4(|yTp&YNeS~y6Is&}L!?Zfi?h-v@)9g57{jY(EUby|W{r?=) zNHwn<2r?}v=jP_tuutv$(F}N^Dc#h<2;HC&GI|JvWc{b13`K~1rIBm(8mVldh40u~ zagQ%swv0z-d64Eeoo1OY;p0Ma`^wvi6BUp{W z=%Kg#@(~C9Ku+bukhr|$#AGlcXBm)V?dJDC?b+dZmJg6ju|M1vAE?sbfG+(*(Z5Sj zrJyOy2*m?1_ipWbq&Y_$z}+nC5c5sVXTTq^659(ZwEY1a()U-+%Ir43(EL;ba-u!S zKZ=LHOf(BH-m-qA#~8zZ%Z2)@&fhhtQc|HcKvOgz`_bIEapUH;4tHh;ZL|i)QrCQC zi}P`4Jbe6VF3K`=`NO}2yg;+fu;F&sYKyP1wQ|1gT)(kb?)lmY;4un)_L+LK@T@5UXQ&X_Y24KpN{92*jlz4hWE#%4G*6=mkwMX?$*z!lBv$OZNBr z|9-#!>+^CpbGWs$6+w`LsU(+!V=sKW_P4s4nH~}oQ2*zbKiv9lSXBa9= zQEVibCenHwl;q@$0fuKXd2wb!q$O;iAML9$kU#;JfL4{VYBJR*w$01HxxI~J=(dS9 z5yf_#Dx|Y$Tr&U~^buZ>2$5(g;3ESB9iV$riXaJ`q;MkaB?%@NW(X3kJs4Coq%kJP zC2Cr56~#)Hr878QsZ@LwzfUv9agwHKoS<-u@j2LIQ=2kG zSdX#pIvD2e-a@t^^oBWN$gn6vnbX861*levi(>G^C&?1yPmnCn@f=K@pQlJNlAtL% z5TVH!>5tHUqRz1wmX1Z@!C;8;Qwf$Nc`6q6^NDbPzlBT2a;h>L1M`TsfDyChYooG2=$S(jXVQ31vonJ=Y zLqE>O{45)YB?#y#j60T~A~YML!|_O%;<*G?!%F`rXE<~Qx0~ZX%~Icj9cWK?TOTfV zFAq@RjWOWWSbzD$s|eDNN^xwy`eX6V-Ma%#C+0luhgKJbA?IbsoxzuorN^{)o+JL>K@-gVp=YMAu6Ua^6XoX(>C zPZZ8Jf7D|*m(0Z{_jk{iE_7{f;2USej&EH0Z=lq9m2Us;k6twN8vQ_Xp=HvYY}kDB zmitEJ_CD9&+0l=iFF%v$y@I40E0a5!uXn~aiDjbJ26A}EgFxB*xg)CN&wBL-336=Ps{HJ}Kx zCP*R_Wn?R*I?W0LPgg?-$!_;Lv8b*k3Zx8)urh)fQ6vaRAJ4u*uCyika+(wujPQr{abgspOJLnkJC8`=L z2Kbn+0Cd-|xevrrc7LT17ec37PreA1#mD{F z%oKKf&EYMrqZcaLug;H*aK4uBply%7;~uQf{{4}h)KkHd%lFUCj)kT4-i4GRMJ!tQ z^TWmA=_LK99}M4kw`abuU!6J9U!GF9#0)+8^zN(2KT-=QG%k4Ey-1)_>0jKr1UW0| z&be)K`DvvyQ`d-r$KcZIgO_f#HOT|`8z=m;v&-|Jr8j4}<&w$7Gacg>gKcryhO>3b z;l;U(h4S%uvv-JXzu7$zpY2QT*q$`-nsI0H{V%V*;98W9_1xIqbC%pb=J`0ume5uD zOGQJ*d3^v)%gUN8J3u_%mC@XOb8Byk{{7cSW#XZeqVq!8MEz)D(^uS%^fBM9?(yX5 z(_K?8_EluQyKiV_{`RD=ZL@yj<@c2KQY> h+#za`=9acr=pJr8-d}#?z^3T$&gCd#&e$pr{R8o0>(c-L literal 0 HcmV?d00001 diff --git a/css/images/icon_speedmeter.png b/css/images/icon_speedmeter.png new file mode 100644 index 0000000000000000000000000000000000000000..7aeb804d2e8c9395cbe1f2ec2e07bd10990ab7e9 GIT binary patch literal 2475 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 literal 0 HcmV?d00001 diff --git a/css/images/navigation_selector.png b/css/images/navigation_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..3742f7e61060a1c340202d9733b7cee0c9b0525f GIT binary patch literal 20708 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 literal 0 HcmV?d00001 diff --git a/css/images/radio_selector.png b/css/images/radio_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..ea24db2b8d1c1c6f0e0ffee1e93808c5bb2f28a9 GIT binary patch literal 9358 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 RefSq4V*@k&I$gKh{{wCm@jd_m literal 0 HcmV?d00001 diff --git a/css/images/social_selector.png b/css/images/social_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..a563effedaaf84a8ab337ed82ae297f9cce8cb3f GIT binary patch literal 15135 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 literal 0 HcmV?d00001 diff --git a/css/images/video_selector.png b/css/images/video_selector.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef9900230c61a7ca4281df253026b64145f8dfe GIT binary patch literal 11817 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 literal 0 HcmV?d00001 diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..09c5b7b --- /dev/null +++ b/css/style.css @@ -0,0 +1,519 @@ +.wrapper { + width: 720px; + height: 1280px; + overflow: hidden; + position: absolute; + top: 0; + left: 0; +} + +.wrapper .backGround { + position: absolute; + width: 720px; + height: 1280px; + top: 0; + left: 0; + -webkit-perspective: 1000; + -webkit-transition: -webkit-transform, opacity 1000ms ease-out; + -webkit-transition-duration: 500ms; + opacity: 0; +} + +.wrapper .live { + -webkit-transition: -webkit-transform, opacity 2000ms ease-out; +} + +.dateTime { + top: 0; + opacity: 0.3; + z-index: 2; + -webkit-transform: translate3d(0px, -200px, 0); + transform: translate3d(0px, -200px, 0); +} + +.showDT { + opacity: 1; + -webkit-transform: translate3d(0px, 0px, 0); + transform: translate3d(0px, 0px, 0); + -webkit-transition: -webkit-transform 400ms ease-out, opacity 400ms + ease-in; +} + +.topBarIcons { + opacity: 0.3; + z-index: 4; + -webkit-transform: translate3d(0px, -200px, 0); + transform: translate3d(0px, -200px, 0); + -webkit-transition: -webkit-transform 400ms ease-out, opacity 400ms + ease-in; +} + +.showTBI { + opacity: 1; + -webkit-transform: translate3d(0px, 0px, 0); + transform: translate3d(0px, 0px, 0); +} + +.indSize { + position: absolute; + width: 200px; + height: 200px; +} + +.indicator { + -webkit-transition: -webkit-transform 300ms ease-out, opacity 500ms; + -webkit-transform: translate3d(260px, 575px, 0) scale(0); + transform: translate3d(260px, 575px, 0) scale(0); + -webkit-perspective: 10000; + float: left; + opacity: 0; + z-index: 2; +} + +.showI { + -webkit-transform: translate3d(260px, 575px, 0) scale(1); + transform: translate3d(260px, 575px, 0) scale(1); + opacity: 1; +} + +.centerIco { + position: absolute; + top: 60px; + left: 60px; + width: 80px; + height: 80px; + display: block; +} + +.corpus { + -webkit-perspective: 1000; + -webkit-transition: -webkit-transform; + -webkit-transform: translate3d(0px, 0px, 0); + transform: translate3d(0px, 0px, 0); + -webkit-transition-duration: 1500ms; +} + +.item { + position: absolute; + -webkit-transition: -webkit-transform 400ms ease-out, opacity 700ms + ease-out; + /* -webkit-transform: translate3d(0px,0px,0);*/ + -webkit-perspective: 1000; + opacity: 0; + height: 535px; + width: 528px; + text-transform: uppercase; +} + +.abs { + position: absolute; +} + +.item.selected img { + opacity: 0.8; + -webkit-transition: opacity 300ms ease-in +} + +.item img { + position: absolute; + top: 0; + left: 0; + opacity : 0; + -webkit-transition: opacity 500ms ease-out; +} + +.sector1 { + -webkit-transform: translate3d(110px, 148px, 0px); + transform: translate3d(110px, 148px, 0px); +} + +.sector1icon { + top: 110px; + left: 120px; + width: 44px; + height: 33px; +} + +.sector1street { + top: 110px; + left: 180px; + width: 280px; + overflow: hidden; + text-align: left; +} + +.sector1distance { + top: 140px; + left: 180px; +} + +.sector2 { + -webkit-transform: translate3d(392px, 324px, 0px); + transform: translate3d(392px, 324px, 0px); + text-align: center; +} + +.sector2valInterior { + top: 120px; + left: 160px; + width: 150px; + overflow: hidden; +} + +.sector2Interior { + top: 170px; + left: 160px; + width: 150px; +} + +.sector2valExterior { + top: 210px; + left: 100px; + width: 150px; + overflow: hidden; +} + +.sector2Exterior { + top: 260px; + left: 100px; + width: 150px; +} + +.sector3 { + -webkit-transform: translate3d(402px, 630px, 0px); + transform: translate3d(402px, 630px, 0px); + overflow: hidden; + text-align: center; +} + +.sector3header { + top: 65px; + left: 65px; + width: 250px; +} + +.sector3title { + top: 85px; + left: 65px; + width: 250px; +} + +.sector3subHeader { + top: 115px; + left: 90px; + width: 200px; +} + +.sector4 { +/* -webkit-transform: translate3d(314px, 724px, 0px); + transform: translate3d(314px, 724px, 0px); +*/ -webkit-transform: translate3d(340px, 703px, 0px) rotateZ(-5deg); + transform: translate3d(340px, 703px, 0px) rotateZ(-5deg); +} + +.sector4name { + top: 200px; + left: 60px; + width: 150px; + height: 80px; + text-align: left; + overflow: hidden; +} + +.sector5 { + -webkit-transform: translate3d(44px, 702px, 0px); + transform: translate3d(44px, 702px, 0px); +} + +.sector6 { + -webkit-transform: translate3d(0px, 590px, 0px); + transform: translate3d(0px, 590px, 0px); +} + +.sector6postsWrapper { + top: 70px; + left: 25px; + width: 205px; + height: 90px; +} + +.sector6row { + width: 100%; + height: 18px; + overflow: hidden; + text-align: left; +} + +.sector6icon { + top: 1px; + width: 15px; + height: 15px; + float: left; +} + +.sector6time { + width: 65px; + float: left; + margin-right: 5px; + text-align: right; +} + +.sector6text { + float: left; + text-align: right; +} + +.sector7 { + -webkit-transform: translate3d(0px, 316px, 0px); + transform: translate3d(0px, 316px, 0px); +} + +.sector7iconSpeed { + top: 135px; + left: 10px; + width: 37px; + height: 35px; +} + +.sector7valSpeed { + top: 115px; + right: 390px; + text-align: right; +} + +.sector7SpeedUnits { + top: 155px; + left: 145px; + text-transform: lowercase; +} + +.sector7iconBattery { + top: 200px; + left: 10px; + width: 37px; + height: 23px; +} + +.sector7valBatteryPerc { + top: 197px; + left: 50px; + width: 70px; + text-align: right; +} + +.sector7valRange { + top: 197px; + left: 125px; +} + +.bottomPanel { + opacity: 0.3; + z-index: 4; + -webkit-transform: translate3d(0px, 200px, 0); + transform: translate3d(0px, 200px, 0); +} + +.showBP { + opacity: 1; + -webkit-transform: translate3d(0px, 0px, 0); + transform: translate3d(0px, 0px, 0); + -webkit-transition: -webkit-transform 400ms ease-out, opacity 400ms + ease-in; +} + +.volumeControl { + z-index: 4; + position: absolute; + top: 100px; + left: 450px; + width: 240px; + height: 50px; +} + +.audioButtons { + position: absolute; + top: 110px; + left: 53px; +} + +.controlsBtn { + z-index: 4; + position: absolute; + width: 28px; + height: 28px; +} + +.previousBtn { + opacity: 1; +} + +.prevBtnInactive { + opacity: 0.5; +} + +.previousBtnActive { + opacity: 1; +} + +.pauseBtn { + opacity: 1; + left: 96px; +} + +.playBtn { + opacity: 1; + left: 96px; +} + +.nextBtn { + opacity: 1; + left: 191px; +} + +.nextBtnInactive { + opacity: 0.5; + left: 191px; +} + +.nextBtnActive { + opacity: 1; + left: 191px; +} + +.actionsCatcher { + position: absolute; + width: 100%; + height: 100%; + z-index: 3; + opacity: 0; +} + +.homeScrAppGridView { + position: absolute; + top: 0; + left: 0; + width: 654px; + height: 1214px; + z-index: 5; + padding: 33px; + display: none; + overflow-x: hidden; + overflow-y: scroll; +} + +.HSAGWHeading { + text-transform: uppercase; + margin: 0 0 25px 0; +} + +.homeScrAppGridFrame { + width: 212px; + height: 212px; + background-color: rgb(0, 0, 0); + background-color: rgba(0, 0, 0, 0.2); + float: left; + margin: 3px; + text-align: center; +} + +.homeScrAppGridText { + background-color: rgb(0, 0, 0); + background-color: rgba(0, 0, 0, 0.4); + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 80px; +} + +.homeScrAppGridView .exitButton { + position: absolute; + top: 25px; + right: 25px; + width: 42px; + height: 42px; +} + +.homeScrAppGridTitle { + position: absolute; + bottom: 29px; + right: 0; + left: 0; + text-transform: uppercase; + line-height: 25px; +} + +.homeScrAppGridCategory { + font-weight: normal; + line-height: 25px; + font-size: 16px; + display: none; +} + +.homeScrAppGridImg img { + margin: 0 auto; + width: 120px; + height: 120px; +} + +/* ICONS */ +.iconSpeed { + background-image: url("./images/icon_speedmeter.png"); +} + +.iconLeftImg { + background-image: url("./images/icon_direction_left.png"); +} + +.iconFacebook { + background-image: url("images/icon_facebook.png"); +} + +.iconTwitter { + background-image: url("images/icon_twitter.png"); +} + +/* Animations */ +.rollRight { + -webkit-animation-name: rotateR; + -webkit-animation-duration: 10s; + -webkit-animation-delay: 0s; + -webkit-animation-timing-function: linear; + -webkit-animation-iteration-count: 1;/*infinite;*/ +} + +.rollLeft { + -webkit-animation-name: rotateL; + -webkit-animation-duration: 10s; + -webkit-animation-delay: 0s; + -webkit-animation-timing-function: linear; + -webkit-animation-iteration-count: 1;/*infinite;*/ +} + +.liveBg { + -webkit-animation-name: live; + -webkit-animation-duration: 7s; + -webkit-animation-delay: 0s; + -webkit-animation-timing-function: ease-out; + -webkit-animation-iteration-count: 1; + -webkit-transition: opacity 500ms ease-out; +} + +@-webkit-keyframes rotateR { + 0% {-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);} + 50% {-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(180deg);} + 100% {-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(360deg);} +} + +@-webkit-keyframes rotateL { + 0% {-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(360deg);} + 50% {-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(180deg);} + 100% {-webkit-transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);} +} + +@-webkit-keyframes live { + 0% {opacity: 0.4;} + 15% {opacity: 1;} + 55% {opacity: 0.4;} + 100% {opacity: 0.4;} +} \ No newline at end of file diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0d1719e662d9c8d8efcec296cc7f0e2b4c1de486 GIT binary patch literal 5427 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..50dd8df --- /dev/null +++ b/index.html @@ -0,0 +1,124 @@ + + + + +HOMESCREEN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +
+
Apps
+
+
+
+
+
+
    +
  • +
    +
    45 south ave
    +
    600 ft
    + +
  • +
  • +
    0°C
    +
    interior
    +
    0°F
    +
    exterior
    + +
  • +
  • +
    author
    +
    title
    +
    album
    + +
  • +
  • + + +
  • +
  • + +
  • +
  • + +
  • +
  • +
    +
    0
    +
    mph
    +
    +
    0%
    +
    0 mi
    + +
  • +
+
+
+
+
+
+
+
+
+
+ + \ No newline at end of file diff --git a/js/actionCatcher.js b/js/actionCatcher.js new file mode 100644 index 0000000..21c5028 --- /dev/null +++ b/js/actionCatcher.js @@ -0,0 +1,155 @@ +/*global areasDefinitions, onFrameClick, centerPoint */ + +/** + * @module HomescreenApplication + **/ + +/** + * Compute distance between two points in 2D. + * @method pointsDistance + * @for window + * @private + * @param pointA {object} Contains X and Y coordinate of first point. + * @param pointB {object} Contains X and Y coordinate of second point. + * @return float distance in points + **/ +var pointsDistance = function (pointA, pointB) { + "use strict"; + return Math.sqrt(Math.pow(Math.abs(pointA.y - pointB.y), 2) + Math.pow(Math.abs(pointA.x - pointB.x), 2)); +}; + +/** + * Compute angle of click point from zero angle (zero angle has a line, which is horizontal and starts in the center point). + * @method pointAngle + * @for window + * @private + * @param point {object} Contains X and Y coordinate of clicked/touched point. + * @param centerPoint {object} Contains X and Y coordinate of center point. + * @return float angle in degrees + **/ +var pointAngle = function (point, centerPoint) { + "use strict"; + var tmpPoint = {}; + tmpPoint.x = centerPoint.x + 200; //to define zero vector + tmpPoint.y = centerPoint.y; + var u1 = tmpPoint.x - centerPoint.x, + u2 = tmpPoint.y - centerPoint.y, + v1 = point.x - centerPoint.x, + v2 = point.y - centerPoint.y, + su = pointsDistance(centerPoint, tmpPoint), + sv = pointsDistance(centerPoint, point), + angle = Math.acos((u1 * v1 + u2 * v2) / (su * sv)) * (180 / Math.PI); + if (point.y > centerPoint.y) { + angle = 360 - angle; + } + return angle; +}; + +/** + * Gets app sector from click based on predefAppModel, clickDistance from center and click angle. + * @method getClickedItem + * @for window + * @private + * @param touchPoint {object} Contains X and Y coordinate of clicked/touched point. + **/ +var getClickedItem = function (touchPoint) { + "use strict"; + var dst = pointsDistance(touchPoint, centerPoint), + angle = pointAngle(touchPoint, centerPoint), + i = 0; + for (i = 0; i < areasDefinitions.length; i++) { + switch (areasDefinitions[i].shape) { + case 'cenerCircle': + if (dst < areasDefinitions[i].lc) { + return areasDefinitions[i]; + } + break; + case 'pieWithoutCenter': + if ((areasDefinitions[i].sc < dst) && (areasDefinitions[i].lc > dst) && (areasDefinitions[i].sa < angle) && (areasDefinitions[i].la > angle)) { + return areasDefinitions[i]; + } + break; + } + } + return null; +}; + + +/** + * Provides functions for catching mouse events and translating them to correct calls for launching applications displayed in radial menu. Applications and locations + * which should be displayed are defined in class [predefAppModel](../classes/predefAppModel.html). Reading applications from Tizen system is handled by class + * [installedApps](../classes/installedApps.html). As alternative method to launching applicatins with mouse events applications can be launched by key events which are + * processed by class [keyControl](../classes/keyControl.html). + * @class actionCatcher + * @static + **/ +var actionCatcher = { + /** + * Holds clicked item Object. + * @property clickedItem + * @type Object + * @default null + **/ + clickedItem: null, + /** + * Indicates if mouse button is pressed. + * @property mouseDown + * @type bool + * @default false + **/ + mouseDown: false, + + /** + * Provides highlighting sectors if mouse cursor is over. + * @method over + **/ + over: function () { + "use strict"; + var i = 0; + if (!actionCatcher.mouseDown) { + var mousePosition = {x: window.event.pageX, y: window.event.pageY}; + var overItem = getClickedItem(mousePosition); + if (overItem !== actionCatcher.clickedItem) { + for (i = 0; i < areasDefinitions.length; i++) { + if (areasDefinitions[i].sectorId !== null) { + $('.sector' + areasDefinitions[i].sectorId).removeClass('selected'); + } + } + if (overItem !== null) { + $('.sector' + overItem.sectorId).addClass('selected'); + } + actionCatcher.clickedItem = overItem; + } + } + }, + /** + * Sets mouseDown property to true and sets clickedItem property if click to some sector. + * @method touchStart + **/ + touchStart: function () { + "use strict"; + actionCatcher.mouseDown = true; + var mousePosition = {x: window.event.pageX, y: window.event.pageY}; + actionCatcher.clickedItem = getClickedItem(mousePosition); + }, + /** + * Sets mouseDown property to false and starts app if click to some sector. + * @method touchEnd + **/ + touchEnd: function () { + "use strict"; + actionCatcher.mouseDown = false; + if (actionCatcher.clickedItem !== null) { + switch (actionCatcher.clickedItem.shape) { + case 'cenerCircle': + actionCatcher.clickedItem.action(); + break; + case 'pieWithoutCenter': + if (actionCatcher.clickedItem.id !== null) { + onFrameClick(actionCatcher.clickedItem); + } + break; + } + } + } +}; \ No newline at end of file diff --git a/js/installedApps.js b/js/installedApps.js new file mode 100644 index 0000000..f5a656d --- /dev/null +++ b/js/installedApps.js @@ -0,0 +1,265 @@ +/*global ThemeKeyColor, Settings, loadScript */ + +/** + * @module HomescreenApplication + **/ +/** + * Retrieves list of installed apps from [Tizen Application API](https://developer.tizen.org/dev-guide/2.2.0/org.tizen.web.device.apireference/tizen/application.html) + * and manages displaing it in app grid view. Class also provides launching of installed app by clicking on app representation in grid view. + * @class installedApps + * @static + **/ +/** + * Global variable which holds the list component in the UI + * @property appList + * @type array + **/ +var appList = []; +/** + * Global variable which holds the identifier of the application information event listener + * @property listenerID + * @type string + * @default null + **/ +var listenerID = null; +/** + * Global variable which holds the current index of last element in appList + * @property index + * @type int + * @default 0 + **/ +var index = 0; + +/** + * Provides hiding installed app grid afted click out of app cells. + * @method $ + * @static + **/ +$(function() { + "use strict"; + $("#homeScrAppGridView").live("click", function() { + $(this).fadeOut(); + }); +}); + +/** + * Provide logging of app launch success. + * @method onLaunchSuccess + * @static + **/ +function onLaunchSuccess() { + "use strict"; + console.log("App launched..."); +} + +/** + * Provide logging of app launch error. + * @method onError + * @param err {string} Error message. + * @static + **/ +function onError(err) { + "use strict"; + console.error(err.message); +} + +/** + * Provide launch of application. + * @method onFrameClick + * @param appData {object} Contains Object of specific app. + * @static + **/ +function onFrameClick(appData) { + "use strict"; + //launch application + var i; + try { + var scriptCallback = function(path, status) { + if (status === "ok") { + Settings.init(); + } + }; + + for (i = 0; i < appList.length; ++i) { + if (appList[i].id === appData.id) { + if (appData.id === "http://com.intel.tizen/intelPocSettings") { + if (typeof Settings === 'undefined') { + loadScript('./css/car/components/settings/js/settings.js', scriptCallback); + } else { + Settings.show(); + } + } else { + tizen.application.launch(appData.id, onLaunchSuccess, onError); + } + break; + } + } + } catch (exc) { + console.error(exc.message); + } +} + +/** + * Create app grid view based on appList. + * @method insertAppFrame + * @param appFrame {object} Contains Object of specific app from appList property. + * @static + **/ +function insertAppFrame(appFrame) { + "use strict"; + var rootDiv = $("
").addClass("homeScrAppGridFrame boxShadow3").data("app-data", appFrame).click(function() { + onFrameClick($(this).data("app-data")); + }); + + var innerDiv = $("
").addClass("homeScrAppGridImg").appendTo(rootDiv); + $("").data("src", appFrame.iconPath).appendTo(innerDiv); + var textDiv = $("
").addClass("homeScrAppGridText").appendTo(rootDiv); + $("
").addClass("homeScrAppGridTitle fontColorNormal fontSizeSmaller fontWeightBold").text(appFrame.appName).appendTo(textDiv); + $("
").addClass("homeScrAppGridCategory").text(appFrame.appName).appendTo(textDiv); + + $('#homeScrAppGridView').append(rootDiv); + + var img = new Image(); + var ctx = document.createElement('canvas').getContext('2d'); + + img.onload = function() { + var w = ctx.canvas.width = img.width; + var h = ctx.canvas.height = img.height; + + // Change icon only in case of Intel POC apps + if (appFrame.id.indexOf("html5POC") >= 0) { + ctx.fillStyle = ThemeKeyColor; + ctx.fillRect(0, 0, w, h); + ctx.globalCompositeOperation = 'destination-in'; + } + ctx.drawImage(img, 0, 0); + + $("div.homeScrAppGridImg img").each(function() { + if ($(this).data("src") === appFrame.iconPath) { + $(this)[0].src = ctx.canvas.toDataURL(); + } + }); + }; + + img.onerror = img.onabort = function() { + $("div.homeScrAppGridImg img").each(function() { + if ($(this).data("src") === appFrame.iconPath) { + $(this).attr("src", "./css/images/default_icon.png"); + } + }); + }; + + img.src = appFrame.iconPath; + + index++; + appList.push(appFrame); +} + +var evalInstalledApps = null; + +/** + * Callback method for getting and resorting appList array for Homescreen app using. + * @method onAppInfoSuccess + * @param list {array} Contains Objects of apps from evalInstalledApps listener. + * @static + **/ +function onAppInfoSuccess(list) { + "use strict"; + var i = 0; + try { + index = 0; + var applications = []; + + applications.push({ + id: "http://com.intel.tizen/intelPocSettings", + appName: "Settings", + show: true, + iconPath: "./css/car/components/settings/icon.png" + }); + + list.sort(function(x, y) { + return x.appName > y.appName ? 1 : -1; + }); + + for (i = 0; i < list.length; i++) { + + var app = list[i]; + var newApp = { + id: app.id, + appName: app.name, + style: "background-image: url('file://" + app.iconPath + "');", + iconPath: app.iconPath, + css: "app_" + app.id.replace(/\./g, "_").replace(/\ /g, "_"), + installed: true + }; + applications.push(newApp); + } + var equals = applications.length === appList.length; + + if (equals) { + for (var j = 0; j < applications.length; j++) { + equals = applications[j].id === appList[j].id ? equals : false; + equals = applications[j].appName === appList[j].appName ? equals : false; + equals = applications[j].css === appList[j].css ? equals : false; + equals = applications[j].iconPath === appList[j].iconPath ? equals : false; + } + } + + if (!equals) { + appList = []; + $('#homeScrAppGridView .homeScrAppGridFrame').remove(); + + for (i = 0; i < applications.length; i++) { + insertAppFrame(applications[i]); + } + } + } catch (exc) { + console.log(exc.message); + } finally { + //Workaround due to https://bugs.tizen.org/jira/browse/TIVI-2018 + window.setTimeout(function() { + evalInstalledApps(); + }, 1000); + + if (null === listenerID) { + listenerID = tizen.application.addAppInfoEventListener({ + oninstalled: function(appInfo) { + console.log('The application ' + appInfo.name + ' is installed'); + evalInstalledApps(); + }, + onupdated: function(appInfo) { + console.log('The application ' + appInfo.name + ' is updated'); + evalInstalledApps(); + }, + onuninstalled: function(appid) { + console.log('The application ' + appid + ' is uninstalled'); + evalInstalledApps(); + } + }); + } + } +} + +/** + * Listener for installed apps events. + * @method evalInstalledApps + * @static + **/ +evalInstalledApps = function() { + "use strict"; + if (typeof tizen !== 'undefined') { + try { + // get the installed applications list + tizen.application.getAppsInfo(onAppInfoSuccess, function(err) { + // Workaround due to https://bugs.tizen.org/jira/browse/TIVI-2018 + window.setTimeout(function() { + evalInstalledApps(); + }, 1000); + + onError(err); + }); + } catch (exc) { + console.error(exc.message); + } + } +}; diff --git a/js/keyControl.js b/js/keyControl.js new file mode 100644 index 0000000..220d76f --- /dev/null +++ b/js/keyControl.js @@ -0,0 +1,154 @@ +/*global areasDefinitions, onFrameClick */ + +/** + * @module HomescreenApplication + **/ +/** + * Allows to select radial menu items and start selected application by keyboard. Following keys are intecepted: + * * A - Previous application + * * D - Next application + * * Enter - Launch application + * * 1 - 7 - Launch application 1-7 from radial menu starting from 12 o'clock application in clockwise direction + * @class keyControl + * @static + **/ +var KeyControl = { + /** + * Define selected sector (pie, app). + * @property homeScreenselectedIndex + * @type int + * @default 1 + **/ + homeScreenselectedIndex: 1, + /** + * Indicate if some sector is selected. + * @property sectionHighlited + * @type bool + * @default false + **/ + sectionHighlited: false, + /** + * Timer for reset highlited pie after predefined timer interval in timerInteval property. + * @property timer + * @type Object + * @default null + **/ + timer: null, + /** + * Define interval for unhighlight and unselect selected sector if keyboard is inactive more than defined interval. + * @property timerIterval + * @type int + * @default 5000 (ms) + **/ + timerIterval: 5000, + /** + * Provides changing of selected sector, highlights it and unhighlight previous higlighted. Also provides setting of timer. + * @method changeIndex + * @param direction {string} Could be 'prev', 'next' for change highigting for prev or next sector and 'null' only for unhighligting sector + **/ + changeIndex: function (direction) { + "use strict"; + var i = 0; + for (i = 0; i < areasDefinitions.length; i++) { + if (areasDefinitions[i].sectorId !== null) { + $('.sector' + areasDefinitions[i].sectorId).removeClass('selected'); + } + } + if (direction !== null) { + if (KeyControl.sectionHighlited) { + clearTimeout(KeyControl.timer); + KeyControl.timer = setTimeout(function() { KeyControl.changeIndex(); }, KeyControl.timerIterval); + switch (direction) { + case 'prev': + KeyControl.prevIndex(); + break; + case 'next': + KeyControl.nextIndex(); + break; + } + $('.sector' + KeyControl.homeScreenselectedIndex).addClass('selected'); + } else { + KeyControl.sectionHighlited = true; + $('.sector' + KeyControl.homeScreenselectedIndex).addClass('selected'); + KeyControl.timer = setTimeout(function() { KeyControl.changeIndex(); }, KeyControl.timerIterval); + } + } else { + KeyControl.sectionHighlited = false; + } + }, + /** + * Provides changing index of selected sector to next one in circle. + * @method nextIndex + * **/ + nextIndex: function () { + "use strict"; + KeyControl.homeScreenselectedIndex++; + if (KeyControl.homeScreenselectedIndex > 7) { + KeyControl.homeScreenselectedIndex = 1; + } + }, + /** + * Provides changing index of selected sector to previous one in circle. + * @method prevIndex + **/ + prevIndex: function () { + "use strict"; + KeyControl.homeScreenselectedIndex--; + if (KeyControl.homeScreenselectedIndex < 1) { + KeyControl.homeScreenselectedIndex = 7; + } + }, + /** + * Provides start of app by confirmation of selected sector with keyboard. + * @method prevIndex + **/ + confirmed: function () { + "use strict"; + if (KeyControl.sectionHighlited) { + switch (KeyControl.homeScreenselectedIndex) { + case 1: + onFrameClick(areasDefinitions[1]); + break;//maps + case 2: + onFrameClick(areasDefinitions[2]); + break;//maps + case 3: + onFrameClick(areasDefinitions[3]); + break;//musicPlayer + case 4: + onFrameClick(areasDefinitions[4]); + break;//sdl + case 5: + onFrameClick(areasDefinitions[5]); + break;//phone + case 6: + onFrameClick(areasDefinitions[6]); + break;//store + case 7: + onFrameClick(areasDefinitions[7]); + break;//dashboard + } + } + } +}; + +/** + * Provides catching and sorting of keyboard events. + * @method $(document).keypress + * @param callback {function} For calling functions on specific key press. + * @static + **/ +$(document).keypress(function (event) { + "use strict"; + switch (event.keyCode) { + case 97: + KeyControl.changeIndex('prev'); // a + break; + case 100: + KeyControl.changeIndex('next'); // d + break; + case 13: + KeyControl.confirmed(); + break; + } +}); diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..1c397c6 --- /dev/null +++ b/js/main.js @@ -0,0 +1,236 @@ +/*global Bootstrap, evalInstalledApps, appList:true, wrapper, viewPort */ + +/** + * Home screen application is launched after system is completely booted up and provides access to available applications as well as to selected information from + * car CAN bus (via {{#crossLink "Bootstrap/carIndicator:property"}}{{/crossLink}} object). Hover and click on elements in images below to navigate to components of Home screen application. + * + * + * + * top bar icons + * clock + * bottom panel + * Action catcher + * Settings + * + * @module HomescreenApplication + * @main HomescreenApplication + **/ + +/** + * Provides inicialization of application and startup animations. + * @class main + * @static + **/ + +var isPc = true, + audioVolumeService, + audioObj; + +var bootstrap; + +if (typeof tizen !== 'undefined') { + isPc = false; +} +//main +if (!window.intelIVI) { + window.intelIVI = {}; +} +var animationOngoing = false; + +/** + * Initialize plugins, register events for Homescreen app. + * @method init + * @static + **/ +var init = function() { + "use strict"; + + bootstrap = new Bootstrap(function(status) { + $('#dateTime').ClockPlugin('init', 60); + $('#dateTime').ClockPlugin('startTimer'); + + $('#bottomPanel').bottomPanel('init', true); + $("#topBarIcons").topBarIconsPlugin('init', 'dashboard'); + + evalInstalledApps(); + window.intelIVI.main.init(); + + bootstrap.carIndicator.addListener({ + onBatteryStatusChanged: function(newValue) { + var newBatteryStatus = newValue.toString() + "%"; + $('#batteryStatus').html(newBatteryStatus); + var newBatteryRange = "~" + Math.round(((newValue / 100) * bootstrap.carIndicator.status.fullBatteryRange)).toString() + " MI"; + $('#batteryRange').html(newBatteryRange); + }, + onOutsideTempChanged: function(newValue) { + $("#weatherStatus").html(newValue + "°C"); + }, + onInsideTempChanged: function(newValue) { + $("#fanStatus").html(newValue + "°C"); + }, + onSpeedChanged: function(newValue) { + $("#homeScrSpeed").html(newValue); + }, + onFullBatteryRange: function() { + + } + }); + bootstrap.themeEngine.addStatusListener(function() { + appList = []; + evalInstalledApps(); + }); + + }); + + /* fixed webkit animation bugs */ + window.setTimeout(function() { + window.setInterval(function() { + $("#innerRing").removeClass("rollLeft"); + $("#outerRing").removeClass("rollRight"); + window.setTimeout(function() { + $("#innerRing").addClass("rollLeft"); + $("#outerRing").addClass("rollRight"); + }, 50); + + }, 10000); + }, 1000); + window.setTimeout(function() { + window.setInterval(function() { + $('#wrapper .step9').removeClass('liveBg'); + window.setTimeout(function() { + $('#wrapper .step9').addClass('liveBg'); + }, 50); + + }, 7000); + }, 500); + /* end fixed webkit animation bugs */ +}; + +$(function() { + "use strict"; + // debug mode - window.setTimeout("init()", 20000); + init(); +}); + +/** + * Store state of audio plugin before application closing. + * @method window.onbeforeunload + * @static + **/ +window.onbeforeunload = function() { + "use strict"; + $('#audioPlayer').audioAPI('setStatusAll'); +}; + +/** + * Provides inicialization of application content and starts animation. + * @class intelIVI.main + * @static + **/ +window.intelIVI.main = (window.intelIVI.main || { + + /** + * Calls initialization of content. + * @method init + **/ + + init: function() { + "use strict"; + var viewPort = window.intelIVI.corpus.init(); + document.body.appendChild(viewPort); + window.intelIVI.utility.startAnimation(1); + }, + /** + * Provides reloading of content. + * @method counterEnd + **/ + + counterEnd: function() { + "use strict"; + window.location.reload(); + } +}); + +function untouchable(param) { + "use strict"; + + setTimeout(function() { + animationOngoing = false; + }, param); +} + +/** + * Provides initialization of animated application components. + * @class intelIVI.utility + * @static + **/ +window.intelIVI.utility = (window.intelIVI.utility || { + /** + * Starts initial animations on Homescreen. + * @method startAnimation + **/ + + startAnimation: function(index) { + "use strict"; + $('#wrapper .step' + (index - 2)).css('opacity', '0'); + $('#wrapper .step' + index).css('opacity', '0.4'); + if (index === 10) { + $('#indicator').addClass('showI'); + window.intelIVI.utility.showContent(1); + return; + } + var time = 40; + setTimeout(function() { + index++; + window.intelIVI.utility.startAnimation(index); + }, time); + }, + /** + * Shows animated content pies one by one. + * @method showContent + **/ + + showContent: function(index) { + "use strict"; + $('#content_ul .sector' + index).css('opacity', '1'); + if (index === 4) { + $('#bottomPanel').addClass('showBP'); + $('#dateTime').addClass('showDT'); + $('#topBarIcons').addClass('showTBI'); + } + if (index === 8) { + $('#wrapper .step9').css('opacity', '0.4'); + $('#wrapper .step9').addClass('liveBg'); + return; + } + setTimeout(function() { + index++; + window.intelIVI.utility.showContent(index); + }, 80); + } +}); + +/** + * Provides initialization of pie. + * @class intelIVI.corpus + * @static + **/ +window.intelIVI.corpus = (window.intelIVI.corpus || { + /** + * Create HTML elements of pie. + * @method init + **/ + init: function() { + "use strict"; + var i; + for (i = 1; i < 10; i++) { + var viewPortBg = document.createElement('div'); + viewPortBg.className = "backGround step" + i; + /*global wrapper*/ + wrapper.appendChild(viewPortBg); + } + /* global viewPort*/ + wrapper.appendChild(viewPort); + return wrapper; + } +}); \ No newline at end of file diff --git a/js/predefAppModel.js b/js/predefAppModel.js new file mode 100644 index 0000000..c4ab6be --- /dev/null +++ b/js/predefAppModel.js @@ -0,0 +1,152 @@ +/** + * Contains area definitions for applications radial menu and apps definitions. + * @class predefAppModel + * @module HomescreenApplication + **/ +/** + * Define center point of radial menu + * @property centerPoint + * @type Object + * @default {x: 360, y: 675} + * @static + **/ +var centerPoint = {x: 360, y: 675}; + +/** + * Definitions of radial pie. + * Possible properties in contained Objects: + * name, id, action, sectorID, iconPath, shape, sc, lc, sa, la + * @property areasDefinitions + * @type Array + **/ +/** + * Name of an application + * @property name + * @type string + **/ +/** + * Id of an application + * @property id + * @type string + **/ +/** + * Action after click to defined area. + * @property action + * @type function + **/ +/** + * Sector id in context to homescreen pie sectors + * @property sectorID + * @type int + **/ +/** + * Path to app icon + * @property iconPath + * @type string + **/ +/** + * Define shape of clicking area + * @property shape + * @type string + **/ +/** + * Small circle - define distance from center, where pie sector starts (influence only if shape is pieWithoutCenter) + * @property sc + * @type int + **/ +/** + * Large circle - define distance from center, where pie sector ends + * @property lc + * @type int + **/ +/** + * Start angle - define starting ange of pie sector. Angle is based on zero angle(zero angle has a line, which is horizontal and starts in the center point) (influence only if shape is pieWithoutCenter). + * @property sa + * @type int + **/ +/** + * End angle - define ending angle of pie sector (influence only if shape is pieWithoutCenter). + * @property la + * @type int + **/ +var areasDefinitions = [ { + name: 'center', + id: null, + action: function () { + "use strict"; + $("#homeScrAppGridView").fadeIn(); + }, + sectorId: 0, + lc: 70, + shape: 'cenerCircle' +}, { + name: 'navigation', + id: 'intelPoc11.navigation', + iconPath: '../navigation/icon.png', + sectorId: 1, + sc: 104, + lc: 497, + sa: 61, + la: 117, + shape: 'pieWithoutCenter' +}, { + name: "airconditioning", + id: 'intelPoc16.HVAC', + iconPath: '../dashboard/icon.png', + sectorId: 2, + sc: 94, //small circle border + lc: 437, //large circle border + sa: 11, //smaller angle based on horizontal line which starts in center and continue right (right border) + la: 55, //larger angle (left border) + shape: 'pieWithoutCenter' +}, { + name: 'MultimediaPlayer', + id: 'intelPoc14.MultimediaPlayer', + iconPath: '../musicplayer/icon.png', + sectorId: 3, + sc: 80, + lc: 392, + sa: 321, + la: 359.9, + shape: 'pieWithoutCenter' +}, { + name: 'SmartDeviceLink', + id: 'intelPoc17.SDL', + iconPath: '../smartdevicelink/icon.png', + sectorId: 4, + sc: 80, + lc: 384, + sa: 268, + la: 306, + shape: 'pieWithoutCenter' +}, { + name: 'phone', + id: 'intelPoc15.phone', + iconPath: '../phone/icon.png', + sectorId: 5, + sc: 82, + lc: 364, + sa: 217, + la: 264, + shape: 'pieWithoutCenter' +}, { + name: 'store', + id: 'intelPoc13.Store', + iconPath: '../store/icon.png', + sectorId: 6, + sc: 82, + lc: 364, + sa: 170, + la: 212, + shape: 'pieWithoutCenter' +}, { + name: 'dashboard', + id: 'intelPoc12.Dashboard', + iconPath: '../dashboard/icon.png', + sectorId: 7, + sc: 105, + lc: 433, + sa: 126, + la: 160, + shape: 'pieWithoutCenter' +} ]; \ No newline at end of file diff --git a/packaging/html5-ui-homescreen.changes b/packaging/html5-ui-homescreen.changes new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/packaging/html5-ui-homescreen.changes @@ -0,0 +1 @@ + diff --git a/packaging/html5-ui-homescreen.spec b/packaging/html5-ui-homescreen.spec new file mode 100644 index 0000000..c18cd90 --- /dev/null +++ b/packaging/html5-ui-homescreen.spec @@ -0,0 +1,36 @@ +Name: html5_UI_Homescreen +Summary: A proof of concept pure html5 UI +Version: 0.0.1 +Release: 1 +Group: Applications/System +License: Apache 2.0 +URL: http://www.tizen.org +Source0: %{name}-%{version}.tar.bz2 +BuildRequires: zip +BuildRequires: html5_UI_Common +Requires: wrt-installer +Requires: wrt-plugins-ivi + +%description +A proof of concept pure html5 UI + +%prep +%setup -q -n %{name}-%{version} + +%build + +make wgtPkg + +%install +rm -rf %{buildroot} +%make_install + +%post + wrt-installer -i /opt/usr/apps/.preinstallWidgets/html5UIHomescreen.wgt; + +%postun + wrt-installer -un html5POC05.Homescreen + +%files +%defattr(-,root,root,-) +/opt/usr/apps/.preinstallWidgets/html5UIHomescreen.wgt -- 2.7.4