forked from upstream-mirrors/OpenTracks
merge heads
This commit is contained in:
@@ -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="37"
|
||||
android:versionName="1.1.14">
|
||||
|
||||
<!-- 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 -->
|
||||
@@ -112,12 +113,19 @@ limitations under the License.
|
||||
<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>
|
||||
@@ -129,7 +137,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"
|
||||
@@ -137,18 +150,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">
|
||||
@@ -173,7 +194,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" />
|
||||
@@ -196,6 +216,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"
|
||||
@@ -206,14 +230,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"
|
||||
@@ -246,9 +266,24 @@ 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"
|
||||
android:icon="@drawable/arrow_320"
|
||||
@@ -258,7 +293,7 @@ limitations under the License.
|
||||
|
||||
<service android:name="com.google.android.apps.mytracks.services.ControlRecordingService"
|
||||
android:exported="false" />
|
||||
|
||||
|
||||
<receiver android:name="com.google.android.apps.mytracks.BootReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
|
||||
@@ -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 -->
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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"
|
||||
@@ -16,20 +31,24 @@
|
||||
android:icon="@drawable/ic_menu_waypoints"
|
||||
android:title="@string/menu_markers"/>
|
||||
|
||||
<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"
|
||||
android:title="@string/menu_sensor_state"/>
|
||||
|
||||
|
||||
<item android:id="@+id/menu_settings"
|
||||
android:icon="@android:drawable/ic_menu_preferences"
|
||||
android:orderInCategory="1001"
|
||||
android:title="@string/menu_settings"/>
|
||||
|
||||
|
||||
<item android:id="@+id/menu_aggregated_statistics"
|
||||
android:orderInCategory="1002"
|
||||
android:title="@string/menu_aggregated_statistics"/>
|
||||
|
||||
|
||||
<item android:id="@+id/menu_help"
|
||||
android:icon="@android:drawable/ic_menu_info_details"
|
||||
android:orderInCategory="1003"
|
||||
|
||||
@@ -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
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
@@ -37,6 +37,9 @@ 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_support_url">
|
||||
groups.google.com/a/googleproductforums.com/forum/#!categories/maps/mytracks
|
||||
</string>
|
||||
<string name="my_tracks_web_url">mytracks.appspot.com</string>
|
||||
<string name="permission_notification_value">
|
||||
com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS
|
||||
|
||||
@@ -483,11 +483,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 +688,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 +773,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
|
||||
@@ -820,43 +856,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 +906,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 +1091,24 @@ 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.">
|
||||
My Tracks 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 tracks and waypoints
|
||||
</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,36 +1174,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...
|
||||
Sending to %1$s. Please wait...
|
||||
</string>
|
||||
<string name="send_google_recorded"
|
||||
translation_description="When sending a track to Google, in the track description, a tag
|
||||
@@ -1226,11 +1223,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 +1695,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 +1733,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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,8 @@ import android.util.AttributeSet;
|
||||
* @author Sandor Dornbush
|
||||
*/
|
||||
public class AntPreference extends Preference {
|
||||
|
||||
private final static int DEFAULT_PERSISTEDINT = 0;
|
||||
|
||||
public AntPreference(Context context) {
|
||||
super(context);
|
||||
@@ -41,7 +43,7 @@ public class AntPreference extends Preference {
|
||||
}
|
||||
|
||||
private void init() {
|
||||
int sensorId = getPersistedInt(0);
|
||||
int sensorId = getPersistedInt(AntPreference.DEFAULT_PERSISTEDINT);
|
||||
if (sensorId == 0) {
|
||||
setSummary(R.string.settings_sensor_ant_not_paired);
|
||||
} else {
|
||||
@@ -60,4 +62,4 @@ public class AntPreference extends Preference {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,10 +26,8 @@ import com.google.android.apps.mytracks.content.TrackDataHub;
|
||||
import com.google.android.apps.mytracks.content.TrackDataHub.ListenerDataType;
|
||||
import com.google.android.apps.mytracks.content.TrackDataListener;
|
||||
import com.google.android.apps.mytracks.content.Waypoint;
|
||||
import com.google.android.apps.mytracks.services.tasks.StatusAnnouncerFactory;
|
||||
import com.google.android.apps.mytracks.stats.DoubleBuffer;
|
||||
import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
||||
import com.google.android.apps.mytracks.util.ApiFeatures;
|
||||
import com.google.android.apps.mytracks.util.LocationUtils;
|
||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
@@ -40,6 +38,7 @@ import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.location.Location;
|
||||
import android.os.Bundle;
|
||||
import android.speech.tts.TextToSpeech;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -116,9 +115,7 @@ public class ChartActivity extends Activity implements TrackDataListener {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// The volume we want to control is the Text-To-Speech volume
|
||||
int volumeStream =
|
||||
new StatusAnnouncerFactory(ApiFeatures.getInstance()).getVolumeStream();
|
||||
setVolumeControlStream(volumeStream);
|
||||
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
|
||||
|
||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
setContentView(R.layout.mytracks_charts);
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.util.ApiFeatures;
|
||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
@@ -63,8 +63,7 @@ class CheckUnits {
|
||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||
SharedPreferences.Editor editor = useMetricPreferences.edit();
|
||||
String key = context.getString(R.string.metric_units_key);
|
||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(
|
||||
editor.putBoolean(key, metric));
|
||||
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(editor.putBoolean(key, metric));
|
||||
}
|
||||
});
|
||||
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
@@ -76,7 +75,7 @@ class CheckUnits {
|
||||
}
|
||||
|
||||
private static void recordCheckPerformed(SharedPreferences preferences) {
|
||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(
|
||||
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(
|
||||
preferences.edit().putBoolean(CHECK_UNITS_PREFERENCE_KEY, true));
|
||||
}
|
||||
|
||||
|
||||
@@ -35,29 +35,18 @@ public abstract class Constants {
|
||||
|
||||
/*
|
||||
* onActivityResult request codes:
|
||||
*
|
||||
* TODO: These should be moved to the
|
||||
* activities that call startActivityForResult. Thus do not need to keep a
|
||||
* global order across all activities.
|
||||
*/
|
||||
public static final int GET_LOGIN = 0;
|
||||
public static final int GET_MAP = 1;
|
||||
public static final int SHOW_TRACK = 2;
|
||||
public static final int AUTHENTICATE_TO_MAPS = 3;
|
||||
public static final int AUTHENTICATE_TO_FUSION_TABLES = 4;
|
||||
public static final int AUTHENTICATE_TO_DOCLIST = 5;
|
||||
public static final int AUTHENTICATE_TO_TRIX = 6;
|
||||
public static final int SHARE_GPX_FILE = 7;
|
||||
public static final int SHARE_KML_FILE = 8;
|
||||
public static final int SHARE_CSV_FILE = 9;
|
||||
public static final int SHARE_TCX_FILE = 10;
|
||||
public static final int SAVE_GPX_FILE = 11;
|
||||
public static final int SAVE_KML_FILE = 12;
|
||||
public static final int SAVE_CSV_FILE = 13;
|
||||
public static final int SAVE_TCX_FILE = 14;
|
||||
public static final int SHOW_WAYPOINT = 15;
|
||||
public static final int WELCOME = 16;
|
||||
public static final int CHOOSE_ACCOUNT = 17;
|
||||
public static final int SHOW_TRACK = 0;
|
||||
public static final int SHARE_GPX_FILE = 1;
|
||||
public static final int SHARE_KML_FILE = 2;
|
||||
public static final int SHARE_CSV_FILE = 3;
|
||||
public static final int SHARE_TCX_FILE = 4;
|
||||
public static final int SAVE_GPX_FILE = 5;
|
||||
public static final int SAVE_KML_FILE = 6;
|
||||
public static final int SAVE_CSV_FILE = 7;
|
||||
public static final int SAVE_TCX_FILE = 8;
|
||||
public static final int SHOW_WAYPOINT = 9;
|
||||
public static final int WELCOME = 10;
|
||||
|
||||
/*
|
||||
* Menu ids:
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||
import com.google.android.apps.mytracks.util.ApiFeatures;
|
||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
@@ -66,7 +66,7 @@ public class DeleteAllTracks extends Handler {
|
||||
Editor editor = prefs.edit();
|
||||
// TODO: Go through data manager
|
||||
editor.putLong(context.getString(R.string.selected_track_key), -1);
|
||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(editor);
|
||||
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(editor);
|
||||
if (done != null) {
|
||||
Handler h = new Handler();
|
||||
h.post(done);
|
||||
|
||||
@@ -19,7 +19,7 @@ import static com.google.android.apps.mytracks.Constants.TAG;
|
||||
|
||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||
import com.google.android.apps.mytracks.content.TracksColumns;
|
||||
import com.google.android.apps.mytracks.util.ApiFeatures;
|
||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||
import com.google.android.apps.mytracks.util.UriUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
@@ -110,7 +110,7 @@ public class DeleteTrack extends Activity
|
||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||
if (preferences.getLong(selectedKey, -1) == deleteTrackId) {
|
||||
Editor editor = preferences.edit().putLong(selectedKey, -1);
|
||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(editor);
|
||||
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(editor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,77 +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 static com.google.android.apps.mytracks.Constants.TAG;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.util.Log;
|
||||
import android.view.WindowManager.BadTokenException;
|
||||
|
||||
/**
|
||||
* A class to handle all dialog related events for My Tracks.
|
||||
*
|
||||
* @author Sandor Dornbush
|
||||
*/
|
||||
public class DialogManager {
|
||||
|
||||
/**
|
||||
* The equivalent of {@link Dialog#show()}, but for a specific dialog
|
||||
* instance.
|
||||
*/
|
||||
public static void showDialogSafely(Activity activity, final Dialog dialog) {
|
||||
if (activity.isFinishing()) {
|
||||
Log.w(TAG, "Activity finishing - not showing dialog");
|
||||
return;
|
||||
}
|
||||
|
||||
activity.runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
dialog.show();
|
||||
} catch (BadTokenException e) {
|
||||
Log.w(TAG, "Could not display dialog", e);
|
||||
} catch (IllegalStateException e) {
|
||||
Log.w(TAG, "Could not display dialog", e);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* The equivalent of {@link Dialog#dismiss()}, but for a specific dialog
|
||||
* instance.
|
||||
*/
|
||||
public static void dismissDialogSafely(Activity activity, final Dialog dialog) {
|
||||
if (activity.isFinishing()) {
|
||||
Log.w(TAG, "Activity finishing - not dismissing dialog");
|
||||
return;
|
||||
}
|
||||
|
||||
activity.runOnUiThread(new Runnable() {
|
||||
public void run() {
|
||||
try {
|
||||
dialog.dismiss();
|
||||
} catch (IllegalArgumentException e) {
|
||||
// This will be thrown if this dialog was not shown before.
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private DialogManager() {}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user