Patch 3 CLs from

http://code.google.com/r/rdamazio-mytracks-staging2/
- 7781a7c23cf1
- 883427ab11f8
- d801f8f7c16b

- Use Halo them for api level 11 or higher.
- Use action bar for api level 11 or higher.
- Move all menu items for the 3 tabs to MenuManager.
This commit is contained in:
Jimmy Shih
2012-03-12 15:59:07 -07:00
282 changed files with 13236 additions and 9248 deletions
+57 -21
View File
@@ -17,8 +17,8 @@ limitations under the License.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.maps.mytracks"
android:installLocation="auto"
android:versionCode="36"
android:versionName="1.1.13">
android:versionCode="38"
android:versionName="1.1.15">
<!-- Permissions to initialize service -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
@@ -48,6 +48,7 @@ limitations under the License.
<!-- Permissions for misc services -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Exported permissions (for other apps to use our features) -->
<!-- Permission to get track start/end broadcasts -->
@@ -95,8 +96,7 @@ limitations under the License.
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen.multitouch" android:required="false"/>
<uses-sdk android:minSdkVersion="7"
android:targetSdkVersion="15" />
<uses-sdk android:minSdkVersion="7"/>
<supports-screens
android:xlargeScreens="true"
android:largeScreens="true"
@@ -107,18 +107,26 @@ limitations under the License.
<application android:icon="@drawable/arrow_icon"
android:label="@string/my_tracks_app_name"
android:name="com.google.android.apps.mytracks.MyTracksApplication"
android:backupAgent="com.google.android.apps.mytracks.io.backup.MyTracksBackupAgent">
android:backupAgent="com.google.android.apps.mytracks.io.backup.MyTracksBackupAgent"
android:theme="@style/ThemeSelector" >
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.backup.api_key"
android:value="AEdPqrEAAAAIi-_QiwoRSc9_bAC9cmuNXTQyU8ajJmGtKdhskQ" />
<!-- Main track data provider -->
<provider android:name="com.google.android.apps.mytracks.content.MyTracksProvider"
android:authorities="com.google.android.maps.mytracks"
android:exported="true"
android:readPermission="com.google.android.apps.mytracks.READ_TRACK_DATA"
android:writePermission="com.google.android.apps.mytracks.WRITE_TRACK_DATA" />
<!-- Provider for search suggestions -->
<provider android:name="com.google.android.apps.mytracks.content.SearchEngineProvider"
android:authorities="com.google.android.maps.mytracks.search"
android:exported="false" />
<!-- Main activity -->
<activity android:name="com.google.android.apps.mytracks.MyTracks"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale">
<intent-filter>
@@ -130,7 +138,12 @@ limitations under the License.
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.waypoint" />
</intent-filter>
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.MapActivity"
@@ -138,18 +151,26 @@ limitations under the License.
<intent-filter>
<category android:name="android.intent.category.TAB" />
</intent-filter>
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.MapsList"
android:label="@string/maps_list_title"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale"
android:exported="false" />
<!-- TODO: VIEW and PICK for track cursor dir -->
<activity android:name="com.google.android.apps.mytracks.TrackList" />
<!-- TODO: Merge TrackList, WaypointsLIst and SearchActivity, then implement VIEW and PICK for track and waypoint cursor dir -->
<activity android:name="com.google.android.apps.mytracks.TrackList">
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<!-- TODO: VIEW and PICK for waypoint cursor dir -->
<activity android:name="com.google.android.apps.mytracks.WaypointsList" />
<activity android:name="com.google.android.apps.mytracks.WaypointsList">
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.TrackDetail"
android:label="@string/track_detail_title">
@@ -174,7 +195,6 @@ limitations under the License.
<activity android:name="com.google.android.apps.mytracks.WaypointDetails"
android:label="@string/marker_detail_title">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
@@ -197,6 +217,10 @@ limitations under the License.
<intent-filter>
<category android:name="android.intent.category.TAB" />
</intent-filter>
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.SensorStateActivity"
@@ -207,14 +231,10 @@ limitations under the License.
<intent-filter>
<category android:name="android.intent.category.TAB" />
</intent-filter>
</activity>
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.SendActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
</intent-filter>
<!-- Enable searches via SearchActivity. -->
<meta-data android:name="android.app.default_searchable"
android:value="com.google.android.apps.mytracks.SearchActivity" />
</activity>
<activity android:name="com.google.android.apps.mytracks.io.file.SaveActivity"
@@ -247,8 +267,23 @@ limitations under the License.
android:label="@string/welcome_title"
android:exported="false" />
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadServiceChooserActivity"/>
<activity android:name="com.google.android.apps.mytracks.SearchActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/search"/>
</activity>
<activity android:name="com.google.android.apps.mytracks.io.docs.SendDocsActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.fusiontables.SendFusionTablesActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.maps.ChooseMapActivity"
android:label="@string/maps_list_title"/>
<activity android:name="com.google.android.apps.mytracks.io.maps.SendMapsActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.AccountChooserActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadResultActivity"/>
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.UploadServiceChooserActivity"/>
<service android:name="com.google.android.apps.mytracks.services.TrackRecordingService"
android:label="@string/my_tracks_recording_service"
@@ -259,6 +294,7 @@ limitations under the License.
<service android:name="com.google.android.apps.mytracks.services.ControlRecordingService"
android:exported="false" />
<service android:name="com.google.android.apps.mytracks.services.RemoveTempFilesService"/>
<receiver android:name="com.google.android.apps.mytracks.BootReceiver">
<intent-filter>
+1 -1
View File
@@ -87,7 +87,7 @@ limitations under the License.
android:text="@string/about_support"
style="@style/AboutLabel"/>
<TextView
android:text="@string/my_tracks_web_url"
android:text="@string/my_tracks_support_url"
style="@style/AboutUrl"/>
<!-- Privacy -->
+45
View File
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical">
<TextView
android:background="@drawable/list_bar"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:padding="5dp"
android:text="@string/maps_list_pick_map"
android:textColor="@color/white"
android:textSize="16sp"/>
<ListView
android:id="@+id/choose_map_list_view"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_width="fill_parent"
android:padding="5dp"/>
<TextView
android:id="@+id/choose_map_empty_view"
android:gravity="center"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_width="fill_parent"
android:padding="5dp"
android:textColor="@color/red"
android:textSize="16sp"
android:textStyle="bold"/>
</LinearLayout>
+47
View File
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:paddingBottom="2dp"
android:paddingTop="2dp">
<TextView
android:id="@+id/choose_map_list_item_title"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginTop="6dp"
android:layout_width="fill_parent"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold"
android:singleLine="true"/>
<TextView
android:id="@+id/choose_map_list_item_description"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_width="fill_parent"
android:textSize="14sp"
android:singleLine="true"/>
<TextView
android:id="@+id/choose_map_list_item_search_status"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_width="fill_parent"
android:textSize="14sp"
android:singleLine="true"/>
</LinearLayout>
-103
View File
@@ -1,103 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apl/res/com.google.android.maps"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_bar"
android:layout_weight="0"
android:padding="3dip">
<TextView android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16dip"
android:textColor="#fff"
android:text="@string/maps_list_pick_map"
android:layout_weight="0"/>
</LinearLayout>
<ListView android:id="@+id/maplist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView android:id="@+id/mapslist_empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:gravity="center"
android:padding="3dip"
android:textSize="16dip"
android:textColor="#c00"
android:textStyle="bold"
android:text="@string/maps_list_no_maps"
android:visibility="gone"/>
<TextView android:id="@+id/failed"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:padding="3dip"
android:textSize="16dip"
android:textColor="#c00"
android:textStyle="bold"
android:text="@string/maps_list_error"
android:visibility="gone"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_bar"
android:layout_weight="0"
android:padding="3dip">
<LinearLayout android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="3dip"
android:layout_gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ProgressBar
android:layout_height="20dip"
android:layout_width="20dip"
android:layout_gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="3dip"
android:textSize="16dip"
android:textColor="#fff"
android:textStyle="bold"
android:text="@string/maps_list_loading"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
-40
View File
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:orientation="vertical">
<TextView android:id="@+id/maplistitem"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="9pt"
android:textStyle="bold"
android:textColor="#fff"
android:singleLine="true"/>
<TextView android:id="@+id/maplistdesc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="8pt"
android:singleLine="true"/>
<TextView android:id="@+id/maplistpublic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="7pt"
android:singleLine="true"/>
</LinearLayout>
+26 -35
View File
@@ -15,69 +15,60 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="2dip"
android:paddingBottom="2dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:minHeight="?android:attr/listPreferredItemHeight"
android:orientation="vertical">
android:orientation="vertical"
android:paddingBottom="2dip"
android:paddingTop="2dip">
<LinearLayout
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/trackdetails_item_icon"
android:layout_width="wrap_content"
android:orientation="horizontal">
<ImageView android:id="@+id/track_list_item_icon"
android:contentDescription="@string/track_list_icon_description"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:paddingLeft="4dip"
android:paddingRight="2dip"
android:paddingTop="5dip"
android:src="@drawable/track"/>
<LinearLayout
android:orientation="horizontal"
android:src="@drawable/track" />
<TextView android:id="@+id/track_list_item_name"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:layout_marginTop="6dip"
android:layout_width="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView android:id="@+id/track_list_item_category"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:layout_marginTop="6dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/trackdetails_item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:layout_marginTop="6dip"
android:singleLine="true"
android:text="Track name"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView android:id="@+id/trackdetails_item_category"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:layout_marginTop="6dip"
android:singleLine = "true"
android:text="Activity type"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
android:singleLine = "true"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
<TextView android:id="@+id/trackdetails_item_time"
<TextView android:id="@+id/track_list_item_time"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:singleLine="true"
android:textColor="#fff"
android:text="Start time"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView android:id="@+id/trackdetails_item_stats"
<TextView android:id="@+id/track_list_item_stats"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:singleLine="true"
android:textColor="#0f0"
android:text="Distance and total time"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView android:id="@+id/trackdetails_item_description"
<TextView android:id="@+id/track_list_item_description"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft = "6dip"
android:singleLine = "false"
android:text="Description"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
+2 -4
View File
@@ -32,7 +32,8 @@ limitations under the License.
android:layout_height="wrap_content"
android:layout_marginLeft="6dip"
android:layout_marginTop="6dip"
android:src="@drawable/ylw_pushpin"/>
android:src="@drawable/ylw_pushpin"
android:contentDescription="@string/marker_list_icon_description"/>
<LinearLayout
android:orientation="vertical"
@@ -45,7 +46,6 @@ limitations under the License.
android:layout_marginLeft="6dip"
android:layout_marginTop="6dip"
android:singleLine = "true"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceLarge"/>
<TextView android:id="@+id/waypointslist_item_time"
@@ -54,7 +54,6 @@ limitations under the License.
android:layout_marginLeft = "6dip"
android:singleLine = "true"
android:textColor = "#fff"
android:text="date and time"
android:textAppearance="?android:attr/textAppearanceSmall"/>
<TextView android:id="@+id/waypointslist_item_category"
@@ -63,7 +62,6 @@ limitations under the License.
android:layout_marginLeft = "6dip"
android:singleLine = "true"
android:textColor="#0f0"
android:text="category"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apl/res/com.google.android.apps.mytracks"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent" />
<TextView android:id="@android:id/empty"
android:gravity="center"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:text="@string/search_no_results"
android:textColor="@android:color/white"
android:textSize="20dip"
android:textStyle="bold"
android:visibility="gone" />
</LinearLayout>
@@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2011 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This layout is used as the content view for the send-to-Google result dialog.
It is used to summarize the results of uploading track data to one or more
services.
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:paddingLeft="14dip"
android:paddingRight="14dip"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/send_google_result_header"
style="?android:attr/textAppearanceLarge"/>
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<!-- We don't want a divider, so we set its color to transparent. -->
<!-- We do this explicitly, rather than with a color resource, because -->
<!-- an apparent bug causes the divider to be wildly misrendered on -->
<!-- a Mini X10 running 2.1. -->
<ListView
android:id="@+id/send_to_google_result_list"
android:clickable="false"
android:paddingTop="10dip"
android:paddingBottom="10dip"
android:divider="#00000000"/>
</TableLayout>
<TextView
android:id="@+id/send_to_google_result_comment"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/send_google_success_footer"
android:visibility="gone"
style="?android:attr/textAppearanceSmall"/>
<TextView
android:id="@+id/send_to_google_result_error"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/send_google_error"
android:visibility="gone"
style="?android:attr/textAppearanceLarge"/>
</LinearLayout>
@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2011 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
This layout represents the result of sending track data to a single service.
It will be instantiated by a custom ListAdapter - once for each service to
which track data was uploaded.
-->
<TableRow
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/send_to_google_result_icon"
android:src="@drawable/success"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="top"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/send_to_google_result_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Google Docs"
style="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/send_to_google_result_url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="http://google.com"
style="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</TableRow>
+143
View File
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<ScrollView
android:layout_height="0dp"
android:layout_margin="5dp"
android:layout_weight="1"
android:layout_width="fill_parent">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<!-- Header -->
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/send_google_result_header"
style="?android:attr/textAppearanceLarge"/>
<!-- Google Maps result -->
<LinearLayout
android:id="@+id/upload_result_maps_result"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/upload_result_maps_result_icon"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/success"/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_maps"
style="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/upload_result_list_item_url"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_maps_url"
style="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</LinearLayout>
<!-- Google Fusion Tables result -->
<LinearLayout
android:id="@+id/upload_result_fusion_tables_result"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/upload_result_fusion_tables_result_icon"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/success"/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_fusion_tables"
style="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/upload_result_list_item_url"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_fusion_tables_url"
style="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</LinearLayout>
<!-- Google Docs result -->
<LinearLayout
android:id="@+id/upload_result_docs_result"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView
android:id="@+id/upload_result_docs_result_icon"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/success"/>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_docs"
style="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/upload_result_list_item_url"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_docs_url"
style="?android:attr/textAppearanceSmall"/>
</LinearLayout>
</LinearLayout>
<!-- Footer -->
<TextView
android:id="@+id/upload_result_success_footer"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_success_footer"
style="?android:attr/textAppearanceSmall"/>
<TextView
android:id="@+id/upload_result_error_footer"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/send_google_error"
style="?android:attr/textAppearanceLarge"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
+19
View File
@@ -1,4 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2011 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_record_track"
android:icon="@drawable/ic_menu_recordtrack"
@@ -38,6 +53,10 @@
android:showAsAction="ifRoom"
android:visible="false"/>
<item android:id="@+id/menu_search"
android:icon="@android:drawable/ic_menu_search"
android:title="@string/menu_search"/>
<item android:id="@+id/menu_sensor_state"
android:icon="@drawable/ic_menu_sensorstatus"
android:orderInCategory="1000"
+23
View File
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_search"
android:icon="@android:drawable/ic_menu_search"
android:title="@string/menu_search"
android:onClick="onSearch"
android:showAsAction="always" />
</menu>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<resources>
<style name="ThemeSelector" parent="android:Theme.Holo" />
</resources>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4 -1
View File
@@ -37,7 +37,10 @@ limitations under the License.
<string name="my_tracks_analytics_id">UA-7222692-2</string>
<string name="my_tracks_privacy_url">m.google.com/privacy</string>
<string name="my_tracks_recording_service_name">My Tracks Recording Service</string>
<string name="my_tracks_web_url">mytracks.appspot.com</string>
<string name="my_tracks_support_url">
groups.google.com/a/googleproductforums.com/forum/#!categories/maps/mytracks
</string>
<string name="my_tracks_web_url">www.google.com/mobile/mytracks</string>
<string name="permission_notification_value">
com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS
</string>
+3 -1
View File
@@ -18,6 +18,8 @@ limitations under the License.
<!-- Keys for application preferences. Sorted alphabetically. - DO NOT TRANSLATE -->
<string name="allow_access_key">allowAccess</string>
<string name="announcement_frequency_key">announcementFrequency</string>
<string name="ant_cadence_sensor_id_key">antCadenceSensorId</string>
<string name="ant_cadence_speed_sensor_id_key">antCadenceSpeedSensorId</string>
<string name="ant_heart_rate_sensor_id_key">antHeartRateSensorId</string>
<string name="ant_srm_bridge_sensor_id_key">antSRMBridgeSensorId</string>
<string name="auto_resume_track_timeout_key">autoResumeTrackTimeout</string>
@@ -40,7 +42,7 @@ limitations under the License.
<string name="share_url_only_key">shareUrlOnly</string>
<string name="split_frequency_key">splitFrequency</string>
<string name="track_color_mode_dynamic_speed_variation_key">trackColorModeDynamicVariation
</string>
</string>
<string name="track_color_mode_fixed_speed_medium_display_key">trackColorModeFixedMediumDisplay
</string>
<string name="track_color_mode_fixed_speed_medium_key">trackColorModeFixedMedium</string>
+328 -117
View File
@@ -465,6 +465,166 @@ limitations under the License.
Y axis
</string>
<!-- Description -->
<string name="description_activity_type"
translation_description="Activity type description.
%1$s activity type. E.g., 'hiking'">
Activity type: %1$s
</string>
<string name="description_average_moving_pace"
translation_description="Average moving pace description.
%1$.2f pace in minutes per kilometer
%2$.1f pace in minutes per mile">
Average moving pace: %1$.2f min/km (%2$.1f min/mi)
</string>
<string name="description_average_moving_speed"
translation_description="Average moving speed description.
%1$.2f speed in kilometers per hour
%2$.1f speed in miles per hour">
Average moving speed: %1$.2f km/h (%2$.1f mi/h)
</string>
<string name="description_average_pace"
translation_description="Average pace description.
%1$.2f pace in minutes per kilometer
%2$.1f pace in minutes per mile">
Average pace: %1$.2f min/km (%2$.1f min/mi)
</string>
<string name="description_average_speed"
translation_description="Average speed description.
%1$.2f speed in kilometers per hour
%2$.1f speed in miles per hour">
Average speed: %1$.2f km/h (%2$.1f mi/h)
</string>
<string name="description_elevation_gain"
translation_description="Elevation gain description.
%1$d elevation in meters
%2$d elevation in feet">
Elevation gain: %1$d m (%2$d ft)
</string>
<string name="description_location_accuracy"
translation_description="Label for location accuracy in meters.">
Accuracy (m)
</string>
<string name="description_location_altitude"
translation_description="Label for location altitude in degrees.">
Altitude (m)
</string>
<string name="description_location_bearing"
translation_description="Label for location bearing in degrees.">
Bearing (deg)
</string>
<string name="description_location_latitude"
translation_description="Label for location latitude in degrees.">
Latitude (deg)
</string>
<string name="description_location_longitude"
translation_description="Label for location longitude in degrees.">
Longitude (deg)
</string>
<string name="description_location_speed"
translation_description="Label for location speed in meters per second.">
Speed (m/s)
</string>
<string name="description_location_time"
translation_description="Label for location time.">
Time
</string>
<string name="description_max_elevation"
translation_description="Max elevation description.
%1$d elevation in meters
%2$d elevation in feet">
Max elevation: %1$d m (%2$d ft)
</string>
<string name="description_max_grade"
translation_description="Max grade description.
%1$d grade in percentage">
Max grade: %1$d %%
</string>
<string name="description_max_speed"
translation_description="Max speed description.
%1$.2f speed in kilometers per hour
%2$.1f speed in miles per hour">
Max speed: %1$.2f km/h (%2$.1f mi/h)
</string>
<string name="description_min_elevation"
translation_description="Min elevation description.
%1$d elevation in meters
%2$d elevation in feet">
Min elevation: %1$d m (%2$d ft)
</string>
<string name="description_min_grade"
translation_description="Min grade description.
%1$d grade in percentage">
Min grade: %1$d %%
</string>
<string name="description_min_pace"
translation_description="Min pace description.
%1$.2f pace in minutes per kilometer
%2$.1f pace in minutes per mile">
Min pace: %1$.2f min/km (%2$.1f min/mi)
</string>
<string name="description_moving_time"
translation_description="Moving time description.
%1$s time. E.g., '1:08:59'">
Moving time: %1$s
</string>
<string name="description_recorded_time"
translation_description="Recorded time description.
%1$s time. E.g, '2/15/2012 1:40 PM'">
Recorded: %1$s
</string>
<string name="description_sensor_battery_level"
translation_description="Label for battery level with its unit percentage (%).">
Battery level (%)
</string>
<string name="description_sensor_cadence"
translation_description="Label for cadence with its unit revolutions per minute (rpm).">
Cadence (rpm)
</string>
<string name="description_sensor_heart_rate"
translation_description="Label for heart rate with its unit beats per minute (bpm).">
Heart rate (bpm)
</string>
<string name="description_sensor_power"
translation_description="Label for power with its unit watt (W).">
Power (W)
</string>
<string name="description_track_point"
translation_description="Label for a track point">
Point
</string>
<string name="description_track_segment"
translation_description="Label for a track segment">
Segment
</string>
<string name="description_total_distance"
translation_description="Total distance description.
%1$.2f distance in kilometers
%2$.1f distance in miles">
Total distance: %1$.2f km (%2$.1f mi)
</string>
<string name="description_total_time"
translation_description="Total time description.
%1$s time. E.g., '1:08:59'">
Total time: %1$s
</string>
<!-- EULA -->
<string name="eula_accept"
translation_description="In the 'Terms of service' dialog, the button to accept.
@@ -483,11 +643,6 @@ limitations under the License.
http://m.google.com/toscountry.">
By using Google\'s mobile products and services ("Services"), you:
</string>
<string name="eula_message_copyright"
translation_description="The copyright in the Google mobile terms of service. See
http://m.google.com/toscountry.">
©2011
</string>
<string name="eula_message_date"
translation_description="The date in the Google mobile terms of service. See
http://m.google.com/toscountry.">
@@ -693,6 +848,43 @@ limitations under the License.
My Tracks: Imported %1$d of %2$s from %3$s.
</string>
<!-- Maps List -->
<string name="maps_list_error"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page informing the user that his maps cannot be loaded at this time.">
Your maps could not be loaded at this time.
</string>
<string name="maps_list_loading"
translation_description="When sending a track to an existing Google Map, the progress dialog
message informing the user that his maps are being loaded.">
Loading your Google Maps.
</string>
<string name="maps_list_no_maps"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page informing the user that he doesn't have any maps.">
You don\'t have any maps.
</string>
<string name="maps_list_pick_map"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page asking the user to pick one of his maps.">
Pick a map:
</string>
<string name="maps_list_public_label"
translation_description="When sending a track to an existing Google Map, in the 'Maps'
list page, the label next to the maps that are public, as opposed to being unlisted.">
Public
</string>
<string name="maps_list_title"
translation_description="When sending a track to an existing Google Map, the title of the
page listing the user's maps in Google Maps.">
Your Google Maps
</string>
<string name="maps_list_unlisted_label"
translation_description="When sending a track to an existing Google Map, in the 'Maps'
list page, the label next to the maps that are unlisted, as opposed to being public.">
Unlisted
</string>
<!-- Marker -->
<string name="marker_detail_marker_description"
translation_description="In the detail page for a waypoint marker, the text field for the marker
@@ -741,14 +933,18 @@ limitations under the License.
A marker was inserted.
</string>
<string name="marker_label_end"
translation_description="When inserting a marker to indicate the end of a track, the label at
the end of the marker name. E.g., the marker is named 'track_name (End)'.">
(End)
translation_description="When inserting a marker to indicate the end of a track, the marker's
name. E.g., 'track_name (End)'.
%1$s track name. E.g., 'track_name'.">
%1$s (End)
</string>
<string name="marker_label_start"
translation_description="When inserting a marker to indicate the beginning of a track, the label
at the end of the marker name. E.g., the marker is named 'track_name (Start)'.">
(Start)
translation_description="When inserting a marker to indicate the start of a track, the marker's
name. E.g., 'track_name (Start)'.
%1$s track name. E.g., 'track_name'.">
%1$s (Start)
</string>
<string name="marker_list_context_menu_title"
translation_description="In the context menu for a marker, the title indicating that all the
@@ -779,6 +975,10 @@ limitations under the License.
Screenshot: marker_list_context_menu.png">
Edit
</string>
<string name="marker_list_icon_description"
translation_description="In the Markers page, the accessibility description for the marker icon.">
Marker
</string>
<string name="marker_list_insert_statistics"
translation_description="In the Markers page, the button on the bottom to insert a statistics
marker.
@@ -820,43 +1020,6 @@ limitations under the License.
Waypoint
</string>
<!-- Maps List -->
<string name="maps_list_error"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page informing the user that his maps cannot be loaded at this time.">
Your maps could not be loaded at this time.
</string>
<string name="maps_list_loading"
translation_description="When sending a track to an existing Google Map, the progress dialog
message informing the user that his maps are being loaded.">
Loading maps...
</string>
<string name="maps_list_no_maps"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page informing the user that he doesn't have any maps.">
You don\'t have any maps.
</string>
<string name="maps_list_pick_map"
translation_description="When sending a track to an existing Google Map, the text on the
'Maps' list page asking the user to pick one of his maps.">
Pick a map:
</string>
<string name="maps_list_public_label"
translation_description="When sending a track to an existing Google Map, in the 'Maps'
list page, the label next to the maps that are public, as opposed to being unlisted.">
Public
</string>
<string name="maps_list_title"
translation_description="When sending a track to an existing Google Map, the title of the
page listing the user's maps in Google Maps.">
Your Google Maps
</string>
<string name="maps_list_unlisted_label"
translation_description="When sending a track to an existing Google Map, in the 'Maps'
list page, the label next to the maps that are unlisted, as opposed to being public.">
Unlisted
</string>
<!-- Menu Items -->
<string name="menu_aggregated_statistics"
translation_description="In the menu, to go to the aggregated statistics page.
@@ -907,6 +1070,10 @@ limitations under the License.
Screenshot: menu_record_track.png">
Record track
</string>
<string name="menu_search"
translation_description="In the menu, to start a textual search for tracks or waypoints.">
Search
</string>
<string name="menu_sensor_state"
translation_description="In the menu, to go to the sensor state page.
@@ -1088,6 +1255,29 @@ limitations under the License.
Finished writing to the SD card.
</string>
<!-- Search interface -->
<string name="search_global_description"
translation_description="Description of what is searched in My Tracks, to be displayed in the
global system search settings.">
Tracks and waypoints
</string>
<string name="search_hint"
translation_description="The hint shown on the search box until the user types a search query.
See suggestion at http://developer.android.com/guide/topics/search/search-dialog.html about
keeping this consistent with other Android apps.">
Search My Tracks
</string>
<string name="search_no_results"
translation_description="Message shown instead of a list of results to indicate there were no
search results.">
No tracks or waypoints matched your search.
</string>
<string name="search_voice_prompt"
translation_description="Prompt shown when the user activates voice search, asking him to speak
what will be searched for.">
Speak the name of a track or waypoint.
</string>
<!-- Send Google -->
<string name="send_google_by_my_tracks"
translation_description="When sending a track to Google, a note indicating it is created by
@@ -1153,41 +1343,12 @@ limitations under the License.
found.">
No account found
</string>
<string name="send_google_progress_authenticating"
translation_description="When sending a track to a Google service, the message on the progress
dialog indicating authenticating to the service.
<string name="send_google_progress_title"
translation_description="When sending a track to a Google service, the title on the progress
dialog.
%1$s: service name. 'Google Maps', 'Google Fusion Tables', or 'Google Docs'.">
Authenticating to %1$s...
</string>
<string name="send_google_progress_creating"
translation_description="When sending a track to a Google service, the message on the progress
dialog indicating creating a new service item.
%1$s: service name. 'Google Maps', 'Google Fusion Tables', or 'Google Docs'.">
Creating a new %1$s item...
</string>
<string name="send_google_progress_preparing_track"
translation_description="When sending a track to Google Maps, the message on the progress
dialog indicating My Tracks is preparing the track's data for upload.">
Preparing track...
</string>
<string name="send_google_progress_reading_track"
translation_description="When sending a track to Google, the message on the progress dialog
indicating My Tracks is reading the track from its database.">
Reading track...
</string>
<string name="send_google_progress_sending"
translation_description="When sending a track to Google service, the message on the progress
dialog indicating My Tracks is sending the track data.
%1$s: service name. 'Google Maps', 'Google Fusion Tables', or 'Google Docs'.">
Sending a track to %1$s...
</string>
<string name="send_google_recorded"
translation_description="When sending a track to Google, in the track description, a tag
for the track recorded date. E.g., 'Recorded: Tue Sep 06 15:08:30 PDT 2011'.">
Recorded
Sending to %1$s. Please wait...
</string>
<string name="send_google_result_header"
translation_description="When sending a track to Google, the header on the top of the result
@@ -1226,11 +1387,12 @@ limitations under the License.
Send to...
</string>
<string name="send_google_track_part_label"
translation_description="When sending a track to Google, the label to name segments when
splitting a large track.
translation_description="When sending a track to Google, the label to name segments of a large
track. E.g., 'track_name (Part 1)'
%1$d: part number. E.g., '1'.">
(Part %1$d)
%1$s: track name. E.g., 'track_name'
%2$d: part number. E.g., '1'.">
%1$s (Part %2$d)
</string>
<!-- Sensor State -->
@@ -1697,28 +1859,28 @@ limitations under the License.
<string name="settings_recording_track_name"
translation_description="In the 'Recording' settings, the title for the dropdown list to choose
the default track name.
Character limit: ~23 (1 line)">
Track name
</string>
<string name="settings_recording_track_name_date_iso_8601_option"
translation_description="In the 'Recording' settings, the option in the 'Track name' dropdown
translation_description="In the 'Recording' settings, the option in the 'Track name' dropdown
list to use the track start time in ISO-8601 date format as the track name.
Character limit: ~21 (1 line)">
Date (ISO 8601)
</string>
<string name="settings_recording_track_name_date_local_option"
translation_description="In the 'Recording' settings, the option in the 'Track name' dropdown
list to use the track start time in local date format as the track name.
Character limit: ~21 (1 line)">
Date (local)
</string>
<string name="settings_recording_track_name_number_option"
translation_description="In the 'Recording' settings, the option in the 'Track name' dropdown
list to use a number as the track name.
Character limit: ~21 (1 line)">
Number
</string>
@@ -1735,13 +1897,6 @@ limitations under the License.
Screenshot: settings_recording_top.png">
Voice
</string>
<string name="settings_recording_voice_not_available"
translation_description="In the 'Recording' settings, the summary for the 'Voice'
explaining that this option is not available on your Android phone.
Screenshot: settings_recording_voice_not_available.png">
Voice announcement is not available on your Android phone.
</string>
<string name="settings_recording_voice_summary"
translation_description="In the 'Recording' settings, the summary for the 'Voice'
dropdown option explaining that it configures the time or distance between two voice
@@ -1757,14 +1912,11 @@ limitations under the License.
Screenshot: settings.png">
Reset
</string>
<string name="settings_reset_dialog_message"
translation_description="In the 'Settings' page, after pressing the 'Reset' option,
the confirmation dialog asking the user to confirm reverting all settings to defaults. But
the saved tracks will be preserved.
Screenshot: settings_reset_dialog_message.png">
<string name="settings_reset_confirm_message"
translation_description="In the 'Settings' page, after pressing the 'Reset' option, the
confirmation dialog message informing the user that all settings will be reverted.">
All your settings will be erased and reverted to the default values. Saved tracks will be
preserved. Are you sure?
preserved.
</string>
<string name="settings_reset_done"
translation_description="In the 'Settings' page, after pressing the 'Reset' option,
@@ -1944,13 +2096,11 @@ limitations under the License.
</string>
<string name="settings_sharing_allow_access_confirm_message"
translation_description="In the 'Sharing' settings, after checking the 'Allow access' checkbox,
the confirmation dialog asking the user if he wants to allow other apps, including apps
installed in the future, to control and access My Tracks data. In addition, no further
notification of third party app access will be shown.
Screenshot: settings_sharing_allow_access_confirm_message.png">
Are you sure you want to allow other apps, including future apps, to control and access My
Tracks data? There will be no further notification.
the confirmation dialog message informing the user that other apps, including apps
installed in the future, will be able to control and access My Tracks data. In addition, no
further notification of third party app access will be shown.">
Other apps, including future apps, will be able to control and access My Tracks data. There will
be no further notification.
</string>
<string name="settings_sharing_allow_access_summary_off"
translation_description="In the 'Sharing' settings, the summary for the 'Allow access' checkbox
@@ -2279,6 +2429,16 @@ limitations under the License.
Screenshot: track_list.png">
Pick a track. Press &amp; hold for more options.
</string>
<string name="track_list_play"
translation_description="In the context menu for a track, the menu option to play the track.">
Play
</string>
<string name="track_list_play_install_earth_message"
translation_description="After pressing the menu option to play a track, the message informing
the user that he needs Google Earth to play the track and asking him if he wants to install
Google Earth from the Android Market.">
You need Google Earth to play the track. Do you want to install from the Market?
</string>
<string name="track_list_save_file"
translation_description="In the context menu for a track, under the 'Save to SD card...'
option, the menu option to save the track as a certain file format.
@@ -2335,6 +2495,17 @@ limitations under the License.
Screenshot: track_list_show_on_map.png">
Show on map
</string>
<string name="track_list_icon_description"
translation_description="In the 'Tracks' page, the accessibility description for the track icon.">
Track
</string>
<string name="track_list_track_name"
translation_description="In the 'Search Result' page, the text field indicating the track that a
waypoint belongs to.
%1$s: track name. E.g., 'Grand Canyon trail'">
In track \'%1$s\'.
</string>
<string name="track_name_format"
translation_description="When creating a new track, the string format to name the track.
@@ -2425,13 +2596,53 @@ limitations under the License.
Screenshot: value_auto_resume.png">
Always
</string>
<string name="value_float_mile"
translation_description="In a setting picker, the string format to display a float value in
miles (mi).
<string name="value_float_feet"
translation_description="Display a float value in feet (ft).
%1$.1f: a float number. E.g., '2.2'
Screenshot: value_gps_accuracy_mile_poor_gps.png">
%1$.1f mi
%1$.2f: a float number. E.g., '2.22'">
%1$.2f ft
</string>
<string name="value_float_kilometer"
translation_description="Display a float value in kilometers (km).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f km
</string>
<string name="value_float_kilometer_hour"
translation_description="Display a float value in kilometers per hour (km/h).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f km/h
</string>
<string name="value_float_meter"
translation_description="Display a float value in meters (m).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f m
</string>
<string name="value_float_mile"
translation_description="Display a float value in miles (mi).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f mi
</string>
<string name="value_float_mile_hour"
translation_description="Display a float value in miles per hour (mi/h).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f mi/h
</string>
<string name="value_float_minute_kilometer"
translation_description="Display a float value in minutes per kilometer (min/km).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f min/km
</string>
<string name="value_float_minute_mile"
translation_description="Display a float value in minutes per mile (min/mi).
%1$.2f: a float number. E.g., '2.22'">
%1$.2f min/mi
</string>
<string name="value_float_mile_poor_gps"
translation_description="In a setting picker, the string format to display a float value in
+2
View File
@@ -15,6 +15,8 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<style name="ThemeSelector" parent="android:Theme" />
<!-- About page label -->
<style name="AboutLabel">
<item name="android:layout_height">wrap_content</item>
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/search_hint"
android:includeInGlobalSearch="true"
android:label="@string/my_tracks_app_name"
android:searchSettingsDescription="@string/search_global_description"
android:voicePromptText="@string/search_voice_prompt"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"
android:searchSuggestAuthority="com.google.android.maps.mytracks.search"
android:searchSuggestThreshold="2"
android:searchSuggestSelection=" ? " />
@@ -1,142 +0,0 @@
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.android.apps.mytracks;
import com.google.android.maps.mytracks.R;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.util.Log;
/**
* Choose which account to upload track information to.
*
* @author Sandor Dornbush
*
* @deprecated To be removed.
*/
public class AccountChooser {
/**
* The last selected account.
*/
private int selectedAccountIndex = -1;
private Account selectedAccount = null;
/**
* An interface for receiving updates once the user has selected the account.
*/
public interface AccountHandler {
/**
* Handle the account being selected.
* @param account The selected account or null if none could be found
*/
public void onAccountSelected(Account account);
}
/**
* Chooses the best account to upload to.
* If no account is found the user will be alerted.
* If only one account is found that will be used.
* If multiple accounts are found the user will be allowed to choose.
*
* @param activity The parent activity
* @param handler The handler to be notified when an account has been selected
*/
public void chooseAccount(final Activity activity,
final AccountHandler handler) {
final Account[] accounts = AccountManager.get(activity)
.getAccountsByType(Constants.ACCOUNT_TYPE);
if (accounts.length < 1) {
alertNoAccounts(activity, handler);
return;
}
if (accounts.length == 1) {
handler.onAccountSelected(accounts[0]);
return;
}
// TODO This should be read out of a preference.
if (selectedAccount != null) {
handler.onAccountSelected(selectedAccount);
return;
}
// Let the user choose.
Log.e(Constants.TAG, "Multiple matching accounts found.");
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(R.string.send_google_choose_account_title);
builder.setCancelable(false);
builder.setPositiveButton(R.string.generic_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
if (selectedAccountIndex >= 0) {
selectedAccount = accounts[selectedAccountIndex];
}
handler.onAccountSelected(selectedAccount);
}
});
builder.setNegativeButton(R.string.generic_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
handler.onAccountSelected(null);
}
});
String[] choices = new String[accounts.length];
for (int i = 0; i < accounts.length; i++) {
choices[i] = accounts[i].name;
}
builder.setSingleChoiceItems(choices, selectedAccountIndex,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selectedAccountIndex = which;
}
});
builder.show();
}
public void setChosenAccount(String accountName, String accountType) {
selectedAccount = new Account(accountName, accountType);
}
/**
* Puts up a dialog alerting the user that no suitable account was found.
*/
private void alertNoAccounts(final Activity activity,
final AccountHandler handler) {
Log.e(Constants.TAG, "No matching accounts found.");
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(R.string.send_google_no_account_title);
builder.setMessage(R.string.send_google_no_account_message);
builder.setCancelable(true);
builder.setPositiveButton(R.string.generic_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
handler.onAccountSelected(null);
}
});
builder.show();
}
}

Some files were not shown because too many files have changed in this diff Show More