Description: Google OAuth Client Library for Java. Functionality that works on all supported Java platforms,
- including Java 5 (or higher) desktop (SE) and web (EE), Android, and Google App Engine.
Description: Google HTTP Client Library for Java. Functionality that works on all supported Java platforms,
- including Java 5 (or higher) desktop (SE) and web (EE), Android, and Google App Engine.
Description: There is currently no description associated with this project.
Project License: No project license is defined for this project.
xpp3:xpp3:jar:1.1.4c (compile)
MXP1: Xml Pull Parser 3rd Edition (XPP3)
Description: MXP1 is a stable XmlPull parsing engine that is based on ideas from XPP and in particular XPP2 but completely revised and rewritten to take the best advantage of latest JIT JVMs such as Hotspot in JDK 1.4+.
Description: Guava is a suite of core and expanded libraries that include
- utility classes, google's collections, io classes, and much
- much more.
-
- This project is a complete packaging of all the Guava libraries
- into a single jar. Individual portions of Guava can be used
- by downloading the appropriate module and its dependencies.
-
- Guava (complete) has only one code dependency - javax.annotation,
- per the JSR-305 spec.
Description: MXP1 is a stable XmlPull parsing engine that is based on ideas from XPP and in particular XPP2 but completely revised and rewritten to take the best advantage of latest JIT JVMs such as Hotspot in JDK 1.4+.
Description: The codec package contains simple encoder and decoders for
- various formats such as Base64 and Hexadecimal. In addition to these
- widely used encoders and decoders, the codec package also maintains a
- collection of phonetic encoding utilities.
Description: Guava is a suite of core and expanded libraries that include
- utility classes, google's collections, io classes, and much
- much more.
-
- This project is a complete packaging of all the Guava libraries
- into a single jar. Individual portions of Guava can be used
- by downloading the appropriate module and its dependencies.
-
- Guava (complete) has only one code dependency - javax.annotation,
- per the JSR-305 spec.
Apache Software License, version 1.1: MXP1: Xml Pull Parser 3rd Edition (XPP3)
Public Domain: MXP1: Xml Pull Parser 3rd Edition (XPP3)
Unknown: xmlParserAPIs
Apache License: HttpClient, HttpCore
New BSD license: Protocol Buffer Java API
Common Public License Version 1.0: JUnit
Apache 2.0: Google Android Java ME Library (Khronos), Google Android Library
The Apache Software License, Version 2.0: Drive API v2, Commons Codec, Commons Logging, FindBugs-jsr305, Google APIs Client Library for Java, Google HTTP Client Library for Java, Google OAuth Client Library for Java, Gson, Guava: Google Core Libraries for Java, Jackson
Indiana University Extreme! Lab Software License, vesion 1.1.1: MXP1: Xml Pull Parser 3rd Edition (XPP3)
-The generated service-specific library can be found in the top level directory
-of the zip file:
-google-api-services-drive-v2-rev30-1.12.0-beta.jar
-
-
Maven Usage
-Maven users can specify the service-specific generated library in their
-project's plugin configuration:
-
-A .classpath file snippet that can be included in your project's .classpath has been provided here.
-Please only use the classpathentry's you actually need (see below for details).
-
-
ProGuard
-A ProGuard configuration file proguard-google-api-client.txt
-is included for common settings for using the library. On Android projects, you may want to add a reference to
-proguard-google-api-client.txt in the project.properties file under the
-proguard.config property.
-
-
Dependencies
-
-Dependent jars for
-google-api-services-drive-v2-rev30-1.12.0-beta.jar
-can be found in the libs folder and the corresponding source
-jars can be found in the libs-sources folder.
-
-The dependency structure and licenses can be found in
-dependencies.html.
-
-
-
Dependencies for all Platforms
-The following are the jars from the libs folder required for
-applications on all platforms:
-
-
google-api-client-1.12.0-beta.jar
-
google-oauth-client-1.12.0-beta.jar
-
google-http-client-1.12.0-beta.jar
-
guava-jdk5-13.0.jar
-
jsr305-1.3.9.jar
-
google-http-client-gson-1.12.0-beta.jar (when using GSON)
-
-
gson-2.1.jar
-
-
-
google-http-client-jackson-1.12.0-beta.jar (when using Jackson)
-
-
jackson-core-asl-1.9.9.jar
-
-
-
google-http-client-jackson2-1.12.0-beta.jar (when using Jackson 2)
-
-
jackson-core-$2.0.5.jar
-
-
-
-
-
Android Dependencies
-The following are the jars from the libs folder required for
-android applications or a newer compatible version of each dependency:
-
-libs folder also contains properties files that specify the location of source
-jars for Android projects in Eclipse.
-Please see the
-Android wiki
-for the Android Developer's Guide.
-
-
Google App Engine Dependencies
-The following are the jars from the libs folder required for
-Google App Engine applications or a newer compatible version of each dependency:
-
-
google-api-client-appengine-1.12.0-beta.jar
-
google-oauth-client-appengine-1.12.0-beta.jar
-
google-oauth-client-servlet-1.12.0-beta.jar
-
google-http-client-appengine-1.12.0-beta.jar
-
jdo2-api-2.3-eb.jar
-
transaction-api-1.1.jar
-
xpp3-1.1.4c.jar
-
-Please see the
-GoogleAppEngine wiki
-for the Google App Engine Developer's Guide.
-
-
Servlet Dependencies
-The following are the jars from the libs folder required for
-Servlet applications or a newer compatible version of each dependency:
-
-
google-oauth-client-1.12.0-beta.jar
-
google-oauth-client-servlet-1.12.0-beta.jar
-
commons-logging-1.1.1.jar
-
httpclient-4.0.3.jar
-
httpcore-4.0.1.jar
-
jdo2-api-2.3-eb.jar
-
transaction-api-1.1.jar
-
xpp3-1.1.4c.jar
-
-
-
General Purpose Java 5 Environment Dependencies
-The following are the jars from the libs folder required for
-general purpose Java 5 applications (or a newer compatible version of each dependency):
-
-
-
-
-
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/LICENSE.txt b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/LICENSE.txt
deleted file mode 100644
index d64569567..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/LICENSE.txt
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/classpath-include b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/classpath-include
deleted file mode 100644
index 97fea11f4..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/classpath-include
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/BSD-LICENSE.txt b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/BSD-LICENSE.txt
deleted file mode 100644
index dcdcc4234..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/BSD-LICENSE.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-BSD License
-
-Copyright (c) 2000-2006, www.hamcrest.org
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-Redistributions of source code must retain the above copyright notice, this list of
-conditions and the following disclaimer. Redistributions in binary form must reproduce
-the above copyright notice, this list of conditions and the following disclaimer in
-the documentation and/or other materials provided with the distribution.
-
-Neither the name of Hamcrest nor the names of its contributors may be used to endorse
-or promote products derived from this software without specific prior written
-permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
-SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
-WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/maven-base.css b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/maven-base.css
deleted file mode 100644
index f39e42c48..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/maven-base.css
+++ /dev/null
@@ -1,151 +0,0 @@
-body {
- margin: 0px;
- padding: 0px;
-}
-img {
- border:none;
-}
-table {
- padding:0px;
- width: 100%;
- margin-left: -2px;
- margin-right: -2px;
-}
-acronym {
- cursor: help;
- border-bottom: 1px dotted #feb;
-}
-table.bodyTable th, table.bodyTable td {
- padding: 2px 4px 2px 4px;
- vertical-align: top;
-}
-div.clear{
- clear:both;
- visibility: hidden;
-}
-div.clear hr{
- display: none;
-}
-#bannerLeft, #bannerRight {
- font-size: xx-large;
- font-weight: bold;
-}
-#bannerLeft img, #bannerRight img {
- margin: 0px;
-}
-.xleft, #bannerLeft img {
- float:left;
-}
-.xright, #bannerRight {
- float:right;
-}
-#banner {
- padding: 0px;
-}
-#banner img {
- border: none;
-}
-#breadcrumbs {
- padding: 3px 10px 3px 10px;
-}
-#leftColumn {
- width: 170px;
- float:left;
- overflow: auto;
-}
-#bodyColumn {
- margin-right: 1.5em;
- margin-left: 197px;
-}
-#legend {
- padding: 8px 0 8px 0;
-}
-#navcolumn {
- padding: 8px 4px 0 8px;
-}
-#navcolumn h5 {
- margin: 0;
- padding: 0;
- font-size: small;
-}
-#navcolumn ul {
- margin: 0;
- padding: 0;
- font-size: small;
-}
-#navcolumn li {
- list-style-type: none;
- background-image: none;
- background-repeat: no-repeat;
- background-position: 0 0.4em;
- padding-left: 16px;
- list-style-position: outside;
- line-height: 1.2em;
- font-size: smaller;
-}
-#navcolumn li.expanded {
- background-image: url(../images/expanded.gif);
-}
-#navcolumn li.collapsed {
- background-image: url(../images/collapsed.gif);
-}
-#poweredBy {
- text-align: center;
-}
-#navcolumn img {
- margin-top: 10px;
- margin-bottom: 3px;
-}
-#poweredBy img {
- display:block;
- margin: 20px 0 20px 17px;
-}
-#search img {
- margin: 0px;
- display: block;
-}
-#search #q, #search #btnG {
- border: 1px solid #999;
- margin-bottom:10px;
-}
-#search form {
- margin: 0px;
-}
-#lastPublished {
- font-size: x-small;
-}
-.navSection {
- margin-bottom: 2px;
- padding: 8px;
-}
-.navSectionHead {
- font-weight: bold;
- font-size: x-small;
-}
-.section {
- padding: 4px;
-}
-#footer {
- padding: 3px 10px 3px 10px;
- font-size: x-small;
-}
-#breadcrumbs {
- font-size: x-small;
- margin: 0pt;
-}
-.source {
- padding: 12px;
- margin: 1em 7px 1em 7px;
-}
-.source pre {
- margin: 0px;
- padding: 0px;
-}
-#navcolumn img.imageLink, .imageLink {
- padding-left: 0px;
- padding-bottom: 0px;
- padding-top: 0px;
- padding-right: 2px;
- border: 0px;
- margin: 0px;
-}
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/maven-theme.css b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/maven-theme.css
deleted file mode 100644
index ec29c893c..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/maven-theme.css
+++ /dev/null
@@ -1,141 +0,0 @@
-body {
- padding: 0px 0px 10px 0px;
-}
-body, td, select, input, li{
- font-family: Verdana, Helvetica, Arial, sans-serif;
- font-size: 13px;
-}
-code{
- font-family: Courier, monospace;
- font-size: 13px;
-}
-a {
- text-decoration: none;
-}
-a:link {
- color:#36a;
-}
-a:visited {
- color:#47a;
-}
-a:active, a:hover {
- color:#69c;
-}
-#legend li.externalLink {
- background: url(../images/external.png) left top no-repeat;
- padding-left: 18px;
-}
-a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
- background: url(../images/external.png) right center no-repeat;
- padding-right: 18px;
-}
-#legend li.newWindow {
- background: url(../images/newwindow.png) left top no-repeat;
- padding-left: 18px;
-}
-a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
- background: url(../images/newwindow.png) right center no-repeat;
- padding-right: 18px;
-}
-h2 {
- padding: 4px 4px 4px 6px;
- border: 1px solid #999;
- color: #900;
- background-color: #ddd;
- font-weight:900;
- font-size: x-large;
-}
-h3 {
- padding: 4px 4px 4px 6px;
- border: 1px solid #aaa;
- color: #900;
- background-color: #eee;
- font-weight: normal;
- font-size: large;
-}
-h4 {
- padding: 4px 4px 4px 6px;
- border: 1px solid #bbb;
- color: #900;
- background-color: #fff;
- font-weight: normal;
- font-size: large;
-}
-h5 {
- padding: 4px 4px 4px 6px;
- color: #900;
- font-size: normal;
-}
-p {
- line-height: 1.3em;
- font-size: small;
-}
-#breadcrumbs {
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
- background-color: #ccc;
-}
-#leftColumn {
- margin: 10px 0 0 5px;
- border: 1px solid #999;
- background-color: #eee;
-}
-#navcolumn h5 {
- font-size: smaller;
- border-bottom: 1px solid #aaaaaa;
- padding-top: 2px;
- color: #000;
-}
-
-table.bodyTable th {
- color: white;
- background-color: #bbb;
- text-align: left;
- font-weight: bold;
-}
-
-table.bodyTable th, table.bodyTable td {
- font-size: 1em;
-}
-
-table.bodyTable tr.a {
- background-color: #ddd;
-}
-
-table.bodyTable tr.b {
- background-color: #eee;
-}
-
-.source {
- border: 1px solid #999;
-}
-dl {
- padding: 4px 4px 4px 6px;
- border: 1px solid #aaa;
- background-color: #ffc;
-}
-dt {
- color: #900;
-}
-#organizationLogo img, #projectLogo img, #projectLogo span{
- margin: 8px;
-}
-#banner {
- border-bottom: 1px solid #fff;
-}
-.errormark, .warningmark, .donemark, .infomark {
- background: url(../images/icon_error_sml.gif) no-repeat;
-}
-
-.warningmark {
- background-image: url(../images/icon_warning_sml.gif);
-}
-
-.donemark {
- background-image: url(../images/icon_success_sml.gif);
-}
-
-.infomark {
- background-image: url(../images/icon_info_sml.gif);
-}
-
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/print.css b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/print.css
deleted file mode 100644
index a5e7bd95f..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/print.css
+++ /dev/null
@@ -1,7 +0,0 @@
-#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {
- display: none !important;
-}
-#bodyColumn, body.docs div.docs {
- margin: 0 !important;
- border: none !important
-}
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/site.css b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/site.css
deleted file mode 100644
index 055e7e286..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/css/site.css
+++ /dev/null
@@ -1 +0,0 @@
-/* You can override this file with your own styles */
\ No newline at end of file
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/dependencies.html b/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/dependencies.html
deleted file mode 100644
index f262d16d0..000000000
--- a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/dependencies/dependencies.html
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
- Project Dependencies
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Last Published: 2012-03-07
- | Version: v1-1.12.0-beta
-
Description: Google OAuth Client Library for Java. Functionality that works on all supported Java platforms,
- including Java 5 (or higher) desktop (SE) and web (EE), Android, and Google App Engine.
Description: Google HTTP Client Library for Java. Functionality that works on all supported Java platforms,
- including Java 5 (or higher) desktop (SE) and web (EE), Android, and Google App Engine.
Description: There is currently no description associated with this project.
Project License: No project license is defined for this project.
xpp3:xpp3:jar:1.1.4c (compile)
MXP1: Xml Pull Parser 3rd Edition (XPP3)
Description: MXP1 is a stable XmlPull parsing engine that is based on ideas from XPP and in particular XPP2 but completely revised and rewritten to take the best advantage of latest JIT JVMs such as Hotspot in JDK 1.4+.
Description: Guava is a suite of core and expanded libraries that include
- utility classes, google's collections, io classes, and much
- much more.
-
- This project is a complete packaging of all the Guava libraries
- into a single jar. Individual portions of Guava can be used
- by downloading the appropriate module and its dependencies.
-
- Guava (complete) has only one code dependency - javax.annotation,
- per the JSR-305 spec.
Description: MXP1 is a stable XmlPull parsing engine that is based on ideas from XPP and in particular XPP2 but completely revised and rewritten to take the best advantage of latest JIT JVMs such as Hotspot in JDK 1.4+.
Description: The codec package contains simple encoder and decoders for
- various formats such as Base64 and Hexadecimal. In addition to these
- widely used encoders and decoders, the codec package also maintains a
- collection of phonetic encoding utilities.
Description: Guava is a suite of core and expanded libraries that include
- utility classes, google's collections, io classes, and much
- much more.
-
- This project is a complete packaging of all the Guava libraries
- into a single jar. Individual portions of Guava can be used
- by downloading the appropriate module and its dependencies.
-
- Guava (complete) has only one code dependency - javax.annotation,
- per the JSR-305 spec.
Apache Software License, version 1.1: MXP1: Xml Pull Parser 3rd Edition (XPP3)
Public Domain: MXP1: Xml Pull Parser 3rd Edition (XPP3)
Unknown: xmlParserAPIs
Apache License: HttpClient, HttpCore
New BSD license: Protocol Buffer Java API
Common Public License Version 1.0: JUnit
Apache 2.0: Google Android Java ME Library (Khronos), Google Android Library
The Apache Software License, Version 2.0: Fusion Tables API v1, Commons Codec, Commons Logging, FindBugs-jsr305, Google APIs Client Library for Java, Google HTTP Client Library for Java, Google OAuth Client Library for Java, Gson, Guava: Google Core Libraries for Java, Jackson
Indiana University Extreme! Lab Software License, vesion 1.1.1: MXP1: Xml Pull Parser 3rd Edition (XPP3)
-The generated service-specific library can be found in the top level directory
-of the zip file:
-google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
-
-
Maven Usage
-Maven users can specify the service-specific generated library in their
-project's plugin configuration:
-
-A .classpath file snippet that can be included in your project's .classpath has been provided here.
-Please only use the classpathentry's you actually need (see below for details).
-
-
ProGuard
-A ProGuard configuration file proguard-google-api-client.txt
-is included for common settings for using the library. On Android projects, you may want to add a reference to
-proguard-google-api-client.txt in the project.properties file under the
-proguard.config property.
-
-
Dependencies
-
-Dependent jars for
-google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
-can be found in the libs folder and the corresponding source
-jars can be found in the libs-sources folder.
-
-The dependency structure and licenses can be found in
-dependencies.html.
-
-
-
Dependencies for all Platforms
-The following are the jars from the libs folder required for
-applications on all platforms:
-
-
google-api-client-1.12.0-beta.jar
-
google-oauth-client-1.12.0-beta.jar
-
google-http-client-1.12.0-beta.jar
-
guava-jdk5-13.0.jar
-
jsr305-1.3.9.jar
-
google-http-client-gson-1.12.0-beta.jar (when using GSON)
-
-
gson-2.1.jar
-
-
-
google-http-client-jackson-1.12.0-beta.jar (when using Jackson)
-
-
jackson-core-asl-1.9.9.jar
-
-
-
google-http-client-jackson2-1.12.0-beta.jar (when using Jackson 2)
-
-
jackson-core-$2.0.5.jar
-
-
-
-
-
Android Dependencies
-The following are the jars from the libs folder required for
-android applications or a newer compatible version of each dependency:
-
-libs folder also contains properties files that specify the location of source
-jars for Android projects in Eclipse.
-Please see the
-Android wiki
-for the Android Developer's Guide.
-
-
Google App Engine Dependencies
-The following are the jars from the libs folder required for
-Google App Engine applications or a newer compatible version of each dependency:
-
-
google-api-client-appengine-1.12.0-beta.jar
-
google-oauth-client-appengine-1.12.0-beta.jar
-
google-oauth-client-servlet-1.12.0-beta.jar
-
google-http-client-appengine-1.12.0-beta.jar
-
jdo2-api-2.3-eb.jar
-
transaction-api-1.1.jar
-
xpp3-1.1.4c.jar
-
-Please see the
-GoogleAppEngine wiki
-for the Google App Engine Developer's Guide.
-
-
Servlet Dependencies
-The following are the jars from the libs folder required for
-Servlet applications or a newer compatible version of each dependency:
-
-
google-oauth-client-1.12.0-beta.jar
-
google-oauth-client-servlet-1.12.0-beta.jar
-
commons-logging-1.1.1.jar
-
httpclient-4.0.3.jar
-
httpcore-4.0.1.jar
-
jdo2-api-2.3-eb.jar
-
transaction-api-1.1.jar
-
xpp3-1.1.4c.jar
-
-
-
General Purpose Java 5 Environment Dependencies
-The following are the jars from the libs folder required for
-general purpose Java 5 applications (or a newer compatible version of each dependency):
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MyTracks/googleplayservices_lib/libs/google-play-services.jar b/MyTracks/googleplayservices_lib/libs/google-play-services.jar
new file mode 100644
index 000000000..7839fe301
Binary files /dev/null and b/MyTracks/googleplayservices_lib/libs/google-play-services.jar differ
diff --git a/MyTracks/googleplayservices_lib/src/main/AndroidManifest.xml b/MyTracks/googleplayservices_lib/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..2e6aa673e
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/AndroidManifest.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/java/android/UnusedStub.java b/MyTracks/googleplayservices_lib/src/main/java/android/UnusedStub.java
new file mode 100644
index 000000000..d546b0ba9
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/java/android/UnusedStub.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * 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 android;
+
+// Stub java file to make inclusion into some IDE's work.
+public final class UnusedStub {
+ private UnusedStub() { }
+}
diff --git a/MyTracks/googleplayservices_lib/src/main/res/color/common_signin_btn_text_dark.xml b/MyTracks/googleplayservices_lib/src/main/res/color/common_signin_btn_text_dark.xml
new file mode 100644
index 000000000..a615ba274
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/color/common_signin_btn_text_dark.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/color/common_signin_btn_text_light.xml b/MyTracks/googleplayservices_lib/src/main/res/color/common_signin_btn_text_light.xml
new file mode 100644
index 000000000..662066899
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/color/common_signin_btn_text_light.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png
new file mode 100644
index 000000000..0f9e7917e
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png
new file mode 100644
index 000000000..570e43225
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png
new file mode 100644
index 000000000..570e43225
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png
new file mode 100644
index 000000000..0f9e7917e
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png
new file mode 100644
index 000000000..f507b9f7d
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png
new file mode 100644
index 000000000..d5625e5fc
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png
new file mode 100644
index 000000000..aea3c0d16
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png
new file mode 100644
index 000000000..849e89f3a
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png
new file mode 100644
index 000000000..f4ab2f2a5
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png
new file mode 100644
index 000000000..9fe611d68
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png
new file mode 100644
index 000000000..bbcde39cf
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png
new file mode 100644
index 000000000..53957b698
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png
new file mode 100644
index 000000000..53957b698
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png
new file mode 100644
index 000000000..bbcde39cf
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png
new file mode 100644
index 000000000..000d12e8e
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png
new file mode 100644
index 000000000..d9279405c
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png
new file mode 100644
index 000000000..67f263c80
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png
new file mode 100644
index 000000000..96324c52f
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png
new file mode 100644
index 000000000..e4503128f
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png
new file mode 100644
index 000000000..fb94b7761
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png
new file mode 100644
index 000000000..dddcbebf1
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png
new file mode 100644
index 000000000..58b75bd7d
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png
new file mode 100644
index 000000000..58b75bd7d
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png
new file mode 100644
index 000000000..dddcbebf1
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png
new file mode 100644
index 000000000..7d9ed7834
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png
new file mode 100644
index 000000000..0ca401d37
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png
new file mode 100644
index 000000000..f2c3f5571
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png
new file mode 100644
index 000000000..83b4fc9d6
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png
new file mode 100644
index 000000000..dd74fe876
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png
new file mode 100644
index 000000000..b7dc7aac7
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png
new file mode 100644
index 000000000..efdfe2e61
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png
new file mode 100644
index 000000000..c7650b09e
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png
new file mode 100644
index 000000000..c7650b09e
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png
new file mode 100644
index 000000000..efdfe2e61
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png
new file mode 100644
index 000000000..8c76283e5
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png
new file mode 100644
index 000000000..abd26bcd4
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png
new file mode 100644
index 000000000..28181c338
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png
new file mode 100644
index 000000000..34957fad5
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png
new file mode 100644
index 000000000..e923ee9c7
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png
new file mode 100644
index 000000000..34cf6bbad
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png
new file mode 100644
index 000000000..9044a118a
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png
new file mode 100644
index 000000000..e94a49b0a
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png
new file mode 100644
index 000000000..e94a49b0a
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png
new file mode 100644
index 000000000..9044a118a
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png
new file mode 100644
index 000000000..bfe4f0463
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png
new file mode 100644
index 000000000..876884fad
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png
new file mode 100644
index 000000000..b3e6dd5b4
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png
new file mode 100644
index 000000000..5a888f28f
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png
new file mode 100644
index 000000000..d0f7b4cbf
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png
new file mode 100644
index 000000000..0db6b0645
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png
new file mode 100644
index 000000000..d182b5e2c
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png
new file mode 100644
index 000000000..47e2aeaf3
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png
new file mode 100644
index 000000000..47e2aeaf3
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png
new file mode 100644
index 000000000..d182b5e2c
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png
new file mode 100644
index 000000000..64e970687
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png
new file mode 100644
index 000000000..0fd8cdda1
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png
new file mode 100644
index 000000000..3427b4768
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png
new file mode 100644
index 000000000..31e38c4c1
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png
new file mode 100644
index 000000000..e6a788073
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png
new file mode 100644
index 000000000..972962dcf
Binary files /dev/null and b/MyTracks/googleplayservices_lib/src/main/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png differ
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_icon_dark.xml b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_icon_dark.xml
new file mode 100644
index 000000000..dd1cf679f
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_icon_dark.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_icon_light.xml b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_icon_light.xml
new file mode 100644
index 000000000..abf412bda
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_icon_light.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_text_dark.xml b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_text_dark.xml
new file mode 100644
index 000000000..2d92217cd
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_text_dark.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_text_light.xml b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_text_light.xml
new file mode 100644
index 000000000..810c02112
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/drawable/common_signin_btn_text_light.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-af/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-af/strings.xml
new file mode 100644
index 000000000..005421f2d
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-af/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Kry Google Play-dienste"
+ "Hierdie program sal nie loop sonder Google Play-dienste nie, wat nie op jou foon is nie."
+ "Hierdie program sal nie loop sonder Google Play-dienste nie, wat nie op jou tablet is nie."
+ "Kry Google Play-dienste"
+ "Aktiveer Google Play-dienste"
+ "Hierdie program sal nie werk tensy jy Google Play-dienste aktiveer nie."
+ "Aktiveer Google Play-dienste"
+ "Dateer Google Play-dienste op"
+ "Hierdie program sal nie loop nie, tensy jy Google Play-dienste opdateer."
+ "Onbekende probleem met Google Play-dienste."
+ "Google Play-dienste"
+ "Google Play-dienste, waarop sommige van jou programme staatmaak, werk nie met jou toestel nie. Kontak asseblief die vervaardiger vir bystand."
+ "Dateer op"
+ "Meld aan"
+ "Meld aan met Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-am/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-am/strings.xml
new file mode 100644
index 000000000..a253c224c
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-am/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play አገልግሎቶችን አግኝ"
+ "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ስልክዎ ላይ የሉም።"
+ "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ጡባዊዎ ላይ የሉም።"
+ "Google Play አገልግሎቶችን አግኝ"
+ "Google Play አገልግሎቶችን አንቃ"
+ "Google Play አገልግሎቶችን እስካላነቁ ድረስ ይህ መተግበሪያ አይሰራም።"
+ "Google Play አገልግሎቶችን አንቃ"
+ "Google Play አገልግሎቶችን ያዘምኑ"
+ "Google Play አገልግሎቶችን እስኪያዘምኑ ድረስ ይህ መተግበሪያ አይሰራም።"
+ "በGoogle Play አገልግሎቶች ላይ ያልታወቀ ችግር።"
+ "Google Play አገልግሎቶች"
+ "የGoogle Play አገልግሎቶች፣ አንዳንድ መተግበሪያዎችዎ በእሱ ላይ ጥገኛ የሆኑት፣ በመሣሪያዎ አይደገፍም። እባክዎ ለእርዳታ አምራቹን ያግኙ።"
+ "ያዘምኑ"
+ "ግባ"
+ "በGoogle ይግቡ"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ar/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ar/strings.xml
new file mode 100644
index 000000000..bd27a3a2f
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ar/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "الحصول على خدمات Google Play"
+ "لن يتم تشغيل هذا التطبيق بدون خدمات Google Play، والتي لا تتوفر في هاتفك."
+ "لن يتم تشغيل هذا التطبيق بدون خدمات Google Play، والتي لا تتوفر في جهازك اللوحي."
+ "الحصول على خدمات Google Play"
+ "تمكين خدمات Google Play"
+ "لن يعمل هذا التطبيق ما لم يتم تمكين خدمات Google Play."
+ "تمكين خدمات Google Play"
+ "تحديث خدمات Google Play"
+ "لن يتم تشغيل هذا التطبيق ما لم تحدِّث خدمات Google Play."
+ "حدثت مشكلة غير معروفة في خدمات Google Play."
+ "خدمات Google Play"
+ "خدمات Google Play التي تستجيب لها بعض تطبيقاتك لا تعمل على جهازك. يُرجى الاتصال بجهة التصنيع للحصول على المساعدة."
+ "تحديث"
+ "تسجيل الدخول"
+ "تسجيل الدخول باستخدام Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-be/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-be/strings.xml
new file mode 100644
index 000000000..8c2fafb94
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-be/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Атрымаць службы Google Play"
+ "Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма ў вашым тэлефоне."
+ "Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма на вашым планшэце."
+ "Атрымаць службы Google Play"
+ "Уключыць службы Google Play"
+ "Гэта прыкладанне не будзе працаваць, пакуль вы не ўключыце службы Google Play."
+ "Уключыць службы Google Play"
+ "Абнаўленне службаў Google Play"
+ "Гэта прыкладанне не будзе працаваць падчас абнаўлення службаў Google Play."
+ "Невядомая праблема са службамі Google Play."
+ "Службы Google Play"
+ "Службы Google Play, да якiх прывязаны некаторыя прыкладаннi, не падтрымлiваюцца на вашай прыладзе. Па дапамогу звярнiцеся да вытворцы."
+ "Абнавіць"
+ "Увайсцi"
+ "Увайсці ў Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-bg/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-bg/strings.xml
new file mode 100644
index 000000000..4a623bdcf
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-bg/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Изтегляне на услугите за Google Play"
+ "Това приложение няма да се изпълнява без услугите за Google Play, които липсват в телефона ви."
+ "Това приложение няма да се изпълнява без услугите за Google Play, които липсват в таблета ви."
+ "Услуги за Google Play: Изтегл."
+ "Активиране на услугите за Google Play"
+ "Това приложение няма да работи, освен ако не активирате услугите за Google Play."
+ "Услуги за Google Play: Актив."
+ "Актуализиране на услугите за Google Play"
+ "Това приложение няма да се изпълнява, освен ако не актуализирате услугите за Google Play."
+ "Неизвестен проблем с услугите за Google Play."
+ "Услуги за Google Play"
+ "Услугите за Google Play, на които разчитат някои от приложенията ви, не се поддържат от устройството ви. Моля, свържете се с производителя за помощ."
+ "Актуализиране"
+ "Вход"
+ "Вход с Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ca/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ca/strings.xml
new file mode 100644
index 000000000..6eed55793
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ca/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Baixa els serveis de Google Play"
+ "Aquesta aplicació no s\'executarà si el telèfon no té instal·lats els serveis de Google Play."
+ "Aquesta aplicació no funcionarà si la tauleta no té instal·lats els serveis de Google Play."
+ "Baixa els serveis de Google Play"
+ "Activa els serveis de Google Play"
+ "Aquesta aplicació no funcionarà si no actives els serveis de Google Play."
+ "Activa els serveis de Google Play"
+ "Actualitza els serveis de Google Play"
+ "Aquesta aplicació no s\'executarà si no actualitzes els serveis de Google Play."
+ "Error desconegut relacionat amb els serveis de Google Play."
+ "Serveis de Google Play"
+ "El teu dispositiu no és compatible amb els serveis de Google Play, en què es basen les teves aplicacions. Per obtenir assistència, contacta amb el fabricant."
+ "Actualitza"
+ "Inicia sessió"
+ "Inicia sessió amb Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-cs/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-cs/strings.xml
new file mode 100644
index 000000000..5a315bdd2
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-cs/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Instalovat služby Google Play"
+ "Ke spuštění této aplikace jsou potřeba služby Google Play, které v telefonu nemáte."
+ "Ke spuštění této aplikace jsou potřeba služby Google Play, které v tabletu nemáte."
+ "Instalovat služby Google Play"
+ "Aktivovat služby Google Play"
+ "Ke spuštění této aplikace je třeba aktivovat služby Google Play."
+ "Aktivovat služby Google Play"
+ "Aktualizace služeb Google Play"
+ "Ke spuštění této aplikace je třeba aktualizovat služby Google Play."
+ "Nastal neznámý problém se službami Google Play."
+ "Služby Google Play"
+ "Některé vaše aplikace vyžadují služby Google Play, které ve vašem zařízení nejsou podporovány. S žádostí o pomoc se prosím obraťte na výrobce."
+ "Aktualizovat"
+ "Přihlásit se"
+ "Přihlásit se účtem Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-da/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-da/strings.xml
new file mode 100644
index 000000000..8fa545570
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-da/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Hent Google Play-tjenester"
+ "Denne app kan ikke køre uden Google Play-tjenester, som mangler på din telefon."
+ "Denne app kan ikke køre uden Google Play-tjenester, som mangler på din tablet."
+ "Hent Google Play-tjenester"
+ "Aktivér Google Play-tjenester"
+ "Denne app virker ikke, medmindre du aktiverer Google Play-tjenester."
+ "Aktivér Google Play-tjenester"
+ "Opdater Google Play-tjenester"
+ "Denne app kan ikke køre, medmindre du opdaterer Google Play-tjenester."
+ "Ukendt problem med Google Play-tjenester."
+ "Google Play-tjenester"
+ "Google Play-tjenester, som nogle af dine applikationer er afhængige af, understøttes ikke af din enhed. Kontakt producenten for at få hjælp."
+ "Opdater"
+ "Log ind"
+ "Log ind med Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-de/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-de/strings.xml
new file mode 100644
index 000000000..6b2bf6648
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-de/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play-Dienste installieren"
+ "Zur Nutzung dieser App sind Google Play-Dienste erforderlich, die auf Ihrem Telefon nicht installiert sind."
+ "Zur Nutzung dieser App sind Google Play-Dienste erforderlich, die auf Ihrem Tablet nicht installiert sind."
+ "Google Play-Dienste installieren"
+ "Google Play-Dienste aktivieren"
+ "Diese App funktioniert nur, wenn Sie die Google Play-Dienste aktivieren."
+ "Google Play-Dienste aktivieren"
+ "Google Play-Dienste aktualisieren"
+ "Diese App wird nur ausgeführt, wenn Sie die Google Play-Dienste aktualisieren."
+ "Unbekanntes Problem mit Google Play-Diensten"
+ "Google Play-Dienste"
+ "Google Play-Dienste, auf denen einige Ihrer Apps basieren, werden von diesem Gerät nicht unterstützt. Wenden Sie sich für weitere Informationen an den Hersteller."
+ "Aktualisieren"
+ "Anmelden"
+ "Über Google anmelden"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-el/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-el/strings.xml
new file mode 100644
index 000000000..f8c3ebd2e
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-el/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Λήψη υπηρεσιών Google Play"
+ "Αυτή η εφαρμογή δεν θα εκτελεστεί χωρίς τις υπηρεσίες Google Play, οι οποίες λείπουν από το τηλέφωνό σας."
+ "Αυτή η εφαρμογή δεν θα εκτελεστεί χωρίς τις υπηρεσίες Google Play, οι οποίες λείπουν από το tablet σας."
+ "Λήψη υπηρεσιών Google Play"
+ "Ενεργοποίηση υπηρεσιών Google Play"
+ "Αυτή η εφαρμογή δεν θα λειτουργήσει εάν δεν έχετε ενεργοποιήσει τις υπηρεσίες Google Play."
+ "Ενεργοπ. υπηρεσιών Google Play"
+ "Ενημέρωση υπηρεσιών Google Play"
+ "Αυτή η εφαρμογή θα εκτελεστεί αφού ενημερώσετε τις υπηρεσίες Google Play."
+ "Άγνωστο πρόβλημα με τις υπηρεσίες Google Play."
+ "Υπηρεσίες Google Play"
+ "Οι υπηρεσίες Google Play, στις οποίες βασίζονται ορισμένες από τις εφαρμογές σας, δεν υποστηρίζονται στη συσκευή σας. Επικοινωνήστε με τον κατασκευαστή για υποστήριξη."
+ "Ενημέρωση"
+ "Σύνδεση"
+ "Συνδεθείτε στο Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-en-rGB/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-en-rGB/strings.xml
new file mode 100644
index 000000000..0cd4bacf3
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-en-rGB/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "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."
+ "Unknown issue with Google Play services."
+ "Google Play services"
+ "Google Play services, which some of your applications rely on, is not supported by your device. Please contact the manufacturer for assistance."
+ "Update"
+ "Sign in"
+ "Sign in with Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-es-rUS/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-es-rUS/strings.xml
new file mode 100644
index 000000000..40d46deeb
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-es-rUS/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Obtener Google Play Services"
+ "Esta aplicación no se ejecutará si no instalasGoogle Play Services en tu dispositivo."
+ "Esta aplicación no se ejecutará si no instalas Google Play Services en tu tableta."
+ "Descargar Google Play Services"
+ "Activar Google Play Services"
+ "Esta aplicación no funcionará si no activas Google Play Services."
+ "Activar Google Play Services"
+ "Actualizar Google Play Services"
+ "Esta aplicación no se ejecutará si no actualizas Google Play Services."
+ "Error desconocido relacionado con Google Play Services"
+ "Google Play Services"
+ "Google Play Services, del cual dependen algunas de tus aplicaciones, no es compatible con tu dispositivo. Comunícate con el fabricante para obtener ayuda."
+ "Actualizar"
+ "Acceder"
+ "Acceder con Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-es/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-es/strings.xml
new file mode 100644
index 000000000..8494fe6d9
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-es/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Descargar servicios de Google Play"
+ "Esta aplicación no se ejecutará si tu teléfono no tiene instalados los servicios de Google Play."
+ "Esta aplicación no se ejecutará si tu tablet no tiene instalados los servicios de Google Play."
+ "Descargar servicios de Google Play"
+ "Habilitar servicios de Google Play"
+ "Esta aplicación no funcionará si no habilitas los servicios de Google Play."
+ "Habilitar servicios de Google Play"
+ "Actualizar servicios de Google Play"
+ "Esta aplicación no se ejecutará si no actualizas los servicios de Google Play."
+ "Error desconocido relacionado con los servicios de Google Play"
+ "Servicios de Google Play"
+ "Tu dispositivo no es compatible con los servicios de Google Play, de los cuales dependen tus aplicaciones. Para obtener asistencia, ponte en contacto el fabricante."
+ "Actualizar"
+ "Iniciar sesión"
+ "Iniciar sesión con Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-et/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-et/strings.xml
new file mode 100644
index 000000000..3ea66d292
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-et/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Hankige Google Play teenused"
+ "Selle rakenduse käitamiseks on vaja Google Play teenuseid, mida teie telefonis pole."
+ "Selle rakenduse käitamiseks on vaja Google Play teenuseid, mida teie tahvelarvutis pole."
+ "Hankige Google Play teenused"
+ "Lubage Google Play teenused"
+ "See rakendus ei tööta, kui te ei luba Google Play teenuseid."
+ "Lubage Google Play teenused"
+ "Värskendage Google Play teenuseid"
+ "Seda rakendust ei saa käitada, kui te ei värskenda Google Play teenuseid."
+ "Google Play teenuste tundmatu probleem."
+ "Google Play teenused"
+ "Teie seade ei toeta Google Play teenuseid, millele mõni teie rakendustest toetub. Abi saamiseks võtke ühendust tootjaga."
+ "Värskenda"
+ "Logi sisse"
+ "Logi sisse Google\'iga"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-fa/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-fa/strings.xml
new file mode 100644
index 000000000..144be38c2
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-fa/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "دریافت خدمات Google Play"
+ "این برنامه بدون خدمات Google Play اجرا نمیشود، این خدمات در تلفن شما وجود ندارد."
+ "این برنامه بدون خدمات Google Play اجرا نمیشود، این خدمات در رایانهٔ لوحی شما وجود ندارد."
+ "دریافت خدمات Google Play"
+ "فعال کردن خدمات Google Play"
+ "تا زمانیکه خدمات Google Play را فعال نکنید این برنامه کار نمیکند."
+ "فعال کردن خدمات Google Play"
+ "بهروزرسانی خدمات Google Play"
+ "تا زمانیکه خدمات Google Play را بهروز نکنید این برنامه کار نمیکند."
+ "مشکل نامشخص در خدمات Google Play."
+ "خدمات Google Play"
+ "خدمات Google Play، که برخی از برنامههای شما به آن وابسته است، توسط دستگاه شما پشتیبانی نمیشود. لطفاً برای دریافت کمک با سازنده تماس بگیرید."
+ "بهروزرسانی"
+ "ورود به سیستم"
+ "ورود به سیستم با Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-fi/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-fi/strings.xml
new file mode 100644
index 000000000..75d40e4a8
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-fi/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Asenna Google Play -palvelut"
+ "Tämä sovellus ei toimi ilman Google Play -palveluita, jotka puuttuvat puhelimesta."
+ "Tämä sovellus ei toimi ilman Google Play -palveluita, jotka puuttuvat tablet-laitteesta."
+ "Asenna Google Play -palvelut"
+ "Ota Google Play -palvelut käyttöön"
+ "Tämä sovellus ei toimi, ellet ota Google Play -palveluita käyttöön."
+ "Ota Google Play -palv. käyttöön"
+ "Päivitä Google Play -palvelut"
+ "Tämä sovellus ei toimi, ellet päivitä Google Play -palveluita."
+ "Tuntematon ongelma käytettäessä Google Play -palveluita."
+ "Google Play -palvelut"
+ "Google Play -palveluita, joita osa sovelluksistasi käyttää, ei tueta laitteellasi. Pyydä ohjeita laitteen valmistajalta."
+ "Päivitä"
+ "Kirjaudu"
+ "Kirjaudu Google-tiliin"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-fr/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-fr/strings.xml
new file mode 100644
index 000000000..caaed744e
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-fr/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Installer les services Google Play"
+ "Cette application ne fonctionnera pas sans les services Google Play, qui ne sont pas installés sur votre téléphone."
+ "Cette application ne fonctionnera pas sans les services Google Play, qui ne sont pas installés sur votre tablette."
+ "Installer services Google Play"
+ "Activer les services Google Play"
+ "Cette application ne fonctionnera pas tant que vous n\'aurez pas activé les services Google Play."
+ "Activer services Google Play"
+ "Mettre à jour les services Google Play"
+ "Cette application ne fonctionnera pas tant que vous n\'aurez pas mis à jour les services Google Play."
+ "Problème inconnu avec les services Google Play."
+ "Services Google Play"
+ "Les services Google Play, dont dépendent certaines de vos applications, ne sont pas compatibles avec votre appareil. Veuillez contacter le fabricant pour obtenir de l\'aide."
+ "Mettre à jour"
+ "Connexion"
+ "Se connecter avec Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-hi/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-hi/strings.xml
new file mode 100644
index 000000000..62e00e5df
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-hi/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play सेवाएं पाएं"
+ "यह एप्लिकेशन Google Play सेवाओं के बिना नहीं चलेगा, जो आपके फ़ोन में नहीं हैं."
+ "यह एप्लिकेशन Google Play सेवाओं के बिना नहीं चलेगा, जो आपके टेबलेट में नहीं हैं."
+ "Google Play सेवाएं पाएं"
+ "Google Play सेवाएं सक्षम करें"
+ "जब तक आप Google Play सेवाएं सक्षम नहीं करते, तब तक यह एप्लिकेशन कार्य नहीं करेगा."
+ "Google Play सेवाएं सक्षम करें"
+ "Google Play सेवाएं अपडेट करें"
+ "जब तक आप Google Play सेवाओं को अपडेट नहीं करते, तब तक यह एप्लिकेशन नहीं चलेगा."
+ "Google Play सेवाओं के साथ अज्ञात समस्या."
+ "Google Play सेवाएं"
+ "Google Play सेवाएं, जिन पर आपके कुछ एप्लिकेशन निर्भर करते हैं, आपके उपकरण द्वारा समर्थित नहीं हैं. कृपया सहायता के लिए निर्माता से संपर्क करें."
+ "अपडेट करें"
+ "साइन इन करें"
+ "Google से साइन इन करें"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-hr/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-hr/strings.xml
new file mode 100644
index 000000000..bf5a6f921
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-hr/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Preuzmi usluge za Google Play"
+ "Ova aplikacija neće funkcionirati bez usluga za Google Play, koje nisu instalirane na vašem telefonu."
+ "Ova aplikacija neće funkcionirati bez usluga za Google Play, koje nisu instalirane na vašem tabletnom računalu."
+ "Preuzmi usluge za Google Play"
+ "Omogući usluge za Google Play"
+ "Ova aplikacija neće raditi ako ne omogućite usluge za Google Play."
+ "Omogući usluge za Google Play"
+ "Ažuriraj usluge za Google Play"
+ "Ova se aplikacija neće pokrenuti ako ne ažurirate usluge za Google Play."
+ "Nepoznata poteškoća s uslugama za Google Play."
+ "Usluge za Google Play"
+ "Usluge za Google Play, koje su potrebne za funkcioniranje nekih vaših aplikacija, nisu podržane na vašem uređaju. Pomoć potražite od proizvođača."
+ "Ažuriranje"
+ "Prijava"
+ "Prijava uslugom Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-hu/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-hu/strings.xml
new file mode 100644
index 000000000..1563e625d
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-hu/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Play Szolgáltatások telepítése"
+ "Az alkalmazás működéséhez a Google Play Szolgáltatások szükségesek, ezek nincsenek telepítve a telefonon."
+ "Az alkalmazás működéséhez a Google Play Szolgáltatások szükségesek, ezek nincsenek telepítve a táblagépen."
+ "Play Szolgáltatások telepítése"
+ "Google Play Szolgáltatások aktiválása"
+ "Az alkalmazás csak akkor fog működni, ha engedélyezi a Google Play Szolgáltatásokat."
+ "Play Szolgáltatások aktiválása"
+ "Play Szolgáltatások frissítése"
+ "Az alkalmazás csak akkor fog működni, ha frissíti a Google Play Szolgáltatásokat."
+ "Ismeretlen hiba a Google Play Szolgáltatásokban."
+ "Google Play Szolgáltatások"
+ "A Google Play Szolgáltatásokat, amelyre egyes alkalmazások támaszkodnak, nem támogatja az eszköz. Segítségért forduljon az eszköz gyártójához."
+ "Frissítés"
+ "Belépés"
+ "Google-bejelentkezés"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-in/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-in/strings.xml
new file mode 100644
index 000000000..d51a4e423
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-in/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Dapatkan layanan Google Play"
+ "Aplikasi ini tidak akan berjalan tanpa layanan Google Play, yang tidak ada di ponsel Anda."
+ "Aplikasi ini tidak akan berjalan tanpa layanan Google Play, yang tidak ada di tablet Anda."
+ "Dapatkan layanan Google Play"
+ "Aktifkan layanan Google Play"
+ "Aplikasi ini tidak akan bekerja sampai Anda mengaktifkan layanan Google Play."
+ "Aktifkan layanan Google Play"
+ "Perbarui layanan Google Play"
+ "Aplikasi ini tidak akan berjalan sampai Anda memperbarui layanan Google Play."
+ "Masalah tidak diketahui pada layanan Google Play."
+ "Layanan Google Play"
+ "Layanan Google Play, yang diandalkan oleh beberapa aplikasi Anda, tidak didukung oleh perangkat Anda. Hubungi pabrikan untuk mendapatkan bantuan."
+ "Perbarui"
+ "Masuk"
+ "Masuk dengan Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-it/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-it/strings.xml
new file mode 100644
index 000000000..f75eb69f6
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-it/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Installa Google Play Services"
+ "L\'app non funzionerà senza Google Play Services, non presente sul tuo telefono."
+ "L\'app non funzionerà senza Google Play Services, non presente sul tuo tablet."
+ "Installa Google Play Services"
+ "Attiva Google Play Services"
+ "L\'app non funzionerà se non attivi Google Play Services."
+ "Attiva Google Play Services"
+ "Aggiorna Google Play Services"
+ "L\'app non funzionerà se non aggiorni Google Play Services."
+ "Problema sconosciuto con Google Play Services."
+ "Google Play Services"
+ "La piattaforma Google Play Services, su cui sono basate alcune delle tue applicazioni, non è supportata dal dispositivo in uso. Per assistenza, contatta il produttore."
+ "Aggiorna"
+ "Accedi"
+ "Accedi con Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-iw/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-iw/strings.xml
new file mode 100644
index 000000000..25a4cba98
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-iw/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "קבל את שירותי Google Play"
+ "יישום זה לא יפעל ללא שירותי Google Play, החסרים בטלפון שלך."
+ "יישום זה לא יפעל ללא שירותי Google Play, החסרים בטאבלט שלך."
+ "קבל את שירותי Google Play"
+ "הפעלת שירותי Google Play"
+ "יישום זה לא יעבוד אם לא תפעיל את שירותי Google Play."
+ "הפעל את שירותי Google Play"
+ "עדכון שירותי Google Play"
+ "יישום זה לא יפעל אם לא תעדכן את שירותי Google Play."
+ "בעיה לא ידועה בשירותי Google Play."
+ "שירותי Google Play"
+ "שירותי Google Play, שחלק מהיישומים שלך מתבססים עליהם, אינם נתמכים על ידי המכשיר שברשותך. צור קשר עם היצרן לקבלת סיוע."
+ "עדכן"
+ "היכנס"
+ "היכנס באמצעות Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ja/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ja/strings.xml
new file mode 100644
index 000000000..f520ffac7
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ja/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Play開発者サービスの入手"
+ "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いの携帯端末にはインストールされていません。"
+ "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いのタブレットにはインストールされていません。"
+ "Play開発者サービスの入手"
+ "Play開発者サービスの有効化"
+ "このアプリの実行には、Google Play開発者サービスの有効化が必要です。"
+ "Play開発者サービスの有効化"
+ "Play開発者サービスの更新"
+ "このアプリの実行には、Google Play開発者サービスの更新が必要です。"
+ "Google Play開発者サービスで原因不明の問題が発生しました。"
+ "Google Play開発者サービス"
+ "一部のアプリが使用しているGoogle Play開発者サービスは、お使いの端末ではサポートされていません。詳しくは、端末メーカーまでお問い合わせください。"
+ "更新"
+ "ログイン"
+ "Googleでログイン"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ko/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ko/strings.xml
new file mode 100644
index 000000000..b2ccd7760
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ko/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play 서비스 설치"
+ "휴대전화에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다."
+ "태블릿에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다."
+ "Google Play 서비스 설치"
+ "Google Play 서비스 사용"
+ "Google Play 서비스를 사용하도록 설정해야 이 앱이 작동합니다."
+ "Google Play 서비스 사용"
+ "Google Play 서비스 업데이트"
+ "Google Play 서비스를 업데이트해야만 이 앱이 실행됩니다."
+ "Google Play 서비스에 알 수 없는 문제가 발생했습니다."
+ "Google Play 서비스"
+ "일부 사용자 애플리케이션에 필요한 Google Play 서비스가 사용자 기기에서 지원되지 않습니다. 기기 제조업체에 문의하시기 바랍니다."
+ "업데이트"
+ "로그인"
+ "Google 계정으로 로그인"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-lt/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-lt/strings.xml
new file mode 100644
index 000000000..ea9003f81
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-lt/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Gauti „Google Play“ paslaugų"
+ "Ši programa neveiks be „Google Play“ paslaugų, kurios neįdiegtos telefone."
+ "Ši programa neveiks be „Google Play“ paslaugų, kurios neįdiegtos planšetiniame kompiuteryje."
+ "Gauti „Google Play“ paslaugų"
+ "Įgalinti „Google Play“ paslaugas"
+ "Ši programa neveiks, jei neįgalinsite „Google Play“ paslaugų."
+ "Įgal. „Google Play“ paslaugas"
+ "Atnaujinti „Google Play“ paslaugas"
+ "Ši programa neveiks, jei neatnaujinsite „Google Play“ paslaugų."
+ "Nežinoma „Google Play“ paslaugų problema."
+ "„Google Play“ paslaugos"
+ "Jūsų įrenginys nepalaiko „Google Play“ paslaugų, kuriomis remiasi kai kurios programos. Jei reikia pagalbos, susisiekite su gamintoju."
+ "Atnaujinti"
+ "Prisij."
+ "Prisij. naud. „Google“"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-lv/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-lv/strings.xml
new file mode 100644
index 000000000..62b9dc793
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-lv/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play pakalpojumu iegūšana"
+ "Lai šī lietotne darbotos, tālrunī ir jāinstalē Google Play pakalpojumi."
+ "Lai šī lietotne darbotos, planšetdatorā ir jāinstalē Google Play pakalpojumi."
+ "Iegūt Google Play pakalpojumus"
+ "Google Play pakalpojumu iespējošana"
+ "Lai šī lietotne darbotos, iespējojiet Google Play pakalpojumus."
+ "Iespējot Google Play pakalpojumus"
+ "Google Play pakalpojumu atjaunināšana"
+ "Lai šī lietotne darbotos, atjauniniet Google Play pakalpojumus."
+ "Nezināma problēma ar Google Play pakalpojumiem."
+ "Google Play pakalpojumi"
+ "Jūsu ierīce neatbalsta Google Play pakalpojumus, kuri nepieciešami dažu jūsu lietojumprogrammu darbībai. Lūdzu, sazinieties ar ražotāju, lai saņemtu palīdzību."
+ "Atjaunināt"
+ "Pierakst."
+ "Pierakstīties Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ms/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ms/strings.xml
new file mode 100644
index 000000000..fece41f09
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ms/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Dapatkan perkhidmatan Google Play"
+ "Apl ini tidak akan berfungsi tanpa perkhidmatan Google Play dan apl ini tiada pada telefon anda."
+ "Apl ini tidak akan berfungsi tanpa perkhidmatan Google Play dan apl ini tiada pada tablet anda."
+ "Dapatkan perkhidmatan Google Play"
+ "Dayakan perkhidmatan Google Play"
+ "Apl ini tidak akan berfungsi kecuali anda mendayakan perkhidmatan Google Play."
+ "Dayakan perkhidmatan Google Play"
+ "Kemas kini perkhidmatan Google Play"
+ "Apl ini tidak akan berfungsi kecuali anda mengemas kini perkhidmatan Google Play."
+ "Isu tidak diketahui dengan perkhidmatan Google Play."
+ "Perkhidmatan Google Play"
+ "Peranti anda tidak menyokong perkhidmatan Google Play, sedangkan sesetengah aplikasi anda memerlukannya. Sila hubungi pengilang untuk bantuan."
+ "Kemas kini"
+ "Log masuk"
+ "Log masuk dengan Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-nb/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-nb/strings.xml
new file mode 100644
index 000000000..566006226
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-nb/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Installer Google Play Tjenester"
+ "Denne appen kan ikke kjøres uten Google Play Tjenester, som ikke er installert på telefonen din."
+ "Denne appen kan ikke kjøres uten Google Play Tjenester, som ikke er installert på nettbrettet ditt."
+ "Installer Google Play Tjenester"
+ "Aktiver Google Play Tjenester"
+ "Denne appen fungerer ikke med mindre du aktiverer Google Play Tjenester."
+ "Aktiver Google Play Tjenester"
+ "Oppdater Google Play Tjenester"
+ "Denne appen kan ikke kjøres før du oppdaterer Google Play Tjenester."
+ "Det oppsto et ukjent problem med Google Play Tjenester."
+ "Google Play-tjenester"
+ "Google Play Tjenester, som noen av appene er avhengige av, støttes ikke av enheten. Ta kontakt med produsenten for å få hjelp."
+ "Oppdater"
+ "Logg på"
+ "Logg inn med Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-nl/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-nl/strings.xml
new file mode 100644
index 000000000..b1e5b24e1
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-nl/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play-services ophalen"
+ "Deze app kan niet worden uitgevoerd zonder Google Play-services die ontbreken op uw telefoon."
+ "Deze app kan niet worden uitgevoerd zonder Google Play-services die ontbreken op uw tablet."
+ "Google Play-services ophalen"
+ "Google Play-services inschakelen"
+ "Deze app werkt niet, tenzij u Google Play-services inschakelt."
+ "Google Play-services inschak."
+ "Google Play-services bijwerken"
+ "Deze app kan niet worden uitgevoerd, tenzij u Google Play-services bijwerkt."
+ "Onbekend probleem met Google Play-services."
+ "Google Play-services"
+ "Google Play-services, dat vereist is voor een aantal van uw applicaties, wordt niet ondersteund door uw apparaat. Neem contact op met de fabrikant voor ondersteuning."
+ "Bijwerken"
+ "Inloggen"
+ "Inloggen met Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-pl/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-pl/strings.xml
new file mode 100644
index 000000000..7fdac73f9
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-pl/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Pobierz Usługi Google Play"
+ "Ta aplikacja nie będzie działać bez Usług Google Play, których nie masz na telefonie."
+ "Ta aplikacja nie będzie działać bez Usług Google Play, których nie masz na tablecie."
+ "Pobierz Usługi Google Play"
+ "Włącz Usługi Google Play"
+ "Ta aplikacja nie będzie działać, jeśli nie włączysz Usług Google Play."
+ "Włącz Usługi Google Play"
+ "Aktualizuj Usługi Google Play"
+ "Ta aplikacja nie będzie działać, jeśli nie zaktualizujesz Usług Google Play."
+ "Nieznany problem z Usługami Google Play."
+ "Usługi Google Play"
+ "Usługi Google Play, od których zależy działanie niektórych aplikacji, nie są obsługiwane na Twoim urządzeniu. Skontaktuj się z producentem, by uzyskać pomoc."
+ "Aktualizuj"
+ "Zaloguj się"
+ "Zaloguj się przez Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-pt-rBR/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 000000000..3eb33f8a6
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Instale o Google Play Services"
+ "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu telefone."
+ "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu tablet."
+ "Instalar o Google Play Services"
+ "Ative o Google Play Services"
+ "Este aplicativo só funciona com o Google Play Services ativado."
+ "Ativar o Google Play Services"
+ "Atualize o Google Play Services"
+ "Este aplicativo só funciona com uma versão atualizada do Google Play Services."
+ "Problema desconhecido com o Google Play Services."
+ "Play Services"
+ "O Google Play Services, necessário para alguns dos aplicativos, não é compatível com seu dispositivo. Entre em contato com o fabricante para obter assistência."
+ "Atualizar"
+ "Login"
+ "Fazer login com o Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-pt-rPT/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-pt-rPT/strings.xml
new file mode 100644
index 000000000..ae5d6217b
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-pt-rPT/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Obter serviços do Google Play"
+ "Esta aplicação não será executada sem os serviços do Google Play, que estão em falta no seu telemóvel."
+ "Esta aplicação não será executada sem os serviços do Google Play, que estão em falta no seu tablet."
+ "Obter serviços do Google Play"
+ "Ativar serviços do Google Play"
+ "Esta aplicação não funcionará enquanto não ativar os serviços do Google Play."
+ "Ativar serviços do Google Play"
+ "Atualizar serviços do Google Play"
+ "Esta aplicação não será executada enquanto não atualizar os serviços do Google Play."
+ "Problema desconhecido nos serviços do Google Play."
+ "Serviços do Google Play"
+ "Os serviços do Google Play, dos quais dependem algumas das suas aplicações, não são suportados pelo seu dispositivo. Contacte o fabricante para obter assistência."
+ "Atualizar"
+ "Inic. ses."
+ "Inic. sessão com o Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-pt/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-pt/strings.xml
new file mode 100644
index 000000000..3eb33f8a6
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-pt/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Instale o Google Play Services"
+ "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu telefone."
+ "Este aplicativo não funciona sem o Google Play Services, que não está instalado em seu tablet."
+ "Instalar o Google Play Services"
+ "Ative o Google Play Services"
+ "Este aplicativo só funciona com o Google Play Services ativado."
+ "Ativar o Google Play Services"
+ "Atualize o Google Play Services"
+ "Este aplicativo só funciona com uma versão atualizada do Google Play Services."
+ "Problema desconhecido com o Google Play Services."
+ "Play Services"
+ "O Google Play Services, necessário para alguns dos aplicativos, não é compatível com seu dispositivo. Entre em contato com o fabricante para obter assistência."
+ "Atualizar"
+ "Login"
+ "Fazer login com o Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ro/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ro/strings.xml
new file mode 100644
index 000000000..751b66a97
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ro/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Descărcaţi Servicii Google Play"
+ "Această aplicaţie nu poate rula fără Servicii Google Play, care lipsesc de pe telefon."
+ "Această aplicaţie nu poate rula fără Servicii Google Play, care lipsesc de pe tabletă."
+ "Obţineţi Servicii Google Play"
+ "Activaţi Servicii Google Play"
+ "Această aplicaţie nu va funcţiona decât dacă activaţi Servicii Google Play."
+ "Activaţi Servicii Google Play"
+ "Actualizaţi Servicii Google Play"
+ "Această aplicaţie nu poate rula decât dacă actualizaţi Servicii Google Play."
+ "Problemă necunoscută privind Servicii Google Play."
+ "Servicii Google Play"
+ "Gadgetul nu acceptă serviciile Google Play, pe care se bazează unele dintre aplicații. Pentru asistență, contactați producătorul gadgetului."
+ "Actualizaţi"
+ "Conectați"
+ "Conectați-vă cu Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-ru/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-ru/strings.xml
new file mode 100644
index 000000000..f92ef7d5a
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-ru/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Установите Сервисы Google Play"
+ "Для работы этого приложения требуется установить Сервисы Google Play."
+ "Для работы этого приложения требуется установить Сервисы Google Play."
+ "Установить"
+ "Включите Сервисы Google Play"
+ "Для работы этого приложения требуется включить Сервисы Google Play."
+ "Включить"
+ "Обновите Сервисы Google Play"
+ "Для работы этого приложения требуется обновить Сервисы Google Play."
+ "Неизвестная ошибка с Сервисами Google Play."
+ "Сервисы Google Play"
+ "Сервисы Google Play, необходимые для работы некоторых приложений, не поддерживаются на вашем устройстве. Обратитесь к производителю."
+ "Обновить"
+ "Войти"
+ "Войти в аккаунт Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-sk/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-sk/strings.xml
new file mode 100644
index 000000000..0b7e18c42
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-sk/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Inštalovať služby Google Play"
+ "Na spustenie tejto aplikácie sa vyžadujú služby Google Play, ktoré v telefóne nemáte."
+ "Na spustenie tejto aplikácie sa vyžadujú služby Google Play, ktoré v tablete nemáte."
+ "Inštalovať služby Google Play"
+ "Povoliť služby Google Play"
+ "Táto aplikácia bude fungovať až po povolení služieb Google Play."
+ "Povoliť služby Google Play"
+ "Aktualizovať služby Google Play"
+ "Túto aplikáciu bude možné spustiť až po aktualizácii služieb Google Play."
+ "Neznámy problém so službami Google Play."
+ "Služby Google Play"
+ "Niektoré vaše aplikácie vyžadujú služby Google Play, ktoré vo vašom zariadení nie sú podporované. Ak potrebujete pomoc, kontaktujte výrobcu."
+ "Aktualizovať"
+ "Prihlásiť sa"
+ "Prihlásiť sa do účtu Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-sl/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-sl/strings.xml
new file mode 100644
index 000000000..c14175e00
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-sl/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Namestite storitve Google Play"
+ "Ta aplikacija ne deluje brez storitev Google Play, ki jih ni v telefonu."
+ "Ta aplikacija ne deluje brez storitev Google Play, ki jih ni v tabličnem računalniku."
+ "Namestite storitve Google Play"
+ "Omogočite storitve Google Play"
+ "Aplikacija ne bo delovala, če ne omogočite storitev Google Play."
+ "Omogočite storitve Google Play"
+ "Posodobite storitve Google Play"
+ "Ta aplikacija ne deluje, če ne posodobite storitev Google Play."
+ "Neznana težava s storitvami Google Play."
+ "Storitve Google Play"
+ "Vaša naprava na podpira storitev Google Play, ki jih potrebujejo nekatere od vaših aplikacij. Za pomoč se obrnite na izdelovalca."
+ "Posodobi"
+ "Prijava"
+ "Prijavite se v Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-sr/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-sr/strings.xml
new file mode 100644
index 000000000..06cd24094
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-sr/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Преузимање Google Play услуга"
+ "Ова апликација не може да се покрене без Google Play услуга, које недостају на телефону."
+ "Ова апликација не може да се покрене без Google Play услуга, које недостају на таблету."
+ "Преузми Google Play услуге"
+ "Омогућавање Google Play услуга"
+ "Ова апликација неће функционисати ако не омогућите Google Play услуге."
+ "Омогући Google Play услуге"
+ "Ажурирање Google Play услуга"
+ "Ова апликација не може да се покрене ако не ажурирате Google Play услуге."
+ "Непознат проблем са Google Play услугама."
+ "Google Play услуге"
+ "Google Play услуге, које су потребне за функционисање неких од апликација, нису подржане на уређају. Контактирајте произвођача да бисте добили помоћ."
+ "Ажурирај"
+ "Пријави ме"
+ "Пријави ме преко Google-а"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-sv/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-sv/strings.xml
new file mode 100644
index 000000000..4f80eccb6
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-sv/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Hämta Google Play Tjänster"
+ "Den här appen kan inte köras utan Google Play Tjänster, som saknas på mobilen."
+ "Den här appen kan inte köras utan Google Play Tjänster, som saknas på surfplattan."
+ "Hämta Google Play Tjänster"
+ "Aktivera Google Play Tjänster"
+ "Du måste aktivera Google Play Tjänster för att den här appen ska fungera."
+ "Aktivera Google Play Tjänster"
+ "Uppdatera Google Play Tjänster"
+ "Du måste uppdatera Google Play Tjänster innan du kan köra den här appen."
+ "Okänt problem med Google Play Tjänster"
+ "Google Play-tjänster"
+ "Några av dina appar använder Google Play-tjänster som inte stöds av din enhet. Kontakta tillverkaren om du vill ha hjälp."
+ "Uppdatera"
+ "Logga in"
+ "Logga in med Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-sw/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-sw/strings.xml
new file mode 100644
index 000000000..e945d7a88
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-sw/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Pata huduma za Google Play"
+ "Programu hii haiwezi kuendeshwa bila huduma za Google Play, ambazo hazipo kwenye simu yako."
+ "Programu hii haiwezi kuendeshwa bila huduma za Google Play, ambazo hazipo kwenye kompyuta yako ndogo."
+ "Pata huduma za Google Play"
+ "Wezesha huduma za Google Play"
+ "Programu hii haitafanya kazi mpaka utakapowezesha huduma za Google Play."
+ "Wezesha huduma za Google Play"
+ "Sasisha huduma za Google Play"
+ "Programu hii haiwezi kuendeshwa mpaka utakaposasisha huduma za Google Play."
+ "Suala lisilojulikana na huduma za Google Play."
+ "Huduma za Google Play"
+ "Huduma za Google Play, ambazo baadhi ya programu zako zinategemea, si linganifu na kifaa chako. Tafadhali wasiliana na mtengenezaji kwa usaidizi."
+ "Sasisha"
+ "Ingia"
+ "Ingia ukitumia Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-th/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-th/strings.xml
new file mode 100644
index 000000000..f277b3ec5
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-th/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "รับบริการ Google Play"
+ "แอปพลิเคชันนี้จะไม่ทำงานหากไม่มีบริการ Google Play ซึ่งไม่มีในโทรศัพท์ของคุณ"
+ "แอปพลิเคชันนี้จะไม่ทำงานหากไม่มีบริการ Google Play ซึ่งไม่มีในแท็บเล็ตของคุณ"
+ "รับบริการ Google Play"
+ "เปิดใช้งานบริการ Google Play"
+ "แอปพลิเคชันนี้จะไม่ทำงานจนกว่าคุณจะเปิดใช้งานบริการ Google Play"
+ "เปิดใช้งานบริการ Google Play"
+ "อัปเดตบริการ Google Play"
+ "แอปพลิเคชันนี้จะไม่ทำงานจนกว่าคุณจะอัปเดตบริการ Google Play"
+ "ปัญหาที่ไม่รู้จักของบริการ Google Play"
+ "บริการ Google Play"
+ "บริการ Google Play ซึ่งใช้งานในบางแอปพลิเคชัน ไม่ได้รับการสนับสนุนโดยอุปกรณ์ของคุณ โปรดติดต่อผู้ผลิตเพื่อขอรับความช่วยเหลือ"
+ "อัปเดต"
+ "ลงชื่อใช้"
+ "ลงชื่อเข้าใช้ด้วย Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-tl/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-tl/strings.xml
new file mode 100644
index 000000000..4b0a92e80
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-tl/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Kumuha ng mga serbisyo ng Google Play"
+ "Hindi tatakbo ang app na ito nang wala ang mga serbisyo ng Google Play, na wala sa iyong telepono."
+ "Hindi gagana ang app na ito nang wala ang mga serbisyo ng Google Play, na wala sa iyong tablet."
+ "Kumuha ng Google Play services"
+ "Paganahin ang Google Play services"
+ "Hindi gagana ang app na ito maliban kung papaganahin mo ang mga serbisyo ng Google Play."
+ "Enable Google Play services"
+ "I-update ang mga serbisyo ng Google Play"
+ "Hindi gagana ang app na ito maliban kung i-a-update mo ang mga serbisyo ng Google Play."
+ "May hindi alam na isyu sa mga serbisyo ng Google Play."
+ "Mga serbisyo ng Google Play"
+ "Ang mga serbisyo ng Google Play, kung saan nakadepende ang ilan sa iyong mga application, ay hindi sinusuportahan ng iyong device. Mangyaring makipag-ugnay sa manufacturer para sa tulong."
+ "I-update"
+ "Sign in"
+ "Mag-sign in sa Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-tr/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-tr/strings.xml
new file mode 100644
index 000000000..d495d7397
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-tr/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Google Play hizmetlerini edinin"
+ "Google Play Hizmetleri telefonunuzda yok ve bu uygulama Google Play Hizmetleri olmadan çalışmaz."
+ "Google Play Hizmetleri tabletinizde yok ve bu uygulama Google Play Hizmetleri olmadan çalışmaz."
+ "Google Play hizmetlerini edin"
+ "Google Play hizmetlerini etkinleştir"
+ "Bu uygulama, Google Play Hizmetleri etkinleştirilmeden çalışmaz"
+ "Google Play hizmetlerini etkinleştir"
+ "Google Play hizmetlerini güncelle"
+ "Bu uygulama Google Play Hizmetleri güncellenmeden çalışmaz."
+ "Google Play hizmetleriyle ilgili bilinmeyen sorun."
+ "Google Play hizmetleri"
+ "Cihazınız, uygulamalarınızdan bazıları için gerekli olan Google Play hizmetlerini desteklemiyor. Lütfen yardım için üreticiyle iletişim kurun."
+ "Güncelle"
+ "Oturum aç"
+ "Google\'da oturum aç"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-uk/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-uk/strings.xml
new file mode 100644
index 000000000..c4caf97aa
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-uk/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Установити Google Play Послуги"
+ "Ця програма не запуститься без Google Play Послуг, яких немає у вашому телефоні."
+ "Ця програма не запуститься без Google Play Послуг, яких немає на вашому планшетному ПК."
+ "Установити Google Play Послуги"
+ "Увімкнути Google Play Послуги"
+ "Ця програма не працюватиме, поки ви не ввімкнете Google Play Послуги."
+ "Увімкнути Google Play Послуги"
+ "Оновити Google Play Послуги"
+ "Ця програма не запуститься, поки ви не оновите Google Play Послуги."
+ "Google Play Послуги – невідома проблема."
+ "Сервіси Google Play"
+ "Ваш пристрій не підтримує Сервіси Google Play, від яких залежить робота деяких програм. Зверніться по допомогу до виробника."
+ "Оновити"
+ "Увійти"
+ "Увійти в обл.запис Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-vi/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-vi/strings.xml
new file mode 100644
index 000000000..e39c5c7fa
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-vi/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Cài đặt dịch vụ của Google Play"
+ "Ứng dụng này sẽ không chạy nếu không có dịch vụ của Google Play. Điện thoại của bạn bị thiếu dịch vụ này."
+ "Ứng dụng này sẽ không chạy nếu không có dịch vụ của Google Play. Máy tính bảng của bạn bị thiếu dịch vụ này."
+ "Cài đặt dịch vụ của Google Play"
+ "Bật dịch vụ của Google Play"
+ "Ứng dụng này sẽ không hoạt động trừ khi bạn bật dịch vụ của Google Play."
+ "Bật dịch vụ của Google Play"
+ "Cập nhật dịch vụ của Google Play"
+ "Ứng dụng này sẽ không chạy trừ khi bạn cập nhật dịch vụ của Google Play."
+ "Sự cố không xác định với dịch vụ của Google Play."
+ "Dịch vụ của Google Play"
+ "Các dịch vụ của Google Play mà một số ứng dụng của bạn dựa vào không được thiết bị của bạn hỗ trợ. Vui lòng liên hệ với nhà sản xuất để được hỗ trợ."
+ "Cập nhật"
+ "Đăng nhập"
+ "Đăng nhập bằng Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-zh-rCN/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 000000000..6c7d79c6b
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "获取 Google Play 服务"
+ "您的手机中没有 Google Play 服务,您必须先安装该服务才能运行此应用。"
+ "您的平板电脑中没有 Google Play 服务,您必须先安装该服务才能运行此应用。"
+ "获取 Google Play 服务"
+ "启用 Google Play 服务"
+ "您必须先启用 Google Play 服务才能运行此应用。"
+ "启用 Google Play 服务"
+ "更新 Google Play 服务"
+ "您必须先更新 Google Play 服务才能运行此应用。"
+ "Google Play 服务出现未知问题。"
+ "Google Play 服务"
+ "您的设备不支持部分应用所依赖的 Google Play 服务。请与设备制造商联系,以寻求帮助。"
+ "更新"
+ "登录"
+ "使用 Google 帐户登录"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-zh-rTW/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 000000000..7065b0033
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "取得 Google Play 服務"
+ "您的手機並未安裝 Google Play 服務,所以無法執行這個應用程式。"
+ "您的平板電腦並未安裝 Google Play 服務,所以無法執行這個應用程式。"
+ "取得 Google Play 服務"
+ "啟用 Google Play 服務"
+ "您必須啟用 Google Play 服務,這個應用程式才能運作。"
+ "啟用 Google Play 服務"
+ "更新 Google Play 服務"
+ "您必須更新 Google Play 服務,才能執行這個應用程式。"
+ "Google Play 服務發生不明問題。"
+ "Google Play 服務"
+ "您的裝置不支援部分應用程式所需的 Google Play 服務。如需協助,請與您的裝置製造商聯絡。"
+ "更新"
+ "登入"
+ "使用 Google 帳戶登入"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values-zu/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values-zu/strings.xml
new file mode 100644
index 000000000..1f33ab6c1
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values-zu/strings.xml
@@ -0,0 +1,19 @@
+
+
+ "Thola amasevisi e-Google Play"
+ "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle kwamasevisi e-Google Play, angekho efonini yakho."
+ "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle kwamasevisi e-Google Play, angekho kuthebulethi yakho."
+ "Thola amasevisi e-Google Play"
+ "Nika amandla amasevisi e-Google Play"
+ "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle nje kokuthi unike amandla amasevisi e-Google Play."
+ "Nika amandla amasevisi e-Google Play"
+ "Buyekeza amasevisi e-Google Play"
+ "Lolu hlelo lokusebenza ngeke lusebenze ngaphandle nje kokuthi ubuyekeze amasevisi e-Google Play."
+ "Indaba engaziwa yamasevisi we-Google Play"
+ "Amasevisi we-Google Play"
+ "Amasevisi we-Google Play, okungukuthi ezinye izinhlelo zakho zithembele kuwo, awasekelwe yidivayisi yakho. Sicela uxhumane nomkhiqizi ukuze uthole usizo."
+ "Isibuyekezo"
+ "Ngena ngemvume"
+ "Ngena ngemvume nge-Google"
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values/colors.xml b/MyTracks/googleplayservices_lib/src/main/res/values/colors.xml
new file mode 100644
index 000000000..9d72a2c73
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values/colors.xml
@@ -0,0 +1,14 @@
+
+
+
+ @android:color/white
+ @android:color/white
+ #FFAAAAAA
+ @android:color/white
+ #FF737373
+ @android:color/white
+ #FFAAAAAA
+ #FF737373
+ #FFDD4B39
+ #d2d2d2
+
\ No newline at end of file
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values/maps_attrs.xml b/MyTracks/googleplayservices_lib/src/main/res/values/maps_attrs.xml
new file mode 100644
index 000000000..aaf65c529
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values/maps_attrs.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MyTracks/googleplayservices_lib/src/main/res/values/strings.xml b/MyTracks/googleplayservices_lib/src/main/res/values/strings.xml
new file mode 100644
index 000000000..64f2bd049
--- /dev/null
+++ b/MyTracks/googleplayservices_lib/src/main/res/values/strings.xml
@@ -0,0 +1,88 @@
+
+
+
+
+ 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.
+
+
+ Unknown issue with Google Play services.
+
+
+ Google Play services
+
+
+ Google Play services, which some of your applications rely on, is not supported by your device. Please contact the manufacturer for assistance.
+
+
+ Update
+
+
+ Sign in
+
+
+ Sign in with Google
+
+
+
+ Install/Update/Enable Google Play services
+
+
+ Google Play services error
+
+
+ Requested by %1$s
+
+
+
+
+
+
+
+
+ AgeUnder13
+
+ AgeUnknown
+
+ UnknownRestriction
+
+
+
+
diff --git a/MyTracks/gradle/wrapper/gradle-wrapper.jar b/MyTracks/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..05ef575b0
Binary files /dev/null and b/MyTracks/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/MyTracks/gradle/wrapper/gradle-wrapper.properties b/MyTracks/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..f23df6e46
--- /dev/null
+++ b/MyTracks/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Oct 21 11:34:03 PDT 2015
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip
diff --git a/MyTracks/gradlew b/MyTracks/gradlew
new file mode 100644
index 000000000..9d82f7891
--- /dev/null
+++ b/MyTracks/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/MyTracks/gradlew.bat b/MyTracks/gradlew.bat
new file mode 100644
index 000000000..aec99730b
--- /dev/null
+++ b/MyTracks/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/MyTracks/libs/README.txt b/MyTracks/libs/README.txt
deleted file mode 100644
index 35a849f96..000000000
--- a/MyTracks/libs/README.txt
+++ /dev/null
@@ -1,43 +0,0 @@
-The libraries contained here in binary format are licensed according to their
-own licenses, which allow their usage for the My Tracks application. Any other
-applications that wish to use these files should consult the appropriate
-licenses or the JAR's authors.
-
-Android Support Package:
-android-support-v4.jar (version 13)
-
-Ant+:
-antlib.jar - from Android_ANT_SDK_20120625.zip
-
-Google APIs Client Library for Java:
-google-api-client-1.12.0-beta.jar
-google-api-client-android-1.12.0-beta.jar
-google-api-services-drive-v2-rev30-1.12.0-beta.jar
-google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
-google-http-client-1.12.0-beta.jar
-google-http-client-android-1.12.0-beta.jar
-google-http-client-gson-1.12.0-beta.jar
-google-http-client-jackson-1.12.0-beta.jar
-google-http-client-jackson2-1.12.0-beta.jar
-google-oauth-client-1.12.0-beta.jar
-gson-2.1.jar
-jackson-core-2.0.5.jar
-jackson-core-asl-1.9.9.jar
-
-Google GData API:
-gdata-client-1.0.jar
-gdata-client-meta-1.0.jar
-gdata-core-1.0.jar
-gdata-spreadsheet-3.0.jar
-gdata-spreadsheet-meta-3.0.jar
-
-Google API Client Library for Java and Google GData API:
-guava-jdk5-13.0.jar
-jsr305.jar
-
-Google Analytics:
-libGoogleAnalytics.jar
-- see http://code.google.com/apis/analytics/docs/mobile/android.html
-
-Google Common:
-google-common.jar
\ No newline at end of file
diff --git a/MyTracks/libs/gdata-client-1.0.jar b/MyTracks/libs/gdata-client-1.0.jar
deleted file mode 100644
index 2ae38cc66..000000000
Binary files a/MyTracks/libs/gdata-client-1.0.jar and /dev/null differ
diff --git a/MyTracks/libs/gdata-spreadsheet-3.0.jar b/MyTracks/libs/gdata-spreadsheet-3.0.jar
deleted file mode 100644
index 85fb7c85f..000000000
Binary files a/MyTracks/libs/gdata-spreadsheet-3.0.jar and /dev/null differ
diff --git a/MyTracks/libs/gdata-spreadsheet-meta-3.0.jar b/MyTracks/libs/gdata-spreadsheet-meta-3.0.jar
deleted file mode 100644
index 7babe6c66..000000000
Binary files a/MyTracks/libs/gdata-spreadsheet-meta-3.0.jar and /dev/null differ
diff --git a/MyTracks/libs/google-api-client-1.12.0-beta.jar b/MyTracks/libs/google-api-client-1.12.0-beta.jar
deleted file mode 100644
index c85862626..000000000
Binary files a/MyTracks/libs/google-api-client-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-api-client-android-1.12.0-beta.jar b/MyTracks/libs/google-api-client-android-1.12.0-beta.jar
deleted file mode 100644
index cb7cfe8bc..000000000
Binary files a/MyTracks/libs/google-api-client-android-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar b/MyTracks/libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar
deleted file mode 100644
index 6e17009b4..000000000
Binary files a/MyTracks/libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar b/MyTracks/libs/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
deleted file mode 100644
index 07866f15f..000000000
Binary files a/MyTracks/libs/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-http-client-1.12.0-beta.jar b/MyTracks/libs/google-http-client-1.12.0-beta.jar
deleted file mode 100644
index 6ff05049f..000000000
Binary files a/MyTracks/libs/google-http-client-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-http-client-android-1.12.0-beta.jar b/MyTracks/libs/google-http-client-android-1.12.0-beta.jar
deleted file mode 100644
index 1ed253346..000000000
Binary files a/MyTracks/libs/google-http-client-android-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-http-client-gson-1.12.0-beta.jar b/MyTracks/libs/google-http-client-gson-1.12.0-beta.jar
deleted file mode 100644
index 7a2e064e7..000000000
Binary files a/MyTracks/libs/google-http-client-gson-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-http-client-jackson-1.12.0-beta.jar b/MyTracks/libs/google-http-client-jackson-1.12.0-beta.jar
deleted file mode 100644
index 52c2209d9..000000000
Binary files a/MyTracks/libs/google-http-client-jackson-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-http-client-jackson2-1.12.0-beta.jar b/MyTracks/libs/google-http-client-jackson2-1.12.0-beta.jar
deleted file mode 100644
index 9415c7b23..000000000
Binary files a/MyTracks/libs/google-http-client-jackson2-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/google-oauth-client-1.12.0-beta.jar b/MyTracks/libs/google-oauth-client-1.12.0-beta.jar
deleted file mode 100644
index dad2abe4f..000000000
Binary files a/MyTracks/libs/google-oauth-client-1.12.0-beta.jar and /dev/null differ
diff --git a/MyTracks/libs/gson-2.1.jar b/MyTracks/libs/gson-2.1.jar
deleted file mode 100644
index 83c5c994b..000000000
Binary files a/MyTracks/libs/gson-2.1.jar and /dev/null differ
diff --git a/MyTracks/libs/guava-jdk5-13.0.jar b/MyTracks/libs/guava-jdk5-13.0.jar
deleted file mode 100644
index 85881e5de..000000000
Binary files a/MyTracks/libs/guava-jdk5-13.0.jar and /dev/null differ
diff --git a/MyTracks/libs/jackson-core-2.0.5.jar b/MyTracks/libs/jackson-core-2.0.5.jar
deleted file mode 100644
index 51d1fdeb4..000000000
Binary files a/MyTracks/libs/jackson-core-2.0.5.jar and /dev/null differ
diff --git a/MyTracks/libs/jackson-core-asl-1.9.9.jar b/MyTracks/libs/jackson-core-asl-1.9.9.jar
deleted file mode 100644
index d75843d1c..000000000
Binary files a/MyTracks/libs/jackson-core-asl-1.9.9.jar and /dev/null differ
diff --git a/MyTracks/libs/jsr305.jar b/MyTracks/libs/jsr305.jar
deleted file mode 100644
index cf5f56167..000000000
Binary files a/MyTracks/libs/jsr305.jar and /dev/null differ
diff --git a/MyTracks/local.properties b/MyTracks/local.properties
new file mode 100644
index 000000000..ac7c16536
--- /dev/null
+++ b/MyTracks/local.properties
@@ -0,0 +1,7 @@
+## This file must *NOT* be checked into Version Control Systems,
+# as it contains information specific to your local configuration.
+#
+# Location of the SDK. This is only used by Gradle.
+#
+#Tue Feb 16 19:46:56 CET 2016
+sdk.dir=C\:\\Users\\Clems\\AppData\\Local\\Android\\Sdk
diff --git a/MyTracks/myTracks/build.gradle b/MyTracks/myTracks/build.gradle
new file mode 100644
index 000000000..2636bbc03
--- /dev/null
+++ b/MyTracks/myTracks/build.gradle
@@ -0,0 +1,53 @@
+apply plugin: 'com.android.application'
+
+android {
+ compileSdkVersion 17
+ buildToolsVersion "23.0.2"
+
+ defaultConfig {
+ applicationId "com.google.android.maps.mytracks"
+ minSdkVersion 8
+ targetSdkVersion 19
+
+ testApplicationId "com.google.android.maps.mytracks.test"
+ testInstrumentationRunner "android.test.InstrumentationTestRunner"
+ }
+
+ buildTypes {
+ release {
+ minifyEnabled true
+ proguardFiles 'proguard.cfg', 'proguard-google-api-client.txt'
+ }
+ }
+}
+
+dependencies {
+ compile project(':myTracksLib')
+ compile project(':googleplayservices_lib')
+ compile files('libs/android-support-v4.jar')
+ compile files('libs/antlib.jar')
+ compile files('libs/gdata-client-1.0.jar')
+ compile files('libs/gdata-client-meta-1.0.jar')
+ compile files('libs/gdata-core-1.0.jar')
+ compile files('libs/gdata-spreadsheet-3.0.jar')
+ compile files('libs/gdata-spreadsheet-meta-3.0.jar')
+ compile files('libs/google-api-client-1.12.0-beta.jar')
+ compile files('libs/google-api-client-android-1.12.0-beta.jar')
+ compile files('libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar')
+ compile files('libs/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar')
+ compile files('libs/google-common.jar')
+ compile files('libs/google-http-client-1.12.0-beta.jar')
+ compile files('libs/google-http-client-android-1.12.0-beta.jar')
+ compile files('libs/google-http-client-gson-1.12.0-beta.jar')
+ compile files('libs/google-http-client-jackson-1.12.0-beta.jar')
+ compile files('libs/google-http-client-jackson2-1.12.0-beta.jar')
+ compile files('libs/google-oauth-client-1.12.0-beta.jar')
+ compile files('libs/gson-2.1.jar')
+ compile files('libs/guava-jdk5-13.0.jar')
+ compile files('libs/jackson-core-2.0.5.jar')
+ compile files('libs/jackson-core-asl-1.9.9.jar')
+ compile files('libs/jsr305.jar')
+ compile files('libs/libGoogleAnalytics.jar')
+ androidTestCompile files('libs/AndroidMockGenerator.jar')
+ androidTestCompile files('libs/robotium-solo-3.3.jar')
+}
diff --git a/MyTracks/myTracks/libs/AndroidMockGenerator.jar b/MyTracks/myTracks/libs/AndroidMockGenerator.jar
new file mode 100644
index 000000000..ef8b3612c
Binary files /dev/null and b/MyTracks/myTracks/libs/AndroidMockGenerator.jar differ
diff --git a/MyTracks/libs/android-support-v4.jar b/MyTracks/myTracks/libs/android-support-v4.jar
similarity index 100%
rename from MyTracks/libs/android-support-v4.jar
rename to MyTracks/myTracks/libs/android-support-v4.jar
diff --git a/MyTracks/libs/antlib.jar b/MyTracks/myTracks/libs/antlib.jar
similarity index 100%
rename from MyTracks/libs/antlib.jar
rename to MyTracks/myTracks/libs/antlib.jar
diff --git a/MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/gdata-client-1.0.jar b/MyTracks/myTracks/libs/gdata-client-1.0.jar
similarity index 100%
rename from MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/gdata-client-1.0.jar
rename to MyTracks/myTracks/libs/gdata-client-1.0.jar
diff --git a/MyTracks/libs/gdata-client-meta-1.0.jar b/MyTracks/myTracks/libs/gdata-client-meta-1.0.jar
similarity index 100%
rename from MyTracks/libs/gdata-client-meta-1.0.jar
rename to MyTracks/myTracks/libs/gdata-client-meta-1.0.jar
diff --git a/MyTracks/libs/gdata-core-1.0.jar b/MyTracks/myTracks/libs/gdata-core-1.0.jar
similarity index 100%
rename from MyTracks/libs/gdata-core-1.0.jar
rename to MyTracks/myTracks/libs/gdata-core-1.0.jar
diff --git a/MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/gdata-spreadsheet-3.0.jar b/MyTracks/myTracks/libs/gdata-spreadsheet-3.0.jar
similarity index 100%
rename from MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/gdata-spreadsheet-3.0.jar
rename to MyTracks/myTracks/libs/gdata-spreadsheet-3.0.jar
diff --git a/MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/gdata-spreadsheet-meta-3.0.jar b/MyTracks/myTracks/libs/gdata-spreadsheet-meta-3.0.jar
similarity index 100%
rename from MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/gdata-spreadsheet-meta-3.0.jar
rename to MyTracks/myTracks/libs/gdata-spreadsheet-meta-3.0.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-api-client-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-api-client-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-api-client-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-api-client-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-api-client-android-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-api-client-android-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-api-client-android-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-api-client-android-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/google-api-services-drive-v2-rev30-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/google-api-services-drive-v2-rev30-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-api-services-drive-v2-rev30-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/fusiontables-v1r16lv1.12.0-beta/fusiontables/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-api-services-fusiontables-v1-rev16-1.12.0-beta.jar
diff --git a/MyTracks/libs/google-common.jar b/MyTracks/myTracks/libs/google-common.jar
similarity index 100%
rename from MyTracks/libs/google-common.jar
rename to MyTracks/myTracks/libs/google-common.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-http-client-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-http-client-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-android-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-http-client-android-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-android-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-http-client-android-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-gson-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-http-client-gson-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-gson-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-http-client-gson-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-jackson-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-http-client-jackson-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-jackson-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-http-client-jackson-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-jackson2-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-http-client-jackson2-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-http-client-jackson2-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-http-client-jackson2-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-oauth-client-1.12.0-beta.jar b/MyTracks/myTracks/libs/google-oauth-client-1.12.0-beta.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/google-oauth-client-1.12.0-beta.jar
rename to MyTracks/myTracks/libs/google-oauth-client-1.12.0-beta.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/gson-2.1.jar b/MyTracks/myTracks/libs/gson-2.1.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/gson-2.1.jar
rename to MyTracks/myTracks/libs/gson-2.1.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/guava-jdk5-13.0.jar b/MyTracks/myTracks/libs/guava-jdk5-13.0.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/guava-jdk5-13.0.jar
rename to MyTracks/myTracks/libs/guava-jdk5-13.0.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/jackson-core-2.0.5.jar b/MyTracks/myTracks/libs/jackson-core-2.0.5.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/jackson-core-2.0.5.jar
rename to MyTracks/myTracks/libs/jackson-core-2.0.5.jar
diff --git a/MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/jackson-core-asl-1.9.9.jar b/MyTracks/myTracks/libs/jackson-core-asl-1.9.9.jar
similarity index 100%
rename from MyTracks/.google_apis/drive-v2r30lv1.12.0-beta/drive/libs/jackson-core-asl-1.9.9.jar
rename to MyTracks/myTracks/libs/jackson-core-asl-1.9.9.jar
diff --git a/MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/jsr305.jar b/MyTracks/myTracks/libs/jsr305.jar
similarity index 100%
rename from MyTracks/.google_apis/gdata-spreadsheet-2.1/gdata-spreadsheet-3.0/jsr305.jar
rename to MyTracks/myTracks/libs/jsr305.jar
diff --git a/MyTracks/libs/libGoogleAnalytics.jar b/MyTracks/myTracks/libs/libGoogleAnalytics.jar
similarity index 100%
rename from MyTracks/libs/libGoogleAnalytics.jar
rename to MyTracks/myTracks/libs/libGoogleAnalytics.jar
diff --git a/MyTracks/myTracks/libs/robotium-solo-3.3.jar b/MyTracks/myTracks/libs/robotium-solo-3.3.jar
new file mode 100644
index 000000000..0fd942110
Binary files /dev/null and b/MyTracks/myTracks/libs/robotium-solo-3.3.jar differ
diff --git a/MyTracks/lint.xml b/MyTracks/myTracks/lint.xml
similarity index 95%
rename from MyTracks/lint.xml
rename to MyTracks/myTracks/lint.xml
index 5003301c4..792ee5c02 100644
--- a/MyTracks/lint.xml
+++ b/MyTracks/myTracks/lint.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/MyTracks/myTracks/myTracks.iml b/MyTracks/myTracks/myTracks.iml
new file mode 100644
index 000000000..a7b1aea20
--- /dev/null
+++ b/MyTracks/myTracks/myTracks.iml
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MyTracks/proguard-google-api-client.txt b/MyTracks/myTracks/proguard-google-api-client.txt
similarity index 100%
rename from MyTracks/proguard-google-api-client.txt
rename to MyTracks/myTracks/proguard-google-api-client.txt
diff --git a/MyTracks/proguard.cfg b/MyTracks/myTracks/proguard.cfg
similarity index 100%
rename from MyTracks/proguard.cfg
rename to MyTracks/myTracks/proguard.cfg
diff --git a/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/BootReceiverTest.java b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/BootReceiverTest.java
new file mode 100644
index 000000000..9c70a7af6
--- /dev/null
+++ b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/BootReceiverTest.java
@@ -0,0 +1,91 @@
+/*
+ * 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;
+
+import com.google.android.apps.mytracks.services.TrackRecordingService;
+
+import android.app.ActivityManager;
+import android.app.ActivityManager.RunningServiceInfo;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.test.AndroidTestCase;
+
+import java.util.List;
+
+/**
+ * Tests for the BootReceiver.
+ *
+ * @author Youtao Liu
+ */
+public class BootReceiverTest extends AndroidTestCase {
+ private static final String SERVICE_NAME = "com.google.android.apps.mytracks.services.TrackRecordingService";
+
+ /**
+ * Tests the behavior when receive notification which is the phone boot.
+ */
+ public void testOnReceive_startService() {
+ // Make sure no TrackRecordingService
+ Intent stopIntent = new Intent(getContext(), TrackRecordingService.class);
+ getContext().stopService(stopIntent);
+ assertFalse(isServiceExisted(getContext(), SERVICE_NAME));
+
+ BootReceiver bootReceiver = new BootReceiver();
+ Intent intent = new Intent();
+ intent.setAction(Intent.ACTION_BOOT_COMPLETED);
+ bootReceiver.onReceive(getContext(), intent);
+ // Check if the service is started
+ assertTrue(isServiceExisted(getContext(), SERVICE_NAME));
+ }
+
+ /**
+ * Tests the behavior when receive notification which is not the phone boot.
+ */
+ public void testOnReceive_noStartService() {
+ // Make sure no TrackRecordingService
+ Intent stopIntent = new Intent(getContext(), TrackRecordingService.class);
+ getContext().stopService(stopIntent);
+ assertFalse(isServiceExisted(getContext(), SERVICE_NAME));
+
+ BootReceiver bootReceiver = new BootReceiver();
+ Intent intent = new Intent();
+ intent.setAction(Intent.ACTION_BUG_REPORT);
+ bootReceiver.onReceive(getContext(), intent);
+ // Check if the service is not started
+ assertFalse(isServiceExisted(getContext(), SERVICE_NAME));
+ }
+
+ /**
+ * Checks if a service is started in a context.
+ *
+ * @param context the context for checking a service
+ * @param serviceName the service name to find if existed
+ */
+ private boolean isServiceExisted(Context context, String serviceName) {
+ ActivityManager activityManager = (ActivityManager) context
+ .getSystemService(Context.ACTIVITY_SERVICE);
+ List serviceList = activityManager
+ .getRunningServices(Integer.MAX_VALUE);
+ for (int i = 0; i < serviceList.size(); i++) {
+ RunningServiceInfo serviceInfo = serviceList.get(i);
+ ComponentName componentName = serviceInfo.service;
+ if (componentName.getClassName().equals(serviceName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
\ No newline at end of file
diff --git a/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/ChartValueSeriesTest.java b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/ChartValueSeriesTest.java
new file mode 100644
index 000000000..22ce64224
--- /dev/null
+++ b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/ChartValueSeriesTest.java
@@ -0,0 +1,80 @@
+/*
+ * 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.maps.mytracks.R;
+
+import android.test.AndroidTestCase;
+
+/**
+ * Tests {@link ChartValueSeries}.
+ *
+ * @author Sandor Dornbush
+ */
+public class ChartValueSeriesTest extends AndroidTestCase {
+ private ChartValueSeries series;
+
+ @Override
+ protected void setUp() throws Exception {
+ series = new ChartValueSeries(getContext(),
+ Integer.MIN_VALUE,
+ Integer.MAX_VALUE,
+ new int[] {100, 1000 },
+ R.string.description_elevation_metric,
+ R.string.description_elevation_imperial,
+ R.color.chart_elevation_fill,
+ R.color.chart_elevation_border);
+ }
+
+ public void testInitialConditions() {
+ assertEquals(1, series.getInterval());
+ assertEquals(0, series.getMinMarkerValue());
+ assertEquals(5, series.getMaxMarkerValue());
+ assertTrue(series.isEnabled());
+ }
+
+ public void testEnabled() {
+ series.setEnabled(false);
+ assertFalse(series.isEnabled());
+ }
+
+ public void testSmallUpdates() {
+ series.update(0);
+ series.update(10);
+ series.updateDimension();
+ assertEquals(100, series.getInterval());
+ assertEquals(0, series.getMinMarkerValue());
+ assertEquals(500, series.getMaxMarkerValue());
+ }
+
+ public void testBigUpdates() {
+ series.update(0);
+ series.update(901);
+ series.updateDimension();
+ assertEquals(1000, series.getInterval());
+ assertEquals(0, series.getMinMarkerValue());
+ assertEquals(5000, series.getMaxMarkerValue());
+ }
+
+ public void testNotZeroBasedUpdates() {
+ series.update(220);
+ series.update(250);
+ series.updateDimension();
+ assertEquals(100, series.getInterval());
+ assertEquals(200, series.getMinMarkerValue());
+ assertEquals(700, series.getMaxMarkerValue());
+ }
+}
diff --git a/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/TrackStubUtils.java b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/TrackStubUtils.java
new file mode 100644
index 000000000..ea0ac573f
--- /dev/null
+++ b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/TrackStubUtils.java
@@ -0,0 +1,91 @@
+/*
+ * 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;
+
+import com.google.android.apps.mytracks.content.MyTracksLocation;
+import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
+import com.google.android.apps.mytracks.content.Track;
+
+import android.location.Location;
+
+/**
+ * Commons utilities for creating stubs of track, location. The class will be
+ * enriched if needs more similar stubs for test.
+ *
+ * @author Youtao Liu
+ */
+public class TrackStubUtils {
+
+ static final String LOCATION_PROVIDER = "gps";
+ public static final double INITIAL_LATITUDE = 22;
+ public static final double INITIAL_LONGITUDE = 22;
+ public static final double INITIAL_ALTITUDE = 22;
+ static final float INITIAL_ACCURACY = 5;
+ static final float INITIAL_SPEED = 10;
+ public static final long INITIAL_TIME = 1000L;
+ static final float INITIAL_BEARING = 3.0f;
+ // Used to change the value of latitude, longitude, and altitude.
+ static final double DIFFERENCE = 0.01;
+
+ /**
+ * Gets a a {@link Track} stub with specified number of locations.
+ *
+ * @param numberOfLocations the number of locations for the track
+ * @return a track stub.
+ */
+ public static Track createTrack(int numberOfLocations) {
+ Track track = new Track();
+ for (int i = 0; i < numberOfLocations; i++) {
+ track.addLocation(createMyTracksLocation(INITIAL_LATITUDE + i * DIFFERENCE, INITIAL_LONGITUDE
+ + i * DIFFERENCE, INITIAL_ALTITUDE + i * DIFFERENCE));
+ }
+
+ return track;
+ }
+
+ /**
+ * Create a MyTracks location with default values.
+ *
+ * @return a track stub.
+ */
+ public static MyTracksLocation createMyTracksLocation() {
+ return createMyTracksLocation(INITIAL_LATITUDE, INITIAL_LONGITUDE, INITIAL_ALTITUDE);
+ }
+
+ /**
+ * Creates a {@link MyTracksLocation} stub with specified values.
+ *
+ * @return a MyTracksLocation stub.
+ */
+ public static MyTracksLocation createMyTracksLocation(double latitude, double longitude,
+ double altitude) {
+ // Initial Location
+ Location loc = new Location(LOCATION_PROVIDER);
+ loc.setLatitude(latitude);
+ loc.setLongitude(longitude);
+ loc.setAltitude(altitude);
+ loc.setAccuracy(INITIAL_ACCURACY);
+ loc.setSpeed(INITIAL_SPEED);
+ loc.setTime(INITIAL_TIME);
+ loc.setBearing(INITIAL_BEARING);
+ SensorDataSet sd = SensorDataSet.newBuilder().build();
+ MyTracksLocation myTracksLocation = new MyTracksLocation(loc, sd);
+
+ return myTracksLocation;
+ }
+
+}
diff --git a/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java
new file mode 100644
index 000000000..2542881ca
--- /dev/null
+++ b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/DescriptionGeneratorImplTest.java
@@ -0,0 +1,198 @@
+/*
+ * 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.content;
+
+import com.google.android.apps.mytracks.stats.TripStatistics;
+import com.google.android.apps.mytracks.util.StringUtils;
+import com.google.android.maps.mytracks.R;
+
+import android.test.AndroidTestCase;
+
+/**
+ * Tests for {@link DescriptionGeneratorImpl}.
+ *
+ * @author Jimmy Shih
+ */
+public class DescriptionGeneratorImplTest extends AndroidTestCase {
+
+ private static final long START_TIME = 1288721514000L;
+ private DescriptionGeneratorImpl descriptionGenerator;
+
+ @Override
+ protected void setUp() throws Exception {
+ descriptionGenerator = new DescriptionGeneratorImpl(getContext());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#generateTrackDescription(Track,
+ * java.util.Vector, java.util.Vector, boolean)}.
+ */
+ public void testGenerateTrackDescription() {
+ Track track = new Track();
+ TripStatistics stats = new TripStatistics();
+ stats.setTotalDistance(20000);
+ stats.setTotalTime(600000);
+ stats.setMovingTime(300000);
+ stats.setMaxSpeed(100);
+ stats.setMaxElevation(550);
+ stats.setMinElevation(-500);
+ stats.setTotalElevationGain(6000);
+ stats.setMaxGrade(0.42);
+ stats.setMinGrade(0.11);
+ stats.setStartTime(START_TIME);
+ track.setTripStatistics(stats);
+ track.setCategory("hiking");
+ String expected = "Created by"
+ + " Google My Tracks on Android
"
+ + "Name: - "
+ + "Activity type: hiking "
+ + "Description: - "
+ + "Total distance: 20.00 km (12.4 mi) "
+ + "Total time: 10:00 "
+ + "Moving time: 05:00 "
+ + "Average speed: 120.00 km/h (74.6 mi/h) "
+ + "Average moving speed: 240.00 km/h (149.1 mi/h) "
+ + "Max speed: 360.00 km/h (223.7 mi/h) "
+ + "Average pace: 0:30 min/km (0:48 min/mi) "
+ + "Average moving pace: 0:15 min/km (0:24 min/mi) "
+ + "Fastest pace: 0:10 min/km (0:16 min/mi) "
+ + "Max elevation: 550 m (1804 ft) "
+ + "Min elevation: -500 m (-1640 ft) "
+ + "Elevation gain: 6000 m (19685 ft) "
+ + "Max grade: 42 % "
+ + "Min grade: 11 % "
+ + "Recorded: " + StringUtils.formatDateTime(getContext(), START_TIME) + " ";
+ assertEquals(expected, descriptionGenerator.generateTrackDescription(track, null, null, true));
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#generateWaypointDescription(TripStatistics)}.
+ */
+ public void testGenerateWaypointDescription() {
+ Waypoint waypoint = new Waypoint();
+ TripStatistics stats = new TripStatistics();
+ stats.setTotalDistance(20000);
+ stats.setTotalTime(600000);
+ stats.setMovingTime(300000);
+ stats.setMaxSpeed(100);
+ stats.setMaxElevation(550);
+ stats.setMinElevation(-500);
+ stats.setTotalElevationGain(6000);
+ stats.setMaxGrade(0.42);
+ stats.setMinGrade(0.11);
+ stats.setStartTime(START_TIME);
+ waypoint.setTripStatistics(stats);
+ String expected = "Total distance: 20.00 km (12.4 mi)\n"
+ + "Total time: 10:00\n"
+ + "Moving time: 05:00\n"
+ + "Average speed: 120.00 km/h (74.6 mi/h)\n"
+ + "Average moving speed: 240.00 km/h (149.1 mi/h)\n"
+ + "Max speed: 360.00 km/h (223.7 mi/h)\n"
+ + "Average pace: 0:30 min/km (0:48 min/mi)\n"
+ + "Average moving pace: 0:15 min/km (0:24 min/mi)\n"
+ + "Fastest pace: 0:10 min/km (0:16 min/mi)\n"
+ + "Max elevation: 550 m (1804 ft)\n"
+ + "Min elevation: -500 m (-1640 ft)\n"
+ + "Elevation gain: 6000 m (19685 ft)\n"
+ + "Max grade: 42 %\n"
+ + "Min grade: 11 %\n"
+ + "Recorded: " + StringUtils.formatDateTime(getContext(), START_TIME) + "\n";
+ assertEquals(
+ expected, descriptionGenerator.generateWaypointDescription(waypoint.getTripStatistics()));
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeDistance(double, StringBuilder,
+ * int, String)}.
+ */
+ public void testWriteDistance() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeDistance(1100, builder, R.string.description_total_distance, " ");
+ assertEquals("Total distance: 1.10 km (0.7 mi) ", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeTime(long, StringBuilder, int,
+ * String)}.
+ */
+ public void testWriteTime() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeTime(1000, builder, R.string.description_total_time, " ");
+ assertEquals("Total time: 00:01 ", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeSpeed(double, StringBuilder,
+ * int, String)}.
+ */
+ public void testWriteSpeed() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeSpeed(1.1, builder, R.string.description_average_speed, "\n");
+ assertEquals("Average speed: 3.96 km/h (2.5 mi/h)\n", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeElevation(double, StringBuilder,
+ * int, String)}.
+ */
+ public void testWriteElevation() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeElevation(4.2, builder, R.string.description_min_elevation, " ");
+ assertEquals("Min elevation: 4 m (14 ft) ", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writePace(double, StringBuilder, int,
+ * String)}.
+ */
+ public void testWritePace() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writePace(1.1, builder, R.string.description_average_pace_in_minute, "\n");
+ assertEquals("Average pace: 15:09 min/km (24:23 min/mi)\n", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeGrade(double, StringBuilder,
+ * int, String)}.
+ */
+ public void testWriteGrade() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeGrade(.042, builder, R.string.description_max_grade, " ");
+ assertEquals("Max grade: 4 % ", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeGrade(double, StringBuilder,
+ * int, String)} with a NaN.
+ */
+ public void testWriteGrade_nan() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeGrade(Double.NaN, builder, R.string.description_max_grade, " ");
+ assertEquals("Max grade: 0 % ", builder.toString());
+ }
+
+ /**
+ * Tests {@link DescriptionGeneratorImpl#writeGrade(double, StringBuilder,
+ * int, String)} with an infinite number.
+ */
+ public void testWriteGrade_infinite() {
+ StringBuilder builder = new StringBuilder();
+ descriptionGenerator.writeGrade(
+ Double.POSITIVE_INFINITY, builder, R.string.description_max_grade, " ");
+ assertEquals("Max grade: 0 % ", builder.toString());
+ }
+}
diff --git a/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/MyTracksProviderTest.java b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/MyTracksProviderTest.java
new file mode 100644
index 000000000..75fb116ab
--- /dev/null
+++ b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/MyTracksProviderTest.java
@@ -0,0 +1,263 @@
+/*
+ * 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.content;
+
+import com.google.android.apps.mytracks.content.MyTracksProvider.DatabaseHelper;
+
+import android.database.sqlite.SQLiteDatabase;
+import android.net.Uri;
+import android.test.AndroidTestCase;
+
+/**
+ * Tests {@link MyTracksProvider}.
+ *
+ * @author Youtao Liu
+ */
+public class MyTracksProviderTest extends AndroidTestCase {
+
+ private static final String DATABASE_NAME = "mytrackstest.db";
+
+ private SQLiteDatabase db;
+ private MyTracksProvider myTracksProvider;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ getContext().deleteDatabase(DATABASE_NAME);
+ db = (new DatabaseHelper(getContext(), DATABASE_NAME)).getWritableDatabase();
+ myTracksProvider = new MyTracksProvider();
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onCreate(SQLiteDatabase)}.
+ */
+ public void testDatabaseHelper_OnCreate() {
+ assertTrue(hasTable(TracksColumns.TABLE_NAME));
+ assertTrue(hasTable(TrackPointsColumns.TABLE_NAME));
+ assertTrue(hasTable(WaypointsColumns.TABLE_NAME));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is less than 17.
+ */
+ public void testDatabaseHelper_onUpgrade_Version16() {
+ dropTable(TracksColumns.TABLE_NAME);
+ dropTable(TrackPointsColumns.TABLE_NAME);
+ dropTable(WaypointsColumns.TABLE_NAME);
+
+ int oldVersion = 16;
+ DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
+ databaseHelper.onUpgrade(db, oldVersion, MyTracksProvider.DATABASE_VERSION);
+
+ assertTrue(hasTable(TracksColumns.TABLE_NAME));
+ assertTrue(hasTable(TrackPointsColumns.TABLE_NAME));
+ assertTrue(hasTable(WaypointsColumns.TABLE_NAME));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 17.
+ */
+ public void testDatabaseHelper_onUpgrade_Version17() {
+ setupUpgrade(17);
+
+ assertTrue(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
+ assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 18.
+ */
+ public void testDatabaseHelper_onUpgrade_Version18() {
+ setupUpgrade(18);
+
+ assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
+ assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 19.
+ */
+ public void testDatabaseHelper_onUpgrade_Version19() {
+ setupUpgrade(19);
+
+ assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
+ assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 20.
+ */
+ public void testDatabaseHelper_onUpgrade_Version20() {
+ setupUpgrade(20);
+
+ assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
+ assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 21.
+ */
+ public void testDatabaseHelper_onUpgrade_Version21() {
+ setupUpgrade(21);
+
+ assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
+ assertTrue(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
+ assertTrue(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider.DatabaseHelper#onUpgrade(SQLiteDatabase, int,
+ * int)} when version is 22.
+ */
+ public void testDatabaseHelper_onUpgrade_Version22() {
+ setupUpgrade(22);
+
+ assertFalse(hasColumn(TrackPointsColumns.TABLE_NAME, TrackPointsColumns.SENSOR));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.TABLEID));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.ICON));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.DRIVEID));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.MODIFIEDTIME));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDWITHME));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.SHAREDOWNER));
+ assertFalse(hasColumn(WaypointsColumns.TABLE_NAME, WaypointsColumns.PHOTOURL));
+ assertFalse(hasColumn(TracksColumns.TABLE_NAME, TracksColumns.CALORIE));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider#onCreate(android.content.Context)}.
+ */
+ public void testOnCreate() {
+ assertTrue(myTracksProvider.onCreate(getContext()));
+ }
+
+ /**
+ * Tests {@link MyTracksProvider#getType(Uri)}.
+ */
+ public void testGetType() {
+ assertEquals(TracksColumns.CONTENT_TYPE, myTracksProvider.getType(TracksColumns.CONTENT_URI));
+ assertEquals(
+ TrackPointsColumns.CONTENT_TYPE, myTracksProvider.getType(TrackPointsColumns.CONTENT_URI));
+ assertEquals(
+ WaypointsColumns.CONTENT_TYPE, myTracksProvider.getType(WaypointsColumns.CONTENT_URI));
+ }
+
+ /**
+ * Creates a table, containing one column.
+ *
+ * @param table the table name
+ */
+ private void createTable(String table) {
+ db.execSQL("CREATE TABLE " + table + " (test INTEGER)");
+ }
+
+ /**
+ * Drops a table in database.
+ *
+ * @param table the table name
+ */
+ private void dropTable(String table) {
+ db.execSQL("Drop TABLE " + table);
+ }
+
+ /**
+ * Returns true if the table exists.
+ *
+ * @param table the table name
+ */
+ private boolean hasTable(String table) {
+ try {
+ db.rawQuery("select count(*) from " + table, null);
+ return true;
+ } catch (Exception e) {
+ return false;
+ }
+ }
+
+ /**
+ * Returns true if the column in the table exists.
+ *
+ * @param table the table name
+ * @param column the column name
+ */
+ private boolean hasColumn(String table, String column) {
+ try {
+ db.execSQL("SElECT count(*) from " + table + " order by " + column);
+ } catch (Exception e) {
+ if (e.getMessage().indexOf("no such column") > -1) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Sets up upgrade.
+ *
+ * @param oldVersion thd old database version
+ */
+ private void setupUpgrade(int oldVersion) {
+ dropTable(TracksColumns.TABLE_NAME);
+ dropTable(TrackPointsColumns.TABLE_NAME);
+ dropTable(WaypointsColumns.TABLE_NAME);
+ createTable(TracksColumns.TABLE_NAME);
+ createTable(TrackPointsColumns.TABLE_NAME);
+ createTable(WaypointsColumns.TABLE_NAME);
+
+ DatabaseHelper databaseHelper = new DatabaseHelper(getContext());
+ databaseHelper.onUpgrade(db, oldVersion, MyTracksProvider.DATABASE_VERSION);
+ }
+}
\ No newline at end of file
diff --git a/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImplTest.java b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImplTest.java
new file mode 100644
index 000000000..137e9aa38
--- /dev/null
+++ b/MyTracks/myTracks/src/androidTest/java/com/google/android/apps/mytracks/content/MyTracksProviderUtilsImplTest.java
@@ -0,0 +1,908 @@
+/*
+ * 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.content;
+
+import com.google.android.apps.mytracks.content.MyTracksProviderUtils.LocationFactory;
+import com.google.android.apps.mytracks.content.MyTracksProviderUtils.LocationIterator;
+import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
+import com.google.android.apps.mytracks.services.TrackRecordingServiceTest.MockContext;
+import com.google.android.apps.mytracks.stats.TripStatistics;
+import com.google.android.testing.mocking.AndroidMock;
+import com.google.android.testing.mocking.UsesMocks;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.Cursor;
+import android.location.Location;
+import android.test.AndroidTestCase;
+import android.test.RenamingDelegatingContext;
+import android.test.mock.MockContentResolver;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * A unit test for {@link MyTracksProviderUtilsImpl}.
+ *
+ * @author Bartlomiej Niechwiej
+ * @author Youtao Liu
+ */
+public class MyTracksProviderUtilsImplTest extends AndroidTestCase {
+ private Context context;
+ private MyTracksProviderUtils providerUtils;
+
+ private static final String NAME_PREFIX = "test name";
+ private static final String MOCK_DESC = "Mock Next Waypoint Desc!";
+ private static final String TEST_DESC = "Test Desc!";
+ private static final String TEST_DESC_NEW = "Test Desc new!";
+ private double INITIAL_LATITUDE = 37.0;
+ private double INITIAL_LONGITUDE = -57.0;
+ private double ALTITUDE_INTERVAL = 2.5;
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+
+ MockContentResolver mockContentResolver = new MockContentResolver();
+ RenamingDelegatingContext targetContext = new RenamingDelegatingContext(
+ getContext(), getContext(), "test.");
+ context = new MockContext(mockContentResolver, targetContext);
+ MyTracksProvider provider = new MyTracksProvider();
+ provider.attachInfo(context, null);
+ mockContentResolver.addProvider(MyTracksProviderUtils.AUTHORITY, provider);
+ setContext(context);
+
+ providerUtils = MyTracksProviderUtils.Factory.get(context);
+ providerUtils.deleteAllTracks(context);
+ }
+
+ public void testLocationIterator_noPoints() {
+ testIterator(1, 0, 1, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ }
+
+ public void testLocationIterator_customFactory() {
+ final Location location = new Location("test_location");
+ final AtomicInteger counter = new AtomicInteger();
+ testIterator(1, 15, 4, false, new LocationFactory() {
+ @Override
+ public Location createLocation() {
+ counter.incrementAndGet();
+ return location;
+ }
+ });
+ // Make sure we were called exactly as many times as we had track points.
+ assertEquals(15, counter.get());
+ }
+
+ public void testLocationIterator_nullFactory() {
+ try {
+ testIterator(1, 15, 4, false, null);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException e) {
+ // Expected.
+ }
+ }
+
+ public void testLocationIterator_noBatchAscending() {
+ testIterator(1, 50, 100, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ testIterator(2, 50, 50, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ }
+
+ public void testLocationIterator_noBatchDescending() {
+ testIterator(1, 50, 100, true, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ testIterator(2, 50, 50, true, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ }
+
+ public void testLocationIterator_batchAscending() {
+ testIterator(1, 50, 11, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ testIterator(2, 50, 25, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ }
+
+ public void testLocationIterator_batchDescending() {
+ testIterator(1, 50, 11, true, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ testIterator(2, 50, 25, true, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ }
+
+ public void testLocationIterator_largeTrack() {
+ testIterator(1, 20000, 2000, false, MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ }
+
+ private List testIterator(long trackId, int numPoints, int batchSize,
+ boolean descending, LocationFactory locationFactory) {
+ long lastPointId = initializeTrack(trackId, numPoints);
+ ((MyTracksProviderUtilsImpl) providerUtils).setDefaultCursorBatchSize(batchSize);
+ List locations = new ArrayList(numPoints);
+ LocationIterator it = providerUtils.getTrackPointLocationIterator(
+ trackId, -1L, descending, locationFactory);
+ try {
+ while (it.hasNext()) {
+ Location loc = it.next();
+ assertNotNull(loc);
+ locations.add(loc);
+ // Make sure the IDs are returned in the right order.
+ assertEquals(descending ? lastPointId - locations.size() + 1
+ : lastPointId - numPoints + locations.size(), it.getLocationId());
+ }
+ assertEquals(numPoints, locations.size());
+ } finally {
+ it.close();
+ }
+ return locations;
+ }
+
+ private long initializeTrack(long id, int numPoints) {
+ Track track = new Track();
+ track.setId(id);
+ track.setName("Test: " + id);
+ track.setNumberOfPoints(numPoints);
+ providerUtils.insertTrack(track);
+ track = providerUtils.getTrack(id);
+ assertNotNull(track);
+
+ Location[] locations = new Location[numPoints];
+ for (int i = 0; i < numPoints; ++i) {
+ Location loc = new Location("test");
+ loc.setLatitude(37.0 + (double) i / 10000.0);
+ loc.setLongitude(57.0 - (double) i / 10000.0);
+ loc.setAccuracy((float) i / 100.0f);
+ loc.setAltitude(i * 2.5);
+ locations[i] = loc;
+ }
+ providerUtils.bulkInsertTrackPoint(locations, numPoints, id);
+
+ // Load all inserted locations.
+ long lastPointId = -1;
+ int counter = 0;
+ LocationIterator it = providerUtils.getTrackPointLocationIterator(id, -1L, false,
+ MyTracksProviderUtils.DEFAULT_LOCATION_FACTORY);
+ try {
+ while (it.hasNext()) {
+ it.next();
+ lastPointId = it.getLocationId();
+ counter++;
+ }
+ } finally {
+ it.close();
+ }
+
+ assertTrue(numPoints == 0 || lastPointId > 0);
+ assertEquals(numPoints, track.getNumberOfPoints());
+ assertEquals(numPoints, counter);
+
+ return lastPointId;
+ }
+
+ /**
+ * Tests the method {@link MyTracksProviderUtilsImpl#createTrack(Cursor)}.
+ */
+ @UsesMocks(Cursor.class)
+ public void testCreateTrack() {
+ Cursor cursorMock = AndroidMock.createNiceMock(Cursor.class);
+ int startColumnIndex = 1;
+ int columnIndex = startColumnIndex;
+ AndroidMock.expect(cursorMock.getColumnIndexOrThrow(TracksColumns._ID))
+ .andReturn(columnIndex++);
+ AndroidMock.expect(cursorMock.getColumnIndexOrThrow(TracksColumns.NAME)).andReturn(
+ columnIndex++);
+ columnIndex = startColumnIndex;
+ // Id
+ AndroidMock.expect(cursorMock.isNull(columnIndex++)).andReturn(false);
+ // Name
+ AndroidMock.expect(cursorMock.isNull(columnIndex++)).andReturn(false);
+ long trackId = System.currentTimeMillis();
+ columnIndex = startColumnIndex;
+ // Id
+ AndroidMock.expect(cursorMock.getLong(columnIndex++)).andReturn(trackId);
+ // Name
+ String name = NAME_PREFIX + Long.toString(trackId);
+ AndroidMock.expect(cursorMock.getString(columnIndex++)).andReturn(name);
+ AndroidMock.replay(cursorMock);
+ Track track = providerUtils.createTrack(cursorMock);
+ assertEquals(trackId, track.getId());
+ assertEquals(name, track.getName());
+ AndroidMock.verify(cursorMock);
+ }
+
+ /**
+ * Tests the method {@link MyTracksProviderUtilsImpl#deleteAllTracks(Context)}
+ */
+ public void testDeleteAllTracks() {
+ // Insert track, points and waypoint at first.
+ long trackId = System.currentTimeMillis();
+ Track track = getTrack(trackId, 10);
+ insertTrackWithLocations(track);
+ Waypoint waypoint = new Waypoint();
+ providerUtils.insertWaypoint(waypoint);
+ ContentResolver contentResolver = context.getContentResolver();
+ Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
+ TracksColumns._ID);
+ assertEquals(1, tracksCursor.getCount());
+ Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
+ null, TrackPointsColumns._ID);
+ assertEquals(10, tracksPointsCursor.getCount());
+ Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
+ null, WaypointsColumns._ID);
+ assertEquals(1, waypointCursor.getCount());
+ // Delete all.
+ providerUtils.deleteAllTracks(context);
+ // Check whether all have been deleted.
+ tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
+ TracksColumns._ID);
+ assertEquals(0, tracksCursor.getCount());
+ tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
+ null, TrackPointsColumns._ID);
+ assertEquals(0, tracksPointsCursor.getCount());
+ waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
+ null, WaypointsColumns._ID);
+ assertEquals(0, waypointCursor.getCount());
+ }
+
+ /**
+ * Tests the method {@link MyTracksProviderUtilsImpl#deleteTrack(Context, long)}.
+ */
+ public void testDeleteTrack() {
+ // Insert three tracks, points of two tracks and way point of one track.
+ long trackId = System.currentTimeMillis();
+ Track track = getTrack(trackId, 10);
+
+ providerUtils.insertTrack(track);
+ insertTrackWithLocations(getTrack(trackId + 1, 10));
+ insertTrackWithLocations(getTrack(trackId + 2, 10));
+
+ Waypoint waypoint = new Waypoint();
+ waypoint.setTrackId(trackId);
+ providerUtils.insertWaypoint(waypoint);
+
+ ContentResolver contentResolver = context.getContentResolver();
+ Cursor tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
+ TracksColumns._ID);
+ assertEquals(3, tracksCursor.getCount());
+ Cursor tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
+ null, TrackPointsColumns._ID);
+ assertEquals(20, tracksPointsCursor.getCount());
+ Cursor waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
+ null, WaypointsColumns._ID);
+ assertEquals(1, waypointCursor.getCount());
+ // Delete one track.
+ providerUtils.deleteTrack(context, trackId);
+ // Check whether all data of a track has been deleted.
+ tracksCursor = contentResolver.query(TracksColumns.CONTENT_URI, null, null, null,
+ TracksColumns._ID);
+ assertEquals(2, tracksCursor.getCount());
+ tracksPointsCursor = contentResolver.query(TrackPointsColumns.CONTENT_URI, null, null,
+ null, TrackPointsColumns._ID);
+ assertEquals(20, tracksPointsCursor.getCount());
+ waypointCursor = contentResolver.query(WaypointsColumns.CONTENT_URI, null, null,
+ null, WaypointsColumns._ID);
+ assertEquals(0, waypointCursor.getCount());
+ }
+
+ /**
+ * Tests the method {@link MyTracksProviderUtilsImpl#getAllTracks()}
+ */
+ public void testGetAllTracks() {
+ int initialTrackNumber = providerUtils.getAllTracks().size();
+ long trackId = System.currentTimeMillis();
+ providerUtils.insertTrack(getTrack(trackId, 0));
+ List