From 9eca3df17230fe1331e20fb4fb49dcbe87a74ea8 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Sat, 20 Oct 2012 16:18:50 -0700 Subject: [PATCH] Update to map view v2. --- MyTracks/.classpath | 2 +- MyTracks/.project | 2 +- MyTracks/AndroidManifest.xml | 14 +- MyTracks/proguard.cfg | 2 + MyTracks/project.properties | 1 + MyTracks/res/drawable-hdpi/menu_map_layer.png | Bin 0 -> 1865 bytes .../res/drawable-hdpi/menu_satellite_mode.png | Bin 69408 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_0.png | Bin 671 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_100.png | Bin 680 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_120.png | Bin 738 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_140.png | Bin 783 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_160.png | Bin 746 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_20.png | Bin 703 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_200.png | Bin 671 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_220.png | Bin 810 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_240.png | Bin 698 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_260.png | Bin 694 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_280.png | Bin 725 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_300.png | Bin 805 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_340.png | Bin 689 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_40.png | Bin 760 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_60.png | Bin 707 -> 0 bytes MyTracks/res/drawable-mdpi/arrow_80.png | Bin 743 -> 0 bytes MyTracks/res/drawable-mdpi/menu_map_layer.png | Bin 0 -> 1157 bytes .../res/drawable-mdpi/menu_satellite_mode.png | Bin 68309 -> 0 bytes .../res/drawable-xhdpi/menu_map_layer.png | Bin 0 -> 2730 bytes .../drawable-xhdpi/menu_satellite_mode.png | Bin 59872 -> 0 bytes MyTracks/res/layout/map.xml | 12 +- MyTracks/res/menu/map.xml | 18 +- MyTracks/res/values/colors.xml | 1 - MyTracks/res/values/strings.xml | 27 +- .../android/apps/mytracks/ChartView.java | 2 +- .../android/apps/mytracks/Constants.java | 4 - .../android/apps/mytracks/MapOverlay.java | 501 +++---------- .../apps/mytracks/TrackDetailActivity.java | 68 +- .../apps/mytracks/fragments/MapFragment.java | 594 ---------------- .../fragments/MyTracksMapFragment.java | 667 ++++++++++++++++++ .../maps/DynamicSpeedTrackPathPainter.java | 139 ---- .../mytracks/maps/MultiColorTrackPath.java | 114 +++ .../mytracks/maps/SingleColorTrackPath.java | 78 ++ .../maps/SingleColorTrackPathPainter.java | 142 ---- .../{TrackPathPainter.java => TrackPath.java} | 43 +- ...nterFactory.java => TrackPathFactory.java} | 21 +- .../apps/mytracks/maps/TrackPathUtils.java | 43 +- MyTracksLib/.classpath | 2 +- .../content/MyTracksProviderUtils.java | 5 + .../content/MyTracksProviderUtilsImpl.java | 78 +- MyTracksTest/.classpath | 4 +- .../android/apps/mytracks/MapOverlayTest.java | 192 ----- .../apps/mytracks/MockMyTracksOverlay.java | 49 -- .../android/apps/mytracks/MockPath.java | 67 -- .../android/apps/mytracks/MockProjection.java | 47 -- .../apps/mytracks/endtoendtest/ViewsTest.java | 6 +- .../DynamicSpeedTrackPathPainterTest.java | 168 ----- .../maps/SingleColorTrackPathPainterTest.java | 128 ---- .../TrackPathDescriptorDynamicSpeedTest.java | 51 -- .../TrackPathDescriptorFixedSpeedTest.java | 50 -- .../maps/TrackPathPainterFactoryTest.java | 71 -- .../maps/TrackPathPainterSingleColorTest.java | 50 -- .../maps/TrackPathPainterTestCase.java | 76 -- google_play_services_lib/.classpath | 8 + google_play_services_lib/.project | 33 + google_play_services_lib/AndroidManifest.xml | 9 + google_play_services_lib/README.txt | 14 + .../libs/google-play-services.jar | Bin 0 -> 304325 bytes .../libs/google-play-services.jar.properties | 1 + google_play_services_lib/project.properties | 15 + .../res/values/maps_attrs.xml | 25 + .../res/values/strings.xml | 47 ++ google_play_services_lib/src/.readme | 1 + 70 files changed, 1291 insertions(+), 2401 deletions(-) create mode 100755 MyTracks/res/drawable-hdpi/menu_map_layer.png delete mode 100644 MyTracks/res/drawable-hdpi/menu_satellite_mode.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_0.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_100.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_120.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_140.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_160.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_20.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_200.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_220.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_240.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_260.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_280.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_300.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_340.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_40.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_60.png delete mode 100644 MyTracks/res/drawable-mdpi/arrow_80.png create mode 100755 MyTracks/res/drawable-mdpi/menu_map_layer.png delete mode 100644 MyTracks/res/drawable-mdpi/menu_satellite_mode.png create mode 100755 MyTracks/res/drawable-xhdpi/menu_map_layer.png delete mode 100644 MyTracks/res/drawable-xhdpi/menu_satellite_mode.png delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/fragments/MyTracksMapFragment.java delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathPainter.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java create mode 100644 MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPath.java delete mode 100644 MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainter.java rename MyTracks/src/com/google/android/apps/mytracks/maps/{TrackPathPainter.java => TrackPath.java} (50%) rename MyTracks/src/com/google/android/apps/mytracks/maps/{TrackPathPainterFactory.java => TrackPathFactory.java} (65%) delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/MapOverlayTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/MockMyTracksOverlay.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/MockPath.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/MockProjection.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathPainterTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainterTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorDynamicSpeedTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorFixedSpeedTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactoryTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterSingleColorTest.java delete mode 100644 MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterTestCase.java create mode 100644 google_play_services_lib/.classpath create mode 100755 google_play_services_lib/.project create mode 100755 google_play_services_lib/AndroidManifest.xml create mode 100644 google_play_services_lib/README.txt create mode 100644 google_play_services_lib/libs/google-play-services.jar create mode 100644 google_play_services_lib/libs/google-play-services.jar.properties create mode 100755 google_play_services_lib/project.properties create mode 100644 google_play_services_lib/res/values/maps_attrs.xml create mode 100644 google_play_services_lib/res/values/strings.xml create mode 100644 google_play_services_lib/src/.readme diff --git a/MyTracks/.classpath b/MyTracks/.classpath index 0ca188f97..d3bb07b44 100644 --- a/MyTracks/.classpath +++ b/MyTracks/.classpath @@ -1,8 +1,8 @@ + - diff --git a/MyTracks/.project b/MyTracks/.project index cf54ef5ba..81b2d0da6 100644 --- a/MyTracks/.project +++ b/MyTracks/.project @@ -3,7 +3,7 @@ MyTracks - MyTracksLib + MyTracks diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml index a584d2ae2..6898ef5a4 100755 --- a/MyTracks/AndroidManifest.xml +++ b/MyTracks/AndroidManifest.xml @@ -16,8 +16,8 @@ limitations under the License. --> @@ -41,6 +41,7 @@ limitations under the License. + @@ -79,9 +80,12 @@ limitations under the License. android:permissionGroup="android.permission-group.LOCATION" android:protectionLevel="dangerous" /> + @@ -130,6 +134,10 @@ limitations under the License. + + p=flB>j8v2z_ zFY%oTTy!fJZ6h%wW)FnTKKpN22KiqUC;(7ml=OkDu|`d2+xpd&b# zzqsNjE9R8DG>}x<^{YryQ&2$vU~}`%eZT+E{*=+lvHaMn!Ke*dDFkRL;Lk_d-Rs`p zA4`zDw)4*-sm12$jz4an^#txPzHE#O_@O^K^8E1za-Uwl=e@qc)We672ub!0?5$t( z9B%jIxjZQZ%ra2Ww1cGBmL;Q&zeZz=O;X4UP4||;!(p}$bN3{@+U%-D`zr^Ot}7W+ zkpQJZvjr-Wc&Vkz4yYcEuy7urTp7k<^)u{Q7CA8JI6SIPv?)UF?9Z;pde3ASDfW^L zXnJ7c^t9D#8}={nI&PAZl0;~cydqCsz;1m*#titN<_w!TEWHCN=<%gp(&Bu)XvM96 z>f90y8#BEj4Iubm`YIrFG@IXOudFw!jk=PK{=q@%99e;(XJlc@${#cyN?7FiOV1wB zYxJW}bVn>_ufxyXB58BW6*Lv?dZX^ipJItVNzZ~ig+)_c$UpJA6AVj)WM|LngQ!hA z{%r4A`+5?gC1j`lKqqQe?7bKz6Ve{8-E!A$@Ni^;QXLZ?`O#k^140T-u|-I>UwF6y zwK**>M|&iBCN{~+fr1uPZTpxOY1(3wA2rRq9bTrm`!toOKZG~RTDSK*2AEhD`JN4?7n2=kI!ZY@v9*v=0RjtnVq{YoqtzK=;Uy>byuB%xoPFd5^edF=<4KKI1 z#jb8W5vswV`?`)fZ4gt0q*yynKK8-co}@Krtb01}LCI@bkD*j6KpRNuJA6KQd3T?@t9+Cc`6l4ef?dDt?H>xN zLvpTn%|X=ok3HAZWjl6}A0?)SQN6KoFrHMiKRSO4N{hYAN19#^C|A&5p*@40lUuf4 z9^mzD__TXv18M>%UX1n%`I{@+kh($6?8>dbVG7wVRUJ4ZXi@?ZDjyCFETbS zF)_VBYVrU803~!qSaf7zbY(hYa%Ew3WdJfTF)=MMFfA}MR53L=FgH3eH!UzXIxsK+ zffy42001R)MObuXVRU6WZEs|0W_bWIFflPLF)%GKGgL7(IxsRiF*z+TH##sd#>x=3 z0000SbVXQnQ*UN;cVTj606}DLVr3vkX>w(EZ*psMAVX6%akb+%00000NkvXXu0mjf DL>GFt literal 0 HcmV?d00001 diff --git a/MyTracks/res/drawable-hdpi/menu_satellite_mode.png b/MyTracks/res/drawable-hdpi/menu_satellite_mode.png deleted file mode 100644 index 9cd62b50f9205c86c182775c07daab1c1c0a54ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69408 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 SzV=rE)m>#xr80%bLH_{r(LoUa diff --git a/MyTracks/res/drawable-mdpi/arrow_0.png b/MyTracks/res/drawable-mdpi/arrow_0.png deleted file mode 100644 index b49da1aa743e3445316b749f377d16f0b314a812..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 671 zcmV;Q0$}}#P)0tkR1g7Tm->` zRhhb3*;w0%)@^n5;2$=}Y?4OPb~a7BwKmDmLz=WW(JVH-*zYNM$U~m*hbIpKx^Wn7 z=_Uz@2jq6X-|a*_pG0A%;CkUcH3S?i}pQB#*h{HlioM}Hk$)jb0JC*rN!rQ?;BUrX46U$J%I*yV$xe` zQpFI{c=J2_x{9H_x@&HqD`vw0E9Nn{ugR?}Ovk-z++c>B1#}&KK_Jj?4pkFRyrFJo z#@dQKK763DyI;>j6f)!OZ!FK*%qZmS;lcgZ!c>$No<-W<_!nj?eLGvYxvBP2lPZQ- z{mT|+E1`qi=XTauj{TO|%I?u7w=(aH+wY8d2@JrG&jL0?V3h;vHDK2sU~~-VZ|v@R z6{vAf+e2+JYf2TL?kpqyNQasS3=Ig50JRFBNWj1_z!<=ibB?(G-dK+3j7<$IHx}_d zZ88Ur9!BrE3ov$+pmVp;v$2kWA#*XRtU`G+8A0oT?&igYlET{EcaRf2{Kt=>_xweS zoH~0Y91dTzp26kLzx`KHSqur6$LQ6W6EuHsf-;#u6G~IpiNAD+ zKAsMe$U8qwwxlkkX*qhI1Yvu>H`0q+^gbRXbkog$m7iJD7&yzh4s8Gc002ovPDHLk FV1k61GPeK# diff --git a/MyTracks/res/drawable-mdpi/arrow_100.png b/MyTracks/res/drawable-mdpi/arrow_100.png deleted file mode 100644 index ec1c32c04e704af07508827a922b01db08e71bea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 680 zcmV;Z0$2TsP)q znUC^cg|ebcb@Haft`A5ml{(evthXh?V!Bh3PjjN*COI78Ti0ohbaziQy5rfkH2O#+ zay6%{NwV*fq+c)K37z=oy&Wf(_%o5*7_5$?087u47|~JfL4u+F){7-ECX#yzxlvU8 z54A6IB*F`9SQY%|`Z;yBA;Nb2tY9p0w}VH=j}v*b9N+&u<@iG$<_AD@q`U@9tZ=`cA5*5(5~qX(^{;)D~x{rsFtf3YE{G z8F6sxL-f~eX>C*d8AQQ?5UnA#DM>512;$;W7bjf>!9ftLgNvi6gNs-P z2fK)^h=@hSMHE4$F}4;bn2oNZ9p zx|>AsB%wX~D_qt;NtePWgu^a_At*n*k0q0#ln3Pt$O&^S=gf}&k!%7a2^{O%@mTG6 zx6M?a>c#QXqSck8lw2fnBZB;Nmi#B(OyzHAYH`!n+e1evNLz0oE^lDiy1w&JO*PJi z&kDCbL27K8_{b#1RH0Jhw9(@4rlUWEClJKd6~wmDE7kHerC&dYA)!CNPW0MKl(%Ul z!0p?Cr!PcDsGsKT0qk3LO01BI0P6G|5gR&(R!~Brkd>4)EooEJ3EKQK|KR*@x;eMs(_vOfh;ueiesAyl@;smS`|!MfU{jk~ zLH_oqGBf<6a>K#i+Fa?ln=j$U>%s|=(H2nwH-^TSj0`yMZ5Wuz2GHwaZieyK4=!(< zV~-uBQz)g-y{+1qQj4=%6akc8few^=5J%M=i9C4rb1?AdG)7Z!POE(sS;sQgDoS$) z1N$5#B>7PaOl}85PtJ?DtRXvBYXUn;1@BkzEx?=SAi~rT7@`$1$#E#X4o$y>g@iP8 ziHC_!$wDQjt964lTb?NV&}j!p+uzG%QHLQu4wM2BBmjP&usEkN@7ank)k0!n`7)Lv zWVd}a!en)D(A&Li%@C!*%oI~228JC9@07;EoJN2s45v=A?Z`QxobbT2jluGajeys) zyb=L$Hi4_v|EG*mnHiXhu9B8*QQWThCtpZlndlPwZv|6!wJ%$n=!dTN;9J^@en$ev z3m4g$lUr&wo3E^tGc?Cz?}AYOBDhBZ@Xdpx9wrBunnka}c)~(#UNQUAG8Eice^+a^ z0#SGoM;mn5aoNFXh2LiOWOV>DLIU91buIg9@YK8H~h(EwY^AJ5X;F(>z1Y%<_ z78Vh2De6y2Nl9MI30ZZA+V|_Cd_4@k>ZIqP4b88i0Ao%z(FMgEJesBW-;(Lx68Uyo z#>_R@KCrNYVeQ~*5dn5MPOLv9LKFbm7K9e-;Hj1?*Upm|DLZs!bKO-%f z+okb%y0p~2h&&KL>#vv2`~%Wdc2k_r@O~L#Y0g$B9kwsRrZyF(egRoOAXJy8Hemn& N002ovPDHLkV1lCsUBv(Z diff --git a/MyTracks/res/drawable-mdpi/arrow_160.png b/MyTracks/res/drawable-mdpi/arrow_160.png deleted file mode 100644 index 1fa5a7f4685f2761183850357dedc71c71dd8e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmVD}q@*U2(V`EMC@H8UDxxSVG9)Z)qZrwy zw$VS(E~pj-fo>$qh|G#U929lPX2uzFnr7zSnR{B?F=k<*&Ic`gR)=#g_jjJ>zURFM zmbI+^L9_Sw$xOY=vd{_nqoy76??$(({o=x1zeR#E7Gi>Iqz<`5ih6{>==&VhaG z1)lB(nHw+w0>xE|uvxH=4lsGM>7Q^JbU!tGU&8aP*%r*yLI7A-7NM3D5}gW>Khn>) zJ3Hm-hCL*renixZj0LgAyu<@R#@p)ovAdJ>z(OQ566D(>Py`9XLa{c881-WjW_XE6 zobRs#O!oOOnvYT5*y4aoX@K=`O5l=$;<-F^&~;=qM!>Bx{@hP!B0}D_I*N~9#p!hV z({n71l=0lBH6Rj!uOHDPf=>@5@fcXko!HxNQCV3j(l0I<|Lc;GfT2ew)KZX-a-)|m z+nPjXsyZG`ZXngMsn31zD+mHm+B>M--zqYAoQ!#AJ;UG~F~>^lQOcT69?Wn9iSWmA z(s9TK?tvt9YYi(-bl`Hi9%i9|q!f7+hM$w)e21YNN<}=aR9ca|0;_?;e95 z1EDG?ojp`<-zBosG8NUVv9QL-OB+9@&1v=W6>3{fiR|@i!*m=P3o|ur9xe4y3#A9n z-p%e$!ia;E_+EK25|X@4RTQ1RPDMpUTb98(+Dwe#`yf_F3F@_8sy0`Pr55MHTc)8g z^C5s1Hc)PNQ?q05lA(*c`WR-+%J~b_9XXd4bWvb^IzV`R1CGNNpXKz18S1|$hu#cI cmbFCv1|(DPJM7u zOb*IY*3HfCiEJ!%o|YbV)pRr;eC5CM~5O*s;<9yF18^;r6#I0AsRvkc7;kYB}VYh*r? zZ1z@hE~ngW8UC!G!d{)%vf76Hs0YngFr7jMLV@{LFZLi4}*6 z+4#AD0o!VdQ=i7kww`!eV#Q+JnSc$EqS=BYeSBy;Crbx5!)px`4dxbLehR*RROWLX zmF>h$#va|;5N>Q*u~5ZlM&R8OFfE8yt?hZhhENR5yBC-q>XlV{4~nfR)|IPeK{AsH z@TMDF7xYL7O;b=QA-4z%)37wP$V&V)U*^&kTT`s5W3-%EVmRTbUg~PmF5h6!p`#)_ zmTWFe47TKRIo$Cfa=ARK>9=Gbw$E;8kl)@P6TMP)*2~oSTA8Rq_Ux;cFSm z6qX%k2jI{ObF6W)V`$-;1!6(>UQVw?j4YF?Ax6U{gc#9~u*v4N*`1l)dn{%RiBU1`LyP<{FpqQR=fCGa=UmvtCjNIU zJie@-hhFQS#yhnjwI8qR*GDf{n9I>HVw<_8{+D;mzL`Y*LSu++=8j5fl$lqb2(jZ+#b**U?Om7eSfX-M ztYgdcR?H^gx#;TtW^Mh5-R)gsdmdCOS15%Jo{7Hs**Xu2`2N#UJQSHNW`xu>*=QO6 z{d6+NZ%eW52#C002ovPDHLk FV1nJ)HXZ-~ diff --git a/MyTracks/res/drawable-mdpi/arrow_220.png b/MyTracks/res/drawable-mdpi/arrow_220.png deleted file mode 100644 index c83a3453237782ce02e41c226aed7e3a1cb9af11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 810 zcmV+_1J(SAP))NJ&_E^n5D0Q6``EUmn@S|0EQ64wAT#jV12-ysz z27kzBl928Pyk4?r?y+v;<|Dyi@Y=kI0j8f{7W3gbw33PPy3uqWUay7QHh+?wbob_kSUc;wBbmKkocw81-)vgV@R84C_=`H8M?L!3e+6$63H5I+Z)j2g zR`*qzx_g?H_2bM~PsM}b%acJt+LCG9K`giN{q9Y_jLqppuMm{t6N{myRBzEJB ogu`K>(kMhbWxfN#GX5WY2j)yIg?ktjb^rhX07*qoM6N<$f`@{5lK=n! diff --git a/MyTracks/res/drawable-mdpi/arrow_240.png b/MyTracks/res/drawable-mdpi/arrow_240.png deleted file mode 100644 index 3f4b6d34638047d1935684d3722cf646769347da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 698 zcmV;r0!96aP)HRoZr7v8_WfF6n_YH`6->pPphiLQb>mF*ic_36T`}wSc@j5 z>=K^RGDe_`(FA$`Jo@H+cG;DSfE{Ybxb}k91IN^k#Ve8fl6gLc#NVOi7LaYKrZfn) zfYA&_6Zis9v0y3do?31@MDvYEM^k%uzUmt1(le>GnTeiKB8r`OizgjN`<`LD4$?f} z^}9)EI#}H&*newMRW06%uXCSdJuyLP`Zf0KB-(r&kD1$)jM7}WF9_C=UU~*2>Yv41 zkxjlAYx*Tt;tfu63eRF3t&m4~z#oG0sR0gN9aXz7-ik~-D(f?^C?}#wY6|bkGaNoY gSTkRP1`X=Z519S#h^RK;o&W#<07*qoM6N<$f=T2%IRF3v diff --git a/MyTracks/res/drawable-mdpi/arrow_260.png b/MyTracks/res/drawable-mdpi/arrow_260.png deleted file mode 100644 index 192a0ab8d43817b5ac2d09d8e1012a34a5639560..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 694 zcmV;n0!jUeP)K4(#LzkdampVsy2s#*% z5LU;^3OYn|C`!7Bhd?5|h-MNgo93U&-M72$TlYuFO~SBpxIzTQv=AP;S9oyByiw?CZV2^pwT^I&Jfb@V|KB?srl=OFyxl*N)eK*yHf-&3LkP>tQ z{Dxa237QAQa-zMNX^fZWu{s-7YG~~dlm!meIaR+KLN(wxD=*MM(|$SN|2~TT_$0}$ z{c7<;pITRQIqxqk;Y>j$4bL9^2LCDLKtAVY1L0n7#g1c~xP~vZOZ*jBeY~s4_Pd+D zR}lZSvg2*AGq9KhYZk0ISjvJCgpwc_<=`um*e&e@&-93bz-sobV*WPd9g+iMI0J7; z&)8V=kopSAFK(2p6;x{AE7$QhMA7#&v!neI)lIEpRj@O1QQ6aRCLatk-8)V`v-HP$ z2???`idG#$hE2S&dc3ub_`~%WRdr3_aCoGkROg2~)y(s!O!N$qnX+7C0kX0J%?!Da zXdQY@E&fOY-kRncu~_WFx?Zl_c&{3}ew9SVg9w@UBT;;@CVY`*{AIyP(=_Lb|8`MD c6}4sh0ZtsltULE2K>z>%07*qoM6N<$f;jg!;{X5v diff --git a/MyTracks/res/drawable-mdpi/arrow_280.png b/MyTracks/res/drawable-mdpi/arrow_280.png deleted file mode 100644 index 64cadeb7a9efde07127a68687dd2e62c7dac2962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)F;p;f3@Y19h0DYi28GljQZk~#qNUKPU5jWZ z1yNwjHmxes#8M-TJ~7j>LHxjyNyBuenR)Y0ip9P;Xj>HCgIi^ag28)KB5s2NtUdDswQ?q(-Q^R zbSy=~3|svC9w!tunV*Ug3YtXSTalyZ$g4VBmY<(Lm{NaYS3ROdrok}a$Lx~x%qWb# zRr&HkFe8E$2b(7k`^iQ&RiAiSQc_Zx(pE1B4!4WiR*&Lx!SEoM=Av;c4ioQSzmbwXr5DP&VIYN~M@zrfC_1Iy}aDJ^&QP4X9;CLDyJ z$1oTCGi>blV{d3;_rYTdH}9t;nUb-D-a{--;BJ7)N9Mx8*2}k{H#Xs|I+Ww}dV~M; zYLjmRBE3gs;?fRz>Q$t33({5TmA>njB@hVQS+mPrKDElsjeXKnq)AtqOM0(dl%c@^ zS@TyU+;&F#{F~)@bA$B1>Ro%o-;A}Km)G6x>t~oI&40@;r+(m+*gq+i00000NkvXX Hu0mjfW#mV3 diff --git a/MyTracks/res/drawable-mdpi/arrow_300.png b/MyTracks/res/drawable-mdpi/arrow_300.png deleted file mode 100644 index 65727af25c7b1dc1268c79119991310735bfacee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 805 zcmV+=1KRwFP)=wHW%2+30sT%gNmjmYbTWzX zIYB5pER+Pk2bk`jV|ic&@(bbq6ZG8UR8>`pJgr!OrtJgk6Fo)I-Ulc;s7EqTGSU%x8mKCS z0&$4X0|7roqj5N3L}274g#93N4O9C=jGQ8Bc7X0`b<92WJoxNVOU(5FR24-}Lra&K zM0m%>W9u-`1-@kvih|bOLHP7V>gwvmfv!`u_mK>C-2)>8fObfrXUJ`K!*Dmar{l%+ z)>eY{ChF_!_pGh#HJMg_Q)D^@QHpH{0qWs&(6lXUoPBX9fY#DX(B6dAYQ6f$0>pTG zL#hj}K~=yt0l>^4O!dd-^~MH5R~!@;7E)GLwr^ciqG0t*BN+X0Z-v6rWNZ_v+0GNb z+=j(sNeH^H)mvn?Y@Vrm-ppvv#?DV!F|K!znRS$kii(6COdPCdPlLqp8@T!mB%tP5 zkas)LvMktawxm)pVX(+4Ee7yTc?r2AD47{3?VX71W7zHXq@!0!E}#X=gDaq#NON>x z^?KYuv4V0Fa=KZr@L*Ua3 j3E*hS!LyiPU900000NkvXXu0mjfr@V0e diff --git a/MyTracks/res/drawable-mdpi/arrow_340.png b/MyTracks/res/drawable-mdpi/arrow_340.png deleted file mode 100644 index 1447718fb1ecde2f1931135fd2474a9e377c0d79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 689 zcmV;i0#5yjP)KrvDcjg)FDwOXLHHz<_0=Vd6`YS36{JMr7j^*QG~@8!Uu4xqyFy!`K6qh3%Q zek_5JVVVk-xKA=OgT$jhnhm~7d@6`2vw2`yydkAjoW$%`q{V6uSVBXBL`nO;v9+>M z)7pK5B|0JGXF+S$ramKD!0Bo%Sdt$_vX9Ck6j>qVi`Bfx{=ln4C`wQ)V7&HHNNoXN zx*UxI>!q8bBn=37$1w^yWH)WNj@cUnme4&>rEt0Nb{Z0^P?f91)&Q`?UJChF<;HRd z0t@AS%`doN)!EdN4$evP0iYn0g6XNsSao(bjXHy4cg`zSgi;Z_W1vfWf|XUraMFQW zqGUG*KYt3Fxj#--d1hs(`hX=oDoO{@xor|-??}C0tU z21(9Eh>ZG3``3_?VA`RWht8AG>gG4EHf!+eJ;9Rsay2`7jmZ635^tjDZH-c3m|&bf z!;!94oSmCU5jNAiW(LG=9SoeEpS=BPsT;FzfR0P2a2@YP+-Gqfb-O(tPdq#PO!UKk zjKVsm9qd-w3P#HT!R;5W{L@R?&h@E$@P+7+i#Xah=r{q15Gcde`08Z!^eVYLj@TS@ z^?))#S*^{f$5v0T(gROu^H?}L!Kfje>Z1JOgoOGn@%#Nkvz7ZWF5z(a`r#-4P(QT; XT_giIgi8s>00000NkvXXu0mjf>$p5o diff --git a/MyTracks/res/drawable-mdpi/arrow_40.png b/MyTracks/res/drawable-mdpi/arrow_40.png deleted file mode 100644 index 134369b2de7fc51871af5aeaaf2fea0671b22d58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmVHtJ=)E9_h+ZNHqQGb| zA*u%ndZ?ZXA?&e4dI$=VBFUL>87G&f+3wfFos7Yv(wTw40~hY$T)zMRf0pkaShZEl zwxPCEs!@ACDGTYee3niT@#Pahcl8>EOwNromdzQqBEdbVTh?!)E_h@2<}NcuWK z)6mwGpjcD@?4cKk-Uh-0$7Rld^{t1^7pn!$uAy1dX)=-&j9g>>+*&z1JRq|UEPTx( z>F}A3s}My6-3F?fCbkg7dj9}3y=^i!F*=+zU;t%HTD9E{iUI;u3+Pr*(p7ehJwslu zZkTy|T4trWGMdatKqL(FbD6Ouq!RE0F;=t=W#4t2Rh?o*iUE?Iw#9TWIYa}^21d#x zVU2u1zun19|9-h*#q#5jg5%wyt)KP z82`lFgu%#z^etE9LaVDqt*^(?)PZYV%`v~!pw>lAot}^Jt#%7^waV zTsIz4TURf#I!+l)R^DRPRXT|T)3e;w^G~450@k;g4JHi<5|m;$_V%9aUztm4Q`s(( zwsNFl`j)-B2{bl|oC5=hjoru;2wg+lc`!FWiC>wvpm%iO*%T;S))~uQjVfCa qO?&Wqy;FJJ$&AQ&>FP@SU)Xm-Q^~h3%>%mt0000y+Y# z!ichZoQh_|hF#*fVSq2gH;s;Ug7FZ_0wFT2Z(JtFEt2iW*mC5QNE-&2y4_`b zgXfmUzsuWE#fxFX^n`~yZLl`i;PjlJac^g4JD$g{MT~ExZ&}=UFmfMWJ)WIZE1YPQ z(19MRYr-O?P)W0CNo0F%Z(7yIo4sahvc!l&LQ^dT$>)+dIX)p_WOb zhNylxUPx2ud_(exH2^Jp_9e)XFskuRUPfzJm*fO8I?a!-+l-?0%2E zxdWN?$eAuy)FEL&b{@8C=Ai-zoazk&~#AMysb0%lqCcIRNemLVr_3kWDi}$ zTUC|MuLY?|s92ZJu@`!|{9k7D-dP!VaRVh|;pbp-1ky=`n*I=t&0EEic|4~AIxmab z>y~hK96`}FY8xS-`10zQJ%_sl>002ovPDHLkV1gv!N5B98 diff --git a/MyTracks/res/drawable-mdpi/menu_map_layer.png b/MyTracks/res/drawable-mdpi/menu_map_layer.png new file mode 100755 index 0000000000000000000000000000000000000000..27acb1b80e317f1a7e5b5a916e8f567a24c98cce GIT binary patch literal 1157 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@;D1TB8wRq zxP?HN@zUM8KOn)f0>^Y9tpLXDzvj$kU|`Plba4#vIDU6Zd`@tx#IgDBzm%lEzE%2m zla8$0HQqU!Bzb%msR^VVnP{OL$hcT#f`n;|;=kLiZoW4b8PA;PVzQ~Q(NL|ca0j=c z)xiTTXa627jW**>e849AyS@3WSoOKz6@{mKZV8$9n%jx1KYvtRS9$+=^?m*y`@NVa zG+R&oyFJ5_L7?RT(?*SsCT<7z7dv!?>$bAoo5W*vjImMZeWFw(w>s5s{aVSt;KGTj_~mKpQ&i@^D_MQDl=r#2 zaGIiLkc$tOW{;0qedJ%0cPGwXo1@tn;P|`X^wiIsn~$n=rd~Hn|5j4}%`1@cnf8v0 ze2vQY#NP8TWK9ydvr|*`}6tXp>JIa7Y9z-(qfan zPA1~>;~)7dmKFgaS_wsLPo=_AP2TM=kWg<;`BQaSvcCH1%x@AuKl1qPyPRHrr9}6= zt;n)iW`DK3@;&dYwkD_C*rK@c#qH+CbC>o-->%Y|G^OySh+Ayl%_3QjWejt+>#SZY zDLHG$ubB0(m&Z<563d)8XV%^O^{LZT_W!HrZyfdCFE)wuuOSy8cqv z)-rZ|>^z~MH*FEZ7yINb-6y5@vvvo&&5U^O5PI`F`}0NL_&!eW?2Y|5@7Kv}mBVR~ z|7*)yE}d4NwNYe+$KAZUZ}+g5me0@YJ1RWk-HE+(4_6Xb~bBdZ&>}=>>89*lk8;rO7u#@8`eEJTHcHf3iAEg z^WVu>%H6-w{k)r*;fm86PLFj=9dj7w9g1GH>Q)3}^1)~O(}J%)lHPjPli{4}ZDD~G zKi}J5+i&#$`!C`DI~5go&zs2(%zdIIt`Q~9MX8A;nfZANA(^?U43_#vX8MMPdmXYq z0Trl%6r?1Uq*^6|RHZT)85kPs8XD*t7>5{|S{ayI8Jg3?of6mv)F1=0Aviy+q&%@GmBBG3KPgqgEwd=KJijQrSiw2iv~cTVGoU&K MPgg&ebxsLQ0MKmuyZ`_I literal 0 HcmV?d00001 diff --git a/MyTracks/res/drawable-mdpi/menu_satellite_mode.png b/MyTracks/res/drawable-mdpi/menu_satellite_mode.png deleted file mode 100644 index d8d3235daaec170f042e3e256b8e6127fe3f64e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68309 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 MAuD8&$;q?-1dA3`e*gdg diff --git a/MyTracks/res/drawable-xhdpi/menu_map_layer.png b/MyTracks/res/drawable-xhdpi/menu_map_layer.png new file mode 100755 index 0000000000000000000000000000000000000000..338eed0a37202ffdc27b54a53a08aa8ed263247e GIT binary patch literal 2730 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Ƭ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 - - + android:showAsAction="ifRoom" + android:title="@string/menu_map_layer"> + + + + + + \ No newline at end of file diff --git a/MyTracks/res/values/colors.xml b/MyTracks/res/values/colors.xml index 25810692f..1e96b0266 100644 --- a/MyTracks/res/values/colors.xml +++ b/MyTracks/res/values/colors.xml @@ -16,7 +16,6 @@ limitations under the License. --> #FF000000 - #FF0000FF #FF444444 #FFFAAD2C #FFBE161B diff --git a/MyTracks/res/values/strings.xml b/MyTracks/res/values/strings.xml index ca0f1b872..482e6bfca 100644 --- a/MyTracks/res/values/strings.xml +++ b/MyTracks/res/values/strings.xml @@ -1157,11 +1157,18 @@ limitations under the License. Character limit: ~20 (1 line)"> Insert marker - - Map mode + Map + + + Map layer Play - Satellite @@ -1256,6 +1264,13 @@ limitations under the License. Character limit: ~20 (1 line)"> Stop GPS + + Terrain + Configure Widget Items - + diff --git a/MyTracks/src/com/google/android/apps/mytracks/ChartView.java b/MyTracks/src/com/google/android/apps/mytracks/ChartView.java index 4f6cd3c85..44b30e677 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/ChartView.java +++ b/MyTracks/src/com/google/android/apps/mytracks/ChartView.java @@ -556,7 +556,7 @@ public class ChartView extends View { float x = getX(getWaypointXValue(waypoint)); canvas.drawLine( x, topBorder + spacer + markerHeight / 2, x, topBorder + effectiveHeight, markerPaint); - canvas.translate(x - (float) (markerWidth * Constants.WAYPOINT_X_OFFSET_PERCENTAGE), + canvas.translate(x - (float) (markerWidth * MapOverlay.WAYPOINT_X_ANCHOR), topBorder + spacer); if (waypoints.get(i).getType() == Waypoint.TYPE_STATISTICS) { statisticsMarker.draw(canvas); diff --git a/MyTracks/src/com/google/android/apps/mytracks/Constants.java b/MyTracks/src/com/google/android/apps/mytracks/Constants.java index 0df851792..371e26333 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/Constants.java +++ b/MyTracks/src/com/google/android/apps/mytracks/Constants.java @@ -126,10 +126,6 @@ public abstract class Constants { public static final String SETTINGS_NAME = "SettingsActivity"; - public static final double WAYPOINT_X_OFFSET_PERCENTAGE = 13 / 48.0; - - public static final double MARKER_Y_OFFSET_PERCENTAGE = 91 / 96.0; - /** * This is an abstract utility class. */ diff --git a/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java b/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java index d8f233cdd..439195966 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java +++ b/MyTracks/src/com/google/android/apps/mytracks/MapOverlay.java @@ -19,30 +19,22 @@ package com.google.android.apps.mytracks; import static com.google.android.apps.mytracks.Constants.TAG; import com.google.android.apps.mytracks.content.Waypoint; -import com.google.android.apps.mytracks.maps.TrackPathPainter; -import com.google.android.apps.mytracks.maps.TrackPathPainterFactory; -import com.google.android.apps.mytracks.maps.TrackPathUtils; -import com.google.android.apps.mytracks.util.IntentUtils; +import com.google.android.apps.mytracks.maps.TrackPath; +import com.google.android.apps.mytracks.maps.TrackPathFactory; import com.google.android.apps.mytracks.util.LocationUtils; import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.apps.mytracks.util.UnitConversions; -import com.google.android.maps.GeoPoint; -import com.google.android.maps.MapView; -import com.google.android.maps.Overlay; -import com.google.android.maps.Projection; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.BitmapDescriptors; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.Model; +import com.google.android.gms.maps.model.Polyline; import com.google.android.maps.mytracks.R; -import com.google.common.annotations.VisibleForTesting; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; -import android.content.res.Resources; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Point; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; import android.location.Location; import android.util.Log; @@ -56,41 +48,33 @@ import java.util.concurrent.BlockingQueue; * * @author Leif Hendrik Wilden */ -public class MapOverlay extends Overlay { +public class MapOverlay { + + public static final float WAYPOINT_X_ANCHOR = 13f / 48f; + + private static final float WAYPOINT_Y_ANCHOR = 43f / 48f; + private static final float MARKER_X_ANCHOR = 50f / 96f; + private static final float MARKER_Y_ANCHOR = 90f / 96f; + private static final int INITIAL_LOCATIONS_SIZE = 1024; private final OnSharedPreferenceChangeListener sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (PreferencesUtils.getKey(context, R.string.track_color_mode_key).equals(key)) { - trackPathPainter = TrackPathPainterFactory.getTrackPathPainter(context); + if (key == null + || PreferencesUtils.getKey(context, R.string.track_color_mode_key).equals(key)) { + trackPath = TrackPathFactory.getTrackPath(context); } } }; private final Context context; + private final List locations; + private final BlockingQueue pendingLocations; private final List waypoints; - private final List points; - private final BlockingQueue pendingPoints; - private final Drawable[] arrows; - private final int arrowWidth; - private final int arrowHeight; - private final Drawable statsMarker; - private final Drawable waypointMarker; - private final Drawable startMarker; - private final Drawable endMarker; - private final int markerWidth; - private final int markerHeight; - private final Paint errorCirclePaint; - private TrackPathPainter trackPathPainter; - private boolean trackDrawingEnabled; private boolean showEndMarker = true; - private int headingIndex = 0; - private Location myLocation; - - private GeoPoint lastReferencePoint; - private Rect lastViewRect; + private TrackPath trackPath; /** * A pre-processed {@link Location} to speed up drawing. @@ -100,7 +84,7 @@ public class MapOverlay extends Overlay { public static class CachedLocation { private final boolean valid; - private final GeoPoint geoPoint; + private final LatLng latLng; private final int speed; /** @@ -108,7 +92,7 @@ public class MapOverlay extends Overlay { */ public CachedLocation() { this.valid = false; - this.geoPoint = null; + this.latLng = null; this.speed = -1; } @@ -117,7 +101,7 @@ public class MapOverlay extends Overlay { */ public CachedLocation(Location location) { this.valid = LocationUtils.isValidLocation(location); - this.geoPoint = valid ? LocationUtils.getGeoPoint(location) : null; + this.latLng = valid ? new LatLng(location.getLatitude(), location.getLongitude()) : null; this.speed = (int) Math.floor(location.getSpeed() * UnitConversions.MS_TO_KMH); } @@ -128,94 +112,52 @@ public class MapOverlay extends Overlay { return valid; } - /** - * Gets the {@link GeoPoint}. - */ - public GeoPoint getGeoPoint() { - return geoPoint; - } - /** * Gets the speed in kilometers per hour. */ public int getSpeed() { return speed; } + + /** + * Gets the LatLng. + */ + public LatLng getLatLng() { + return latLng; + } }; public MapOverlay(Context context) { this.context = context; this.waypoints = new ArrayList(); - this.points = new ArrayList(1024); - this.pendingPoints = new ArrayBlockingQueue( + this.locations = new ArrayList(INITIAL_LOCATIONS_SIZE); + this.pendingLocations = new ArrayBlockingQueue( Constants.MAX_DISPLAYED_TRACK_POINTS, true); - /* - * TODO: Use animation rather than individual resources for each arrow - * direction. - */ - final Resources resources = context.getResources(); - arrows = new Drawable[] { resources.getDrawable(R.drawable.arrow_0), - resources.getDrawable(R.drawable.arrow_20), resources.getDrawable(R.drawable.arrow_40), - resources.getDrawable(R.drawable.arrow_60), resources.getDrawable(R.drawable.arrow_80), - resources.getDrawable(R.drawable.arrow_100), resources.getDrawable(R.drawable.arrow_120), - resources.getDrawable(R.drawable.arrow_140), resources.getDrawable(R.drawable.arrow_160), - resources.getDrawable(R.drawable.arrow_180), resources.getDrawable(R.drawable.arrow_200), - resources.getDrawable(R.drawable.arrow_220), resources.getDrawable(R.drawable.arrow_240), - resources.getDrawable(R.drawable.arrow_260), resources.getDrawable(R.drawable.arrow_280), - resources.getDrawable(R.drawable.arrow_300), resources.getDrawable(R.drawable.arrow_320), - resources.getDrawable(R.drawable.arrow_340) }; - arrowWidth = arrows[headingIndex].getIntrinsicWidth(); - arrowHeight = arrows[headingIndex].getIntrinsicHeight(); - for (Drawable arrow : arrows) { - arrow.setBounds(0, 0, arrowWidth, arrowHeight); - } - - statsMarker = resources.getDrawable(R.drawable.yellow_pushpin); - markerWidth = statsMarker.getIntrinsicWidth(); - markerHeight = statsMarker.getIntrinsicHeight(); - statsMarker.setBounds(0, 0, markerWidth, markerHeight); - - waypointMarker = resources.getDrawable(R.drawable.blue_pushpin); - waypointMarker.setBounds(0, 0, markerWidth, markerHeight); - - startMarker = resources.getDrawable(R.drawable.green_dot); - startMarker.setBounds(0, 0, markerWidth, markerHeight); - - endMarker = resources.getDrawable(R.drawable.red_dot); - endMarker.setBounds(0, 0, markerWidth, markerHeight); - - errorCirclePaint = TrackPathUtils.getPaint(context, R.color.blue); - errorCirclePaint.setAlpha(127); - - trackPathPainter = TrackPathPainterFactory.getTrackPathPainter(context); - context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE) .registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); + sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null); } /** - * Add a location to the map overlay. - *

- * NOTE: This method doesn't take ownership of the given location, so it is - * safe to reuse the same location while calling this method. + * Add a location. * * @param location the location */ public void addLocation(Location location) { - // Queue up in the pendingPoints until it's merged with points. - if (!pendingPoints.offer(new CachedLocation(location))) { - Log.e(TAG, "Unable to add to pendingPoints."); + // Queue up in the pendingLocations until it's merged with locations + if (!pendingLocations.offer(new CachedLocation(location))) { + Log.e(TAG, "Unable to add to pendingLocations."); } } /** - * Adds a segment split to the map overlay. + * Adds a segment split. */ public void addSegmentSplit() { - // Queue up in the pendingPoints until it's merged with points. - if (!pendingPoints.offer(new CachedLocation())) { - Log.e(TAG, "Unable to add to pendingPoints"); + // Queue up in the pendingLocations until it's merged with locations + if (!pendingLocations.offer(new CachedLocation())) { + Log.e(TAG, "Unable to add to pendingLocations."); } } @@ -223,26 +165,20 @@ public class MapOverlay extends Overlay { * Clears the locations. */ public void clearPoints() { - synchronized (points) { - points.clear(); - pendingPoints.clear(); - trackPathPainter.clearPath(); - lastReferencePoint = null; - lastViewRect = null; + synchronized (locations) { + locations.clear(); + pendingLocations.clear(); } } /** - * Adds a waypoint to the map overlay. + * Adds a waypoint. * * @param waypoint the waypoint */ public void addWaypoint(Waypoint waypoint) { - // Note: We don't cache waypoints because it's not worth the effort. - if (waypoint != null && waypoint.getLocation() != null) { - synchronized (waypoints) { - waypoints.add(waypoint); - } + synchronized (waypoints) { + waypoints.add(waypoint); } } @@ -256,327 +192,92 @@ public class MapOverlay extends Overlay { } /** - * Sets whether to draw the track or not. + * Sets whether to show the end marker. * - * @param trackDrawingEnabled true to draw track + * @param show true to show the end marker */ - public void setTrackDrawingEnabled(boolean trackDrawingEnabled) { - this.trackDrawingEnabled = trackDrawingEnabled; + public void setShowEndMarker(boolean show) { + showEndMarker = show; } /** - * Sets whether to draw the end maker or not. + * Updates the track, start and end markers, and waypoints. * - * @param showEndMarker true to draw end marker + * @param googleMap the google map + * @param paths the paths + * @param reload true to reload all points */ - public void setShowEndMarker(boolean showEndMarker) { - this.showEndMarker = showEndMarker; - } - - /** - * Sets my location. - * - * @param myLocation my location - */ - public void setMyLocation(Location myLocation) { - this.myLocation = myLocation; - } - - /** - * Sets the heading. - * - * @param heading the heading - * @return true if the visible heading has changed. - */ - public boolean setHeading(float heading) { - /* - * Use -heading because the arrow images are counter-clockwise rather than - * clockwise. - */ - int index = Math.round(-heading / 360 * 18); - while (index < 0) { - index += 18; - } - while (index > 17) { - index -= 18; - } - if (index != headingIndex) { - headingIndex = index; - return true; - } else { - return false; - } - } - - @Override - public void draw(Canvas canvas, MapView mapView, boolean shadow) { - if (shadow) { - return; - } - - // It's safe to keep projection within a single draw operation - Projection projection = getMapProjection(mapView); - if (projection == null) { - Log.w(TAG, "No projection, unable to draw."); - return; - } - - if (trackDrawingEnabled) { - // Get the current viewing Rect - Rect viewRect = getMapViewRect(mapView); - - // Draw the selected track - drawTrack(canvas, projection, viewRect); - - // Draw the start and end markers - drawMarkers(canvas, projection); - - // Draw the waypoints - drawWaypoints(canvas, projection); - } - - // Draw the current location - drawMyLocation(canvas, projection); - } - - @Override - public boolean onTap(GeoPoint geoPoint, MapView mapView) { - if (geoPoint.equals(mapView.getMapCenter())) { - /* - * There is (unfortunately) no good way to determine whether the tap was - * caused by an actual tap on the screen or the track ball. If the - * location is equal to the map center,then it was a track ball press with - * very high likelihood. - */ - return false; - } - final Location tapLocation = LocationUtils.getLocation(geoPoint); - double minDistance = Double.MAX_VALUE; - Waypoint waypoint = null; - synchronized (waypoints) { - for (int i = 0; i < waypoints.size(); i++) { - final Location waypointLocation = waypoints.get(i).getLocation(); - if (waypointLocation == null) { - continue; - } - final double distance = waypointLocation.distanceTo(tapLocation); - if (distance < minDistance) { - minDistance = distance; - waypoint = waypoints.get(i); - } - } - } - - if (waypoint != null && minDistance < 15000000 / Math.pow(2, mapView.getZoomLevel())) { - Intent intent = IntentUtils.newIntent(context, MarkerDetailActivity.class) - .putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, waypoint.getId()); - context.startActivity(intent); - return true; - } - return super.onTap(geoPoint, mapView); - } - - /** - * Gets the points. - */ - @VisibleForTesting - public List getPoints() { - return points; - } - - /** - * Gets the track path painter. - */ - @VisibleForTesting - public TrackPathPainter getTrackPathPainter() { - return trackPathPainter; - } - - /** - * Sets the track path painter. - * - * @param trackPathPainter the track path painter - */ - @VisibleForTesting - public void setTrackPathPainter(TrackPathPainter trackPathPainter) { - this.trackPathPainter = trackPathPainter; - } - - /** - * Gets the map view projection. - * - * @param mapView the map view - */ - @VisibleForTesting - protected Projection getMapProjection(MapView mapView) { - return mapView.getProjection(); - } - - /** - * Gets the map view Rect. - * - * @param mapView the map view - */ - @VisibleForTesting - protected Rect getMapViewRect(MapView mapView) { - int width = mapView.getLongitudeSpan(); - int height = mapView.getLatitudeSpan(); - int centerX = mapView.getMapCenter().getLongitudeE6(); - int centerY = mapView.getMapCenter().getLatitudeE6(); - return new Rect(centerX - width / 2, centerY - height / 2, centerX + width / 2, centerY + height - / 2); - } - - /** - * Gets number of locations. - */ - @VisibleForTesting - int getNumLocations() { - synchronized (points) { - return points.size() + pendingPoints.size(); - } - } - - /** - * Gets number of waypoints. - */ - @VisibleForTesting - int getNumWaypoints() { - synchronized (waypoints) { - return waypoints.size(); - } - } - - /** - * Draws the track. - * - * @param canvas the canvas - * @param projection the projection - * @param viewRect the view rect - */ - private void drawTrack(Canvas canvas, Projection projection, Rect viewRect) { - boolean draw; - - synchronized (points) { - // Merge the pending points with the list of cached locations. - GeoPoint referencePoint = projection.fromPixels(0, 0); - int newPoints = pendingPoints.drainTo(points); - boolean newProjection = !viewRect.equals(lastViewRect) - || !referencePoint.equals(lastReferencePoint); - // Call updateState first to trigger its side effects. - boolean currentPathValid = !trackPathPainter.updateState() && !newProjection - && trackPathPainter.hasPath(); - if (newPoints == 0 && currentPathValid) { - // No need to update - draw = true; + public void update(GoogleMap googleMap, ArrayList paths, boolean reload) { + synchronized (locations) { + // Merge pendingLocations with locations + int newLocations = pendingLocations.drainTo(locations); + boolean needReload = reload || trackPath.updateState(); + if (needReload) { + googleMap.clear(); + paths.clear(); + trackPath.updatePath(googleMap, paths, 0, locations); + updateStartAndEndMarkers(googleMap); + updateWaypoints(googleMap); } else { - int numPoints = points.size(); - if (numPoints < 2) { - // Not enough points to draw a path - draw = false; - } else if (currentPathValid) { - // Incremental update of the path - draw = true; - trackPathPainter.updatePath(projection, viewRect, numPoints - newPoints, points); - } else { - // Reload the path - draw = true; - trackPathPainter.clearPath(); - trackPathPainter.updatePath(projection, viewRect, 0, points); + if (newLocations != 0) { + int numLocations = locations.size(); + trackPath.updatePath(googleMap, paths, numLocations - newLocations, locations); } } - lastReferencePoint = referencePoint; - lastViewRect = viewRect; - } - if (draw) { - trackPathPainter.drawPath(canvas); } } /** - * Draws the start and end markers. + * Updates the start and end markers. * - * @param canvas the canvas - * @param projection the projection + * @param googleMap the google map */ - private void drawMarkers(Canvas canvas, Projection projection) { - int offsetY = (int) (markerHeight * Constants.MARKER_Y_OFFSET_PERCENTAGE); - // Draw the end marker + private void updateStartAndEndMarkers(GoogleMap googleMap) { + // Add the end marker if (showEndMarker) { - for (int i = points.size() - 1; i >= 0; i--) { - if (points.get(i).valid) { - drawElement( - canvas, projection, points.get(i).geoPoint, endMarker, -markerWidth / 2, -offsetY); + for (int i = locations.size() - 1; i >= 0; i--) { + CachedLocation cachedLocation = locations.get(i); + if (cachedLocation.valid) { + Marker.Options options = Model.newMarkerOptions().position(cachedLocation.getLatLng()) + .anchor(MARKER_X_ANCHOR, MARKER_Y_ANCHOR).draggable(false).visible(true) + .icon(BitmapDescriptors.fromResource(R.drawable.red_dot)); + googleMap.addMarker(options); break; } } } - // Draw the start marker - for (int i = 0; i < points.size(); i++) { - if (points.get(i).valid) { - drawElement( - canvas, projection, points.get(i).geoPoint, startMarker, -markerWidth / 2, -offsetY); + // Add the start marker + for (int i = 0; i < locations.size(); i++) { + CachedLocation cachedLocation = locations.get(i); + if (cachedLocation.valid) { + Marker.Options options = Model.newMarkerOptions().position(cachedLocation.getLatLng()) + .anchor(MARKER_X_ANCHOR, MARKER_Y_ANCHOR).draggable(false).visible(true) + .icon(BitmapDescriptors.fromResource(R.drawable.green_dot)); + googleMap.addMarker(options); break; } } } /** - * Draws the waypoints. + * Updates the waypoints. * - * @param canvas the canvas - * @param projection the projection + * @param googleMap the google map. */ - private void drawWaypoints(Canvas canvas, Projection projection) { + private void updateWaypoints(GoogleMap googleMap) { synchronized (waypoints) { - int offsetX = (int) (markerWidth * Constants.WAYPOINT_X_OFFSET_PERCENTAGE); for (Waypoint waypoint : waypoints) { Location location = waypoint.getLocation(); - Drawable drawable = waypoint.getType() == Waypoint.TYPE_STATISTICS ? statsMarker - : waypointMarker; - drawElement(canvas, projection, LocationUtils.getGeoPoint(location), drawable, -offsetX, - -markerHeight); + LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); + int drawableId = waypoint.getType() == Waypoint.TYPE_STATISTICS ? R.drawable.yellow_pushpin + : R.drawable.blue_pushpin; + Marker.Options options = Model.newMarkerOptions().position(latLng) + .anchor(WAYPOINT_X_ANCHOR, WAYPOINT_Y_ANCHOR).draggable(false).visible(true) + .icon(BitmapDescriptors.fromResource(drawableId)) + .title(String.valueOf(waypoint.getId())); + googleMap.addMarker(options); } } } - - /** - * Draws my location. - * - * @param canvas the canvas - * @param projection the projection - */ - private void drawMyLocation(Canvas canvas, Projection projection) { - if (myLocation == null) { - return; - } - Point point = drawElement(canvas, projection, LocationUtils.getGeoPoint(myLocation), - arrows[headingIndex], -(arrowWidth / 2), -(arrowHeight / 2)); - // Draw the error circle - float radius = projection.metersToEquatorPixels(myLocation.getAccuracy()); - canvas.drawCircle(point.x, point.y, radius, errorCirclePaint); - } - - /** - * Draws an element. - * - * @param canvas the canvas - * @param projection the projection - * @param geoPoint the geo point - * @param drawable the drawable - * @param offsetX the x offset - * @param offsetY the y offset - * @return the point of the drawing. - */ - private Point drawElement(Canvas canvas, Projection projection, GeoPoint geoPoint, - Drawable drawable, int offsetX, int offsetY) { - Point point = new Point(); - projection.toPixels(geoPoint, point); - canvas.save(); - canvas.translate(point.x + offsetX, point.y + offsetY); - drawable.draw(canvas); - canvas.restore(); - return point; - } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java index f44e00710..94f778baf 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java +++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java @@ -28,7 +28,7 @@ import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment; import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment.DeleteOneTrackCaller; import com.google.android.apps.mytracks.fragments.FrequencyDialogFragment; import com.google.android.apps.mytracks.fragments.InstallEarthDialogFragment; -import com.google.android.apps.mytracks.fragments.MapFragment; +import com.google.android.apps.mytracks.fragments.MyTracksMapFragment; import com.google.android.apps.mytracks.fragments.StatsFragment; import com.google.android.apps.mytracks.io.file.SaveActivity; import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat; @@ -36,7 +36,6 @@ import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest; import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection; import com.google.android.apps.mytracks.settings.SettingsActivity; import com.google.android.apps.mytracks.util.AnalyticsUtils; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; import com.google.android.apps.mytracks.util.IntentUtils; import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.apps.mytracks.util.TrackRecordingServiceConnectionUtils; @@ -63,7 +62,7 @@ import java.util.List; /** * An activity to show the track detail. - * + * * @author Leif Hendrik Wilden * @author Rodrigo Damazio */ @@ -74,19 +73,18 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del private static final String TAG = TrackDetailActivity.class.getSimpleName(); private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key"; - + // The following are set in onCreate private TrackRecordingServiceConnection trackRecordingServiceConnection; private TrackDataHub trackDataHub; - private View mapViewContainer; private TabHost tabHost; private TabManager tabManager; private TrackController trackController; - + // From intent private long trackId; private long markerId; - + // Preferences private long recordingTrackId; private boolean recordingTrackPaused; @@ -136,7 +134,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del if (key != null) { boolean isRecording = trackId == recordingTrackId; updateMenuItems(isRecording, recordingTrackPaused); - trackController.update(isRecording, recordingTrackPaused); + trackController.update(isRecording, recordingTrackPaused); } } }; @@ -170,25 +168,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del } }; - /** - * We are not displaying driving directions. Just an arbitrary track that is - * not associated to any licensed mapping data. Therefore it should be okay to - * return false here and still comply with the terms of service. - */ - @Override - protected boolean isRouteDisplayed() { - return false; - } - - /** - * We are displaying a location. This needs to return true in order to comply - * with the terms of service. - */ - @Override - protected boolean isLocationDisplayed() { - return true; - } - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -199,18 +178,16 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, null); - trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, bindChangedCallback); + trackRecordingServiceConnection = new TrackRecordingServiceConnection( + this, bindChangedCallback); trackDataHub = TrackDataHub.newInstance(this); - mapViewContainer = getLayoutInflater().inflate(R.layout.map, null); - ApiAdapterFactory.getApiAdapter().disableHardwareAccelerated(mapViewContainer); - tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup(); tabManager = new TabManager(this, tabHost, R.id.realtabcontent); - TabSpec mapTabSpec = tabHost.newTabSpec(MapFragment.MAP_FRAGMENT_TAG).setIndicator( + TabSpec mapTabSpec = tabHost.newTabSpec(MyTracksMapFragment.MAP_FRAGMENT_TAG).setIndicator( getString(R.string.track_detail_map_tab), getResources().getDrawable(R.drawable.tab_map)); - tabManager.addTab(mapTabSpec, MapFragment.class, null); + tabManager.addTab(mapTabSpec, MyTracksMapFragment.class, null); TabSpec chartTabSpec = tabHost.newTabSpec(ChartFragment.CHART_FRAGMENT_TAG).setIndicator( getString(R.string.track_detail_chart_tab), getResources().getDrawable(R.drawable.tab_chart)); @@ -222,7 +199,8 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del if (savedInstanceState != null) { tabHost.setCurrentTabByTag(savedInstanceState.getString(CURRENT_TAB_TAG_KEY)); } - trackController = new TrackController(this, trackRecordingServiceConnection, false, recordListener, stopListener); + trackController = new TrackController( + this, trackRecordingServiceConnection, false, recordListener, stopListener); showMarker(); } @@ -274,7 +252,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del super.onDestroy(); trackRecordingServiceConnection.unbind(); } - + @Override protected void onHomeSelected() { Intent intent = IntentUtils.newIntent(this, TrackListActivity.class); @@ -427,13 +405,6 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del return trackRecordingServiceConnection; } - /** - * Gets the map view container. - */ - public View getMapViewContainer() { - return mapViewContainer; - } - /** * Gets the {@link TrackDataHub}. */ @@ -475,10 +446,10 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del */ private void showMarker() { if (markerId != -1L) { - MapFragment mapFragmet = (MapFragment) getSupportFragmentManager() - .findFragmentByTag(MapFragment.MAP_FRAGMENT_TAG); + MyTracksMapFragment mapFragmet = (MyTracksMapFragment) getSupportFragmentManager() + .findFragmentByTag(MyTracksMapFragment.MAP_FRAGMENT_TAG); if (mapFragmet != null) { - tabHost.setCurrentTabByTag(MapFragment.MAP_FRAGMENT_TAG); + tabHost.setCurrentTabByTag(MyTracksMapFragment.MAP_FRAGMENT_TAG); mapFragmet.showMarker(trackId, markerId); } else { Log.e(TAG, "MapFragment is null"); @@ -488,7 +459,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del /** * Updates the menu items. - * + * * @param isRecording true if recording */ private void updateMenuItems(boolean isRecording, boolean isPaused) { @@ -516,8 +487,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del String title; if (isRecording) { - title = getString( - isPaused ? R.string.generic_paused : R.string.generic_recording); + title = getString(isPaused ? R.string.generic_paused : R.string.generic_recording); } else { Track track = MyTracksProviderUtils.Factory.get(this).getTrack(trackId); title = track != null ? track.getName() : getString(R.string.my_tracks_app_name); @@ -527,7 +497,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del /** * Starts the {@link SaveActivity} to save a track. - * + * * @param trackFileFormat the track file format */ private void startSaveActivity(TrackFileFormat trackFileFormat) { diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java deleted file mode 100644 index ba236bccf..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/MapFragment.java +++ /dev/null @@ -1,594 +0,0 @@ -/* - * Copyright 2008 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks.fragments; - -import com.google.android.apps.mytracks.MapOverlay; -import com.google.android.apps.mytracks.TrackDetailActivity; -import com.google.android.apps.mytracks.content.MyTracksProviderUtils; -import com.google.android.apps.mytracks.content.MyTracksProviderUtils.Factory; -import com.google.android.apps.mytracks.content.Track; -import com.google.android.apps.mytracks.content.TrackDataHub; -import com.google.android.apps.mytracks.content.TrackDataListener; -import com.google.android.apps.mytracks.content.TrackDataType; -import com.google.android.apps.mytracks.content.Waypoint; -import com.google.android.apps.mytracks.stats.TripStatistics; -import com.google.android.apps.mytracks.util.ApiAdapterFactory; -import com.google.android.apps.mytracks.util.GeoRect; -import com.google.android.apps.mytracks.util.GoogleLocationUtils; -import com.google.android.apps.mytracks.util.LocationUtils; -import com.google.android.maps.GeoPoint; -import com.google.android.maps.MapController; -import com.google.android.maps.MapView; -import com.google.android.maps.Overlay; -import com.google.android.maps.mytracks.R; - -import android.content.Intent; -import android.location.Location; -import android.os.Bundle; -import android.provider.Settings; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageButton; -import android.widget.TextView; -import android.widget.Toast; - -import java.util.EnumSet; -import java.util.List; - -/** - * A fragment to display map to the user. - * - * @author Leif Hendrik Wilden - * @author Rodrigo Damazio - */ -public class MapFragment extends Fragment - implements View.OnTouchListener, View.OnClickListener, TrackDataListener { - - public static final String MAP_FRAGMENT_TAG = "mapFragment"; - - private static final String CURRENT_LOCATION_KEY = "current_location_key"; - private static final String KEEP_MY_LOCATION_VISIBLE_KEY = "keep_my_location_visible_key"; - - private TrackDataHub trackDataHub; - - // True to keep my location visible. - private boolean keepMyLocationVisible; - - // True to zoom to my location. Only apply when keepMyLocationVisible is true. - private boolean zoomToMyLocation; - - // The track id of the marker to show. - private long markerTrackId; - - // The marker id to show - private long markerId; - - // The current selected track id. Set in onSelectedTrackChanged. - private long currentSelectedTrackId; - - // The current location. Set in onCurrentLocationChanged. - private Location currentLocation; - - // UI elements - private View mapViewContainer; - private MapView mapView; - private MapOverlay mapOverlay; - private ImageButton myLocationImageButton; - private TextView messageTextView; - - @Override - public void onCreate(Bundle bundle) { - super.onCreate(bundle); - setHasOptionsMenu(true); - } - - @Override - public View onCreateView( - LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - mapViewContainer = ((TrackDetailActivity) getActivity()).getMapViewContainer(); - mapView = (MapView) mapViewContainer.findViewById(R.id.map_view); - mapOverlay = new MapOverlay(getActivity()); - - List overlays = mapView.getOverlays(); - overlays.clear(); - overlays.add(mapOverlay); - - mapView.requestFocus(); - mapView.setOnTouchListener(this); - mapView.setBuiltInZoomControls(true); - myLocationImageButton = (ImageButton) mapViewContainer.findViewById(R.id.map_my_location); - myLocationImageButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - showMyLocation(); - } - }); - messageTextView = (TextView) mapViewContainer.findViewById(R.id.map_message); - - ApiAdapterFactory.getApiAdapter().invalidMenu(getActivity()); - return mapViewContainer; - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - if (savedInstanceState != null) { - keepMyLocationVisible = savedInstanceState.getBoolean(KEEP_MY_LOCATION_VISIBLE_KEY, false); - currentLocation = (Location) savedInstanceState.getParcelable(CURRENT_LOCATION_KEY); - if (currentLocation != null) { - updateCurrentLocation(); - } - } - } - - @Override - public void onResume() { - super.onResume(); - resumeTrackDataHub(); - } - - @Override - public void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - outState.putBoolean(KEEP_MY_LOCATION_VISIBLE_KEY, keepMyLocationVisible); - if (currentLocation != null) { - outState.putParcelable(CURRENT_LOCATION_KEY, currentLocation); - } - } - - @Override - public void onPause() { - super.onPause(); - pauseTrackDataHub(); - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - ViewGroup parentViewGroup = (ViewGroup) mapViewContainer.getParent(); - if (parentViewGroup != null) { - parentViewGroup.removeView(mapViewContainer); - } - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflator) { - menuInflator.inflate(R.menu.map, menu); - } - - @Override - public void onPrepareOptionsMenu(Menu menu) { - int titleId = R.string.menu_satellite_mode; - if (mapView != null) { - titleId = mapView.isSatellite() ? R.string.menu_map_mode : R.string.menu_satellite_mode; - } - menu.findItem(R.id.map_satellite_mode).setTitle(titleId); - super.onPrepareOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem menuItem) { - if (mapView != null && menuItem.getItemId() == R.id.map_satellite_mode) { - mapView.setSatellite(!mapView.isSatellite()); - return true; - } - return super.onOptionsItemSelected(menuItem); - } - - /** - * Shows my location. - */ - private void showMyLocation() { - updateTrackDataHub(); - keepMyLocationVisible = true; - zoomToMyLocation = true; - if (currentLocation != null) { - updateCurrentLocation(); - } - } - - /** - * Shows the marker. - * - * @param id the marker id - */ - private void showMarker(long id) { - MyTracksProviderUtils MyTracksProviderUtils = Factory.get(getActivity()); - Waypoint waypoint = MyTracksProviderUtils.getWaypoint(id); - if (waypoint != null && waypoint.getLocation() != null) { - keepMyLocationVisible = false; - GeoPoint center = new GeoPoint((int) (waypoint.getLocation().getLatitude() * 1E6), - (int) (waypoint.getLocation().getLongitude() * 1E6)); - mapView.getController().setCenter(center); - mapView.getController().setZoom(mapView.getMaxZoomLevel()); - mapView.invalidate(); - } - } - - /** - * Shows the marker. - * - * @param trackId the track id - * @param id the marker id - */ - public void showMarker(long trackId, long id) { - /* - * Synchronize to prevent race condition in changing markerTrackId and - * markerId variables. - */ - synchronized (this) { - if (trackId == currentSelectedTrackId) { - showMarker(id); - markerTrackId = -1L; - markerId = -1L; - return; - } - markerTrackId = trackId; - markerId = id; - } - } - - @Override - public boolean onTouch(View view, MotionEvent event) { - if (keepMyLocationVisible && event.getAction() == MotionEvent.ACTION_MOVE) { - if (!isVisible(currentLocation)) { - /* - * Only set to false when no longer visible. Thus can keep showing the - * current location with the next location update. - */ - keepMyLocationVisible = false; - } - } - return false; - } - - @Override - public void onClick(View v) { - if (v == messageTextView) { - Intent intent = GoogleLocationUtils.isAvailable(getActivity()) ? new Intent( - GoogleLocationUtils.ACTION_GOOGLE_LOCATION_SETTINGS) - : new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - } - } - - @Override - public void onLocationStateChanged(LocationState state) { - if (isResumed()) { - final String message; - final boolean isGpsDisabled; - if (!isSelectedTrackRecording()) { - message = null; - isGpsDisabled = false; - } else { - switch (state) { - case DISABLED: - String setting = getString( - GoogleLocationUtils.isAvailable(getActivity()) ? R.string.gps_google_location_settings - : R.string.gps_location_access); - message = getString(R.string.gps_disabled, setting); - isGpsDisabled = true; - currentLocation = null; - updateCurrentLocation(); - break; - case NO_FIX: - message = getString(R.string.gps_wait_for_signal); - isGpsDisabled = false; - break; - case BAD_FIX: - message = getString(R.string.gps_wait_for_better_signal); - isGpsDisabled = false; - break; - case GOOD_FIX: - message = null; - isGpsDisabled = false; - break; - default: - throw new IllegalArgumentException("Unexpected state: " + state); - } - } - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - if (isResumed()) { - if (message == null) { - messageTextView.setVisibility(View.GONE); - return; - } - messageTextView.setText(message); - messageTextView.setVisibility(View.VISIBLE); - if (isGpsDisabled) { - Toast.makeText(getActivity(), R.string.gps_not_found, Toast.LENGTH_LONG).show(); - - // Click to show the location source settings - messageTextView.setOnClickListener(MapFragment.this); - } else { - messageTextView.setOnClickListener(null); - } - } - } - }); - } - } - - @Override - public void onLocationChanged(Location location) { - if (isResumed()) { - currentLocation = location; - updateCurrentLocation(); - } - } - - @Override - public void onHeadingChanged(double heading) { - if (isResumed()) { - if (mapOverlay.setHeading((float) heading)) { - mapView.postInvalidate(); - } - } - } - - @Override - public void onSelectedTrackChanged(final Track track) { - if (isResumed()) { - getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - if (isResumed()) { - boolean hasTrack = track != null; - mapOverlay.setTrackDrawingEnabled(hasTrack); - - if (hasTrack) { - synchronized (this) { - /* - * Synchronize to prevent race condition in changing - * markerTrackId and markerId variables. - */ - currentSelectedTrackId = track.getId(); - updateMap(track); - } - mapOverlay.setShowEndMarker(!isSelectedTrackRecording()); - } - mapView.invalidate(); - } - } - }); - } - } - - @Override - public void onTrackUpdated(Track track) { - // We don't care. - } - - @Override - public void clearTrackPoints() { - if (isResumed()) { - mapOverlay.clearPoints(); - } - } - - @Override - public void onSampledInTrackPoint(Location location) { - if (isResumed()) { - mapOverlay.addLocation(location); - } - } - - @Override - public void onSampledOutTrackPoint(Location location) { - // We don't care. - } - - @Override - public void onSegmentSplit(Location location) { - if (isResumed()) { - mapOverlay.addSegmentSplit(); - } - } - - @Override - public void onNewTrackPointsDone() { - if (isResumed()) { - mapView.postInvalidate(); - } - } - - @Override - public void clearWaypoints() { - if (isResumed()) { - mapOverlay.clearWaypoints(); - } - } - - @Override - public void onNewWaypoint(Waypoint waypoint) { - if (isResumed() && waypoint != null && LocationUtils.isValidLocation(waypoint.getLocation())) { - // TODO: Optimize locking inside addWaypoint - mapOverlay.addWaypoint(waypoint); - } - } - - @Override - public void onNewWaypointsDone() { - if (isResumed()) { - mapView.postInvalidate(); - } - } - - @Override - public boolean onMetricUnitsChanged(boolean metric) { - // We don't care. - return false; - } - - @Override - public boolean onReportSpeedChanged(boolean reportSpeed) { - // We don't care. - return false; - } - - @Override - public boolean onMinRecordingDistanceChanged(int minRecordingDistance) { - // We don't care. - return false; - } - - /** - * Resumes the trackDataHub. Needs to be synchronized because trackDataHub can - * be accessed by multiple threads. - */ - private synchronized void resumeTrackDataHub() { - trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub(); - trackDataHub.registerTrackDataListener(this, EnumSet.of(TrackDataType.SELECTED_TRACK, - TrackDataType.WAYPOINTS_TABLE, TrackDataType.SAMPLED_IN_TRACK_POINTS_TABLE, - TrackDataType.LOCATION, TrackDataType.HEADING)); - } - - /** - * Pauses the trackDataHub. Needs to be synchronized because trackDataHub can - * be accessed by multiple threads. - */ - private synchronized void pauseTrackDataHub() { - trackDataHub.unregisterTrackDataListener(this); - trackDataHub = null; - } - - /** - * Updates the trackDataHub. Needs to be synchronized because trackDataHub can - * be accessed by multiple threads. - */ - private synchronized void updateTrackDataHub() { - if (trackDataHub != null) { - trackDataHub.forceUpdateLocation(); - } - } - - /** - * Returns true if the selected track is recording. Needs to be synchronized - * because trackDataHub can be accessed by multiple threads. - */ - private synchronized boolean isSelectedTrackRecording() { - return trackDataHub != null && trackDataHub.isSelectedTrackRecording(); - } - - /** - * Updates the map by either zooming to the requested marker or showing the - * track. - * - * @param track the track - */ - private void updateMap(Track track) { - if (track.getId() == markerTrackId) { - // Show the marker - showMarker(markerId); - - markerTrackId = -1L; - markerId = -1L; - } else { - // Show the track - showTrack(track); - } - } - - /** - * Returns true if the location is visible. - * - * @param location the location - */ - private boolean isVisible(Location location) { - if (location == null || mapView == null) { - return false; - } - GeoPoint mapCenter = mapView.getMapCenter(); - int latitudeSpan = mapView.getLatitudeSpan(); - int longitudeSpan = mapView.getLongitudeSpan(); - - /* - * The bottom of the mapView is obscured by the zoom controls, subtract its - * height from the visible area. - */ - GeoPoint zoomControlBottom = mapView.getProjection().fromPixels(0, mapView.getHeight()); - GeoPoint zoomControlTop = mapView.getProjection().fromPixels( - 0, mapView.getHeight() - mapView.getZoomButtonsController().getZoomControls().getHeight()); - int zoomControlMargin = Math.abs( - zoomControlTop.getLatitudeE6() - zoomControlBottom.getLatitudeE6()); - GeoRect geoRect = new GeoRect(mapCenter, latitudeSpan, longitudeSpan); - geoRect.top += zoomControlMargin; - - GeoPoint geoPoint = LocationUtils.getGeoPoint(location); - return geoRect.contains(geoPoint); - } - - /** - * Updates the current location and centers it if necessary. - */ - private void updateCurrentLocation() { - if (mapOverlay == null || mapView == null) { - return; - } - - mapOverlay.setMyLocation(currentLocation); - mapView.postInvalidate(); - - if (currentLocation != null && keepMyLocationVisible && !isVisible(currentLocation)) { - GeoPoint geoPoint = LocationUtils.getGeoPoint(currentLocation); - MapController mapController = mapView.getController(); - mapController.animateTo(geoPoint); - if (zoomToMyLocation) { - // Only zoom in the first time we show the location. - zoomToMyLocation = false; - if (mapView.getZoomLevel() < mapView.getMaxZoomLevel()) { - mapController.setZoom(mapView.getMaxZoomLevel()); - } - } - } - } - - /** - * Shows the track. - * - * @param track the track - */ - private void showTrack(Track track) { - if (mapView == null || track == null || track.getNumberOfPoints() < 2) { - return; - } - - TripStatistics tripStatistics = track.getTripStatistics(); - int bottom = tripStatistics.getBottom(); - int left = tripStatistics.getLeft(); - int latitudeSpanE6 = tripStatistics.getTop() - bottom; - int longitudeSpanE6 = tripStatistics.getRight() - left; - if (latitudeSpanE6 > 0 && latitudeSpanE6 < 180E6 && longitudeSpanE6 > 0 - && longitudeSpanE6 < 360E6) { - keepMyLocationVisible = false; - GeoPoint center = new GeoPoint(bottom + latitudeSpanE6 / 2, left + longitudeSpanE6 / 2); - if (LocationUtils.isValidGeoPoint(center)) { - mapView.getController().setCenter(center); - mapView.getController().zoomToSpan(latitudeSpanE6, longitudeSpanE6); - } - } - } -} diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/MyTracksMapFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/MyTracksMapFragment.java new file mode 100644 index 000000000..e682de56f --- /dev/null +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/MyTracksMapFragment.java @@ -0,0 +1,667 @@ +/* + * Copyright 2008 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.android.apps.mytracks.fragments; + +import com.google.android.apps.mytracks.MapOverlay; +import com.google.android.apps.mytracks.MarkerDetailActivity; +import com.google.android.apps.mytracks.TrackDetailActivity; +import com.google.android.apps.mytracks.content.MyTracksProviderUtils; +import com.google.android.apps.mytracks.content.MyTracksProviderUtils.Factory; +import com.google.android.apps.mytracks.content.Track; +import com.google.android.apps.mytracks.content.TrackDataHub; +import com.google.android.apps.mytracks.content.TrackDataListener; +import com.google.android.apps.mytracks.content.TrackDataType; +import com.google.android.apps.mytracks.content.Waypoint; +import com.google.android.apps.mytracks.stats.TripStatistics; +import com.google.android.apps.mytracks.util.ApiAdapterFactory; +import com.google.android.apps.mytracks.util.GoogleLocationUtils; +import com.google.android.apps.mytracks.util.IntentUtils; +import com.google.android.apps.mytracks.util.LocationUtils; +import com.google.android.gms.maps.CameraUpdate; +import com.google.android.gms.maps.CameraUpdates; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.LocationSource; +import com.google.android.gms.maps.LocationSource.OnLocationChangedListener; +import com.google.android.gms.maps.OnMapInitializeListener; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.CameraPosition; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.LatLngBounds; +import com.google.android.gms.maps.model.Marker; +import com.google.android.gms.maps.model.Model; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.maps.mytracks.R; + +import android.content.Context; +import android.content.Intent; +import android.location.Location; +import android.os.Bundle; +import android.provider.Settings; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.RelativeLayout; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.EnumSet; + +/** + * A fragment to display map to the user. + * + * @author Leif Hendrik Wilden + * @author Rodrigo Damazio + */ +public class MyTracksMapFragment extends SupportMapFragment + implements OnMapInitializeListener, TrackDataListener { + + public static final String MAP_FRAGMENT_TAG = "mapFragment"; + + private static final String CURRENT_LOCATION_KEY = "current_location_key"; + private static final String + KEEP_CURRENT_LOCATION_VISIBLE_KEY = "keep_current_location_visible_key"; + private static final String ZOOM_TO_CURRENT_LOCATION_KEY = "zoom_to_current_location_key"; + + private static final float DEFAULT_ZOOM_LEVEL = 18f; + + // If current zoom level is above this, no need to zoom to DEFAULT_ZOOM_LEVEL + private static final float MIN_ALLOWED_ZOOM_LEVEL = 10f; + + // Google's latitude and longitude + private static final double DEFAULT_LATITUDE = 37.423; + private static final double DEFAULT_LONGITUDE = -122.084; + + private TrackDataHub trackDataHub; + + // Current location + private Location currentLocation; + + // True to keep the currentLocation visible + private boolean keepCurrentLocationVisible; + + // True to zoom to currentLocation when it is available + private boolean zoomToCurrentLocation; + + private OnLocationChangedListener onLocationChangedListener; + + // For showing a marker + private long markerTrackId = -1L; + private long markerId = -1L; + + // Current track + private Track currentTrack; + + // Current paths + private ArrayList paths = new ArrayList(); + boolean reloadPaths = true; + + // UI elements + private GoogleMap googleMap; + private MapOverlay mapOverlay; + private ImageButton myLocationImageButton; + private TextView messageTextView; + + @Override + public void onCreate(Bundle bundle) { + super.onCreate(bundle); + setHasOptionsMenu(true); + ApiAdapterFactory.getApiAdapter().invalidMenu(getActivity()); + mapOverlay = new MapOverlay(getActivity()); + setOnMapInitializeListener(this); + } + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View view = super.onCreateView(inflater, container, savedInstanceState); + View layout = inflater.inflate(R.layout.map, container, false); + RelativeLayout mapContainer = (RelativeLayout) layout.findViewById(R.id.map_container); + mapContainer.addView(view, 0); + + myLocationImageButton = (ImageButton) layout.findViewById(R.id.map_my_location); + myLocationImageButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + forceUpdateLocation(); + keepCurrentLocationVisible = true; + zoomToCurrentLocation = true; + updateCurrentLocation(); + } + }); + messageTextView = (TextView) layout.findViewById(R.id.map_message); + return layout; + } + + @Override + public void onMapInitialize(GoogleMap map) { + googleMap = map; + googleMap.setMyLocationEnabled(true); + googleMap.getUiSettings().setMyLocationButtonEnabled(false); + googleMap.setIndoorEnabled(true); + googleMap.setOnMarkerClickListener(new OnMarkerClickListener() { + + @Override + public boolean onMarkerClick(Marker marker) { + if (isResumed()) { + String title = marker.getTitle(); + if (title != null && title.length() > 0) { + long id = Long.valueOf(title); + Context context = getActivity(); + Intent intent = IntentUtils.newIntent(context, MarkerDetailActivity.class) + .putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, id); + context.startActivity(intent); + } + } + return true; + } + }); + googleMap.setLocationSource(new LocationSource() { + + @Override + public void activate(OnLocationChangedListener listener) { + onLocationChangedListener = listener; + } + + @Override + public void deactivate() { + onLocationChangedListener = null; + } + }); + googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { + + @Override + public void onCameraChange(CameraPosition cameraPosition) { + if (keepCurrentLocationVisible && currentLocation != null + && !isLocationVisible(currentLocation)) { + keepCurrentLocationVisible = false; + zoomToCurrentLocation = false; + } + } + }); + LatLng latLng = getDefaultLatLng(); + if (latLng != null) { + googleMap.moveCamera(CameraUpdates.newLatLngZoom(latLng, googleMap.getMinZoomLevel())); + } + if (isResumed()) { + resetTrackDataHub(); + } + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + if (savedInstanceState != null) { + keepCurrentLocationVisible = savedInstanceState.getBoolean( + KEEP_CURRENT_LOCATION_VISIBLE_KEY, false); + zoomToCurrentLocation = savedInstanceState.getBoolean(ZOOM_TO_CURRENT_LOCATION_KEY, false); + currentLocation = (Location) savedInstanceState.getParcelable(CURRENT_LOCATION_KEY); + updateCurrentLocation(); + } + } + + @Override + public void onResume() { + super.onResume(); + resumeTrackDataHub(); + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + if (currentLocation != null) { + outState.putParcelable(CURRENT_LOCATION_KEY, currentLocation); + } + outState.putBoolean(KEEP_CURRENT_LOCATION_VISIBLE_KEY, keepCurrentLocationVisible); + outState.putBoolean(ZOOM_TO_CURRENT_LOCATION_KEY, zoomToCurrentLocation); + } + + @Override + public void onPause() { + super.onPause(); + pauseTrackDataHub(); + } + + /** + * Shows the marker on the map. + * + * @param trackId the track id + * @param id the marker id + */ + public void showMarker(long trackId, long id) { + /* + * Synchronize to prevent race condition in changing markerTrackId and + * markerId variables. + */ + synchronized (this) { + if (currentTrack != null && currentTrack.getId() == trackId) { + showMarker(id); + markerTrackId = -1L; + markerId = -1L; + return; + } + markerTrackId = trackId; + markerId = id; + } + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflator) { + menuInflator.inflate(R.menu.map, menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem menuItem) { + int type = MAP_TYPE_NORMAL; + switch (menuItem.getItemId()) { + case R.id.menu_map: + type = MAP_TYPE_NORMAL; + break; + case R.id.menu_satellite: + type = MAP_TYPE_SATELLITE; + break; + case R.id.menu_terrain: + type = MAP_TYPE_TERRAIN; + break; + default: + return super.onOptionsItemSelected(menuItem); + } + if (googleMap != null) { + googleMap.setMapType(type); + } + return true; + } + + @Override + public void onLocationStateChanged(final LocationState state) { + if (isResumed()) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + if (!isResumed() || googleMap == null) { + return; + } + boolean myLocationEnabled = true; + if (state == LocationState.DISABLED) { + currentLocation = null; + myLocationEnabled = false; + } + googleMap.setMyLocationEnabled(myLocationEnabled); + + String message; + boolean isGpsDisabled; + if (!isSelectedTrackRecording()) { + message = null; + isGpsDisabled = false; + } else { + switch (state) { + case DISABLED: + String setting = getString(GoogleLocationUtils.isAvailable(getActivity()) + ? R.string.gps_google_location_settings + : R.string.gps_location_access); + message = getString(R.string.gps_disabled, setting); + isGpsDisabled = true; + break; + case NO_FIX: + message = getString(R.string.gps_wait_for_signal); + isGpsDisabled = false; + break; + case BAD_FIX: + message = getString(R.string.gps_wait_for_better_signal); + isGpsDisabled = false; + break; + case GOOD_FIX: + message = null; + isGpsDisabled = false; + break; + default: + throw new IllegalArgumentException("Unexpected state: " + state); + } + } + if (message == null) { + messageTextView.setVisibility(View.GONE); + return; + } + messageTextView.setText(message); + messageTextView.setVisibility(View.VISIBLE); + if (isGpsDisabled) { + Toast.makeText(getActivity(), R.string.gps_not_found, Toast.LENGTH_LONG).show(); + + // Click to show the location source settings + messageTextView.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + Intent intent = GoogleLocationUtils.isAvailable(getActivity()) ? new Intent( + GoogleLocationUtils.ACTION_GOOGLE_LOCATION_SETTINGS) + : new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } + }); + } else { + messageTextView.setOnClickListener(null); + } + } + }); + } + } + + @Override + public void onLocationChanged(final Location location) { + if (isResumed()) { + if (isSelectedTrackRecording() && currentLocation == null && location != null) { + zoomToCurrentLocation = true; + } + currentLocation = location; + updateCurrentLocation(); + } + } + + @Override + public void onHeadingChanged(double heading) { + // We don't care. + } + + @Override + public void onSelectedTrackChanged(final Track track) { + if (isResumed()) { + currentTrack = track; + boolean hasTrack = track != null; + if (hasTrack) { + mapOverlay.setShowEndMarker(!isSelectedTrackRecording()); + synchronized (this) { + /* + * Synchronize to prevent race condition in changing markerTrackId and + * markerId variables. + */ + if (track.getId() == markerTrackId) { + // Show the marker + showMarker(markerId); + + markerTrackId = -1L; + markerId = -1L; + } else { + // Show the track + showTrack(); + } + } + } + } + } + + @Override + public void onTrackUpdated(Track track) { + // We don't care. + } + + @Override + public void clearTrackPoints() { + if (isResumed()) { + mapOverlay.clearPoints(); + reloadPaths = true; + } + } + + @Override + public void onSampledInTrackPoint(final Location location) { + if (isResumed()) { + mapOverlay.addLocation(location); + } + } + + @Override + public void onSampledOutTrackPoint(Location location) { + // We don't care. + } + + @Override + public void onSegmentSplit(Location location) { + if (isResumed()) { + mapOverlay.addSegmentSplit(); + } + } + + @Override + public void onNewTrackPointsDone() { + if (isResumed()) { + getActivity().runOnUiThread(new Runnable() { + public void run() { + if (isResumed() && googleMap != null) { + mapOverlay.update(googleMap, paths, reloadPaths); + reloadPaths = false; + } + } + }); + } + } + + @Override + public void clearWaypoints() { + if (isResumed()) { + mapOverlay.clearWaypoints(); + } + } + + @Override + public void onNewWaypoint(Waypoint waypoint) { + if (isResumed() && waypoint != null && LocationUtils.isValidLocation(waypoint.getLocation())) { + mapOverlay.addWaypoint(waypoint); + } + } + + @Override + public void onNewWaypointsDone() { + if (isResumed()) { + getActivity().runOnUiThread(new Runnable() { + public void run() { + if (isResumed() && googleMap != null) { + mapOverlay.update(googleMap, paths, true); + } + } + }); + } + } + + @Override + public boolean onMetricUnitsChanged(boolean metric) { + // We don't care. + return false; + } + + @Override + public boolean onReportSpeedChanged(boolean reportSpeed) { + // We don't care. + return false; + } + + @Override + public boolean onMinRecordingDistanceChanged(int minRecordingDistance) { + // We don't care. + return false; + } + + /** + * Resumes the trackDataHub. Needs to be synchronized because the trackDataHub + * can be accessed by multiple threads. + */ + private synchronized void resumeTrackDataHub() { + trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub(); + trackDataHub.registerTrackDataListener(this, EnumSet.of(TrackDataType.SELECTED_TRACK, + TrackDataType.WAYPOINTS_TABLE, TrackDataType.SAMPLED_IN_TRACK_POINTS_TABLE, + TrackDataType.LOCATION, TrackDataType.HEADING)); + } + + /** + * Pauses the trackDataHub. Needs to be synchronized because the trackDataHub + * can be accessed by multiple threads. + */ + private synchronized void pauseTrackDataHub() { + if (trackDataHub != null) { + trackDataHub.unregisterTrackDataListener(this); + } + trackDataHub = null; + } + + /** + * Resets the trackDataHub. Needs to be synchronized because the trackDataHub + * can be accessed by multiple threads. + */ + private synchronized void resetTrackDataHub() { + pauseTrackDataHub(); + resumeTrackDataHub(); + } + + /** + * Returns true if the selected track is recording. Needs to be synchronized + * because the trackDataHub can be accessed by multiple threads. + */ + private synchronized boolean isSelectedTrackRecording() { + return trackDataHub != null && trackDataHub.isSelectedTrackRecording(); + } + + /** + * Forces update location. Needs to be synchronized because the trackDataHub + * can be accessed by multiple threads. + */ + private synchronized void forceUpdateLocation() { + if (trackDataHub != null) { + trackDataHub.forceUpdateLocation(); + } + } + + /** + * Updates the current location and zoom to it if necessary. + */ + private void updateCurrentLocation() { + getActivity().runOnUiThread(new Runnable() { + public void run() { + if (!isResumed() || googleMap == null || onLocationChangedListener == null + || currentLocation == null) { + return; + } + onLocationChangedListener.onLocationChanged(currentLocation); + if (zoomToCurrentLocation + || (keepCurrentLocationVisible && !isLocationVisible(currentLocation))) { + LatLng latLng = new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()); + googleMap.animateCamera(CameraUpdates.newLatLngZoom(latLng, getDefaultZoomLevel())); + zoomToCurrentLocation = false; + } + }; + }); + } + + /** + * Sets the camera over a track. + */ + private void showTrack() { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + if (!isResumed() || googleMap == null || currentTrack == null + || currentTrack.getNumberOfPoints() < 2) { + return; + } + + TripStatistics tripStatistics = currentTrack.getTripStatistics(); + int latitudeSpanE6 = tripStatistics.getTop() - tripStatistics.getBottom(); + int longitudeSpanE6 = tripStatistics.getRight() - tripStatistics.getLeft(); + if (latitudeSpanE6 > 0 && latitudeSpanE6 < 180E6 && longitudeSpanE6 > 0 + && longitudeSpanE6 < 360E6) { + LatLng southWest = new LatLng( + tripStatistics.getBottomDegrees(), tripStatistics.getLeftDegrees()); + LatLng northEast = new LatLng( + tripStatistics.getTopDegrees(), tripStatistics.getRightDegrees()); + LatLngBounds bounds = Model.newLatLngBounds(southWest, northEast); + CameraUpdate cameraUpdate = CameraUpdates.newLatLngBounds(bounds, 32); + googleMap.moveCamera(cameraUpdate); + } + } + }); + } + + /** + * Sets the camera over a marker. + * + * @param id the marker id + */ + private void showMarker(final long id) { + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + if (!isResumed() || googleMap == null) { + return; + } + MyTracksProviderUtils MyTracksProviderUtils = Factory.get(getActivity()); + Waypoint waypoint = MyTracksProviderUtils.getWaypoint(id); + if (waypoint != null && waypoint.getLocation() != null) { + Location location = waypoint.getLocation(); + LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); + keepCurrentLocationVisible = false; + zoomToCurrentLocation = false; + CameraUpdate cameraUpdate = CameraUpdates.newLatLngZoom(latLng, getDefaultZoomLevel()); + googleMap.moveCamera(cameraUpdate); + } + } + }); + } + + /** + * Gets the default LatLng. + */ + private LatLng getDefaultLatLng() { + MyTracksProviderUtils myTracksProviderUtils = MyTracksProviderUtils.Factory.get(getActivity()); + Location location = myTracksProviderUtils.getLastValidTrackPoint(); + if (location != null) { + return new LatLng(location.getLatitude(), location.getLongitude()); + } else { + return new LatLng(DEFAULT_LATITUDE, DEFAULT_LONGITUDE); + } + } + + /** + * Gets the default zoom level. Needs to run on the UI thread. + */ + private float getDefaultZoomLevel() { + if (googleMap == null) { + return DEFAULT_ZOOM_LEVEL; + } + float zoom = googleMap.getCameraPosition().getZoom(); + if (zoom <= MIN_ALLOWED_ZOOM_LEVEL) { + return DEFAULT_ZOOM_LEVEL; + } + return zoom; + } + + /** + * Returns true if the location is visible. Needs to run on the UI thread. + * + * @param location the location + */ + private boolean isLocationVisible(Location location) { + if (location == null || googleMap == null) { + return false; + } + LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); + return googleMap.getProjection().getVisibleRegion().getLatLngBounds().contains(latLng); + } +} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathPainter.java b/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathPainter.java deleted file mode 100644 index 9609d1fe6..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/DynamicSpeedTrackPathPainter.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import com.google.android.apps.mytracks.ColoredPath; -import com.google.android.apps.mytracks.MapOverlay.CachedLocation; -import com.google.android.maps.GeoPoint; -import com.google.android.maps.Projection; -import com.google.android.maps.mytracks.R; -import com.google.common.annotations.VisibleForTesting; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Point; -import android.graphics.Rect; - -import java.util.ArrayList; -import java.util.List; - -/** - * A path painter that varies the path colors based on fixed speeds or average - * speed margin depending of the TrackPathDescriptor passed to its constructor. - * - * @author Vangelis S. - */ -public class DynamicSpeedTrackPathPainter implements TrackPathPainter { - private final TrackPathDescriptor trackPathDescriptor; - private final Paint slowPaint; - private final Paint mediumPaint; - private final Paint fastPaint; - private final List coloredPaths; - - public DynamicSpeedTrackPathPainter(Context context, TrackPathDescriptor trackPathDescriptor) { - this.trackPathDescriptor = trackPathDescriptor; - slowPaint = TrackPathUtils.getPaint(context, R.color.slow_path); - mediumPaint = TrackPathUtils.getPaint(context, R.color.normal_path); - fastPaint = TrackPathUtils.getPaint(context, R.color.fast_path); - coloredPaths = new ArrayList(); - } - - @Override - public boolean hasPath() { - return !coloredPaths.isEmpty(); - } - - @Override - public boolean updateState() { - return trackPathDescriptor.updateState(); - } - - @Override - public void updatePath( - Projection projection, Rect viewRect, int startIndex, List points) { - boolean hasLastPoint = startIndex != 0 && points.get(startIndex -1).isValid(); - Point point = new Point(); - if (hasLastPoint) { - GeoPoint geoPoint = points.get(startIndex -1).getGeoPoint(); - projection.toPixels(geoPoint, point); - } - boolean newSegment = !hasLastPoint; - // Assume if last point exists, it is visible - boolean lastPointVisible = hasLastPoint; - int slowSpeed = trackPathDescriptor.getSlowSpeed(); - int normalSpeed = trackPathDescriptor.getNormalSpeed(); - - for (int i = startIndex; i < points.size(); ++i) { - CachedLocation cachedLocation = points.get(i); - - // If not valid, start a new segment - if (!cachedLocation.isValid()) { - newSegment = true; - continue; - } - - GeoPoint geoPoint = cachedLocation.getGeoPoint(); - // Check if this breaks the existing segment. - boolean pointVisible = viewRect.contains(geoPoint.getLongitudeE6(), geoPoint.getLatitudeE6()); - if (!pointVisible && !lastPointVisible) { - // This point and the last point are both outside visible area. - newSegment = true; - } - lastPointVisible = pointVisible; - - // Either update point or draw a line from the last point - if (newSegment) { - projection.toPixels(geoPoint, point); - newSegment = false; - } else { - ColoredPath coloredPath; - if (cachedLocation.getSpeed() <= slowSpeed) { - coloredPath = new ColoredPath(slowPaint); - } else if (cachedLocation.getSpeed() <= normalSpeed) { - coloredPath = new ColoredPath(mediumPaint); - } else { - coloredPath = new ColoredPath(fastPaint); - } - coloredPath.getPath().moveTo(point.x, point.y); - projection.toPixels(geoPoint, point); - coloredPath.getPath().lineTo(point.x, point.y); - coloredPaths.add(coloredPath); - } - } - } - - @Override - public void clearPath() { - coloredPaths.clear(); - } - - @Override - public void drawPath(Canvas canvas) { - for (int i = 0; i < coloredPaths.size(); i++) { - ColoredPath coloredPath = coloredPaths.get(i); - canvas.drawPath(coloredPath.getPath(), coloredPath.getPathPaint()); - } - } - - /** - * Gets the colored paths. - */ - @VisibleForTesting - List getColoredPaths() { - return coloredPaths; - } -} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java b/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java new file mode 100644 index 000000000..a16785398 --- /dev/null +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/MultiColorTrackPath.java @@ -0,0 +1,114 @@ +/* + * Copyright 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.android.apps.mytracks.maps; + +import com.google.android.apps.mytracks.MapOverlay.CachedLocation; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.maps.mytracks.R; + +import android.content.Context; + +import java.util.ArrayList; +import java.util.List; + +/** + * A path painter that varies the path colors based on fixed speeds or average + * speed margin depending of the TrackPathDescriptor passed to its constructor. + * + * @author Vangelis S. + */ +public class MultiColorTrackPath implements TrackPath { + private final TrackPathDescriptor trackPathDescriptor; + private final int slowColor; + private final int normalColor; + private final int fastColor; + + public MultiColorTrackPath(Context context, TrackPathDescriptor trackPathDescriptor) { + this.trackPathDescriptor = trackPathDescriptor; + slowColor = context.getResources().getColor(R.color.slow_path); + normalColor = context.getResources().getColor(R.color.normal_path); + fastColor = context.getResources().getColor(R.color.fast_path); + } + + @Override + public boolean updateState() { + return trackPathDescriptor.updateState(); + } + + @Override + public void updatePath(GoogleMap googleMap, ArrayList paths, int startIndex, + List locations) { + if (googleMap == null) { + return; + } + if (startIndex >= locations.size()) { + return; + } + + boolean newSegment = startIndex == 0 || !locations.get(startIndex - 1).isValid(); + LatLng lastLatLng = startIndex != 0 ? locations.get(startIndex -1).getLatLng() : null; + + ArrayList lastSegmentPoints = new ArrayList(); + int lastSegmentColor = paths.size() != 0 ? paths.get(paths.size() - 1).getColor() : slowColor; + boolean useLastPolyline = true; + + for (int i = startIndex; i < locations.size(); ++i) { + CachedLocation cachedLocation = locations.get(i); + + // If not valid, start a new segment + if (!cachedLocation.isValid()) { + newSegment = true; + lastLatLng = null; + continue; + } + LatLng latLng = cachedLocation.getLatLng(); + int color = getColor(cachedLocation.getSpeed()); + + // Either update point or draw a line from the last point + if (newSegment) { + TrackPathUtils.addPath(googleMap, paths, lastSegmentPoints, lastSegmentColor, useLastPolyline); + useLastPolyline = false; + lastSegmentColor = color; + newSegment = false; + } + if (lastSegmentColor == color) { + lastSegmentPoints.add(latLng); + } else { + TrackPathUtils.addPath(googleMap, paths, lastSegmentPoints, lastSegmentColor, useLastPolyline); + useLastPolyline = false; + if (lastLatLng != null) { + lastSegmentPoints.add(lastLatLng); + } + lastSegmentPoints.add(latLng); + lastSegmentColor = color; + } + lastLatLng = latLng; + } + TrackPathUtils.addPath(googleMap, paths, lastSegmentPoints, lastSegmentColor, useLastPolyline); + } + + private int getColor(int speed) { + if (speed <= trackPathDescriptor.getSlowSpeed()) { + return slowColor; + } else if (speed <= trackPathDescriptor.getNormalSpeed()) { + return normalColor; + } else { + return fastColor; + } + } +} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPath.java b/MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPath.java new file mode 100644 index 000000000..caf03b801 --- /dev/null +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPath.java @@ -0,0 +1,78 @@ +/* + * Copyright 2012 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.google.android.apps.mytracks.maps; + +import com.google.android.apps.mytracks.MapOverlay.CachedLocation; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Polyline; +import com.google.android.maps.mytracks.R; + +import android.content.Context; + +import java.util.ArrayList; +import java.util.List; + +/** + * A single color track path. + * + * @author Jimmy Shih + */ +public class SingleColorTrackPath implements TrackPath { + + final int color; + + public SingleColorTrackPath(Context context) { + color = context.getResources().getColor(R.color.fast_path); + } + + @Override + public boolean updateState() { + return false; + } + + @Override + public void updatePath(GoogleMap googleMap, ArrayList paths, int startIndex, + List locations) { + if (googleMap == null) { + return; + } + if (startIndex >= locations.size()) { + return; + } + + boolean newSegment = startIndex == 0 || !locations.get(startIndex - 1).isValid(); + ArrayList lastSegmentPoints = new ArrayList(); + boolean useLastPolyline = true; + for (int i = startIndex; i < locations.size(); i++) { + CachedLocation cachedLocation = locations.get(i); + + // If not valid, start a new segment + if (!cachedLocation.isValid()) { + newSegment = true; + continue; + } + LatLng latLng = cachedLocation.getLatLng(); + if (newSegment) { + TrackPathUtils.addPath(googleMap, paths, lastSegmentPoints, color, useLastPolyline); + useLastPolyline = false; + newSegment = false; + } + lastSegmentPoints.add(latLng); + } + TrackPathUtils.addPath(googleMap, paths, lastSegmentPoints, color, useLastPolyline); + } +} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainter.java b/MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainter.java deleted file mode 100644 index d29f86edf..000000000 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainter.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import com.google.android.apps.mytracks.MapOverlay.CachedLocation; -import com.google.android.maps.GeoPoint; -import com.google.android.maps.Projection; -import com.google.android.maps.mytracks.R; -import com.google.common.annotations.VisibleForTesting; - -import android.content.Context; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Path; -import android.graphics.Point; -import android.graphics.Rect; - -import java.util.List; - -/** - * A path painter that not variates the path colors. - * - * @author Vangelis S. - */ -public class SingleColorTrackPathPainter implements TrackPathPainter { - private final Paint selectedTrackPaint; - private Path path; - - public SingleColorTrackPathPainter(Context context) { - selectedTrackPaint = TrackPathUtils.getPaint(context, R.color.red); - } - - @Override - public boolean hasPath() { - return path != null; - } - - @Override - public boolean updateState() { - return false; - } - - @Override - public void updatePath( - Projection projection, Rect viewRect, int startIndex, List points) { - if (!hasPath()) { - path = newPath(); - } - updatePath(projection, viewRect, startIndex, points, path); - } - - @Override - public void clearPath() { - path = null; - } - - @Override - public void drawPath(Canvas canvas) { - if (path != null) { - canvas.drawPath(path, selectedTrackPaint); - } - } - - /** - * Updates the path. - * - * @param projection the projection - * @param viewRect the view rectangle - * @param startIndex the start index - * @param points the points - * @param pathToUpdate the path to update - */ - @VisibleForTesting - void updatePath(Projection projection, Rect viewRect, int startIndex, List points, - Path pathToUpdate) { - pathToUpdate.incReserve(points.size() - startIndex); - - boolean hasLastPoint = startIndex != 0 && points.get(startIndex - 1).isValid(); - boolean newSegment = !hasLastPoint; - // Assume if last point exists, it is visible - boolean lastPointVisible = hasLastPoint; - Point point = new Point(); - - for (int i = startIndex; i < points.size(); i++) { - CachedLocation cachedLocation = points.get(i); - - // If not valid, start a new segment - if (!cachedLocation.isValid()) { - newSegment = true; - continue; - } - - GeoPoint geoPoint = cachedLocation.getGeoPoint(); - // Check if this breaks the existing segment. - boolean pointVisible = viewRect.contains(geoPoint.getLongitudeE6(), geoPoint.getLatitudeE6()); - if (!pointVisible && !lastPointVisible) { - // This point and the last point are both outside visible area. - newSegment = true; - } - lastPointVisible = pointVisible; - - // Either update point or draw a line from the last point - projection.toPixels(geoPoint, point); - if (newSegment) { - pathToUpdate.moveTo(point.x, point.y); - newSegment = false; - } else { - pathToUpdate.lineTo(point.x, point.y); - } - } - } - - /** - * Creates a new path. - */ - @VisibleForTesting - protected Path newPath() { - return new Path(); - } - - /** - * Gets the path. - */ - @VisibleForTesting - public Path getPath() { - return path; - } - -} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathPainter.java b/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPath.java similarity index 50% rename from MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathPainter.java rename to MyTracks/src/com/google/android/apps/mytracks/maps/TrackPath.java index 2f6b31fde..050a1f705 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathPainter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPath.java @@ -1,5 +1,5 @@ /* - * Copyright 2011 Google Inc. + * Copyright 2012 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of @@ -17,50 +17,27 @@ package com.google.android.apps.mytracks.maps; import com.google.android.apps.mytracks.MapOverlay.CachedLocation; -import com.google.android.maps.Projection; - -import android.graphics.Canvas; -import android.graphics.Rect; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.Polyline; +import java.util.ArrayList; import java.util.List; /** - * An interface for classes which paint the track path. + * A track path. * - * @author Vangelis S. + * @author Jimmy Shih */ -public interface TrackPathPainter { +public interface TrackPath { - /** - * Returns true if has path. - */ - public boolean hasPath(); - - /** - * Updates state. Returns true if the state is updated. - */ public boolean updateState(); /** - * Updates the path. Creates a new path if necessary + * Updates the path. * - * @param projection the projection - * @param viewRect the view rectangle * @param startIndex the start index * @param points the points */ - public void updatePath( - Projection projection, Rect viewRect, int startIndex, List points); - - /** - * Clears the path. - */ - public void clearPath(); - - /** - * Draws the path. - * - * @param canvas the canvas - */ - public void drawPath(Canvas canvas); + public void updatePath(GoogleMap googleMap, ArrayList paths, int startIndex, + List points); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactory.java b/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathFactory.java similarity index 65% rename from MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactory.java rename to MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathFactory.java index 460d4b280..15a16a092 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactory.java +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathFactory.java @@ -16,42 +16,37 @@ package com.google.android.apps.mytracks.maps; -import static com.google.android.apps.mytracks.Constants.TAG; - import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.maps.mytracks.R; import android.content.Context; -import android.util.Log; /** - * A factory for {@link TrackPathPainter}. + * A factory for {@link TrackPath}. * * @author Vangelis S. */ -public class TrackPathPainterFactory { +public class TrackPathFactory { - private TrackPathPainterFactory() {} + private TrackPathFactory() {} /** - * Get a new {@link TrackPathPainter}. + * Get a new {@link TrackPath}. * * @param context the context */ - public static TrackPathPainter getTrackPathPainter(Context context) { + public static TrackPath getTrackPath(Context context) { String trackColorMode = PreferencesUtils.getString( context, R.string.track_color_mode_key, PreferencesUtils.TRACK_COLOR_MODE_DEFAULT); - Log.i(TAG, "Creating track path painter of type: " + trackColorMode); if (context.getString(R.string.settings_map_track_color_mode_dynamic_value) .equals(trackColorMode)) { - return new DynamicSpeedTrackPathPainter(context, new DynamicSpeedTrackPathDescriptor( - context)); + return new MultiColorTrackPath(context, new DynamicSpeedTrackPathDescriptor(context)); } else if (context.getString(R.string.settings_map_track_color_mode_fixed_value) .equals(trackColorMode)) { - return new DynamicSpeedTrackPathPainter(context, new FixedSpeedTrackPathDescriptor(context)); + return new MultiColorTrackPath(context, new FixedSpeedTrackPathDescriptor(context)); } else { - return new SingleColorTrackPathPainter(context); + return new SingleColorTrackPath(context); } } } \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathUtils.java b/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathUtils.java index a9cb03cf0..1818a2262 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/maps/TrackPathUtils.java @@ -16,8 +16,12 @@ package com.google.android.apps.mytracks.maps; -import android.content.Context; -import android.graphics.Paint; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.Model; +import com.google.android.gms.maps.model.Polyline; + +import java.util.ArrayList; /** * Various utility functions for track path painting. @@ -29,17 +33,32 @@ public class TrackPathUtils { private TrackPathUtils() {} /** - * Gets a paint. + * Add a path. * - * @param context the context - * @param colorId the color id + * @param googleMap the google map + * @param paths the existing paths + * @param points the path points + * @param color the path color + * @param append true to append to the last path */ - public static Paint getPaint(Context context, int colorId) { - Paint paint = new Paint(); - paint.setColor(context.getResources().getColor(colorId)); - paint.setStrokeWidth(3); - paint.setStyle(Paint.Style.STROKE); - paint.setAntiAlias(true); - return paint; + @SuppressWarnings("unchecked") + public static void addPath(GoogleMap googleMap, ArrayList paths, + ArrayList points, int color, boolean append) { + if (points.size() == 0) { + return; + } + if (append && paths.size() != 0) { + Polyline lastPolyline = paths.get(paths.size() - 1); + ArrayList pathPoints = new ArrayList(); + pathPoints.addAll(lastPolyline.getPoints()); + pathPoints.addAll(points); + lastPolyline.setPoints(pathPoints); + } else { + Polyline.Options options = Model.newPolylineOptions() + .addAll(points).width(5).color(color); + Polyline polyline = googleMap.addPolyline(options); + paths.add(polyline); + } + points.clear(); } } \ No newline at end of file diff --git a/MyTracksLib/.classpath b/MyTracksLib/.classpath index 0ca188f97..d3bb07b44 100644 --- a/MyTracksLib/.classpath +++ b/MyTracksLib/.classpath @@ -1,8 +1,8 @@ + - diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java index 76eb8b6ae..538170768 100644 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java +++ b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtils.java @@ -232,6 +232,11 @@ public interface MyTracksProviderUtils { */ public Location getLastValidTrackPoint(long trackId); + /** + * Gets the last valid location recorded. Returns null if it doesn't exist. + */ + public Location getLastValidTrackPoint(); + /** * Creates a location cursor. The caller owns the returned cursor and is * responsible for closing it. diff --git a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java index 30c63939c..6f45d3931 100644 --- a/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java +++ b/MyTracksLib/src/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImpl.java @@ -40,6 +40,8 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { private static final String TAG = MyTracksProviderUtilsImpl.class.getSimpleName(); + private static final int MAX_LATITUDE = 90000000; + private final ContentResolver contentResolver; private int defaultCursorBatchSize = 2000; @@ -74,7 +76,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { int mapIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.MAPID); int tableIdIndex = cursor.getColumnIndexOrThrow(TracksColumns.TABLEID); int iconIndex = cursor.getColumnIndexOrThrow(TracksColumns.ICON); - + Track track = new Track(); TripStatistics tripStatistics = track.getTripStatistics(); if (!cursor.isNull(idIndex)) { @@ -155,7 +157,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { public void deleteAllTracks() { contentResolver.delete(TrackPointsColumns.CONTENT_URI, null, null); contentResolver.delete(WaypointsColumns.CONTENT_URI, null, null); - // Delete tracks last since it triggers a database vaccum call + // Delete tracks last since it triggers a database vaccum call contentResolver.delete(TracksColumns.CONTENT_URI, null, null); } @@ -164,15 +166,15 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { Track track = getTrack(trackId); if (track != null) { String where = TrackPointsColumns._ID + ">=? AND " + TrackPointsColumns._ID + "<=?"; - String[] selectionArgs = new String[] { Long.toString(track.getStartId()), Long.toString( - track.getStopId()) }; + String[] selectionArgs = new String[] { + Long.toString(track.getStartId()), Long.toString(track.getStopId()) }; contentResolver.delete(TrackPointsColumns.CONTENT_URI, where, selectionArgs); } contentResolver.delete(WaypointsColumns.CONTENT_URI, WaypointsColumns.TRACKID + "=?", new String[] { Long.toString(trackId) }); // Delete tracks last since it triggers a database vaccum call - contentResolver.delete(TracksColumns.CONTENT_URI, TracksColumns._ID + "=?", new String[] { - Long.toString(trackId) }); + contentResolver.delete(TracksColumns.CONTENT_URI, TracksColumns._ID + "=?", + new String[] { Long.toString(trackId) }); } @Override @@ -326,9 +328,9 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { int elevationGainIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.ELEVATIONGAIN); int minGradeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MINGRADE); int maxGradeIndex = cursor.getColumnIndexOrThrow(WaypointsColumns.MAXGRADE); - + Waypoint waypoint = new Waypoint(); - + if (!cursor.isNull(idIndex)) { waypoint.setId(cursor.getLong(idIndex)); } @@ -362,7 +364,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { if (!cursor.isNull(stopIdIndex)) { waypoint.setStopId(cursor.getLong(stopIdIndex)); } - + Location location = new Location(""); if (!cursor.isNull(longitudeIndex) && !cursor.isNull(latitudeIndex)) { location.setLongitude(((double) cursor.getInt(longitudeIndex)) / 1E6); @@ -384,7 +386,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { location.setBearing(cursor.getFloat(bearingIndex)); } waypoint.setLocation(location); - + TripStatistics tripStatistics = new TripStatistics(); boolean hasTripStatistics = false; if (!cursor.isNull(startTimeIndex)) { @@ -427,7 +429,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { tripStatistics.setMaxGrade(cursor.getFloat(maxGradeIndex)); hasTripStatistics = true; } - + if (hasTripStatistics) { waypoint.setTripStatistics(tripStatistics); } @@ -485,8 +487,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { String selection = WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns.TYPE + "=" + Waypoint.TYPE_STATISTICS; String[] selectionArgs = new String[] { Long.toString(trackId) }; - cursor = getWaypointCursor( - null, selection, selectionArgs, WaypointsColumns._ID + " DESC", 1); + cursor = getWaypointCursor(null, selection, selectionArgs, WaypointsColumns._ID + " DESC", 1); if (cursor != null && cursor.moveToFirst()) { return createWaypoint(cursor); } @@ -585,7 +586,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { ContentValues createContentValues(Waypoint waypoint) { ContentValues values = new ContentValues(); - + // Value < 0 indicates no id is available if (waypoint.getId() >= 0) { values.put(WaypointsColumns._ID, waypoint.getId()); @@ -600,7 +601,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { values.put(WaypointsColumns.DURATION, waypoint.getDuration()); values.put(WaypointsColumns.STARTID, waypoint.getStartId()); values.put(WaypointsColumns.STOPID, waypoint.getStopId()); - + Location location = waypoint.getLocation(); if (location != null) { values.put(WaypointsColumns.LONGITUDE, (int) (location.getLongitude() * 1E6)); @@ -619,7 +620,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { values.put(WaypointsColumns.BEARING, location.getBearing()); } } - + TripStatistics tripStatistics = waypoint.getTripStatistics(); if (tripStatistics != null) { values.put(WaypointsColumns.STARTTIME, tripStatistics.getStartTime()); @@ -720,7 +721,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { } return -1L; } - + @Override public long getLastTrackPointId(long trackId) { if (trackId < 0) { @@ -752,18 +753,26 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { } String selection = TrackPointsColumns._ID + "=(select max(" + TrackPointsColumns._ID + ") from " + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.TRACKID + "=? AND " - + TrackPointsColumns.LATITUDE + "<=90000000)"; + + TrackPointsColumns.LATITUDE + "<=" + MAX_LATITUDE + ")"; String[] selectionArgs = new String[] { Long.toString(trackId) }; return findTrackPointBy(selection, selectionArgs); } + @Override + public Location getLastValidTrackPoint() { + String selection = TrackPointsColumns._ID + "=(select max(" + TrackPointsColumns._ID + ") from " + + TrackPointsColumns.TABLE_NAME + " WHERE " + TrackPointsColumns.LATITUDE + "<=" + + MAX_LATITUDE + ")"; + return findTrackPointBy(selection, null); + } + @Override public Cursor getTrackPointCursor( long trackId, long startTrackPointId, int maxLocations, boolean descending) { if (trackId < 0) { return null; } - + String selection; String[] selectionArgs; if (startTrackPointId >= 0) { @@ -775,7 +784,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { selection = TrackPointsColumns.TRACKID + "=?"; selectionArgs = new String[] { Long.toString(trackId) }; } - + String sortOrder = TrackPointsColumns._ID; if (descending) { sortOrder += " DESC"; @@ -787,8 +796,9 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { } @Override - public LocationIterator getTrackPointLocationIterator(final long trackId, final long startTrackPointId, - final boolean descending, final LocationFactory locationFactory) { + public LocationIterator getTrackPointLocationIterator(final long trackId, + final long startTrackPointId, final boolean descending, + final LocationFactory locationFactory) { if (locationFactory == null) { throw new IllegalArgumentException("locationFactory is null"); } @@ -798,7 +808,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { private final CachedTrackPointsIndexes indexes = cursor != null ? new CachedTrackPointsIndexes(cursor) : null; - + /** * Gets the track point cursor. * @@ -807,24 +817,24 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { private Cursor getCursor(long trackPointId) { return getTrackPointCursor(trackId, trackPointId, defaultCursorBatchSize, descending); } - + /** * Advances the cursor to the next batch. Returns true if successful. */ private boolean advanceCursorToNextBatch() { - long trackPointId = lastTrackPointId == -1L ? -1L : lastTrackPointId + (descending ? -1 - : 1); + long trackPointId = lastTrackPointId == -1L ? -1L + : lastTrackPointId + (descending ? -1 : 1); Log.d(TAG, "Advancing track point id: " + trackPointId); cursor.close(); cursor = getCursor(trackPointId); return cursor != null; } - + @Override public long getLocationId() { return lastTrackPointId; } - + @Override public boolean hasNext() { if (cursor == null) { @@ -841,7 +851,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { } return true; } - + @Override public Location next() { if (cursor == null) { @@ -857,7 +867,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { fillTrackPoint(cursor, indexes, location); return location; } - + @Override public void close() { if (cursor != null) { @@ -865,7 +875,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { cursor = null; } } - + @Override public void remove() { throw new UnsupportedOperationException(); @@ -890,7 +900,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { values.put(TrackPointsColumns.TRACKID, trackId); values.put(TrackPointsColumns.LONGITUDE, (int) (location.getLongitude() * 1E6)); values.put(TrackPointsColumns.LATITUDE, (int) (location.getLatitude() * 1E6)); - + // Hack for Samsung phones that don't properly populate the time field long time = location.getTime(); if (time == 0) { @@ -909,7 +919,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { if (location.hasBearing()) { values.put(TrackPointsColumns.BEARING, location.getBearing()); } - + if (location instanceof MyTracksLocation) { MyTracksLocation myTracksLocation = (MyTracksLocation) location; if (myTracksLocation.getSensorDataSet() != null) { @@ -928,7 +938,7 @@ public class MyTracksProviderUtilsImpl implements MyTracksProviderUtils { */ private void fillTrackPoint(Cursor cursor, CachedTrackPointsIndexes indexes, Location location) { location.reset(); - + if (!cursor.isNull(indexes.longitudeIndex)) { location.setLongitude(((double) cursor.getInt(indexes.longitudeIndex)) / 1E6); } diff --git a/MyTracksTest/.classpath b/MyTracksTest/.classpath index 17b7b5ec6..a67371fb4 100644 --- a/MyTracksTest/.classpath +++ b/MyTracksTest/.classpath @@ -1,8 +1,6 @@ - - @@ -10,5 +8,7 @@ + + diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/MapOverlayTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/MapOverlayTest.java deleted file mode 100644 index bcc24231f..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/MapOverlayTest.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright 2010 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks; - -import com.google.android.apps.mytracks.content.Waypoint; -import com.google.android.apps.mytracks.maps.SingleColorTrackPathPainter; -import com.google.android.maps.MapView; - -import android.graphics.Canvas; -import android.graphics.Path; -import android.location.Location; -import android.test.AndroidTestCase; - -/** - * Tests {@link MapOverlay}. - * - * @author Bartlomiej Niechwiej - * @author Vangelis S. - */ -public class MapOverlayTest extends AndroidTestCase { - private Canvas canvas; - private MockMyTracksOverlay mockMyTracksOverlay; - private MapView mapView; - - @Override - protected void setUp() throws Exception { - super.setUp(); - canvas = new Canvas(); - mockMyTracksOverlay = new MockMyTracksOverlay(getContext()); - - // Enable drawing. - mockMyTracksOverlay.setTrackDrawingEnabled(true); - - // Set a TrackPathPainter with a MockPath. - mockMyTracksOverlay.setTrackPathPainter(new SingleColorTrackPathPainter(getContext()) { - @Override - public Path newPath() { - return new MockPath(); - } - }); - - mapView = null; - } - - /** - * Tests {@link MapOverlay#addLocation(Location)}. - */ - public void testAddLocation() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - location.setLongitude(20); - mockMyTracksOverlay.addLocation(location); - assertEquals(1, mockMyTracksOverlay.getNumLocations()); - assertEquals(0, mockMyTracksOverlay.getNumWaypoints()); - - location.setLatitude(20); - location.setLongitude(30); - mockMyTracksOverlay.addLocation(location); - assertEquals(2, mockMyTracksOverlay.getNumLocations()); - assertEquals(0, mockMyTracksOverlay.getNumWaypoints()); - assertFalse(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - - // Draw and make sure that we don't lose any point. - mockMyTracksOverlay.draw(canvas, mapView, false); - assertEquals(2, mockMyTracksOverlay.getNumLocations()); - assertEquals(0, mockMyTracksOverlay.getNumWaypoints()); - assertTrue(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - SingleColorTrackPathPainter trackPathPainter = (SingleColorTrackPathPainter) mockMyTracksOverlay - .getTrackPathPainter(); - MockPath path = (MockPath) trackPathPainter.getPath(); - assertEquals(2, path.getTotalPoints()); - - mockMyTracksOverlay.draw(canvas, mapView, true); - assertEquals(2, mockMyTracksOverlay.getNumLocations()); - assertEquals(0, mockMyTracksOverlay.getNumWaypoints()); - assertTrue(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - } - - /** - * Tests {@link MapOverlay#clearPoints()}. - */ - public void testClearPoints() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - location.setLongitude(20); - mockMyTracksOverlay.addLocation(location); - assertEquals(1, mockMyTracksOverlay.getNumLocations()); - mockMyTracksOverlay.clearPoints(); - assertEquals(0, mockMyTracksOverlay.getNumLocations()); - - // Test after drawing on canvas - final int locations = 100; - for (int i = 0; i < locations; ++i) { - mockMyTracksOverlay.addLocation(location); - } - assertEquals(locations, mockMyTracksOverlay.getNumLocations()); - mockMyTracksOverlay.draw(canvas, mapView, false); - mockMyTracksOverlay.draw(canvas, mapView, true); - mockMyTracksOverlay.clearPoints(); - assertEquals(0, mockMyTracksOverlay.getNumLocations()); - } - - /** - * Tests {@link MapOverlay#addWaypoint(Waypoint)}. - */ - public void testAddWaypoint() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - location.setLongitude(20); - Waypoint waypoint = new Waypoint(); - waypoint.setLocation(location); - mockMyTracksOverlay.addWaypoint(waypoint); - assertEquals(1, mockMyTracksOverlay.getNumWaypoints()); - assertEquals(0, mockMyTracksOverlay.getNumLocations()); - assertFalse(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - - final int waypoints = 10; - for (int i = 0; i < waypoints; ++i) { - waypoint = new Waypoint(); - waypoint.setLocation(location); - mockMyTracksOverlay.addWaypoint(waypoint); - } - assertEquals(1 + waypoints, mockMyTracksOverlay.getNumWaypoints()); - assertEquals(0, mockMyTracksOverlay.getNumLocations()); - assertFalse(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - } - - /** - * Tests {@link MapOverlay#clearWaypoints()}. - */ - public void testClearWaypoints() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - location.setLongitude(20); - Waypoint waypoint = new Waypoint(); - waypoint.setLocation(location); - mockMyTracksOverlay.addWaypoint(waypoint); - assertEquals(1, mockMyTracksOverlay.getNumWaypoints()); - mockMyTracksOverlay.clearWaypoints(); - assertEquals(0, mockMyTracksOverlay.getNumWaypoints()); - } - - /** - * Tests {@link MapOverlay#draw(Canvas, MapView, boolean)}. - */ - public void testDrawing() { - Location location = new Location("gps"); - location.setLatitude(10); - for (int i = 0; i < 40; ++i) { - location.setLongitude(20 + i); - Waypoint waypoint = new Waypoint(); - waypoint.setLocation(location); - mockMyTracksOverlay.addWaypoint(waypoint); - } - for (int i = 0; i < 100; ++i) { - location = new Location("gps"); - location.setLatitude(20 + i / 2); - location.setLongitude(150 - i); - mockMyTracksOverlay.addLocation(location); - } - - // Shadow. - mockMyTracksOverlay.draw(canvas, mapView, true); - // We don't expect to do anything if - assertFalse(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - assertEquals(40, mockMyTracksOverlay.getNumWaypoints()); - assertEquals(100, mockMyTracksOverlay.getNumLocations()); - - // No shadow. - mockMyTracksOverlay.draw(canvas, mapView, false); - assertTrue(mockMyTracksOverlay.getTrackPathPainter().hasPath()); - SingleColorTrackPathPainter trackPathPainter = (SingleColorTrackPathPainter) mockMyTracksOverlay - .getTrackPathPainter(); - MockPath path = (MockPath) trackPathPainter.getPath(); - assertEquals(40, mockMyTracksOverlay.getNumWaypoints()); - assertEquals(100, mockMyTracksOverlay.getNumLocations()); - assertEquals(100, path.getTotalPoints()); - } -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/MockMyTracksOverlay.java b/MyTracksTest/src/com/google/android/apps/mytracks/MockMyTracksOverlay.java deleted file mode 100644 index d9a393498..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/MockMyTracksOverlay.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks; - -import com.google.android.maps.MapView; -import com.google.android.maps.Projection; - -import android.content.Context; -import android.graphics.Rect; - -/** - * A mock {@link MapOverlay} for testing. - * - * @author Bartlomiej Niechwiej - * @author Vangelis S. - * - */ -public class MockMyTracksOverlay extends MapOverlay { - - private Projection projection; - - public MockMyTracksOverlay(Context context) { - super(context); - projection = new MockProjection(); - } - - @Override - public Projection getMapProjection(MapView mapView) { - return projection; - } - - @Override - public Rect getMapViewRect(MapView mapView) { - return new Rect(0, 0, (int) (100 * 1E6), (int) (100 * 1E6)); - } -} \ No newline at end of file diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/MockPath.java b/MyTracksTest/src/com/google/android/apps/mytracks/MockPath.java deleted file mode 100644 index 0a7ed511c..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/MockPath.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks; - -import android.graphics.Path; -import android.graphics.PointF; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; - -import junit.framework.Assert; - -/** - * A mock {@link Path}. Records calls to {@link Path#lineTo(float, float)} and - * {@link Path#moveTo(float, float)}. - * - * @author Bartlomiej Niechwiej - * @author Vangelis S. - */ -public class MockPath extends Path { - - // A list of disjointed path segments. - private final List> segments = new LinkedList>(); - - // The total number of points in this path. - private int totalPoints; - private List currentSegment; - - @Override - public void lineTo(float x, float y) { - super.lineTo(x, y); - Assert.assertNotNull(currentSegment); - currentSegment.add(new PointF(x, y)); - totalPoints++; - } - - @Override - public void moveTo(float x, float y) { - super.moveTo(x, y); - currentSegment = new ArrayList(Arrays.asList(new PointF(x, y))); - segments.add(currentSegment); - totalPoints++; - } - - /** - * Gets the total number of points in this path. - */ - public int getTotalPoints() { - return totalPoints; - } - -} \ No newline at end of file diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/MockProjection.java b/MyTracksTest/src/com/google/android/apps/mytracks/MockProjection.java deleted file mode 100644 index b1dbc5bdd..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/MockProjection.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.google.android.apps.mytracks; - -import com.google.android.maps.GeoPoint; -import com.google.android.maps.Projection; - -import android.graphics.Point; - -/** - * A mock {@link Projection}. Acts as an identity matrix. - * - * @author Bartlomiej Niechwiej - * @author Vangelis S. - * - */ -public class MockProjection implements Projection { - - @Override - public Point toPixels(GeoPoint geoPoint, Point point) { - return point; - } - - @Override - public float metersToEquatorPixels(float meters) { - return meters; - } - - @Override - public GeoPoint fromPixels(int x, int y) { - return new GeoPoint(y, x); - } -} \ No newline at end of file diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java index 59e563924..ba266aa35 100644 --- a/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java +++ b/MyTracksTest/src/com/google/android/apps/mytracks/endtoendtest/ViewsTest.java @@ -16,7 +16,7 @@ package com.google.android.apps.mytracks.endtoendtest; import com.google.android.apps.mytracks.TrackListActivity; -import com.google.android.apps.mytracks.fragments.MapFragment; +import com.google.android.apps.mytracks.fragments.MyTracksMapFragment; import com.google.android.maps.MapView; import com.google.android.maps.mytracks.R; @@ -51,8 +51,8 @@ public class ViewsTest extends ActivityInstrumentationTestCase2 points = createCachedLocations(NUMBER_OF_LOCATIONS, INVALID_LATITUDE, -1); - dynamicSpeedTrackPathPainter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), 1, points); - AndroidMock.verify(trackPathDescriptor); - // Should be zero for there is no valid locations. - assertEquals(0, dynamicSpeedTrackPathPainter.getColoredPaths().size()); - } - - /** - * Tests the - * {@link DynamicSpeedTrackPathPainter#updatePath(Projection, Rect, int, List)} - * when all locations are valid. - */ - public void testUpdatePath_AllValidLocation() { - List points = createCachedLocations(NUMBER_OF_LOCATIONS, - TrackStubUtils.INITIAL_LATITUDE, -1); - - // Gets a number as the start index of points. - int startLocationIdx = NUMBER_OF_LOCATIONS / 2; - dynamicSpeedTrackPathPainter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, points); - - AndroidMock.verify(trackPathDescriptor); - assertEquals(NUMBER_OF_LOCATIONS - startLocationIdx, dynamicSpeedTrackPathPainter - .getColoredPaths().size()); - } - - /** - * Tests the - * {@link DynamicSpeedTrackPathPainter#updatePath(Projection, Rect, int, List)} - * when all locations are valid. This test setups 4 segments with 25 points - * each. The first segment has slow speed, the second segment has normal - * speed, the third segment has fast speed, and the fourth segment has slow - * speed. - */ - public void testUpdatePath_CheckColoredPath() { - // Gets the slow speed. Divide SLOW_SPEED by 2 to make it smaller than - // SLOW_SPEED. Speed in MyTracksLocation use MS, but speed in CachedLocation - // use KMH. - int slowSpeed = SLOW_SPEED_MS / 2; - // Gets the normal speed. Makes it smaller than SLOW_SPEED and bigger than - // NORMAL_SPEED. Speed in MyTracksLocation use MS, but speed in - // CachedLocation use KMH. - int normalSpeed = (SLOW_SPEED_MS + NORMAL_SPEED_MS) / 2; - // Gets the fast speed. Multiply it by 2 to make it bigger than - // NORMAL_SPEED. Speed in MyTracksLocation use MS, but speed in - // CachedLocation use KMH. - int fastSpeed = NORMAL_SPEED_MS * 2; - - // Get a number of startLocationIdx. And divide NUMBER_OF_LOCATIONS by 8 to - // make sure it is less than numberOfFirstThreeSegments. - int startLocationIdx = LOCATIONS_PER_SEGMENT / 2; - - List points = createCachedLocations(LOCATIONS_PER_SEGMENT, - TrackStubUtils.INITIAL_LATITUDE, slowSpeed); - points.addAll(createCachedLocations(LOCATIONS_PER_SEGMENT, TrackStubUtils.INITIAL_LATITUDE, - normalSpeed)); - points.addAll(createCachedLocations(LOCATIONS_PER_SEGMENT, TrackStubUtils.INITIAL_LATITUDE, - fastSpeed)); - points.addAll(createCachedLocations(LOCATIONS_PER_SEGMENT, TrackStubUtils.INITIAL_LATITUDE, - slowSpeed)); - - dynamicSpeedTrackPathPainter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, points); - - AndroidMock.verify(trackPathDescriptor); - List coloredPath = dynamicSpeedTrackPathPainter.getColoredPaths(); - assertEquals(NUMBER_OF_LOCATIONS - startLocationIdx, coloredPath.size()); - - // Checks different speeds with different color in the coloredPath. - for (int i = 0; i < NUMBER_OF_LOCATIONS - startLocationIdx; i++) { - if (i < LOCATIONS_PER_SEGMENT - startLocationIdx) { - // Slow. - assertEquals(getContext().getResources().getColor(R.color.slow_path), coloredPath.get(i) - .getPathPaint().getColor()); - } else if (i < LOCATIONS_PER_SEGMENT * 2 - startLocationIdx) { - // Normal. - assertEquals(getContext().getResources().getColor(R.color.normal_path), coloredPath.get(i) - .getPathPaint().getColor()); - } else if (i < LOCATIONS_PER_SEGMENT * 3 - startLocationIdx) { - // Fast. - assertEquals(getContext().getResources().getColor(R.color.fast_path), coloredPath.get(i) - .getPathPaint().getColor()); - } else { - // Slow. - assertEquals(getContext().getResources().getColor(R.color.slow_path), coloredPath.get(i) - .getPathPaint().getColor()); - } - } - } - - /** - * Initials a mocked TrackPathDescriptor object. - */ - @UsesMocks(TrackPathDescriptor.class) - private void initialTrackPathDescriptorMock() { - trackPathDescriptor = AndroidMock.createMock(TrackPathDescriptor.class); - AndroidMock.expect(trackPathDescriptor.getSlowSpeed()).andReturn(SLOW_SPEED_KMH); - AndroidMock.expect(trackPathDescriptor.getNormalSpeed()).andReturn(NORMAL_SPEED_KMH); - AndroidMock.replay(trackPathDescriptor); - } - -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainterTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainterTest.java deleted file mode 100644 index fa59e216b..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/maps/SingleColorTrackPathPainterTest.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import com.google.android.apps.mytracks.MapOverlay.CachedLocation; -import com.google.android.apps.mytracks.TrackStubUtils; -import com.google.android.maps.Projection; -import com.google.android.testing.mocking.AndroidMock; -import com.google.android.testing.mocking.UsesMocks; - -import android.graphics.Path; -import android.graphics.Rect; - -import java.util.List; - -/** - * Tests for the {@link SingleColorTrackPathPainter}. - * - * @author Youtao Liu - */ -public class SingleColorTrackPathPainterTest extends TrackPathPainterTestCase { - - private static final int NUMBER_OF_LOCATIONS = 10; - private SingleColorTrackPathPainter singleColorTrackPathPainter; - private Path pathMock; - - - /** - * Initials a mocked TrackPathDescriptor object and - * singleColorTrackPathPainter. - */ - @Override - @UsesMocks(Path.class) - protected void setUp() throws Exception { - super.setUp(); - - singleColorTrackPathPainter = new SingleColorTrackPathPainter(getContext()); - pathMock = AndroidMock.createStrictMock(Path.class); - } - - /** - * Tests the - * {@link SingleColorTrackPathPainter#updatePath(Projection, Rect, int, List)} - * method when all locations are valid. - */ - public void testUpdatePath_AllValidLocation() { - // Gets a number as the start index of points. - int startLocationIdx = NUMBER_OF_LOCATIONS / 2; - - pathMock.incReserve(NUMBER_OF_LOCATIONS - startLocationIdx); - List points = createCachedLocations(NUMBER_OF_LOCATIONS, - TrackStubUtils.INITIAL_LATITUDE, -1); - - for (int i = startLocationIdx; i < NUMBER_OF_LOCATIONS; i++) { - pathMock.lineTo(0, 0); - } - - AndroidMock.replay(pathMock); - singleColorTrackPathPainter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, points, pathMock); - AndroidMock.verify(pathMock); - } - - /** - * Tests the - * {@link SingleColorTrackPathPainter#updatePath(Projection, Rect, int, List)} - * method when all locations are invalid. - */ - public void testUpdatePath_AllInvalidLocation() { - int startLocationIdx = NUMBER_OF_LOCATIONS / 2; - pathMock.incReserve(NUMBER_OF_LOCATIONS - startLocationIdx); - List points = createCachedLocations(NUMBER_OF_LOCATIONS, INVALID_LATITUDE, -1); - // Gets a random number from 1 to numberOfLocations. - AndroidMock.replay(pathMock); - singleColorTrackPathPainter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, points, pathMock); - AndroidMock.verify(pathMock); - } - - /** - * Tests the - * {@link SingleColorTrackPathPainter#updatePath(Projection, Rect, int, List)} - * method when there are three segments. - */ - public void testUpdatePath_ThreeSegments() { - // First segment. - List points = createCachedLocations(NUMBER_OF_LOCATIONS, - TrackStubUtils.INITIAL_LATITUDE, -1); - points.addAll(createCachedLocations(1, INVALID_LATITUDE, -1)); - // Second segment. - points.addAll(createCachedLocations(NUMBER_OF_LOCATIONS, TrackStubUtils.INITIAL_LATITUDE, -1)); - points.addAll(createCachedLocations(1, INVALID_LATITUDE, -1)); - // Third segment. - points.addAll(createCachedLocations(NUMBER_OF_LOCATIONS, TrackStubUtils.INITIAL_LATITUDE, -1)); - // Gets a random number from 1 to numberOfLocations. - int startLocationIdx = NUMBER_OF_LOCATIONS / 2; - pathMock.incReserve(NUMBER_OF_LOCATIONS *3 + 1 +1 - startLocationIdx); - for (int i = 0; i < NUMBER_OF_LOCATIONS - startLocationIdx; i++) { - pathMock.lineTo(0, 0); - } - pathMock.moveTo(0, 0); - for (int i = 0; i < NUMBER_OF_LOCATIONS - 1; i++) { - pathMock.lineTo(0, 0); - } - pathMock.moveTo(0, 0); - for (int i = 0; i < NUMBER_OF_LOCATIONS - 1; i++) { - pathMock.lineTo(0, 0); - } - - AndroidMock.replay(pathMock); - singleColorTrackPathPainter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, points, pathMock); - AndroidMock.verify(pathMock); - } -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorDynamicSpeedTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorDynamicSpeedTest.java deleted file mode 100644 index ec3361dbf..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorDynamicSpeedTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import android.location.Location; - -/** - * Tests for the MyTracks track path descriptors and painters. - * - * @author Vangelis S. - */ -public class TrackPathDescriptorDynamicSpeedTest extends TrackPathPainterTestCase { - - public void testDynamicSpeedTrackPathDescriptor() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - - for (int i = 0; i < 100; ++i) { - location = new Location("gps"); - location.setLatitude(20 + i / 2); - location.setLongitude(150 - i); - myTracksOverlay.addLocation(location); - } - - TrackPathPainter painter = new DynamicSpeedTrackPathPainter( - getContext(), new DynamicSpeedTrackPathDescriptor(getContext())); - myTracksOverlay.setTrackPathPainter(painter); - - int startLocationIdx = 0; - - assertNotNull(painter); - painter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, - myTracksOverlay.getPoints()); - assertNotNull(myTracksOverlay.getTrackPathPainter().hasPath()); - painter.drawPath(canvas); - } -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorFixedSpeedTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorFixedSpeedTest.java deleted file mode 100644 index 668d1d741..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathDescriptorFixedSpeedTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import android.location.Location; - -/** - * Tests for the MyTracks track path descriptors and painters. - * - * @author Vangelis S. - */ -public class TrackPathDescriptorFixedSpeedTest extends TrackPathPainterTestCase { - - public void testFixedSpeedTrackPathDescriptor() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - - for (int i = 0; i < 100; ++i) { - location = new Location("gps"); - location.setLatitude(20 + i / 2); - location.setLongitude(150 - i); - myTracksOverlay.addLocation(location); - } - - TrackPathPainter painter = new DynamicSpeedTrackPathPainter( - getContext(), new FixedSpeedTrackPathDescriptor(getContext())); - myTracksOverlay.setTrackPathPainter(painter); - - int startLocationIdx = 0; - - assertNotNull(painter); - painter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, myTracksOverlay.getPoints()); - assertNotNull(myTracksOverlay.getTrackPathPainter().hasPath()); - painter.drawPath(canvas); - } -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactoryTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactoryTest.java deleted file mode 100644 index 9d9622b6a..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterFactoryTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import com.google.android.apps.mytracks.util.PreferencesUtils; -import com.google.android.maps.mytracks.R; - -import android.content.Context; -import android.location.Location; - -/** - * Tests for the MyTracks track path painter factory. - * - * @author Vangelis S. - */ -public class TrackPathPainterFactoryTest extends TrackPathPainterTestCase { - - public void testTrackPathPainterFactory() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - - for (int i = 0; i < 100; ++i) { - location = new Location("gps"); - location.setLatitude(20 + i / 2); - location.setLongitude(150 - i); - myTracksOverlay.addLocation(location); - } - - Context context = getContext(); - - testTrackPathPainterFactorySpecific(context, - R.string.settings_map_track_color_mode_single_value, SingleColorTrackPathPainter.class); - testTrackPathPainterFactorySpecific(context, R.string.settings_map_track_color_mode_fixed_value, - DynamicSpeedTrackPathPainter.class); - testTrackPathPainterFactorySpecific(context, - R.string.settings_map_track_color_mode_dynamic_value, DynamicSpeedTrackPathPainter.class); - } - - private void testTrackPathPainterFactorySpecific( - Context context, int track_color_mode, Class c) { - PreferencesUtils.setString( - context, R.string.track_color_mode_key, context.getString(track_color_mode)); - - int startLocationIdx = 0; - - TrackPathPainter painter = TrackPathPainterFactory.getTrackPathPainter(context); - myTracksOverlay.setTrackPathPainter(painter); - - assertNotNull(painter); - assertTrue(c.isInstance(painter)); - - painter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, - myTracksOverlay.getPoints()); - assertNotNull(myTracksOverlay.getTrackPathPainter().hasPath()); - painter.drawPath(canvas); - } -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterSingleColorTest.java b/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterSingleColorTest.java deleted file mode 100644 index 32cce7438..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterSingleColorTest.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import android.location.Location; - -/** - * Tests for the MyTracks track path descriptors and painters. - * - * @author Vangelis S. - */ -public class TrackPathPainterSingleColorTest extends TrackPathPainterTestCase { - - public void testSimpeColorTrackPathPainter() throws Exception { - Location location = new Location("gps"); - location.setLatitude(10); - - for (int i = 0; i < 100; ++i) { - location = new Location("gps"); - location.setLatitude(20 + i / 2); - location.setLongitude(150 - i); - myTracksOverlay.addLocation(location); - } - - TrackPathPainter painter = new SingleColorTrackPathPainter(getContext()); - myTracksOverlay.setTrackPathPainter(painter); - - int startLocationIdx = 0; - - assertNotNull(painter); - painter.updatePath(myTracksOverlay.getMapProjection(mockView), - myTracksOverlay.getMapViewRect(mockView), startLocationIdx, - myTracksOverlay.getPoints()); - assertNotNull(myTracksOverlay.getTrackPathPainter().hasPath()); - painter.drawPath(canvas); - } -} diff --git a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterTestCase.java b/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterTestCase.java deleted file mode 100644 index b53909b6e..000000000 --- a/MyTracksTest/src/com/google/android/apps/mytracks/maps/TrackPathPainterTestCase.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ -package com.google.android.apps.mytracks.maps; - -import com.google.android.apps.mytracks.MapOverlay; -import com.google.android.apps.mytracks.MapOverlay.CachedLocation; -import com.google.android.apps.mytracks.MockMyTracksOverlay; -import com.google.android.apps.mytracks.TrackStubUtils; -import com.google.android.maps.MapView; - -import android.graphics.Canvas; -import android.location.Location; -import android.test.AndroidTestCase; - -import java.util.ArrayList; -import java.util.List; - -/** - * Tests for the MyTracks track path descriptors and painters. - * - * @author Vangelis S. - */ -public class TrackPathPainterTestCase extends AndroidTestCase { - - protected Canvas canvas; - protected MockMyTracksOverlay myTracksOverlay; - protected MapView mockView; - - final int INVALID_LATITUDE = 100; - - @Override - protected void setUp() throws Exception { - super.setUp(); - canvas = new Canvas(); - myTracksOverlay = new MockMyTracksOverlay(getContext()); - // Enable drawing. - myTracksOverlay.setTrackDrawingEnabled(true); - mockView = null; - } - - /** - * Creates a list of CachedLocations. - * - * @param number the number of locations - * @param latitude the latitude value of locations. - * @param speed the speed(meter per second) of locations, and will give a default valid value if - * less than zero - * @return the simulated locations - */ - List createCachedLocations(int number, double latitude, float speed) { - List points = new ArrayList(); - for (int i = 0; i < number; ++i) { - Location location = TrackStubUtils.createMyTracksLocation(latitude, - TrackStubUtils.INITIAL_LONGITUDE, TrackStubUtils.INITIAL_ALTITUDE); - if (speed > 0) { - location.setSpeed(speed); - } - CachedLocation cachedLocation = new CachedLocation(location); - points.add(cachedLocation); - } - return points; - } -} diff --git a/google_play_services_lib/.classpath b/google_play_services_lib/.classpath new file mode 100644 index 000000000..3f9691c5d --- /dev/null +++ b/google_play_services_lib/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/google_play_services_lib/.project b/google_play_services_lib/.project new file mode 100755 index 000000000..0a85af4e7 --- /dev/null +++ b/google_play_services_lib/.project @@ -0,0 +1,33 @@ + + + Google Maps Library Dynamic + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/google_play_services_lib/AndroidManifest.xml b/google_play_services_lib/AndroidManifest.xml new file mode 100755 index 000000000..5a6bc5dc7 --- /dev/null +++ b/google_play_services_lib/AndroidManifest.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/google_play_services_lib/README.txt b/google_play_services_lib/README.txt new file mode 100644 index 000000000..901da746e --- /dev/null +++ b/google_play_services_lib/README.txt @@ -0,0 +1,14 @@ +Library Project including Google Play services client jar. + +This can be used by an Android project to use the API's provided +by Google Play services. + +There is technically no source, but the src folder is necessary +to ensure that the build system works. The content is actually +located in libs/google-play-services.jar + + +USAGE: + +Make sure you import this Android library project into your IDE +and set this project as a dependency. diff --git a/google_play_services_lib/libs/google-play-services.jar b/google_play_services_lib/libs/google-play-services.jar new file mode 100644 index 0000000000000000000000000000000000000000..81c3c56efdba8e530a635f4ff59cb3c07b6f0159 GIT binary patch literal 304325 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⪼T$stTSgccPG(G_A04V$dvyc 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 literal 0 HcmV?d00001 diff --git a/google_play_services_lib/libs/google-play-services.jar.properties b/google_play_services_lib/libs/google-play-services.jar.properties new file mode 100644 index 000000000..429687b79 --- /dev/null +++ b/google_play_services_lib/libs/google-play-services.jar.properties @@ -0,0 +1 @@ +doc=../../../docs/reference diff --git a/google_play_services_lib/project.properties b/google_play_services_lib/project.properties new file mode 100755 index 000000000..db721fd89 --- /dev/null +++ b/google_play_services_lib/project.properties @@ -0,0 +1,15 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-8 +android.library=true diff --git a/google_play_services_lib/res/values/maps_attrs.xml b/google_play_services_lib/res/values/maps_attrs.xml new file mode 100644 index 000000000..ade282e99 --- /dev/null +++ b/google_play_services_lib/res/values/maps_attrs.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/google_play_services_lib/res/values/strings.xml b/google_play_services_lib/res/values/strings.xml new file mode 100644 index 000000000..5bb77e14a --- /dev/null +++ b/google_play_services_lib/res/values/strings.xml @@ -0,0 +1,47 @@ + + + + + Get Google Play services + + + This app won\'t run without + Google Play services, which are missing from your phone. + + + This app won\'t run without + Google Play services, which are missing from your tablet. + + + Get Google Play services + + + Enable Google Play services + + + This app won\'t work unless you + enable Google Play services. + + + Enable Google Play services + + + Update Google Play services + + + This app won\'t run unless you + update Google Play services. + + + Update + + diff --git a/google_play_services_lib/src/.readme b/google_play_services_lib/src/.readme new file mode 100644 index 000000000..145ea525b --- /dev/null +++ b/google_play_services_lib/src/.readme @@ -0,0 +1 @@ +This hidden file is here to ensure there is a src folder.