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"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.google.android.maps.mytracks"
|
package="com.google.android.maps.mytracks"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
android:versionCode="36"
|
android:versionCode="37"
|
||||||
android:versionName="1.1.13">
|
android:versionName="1.1.14">
|
||||||
|
|
||||||
<!-- Permissions to initialize service -->
|
<!-- Permissions to initialize service -->
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
@@ -48,6 +48,7 @@ limitations under the License.
|
|||||||
|
|
||||||
<!-- Permissions for misc services -->
|
<!-- Permissions for misc services -->
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<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) -->
|
<!-- Exported permissions (for other apps to use our features) -->
|
||||||
<!-- Permission to get track start/end broadcasts -->
|
<!-- 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"
|
<meta-data android:name="com.google.android.backup.api_key"
|
||||||
android:value="AEdPqrEAAAAIi-_QiwoRSc9_bAC9cmuNXTQyU8ajJmGtKdhskQ" />
|
android:value="AEdPqrEAAAAIi-_QiwoRSc9_bAC9cmuNXTQyU8ajJmGtKdhskQ" />
|
||||||
|
|
||||||
|
<!-- Main track data provider -->
|
||||||
<provider android:name="com.google.android.apps.mytracks.content.MyTracksProvider"
|
<provider android:name="com.google.android.apps.mytracks.content.MyTracksProvider"
|
||||||
android:authorities="com.google.android.maps.mytracks"
|
android:authorities="com.google.android.maps.mytracks"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:readPermission="com.google.android.apps.mytracks.READ_TRACK_DATA"
|
android:readPermission="com.google.android.apps.mytracks.READ_TRACK_DATA"
|
||||||
android:writePermission="com.google.android.apps.mytracks.WRITE_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"
|
<activity android:name="com.google.android.apps.mytracks.MyTracks"
|
||||||
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale">
|
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|fontScale">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
@@ -129,7 +137,12 @@ limitations under the License.
|
|||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<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.track" />
|
||||||
|
<data android:mimeType="vnd.android.cursor.item/vnd.google.waypoint" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<!-- Enable searches via SearchActivity. -->
|
||||||
|
<meta-data android:name="android.app.default_searchable"
|
||||||
|
android:value="com.google.android.apps.mytracks.SearchActivity" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name="com.google.android.apps.mytracks.MapActivity"
|
<activity android:name="com.google.android.apps.mytracks.MapActivity"
|
||||||
@@ -137,18 +150,26 @@ limitations under the License.
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.TAB" />
|
<category android:name="android.intent.category.TAB" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<!-- Enable searches via SearchActivity. -->
|
||||||
|
<meta-data android:name="android.app.default_searchable"
|
||||||
|
android:value="com.google.android.apps.mytracks.SearchActivity" />
|
||||||
</activity>
|
</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 -->
|
<!-- 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" />
|
<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 -->
|
<!-- 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"
|
<activity android:name="com.google.android.apps.mytracks.TrackDetail"
|
||||||
android:label="@string/track_detail_title">
|
android:label="@string/track_detail_title">
|
||||||
@@ -173,7 +194,6 @@ limitations under the License.
|
|||||||
<activity android:name="com.google.android.apps.mytracks.WaypointDetails"
|
<activity android:name="com.google.android.apps.mytracks.WaypointDetails"
|
||||||
android:label="@string/marker_detail_title">
|
android:label="@string/marker_detail_title">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
|
||||||
<action android:name="android.intent.action.EDIT" />
|
<action android:name="android.intent.action.EDIT" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
<category android:name="android.intent.category.BROWSABLE" />
|
<category android:name="android.intent.category.BROWSABLE" />
|
||||||
@@ -196,6 +216,10 @@ limitations under the License.
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.TAB" />
|
<category android:name="android.intent.category.TAB" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|
||||||
|
<!-- Enable searches via SearchActivity. -->
|
||||||
|
<meta-data android:name="android.app.default_searchable"
|
||||||
|
android:value="com.google.android.apps.mytracks.SearchActivity" />
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name="com.google.android.apps.mytracks.SensorStateActivity"
|
<activity android:name="com.google.android.apps.mytracks.SensorStateActivity"
|
||||||
@@ -206,14 +230,10 @@ limitations under the License.
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.TAB" />
|
<category android:name="android.intent.category.TAB" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
|
||||||
|
|
||||||
<activity android:name="com.google.android.apps.mytracks.io.sendtogoogle.SendActivity"
|
<!-- Enable searches via SearchActivity. -->
|
||||||
android:theme="@android:style/Theme.Translucent.NoTitleBar">
|
<meta-data android:name="android.app.default_searchable"
|
||||||
<intent-filter>
|
android:value="com.google.android.apps.mytracks.SearchActivity" />
|
||||||
<action android:name="android.intent.action.SEND" />
|
|
||||||
<data android:mimeType="vnd.android.cursor.item/vnd.google.track" />
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
<activity android:name="com.google.android.apps.mytracks.io.file.SaveActivity"
|
<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:label="@string/welcome_title"
|
||||||
android:exported="false" />
|
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.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"
|
<service android:name="com.google.android.apps.mytracks.services.TrackRecordingService"
|
||||||
android:label="@string/my_tracks_recording_service"
|
android:label="@string/my_tracks_recording_service"
|
||||||
android:icon="@drawable/arrow_320"
|
android:icon="@drawable/arrow_320"
|
||||||
@@ -258,7 +293,7 @@ limitations under the License.
|
|||||||
|
|
||||||
<service android:name="com.google.android.apps.mytracks.services.ControlRecordingService"
|
<service android:name="com.google.android.apps.mytracks.services.ControlRecordingService"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
|
||||||
<receiver android:name="com.google.android.apps.mytracks.BootReceiver">
|
<receiver android:name="com.google.android.apps.mytracks.BootReceiver">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ limitations under the License.
|
|||||||
android:text="@string/about_support"
|
android:text="@string/about_support"
|
||||||
style="@style/AboutLabel"/>
|
style="@style/AboutLabel"/>
|
||||||
<TextView
|
<TextView
|
||||||
android:text="@string/my_tracks_web_url"
|
android:text="@string/my_tracks_support_url"
|
||||||
style="@style/AboutUrl"/>
|
style="@style/AboutUrl"/>
|
||||||
|
|
||||||
<!-- Privacy -->
|
<!-- 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"?>
|
<?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">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:id="@+id/menu_record_track"
|
<item android:id="@+id/menu_record_track"
|
||||||
android:icon="@drawable/ic_menu_recordtrack"
|
android:icon="@drawable/ic_menu_recordtrack"
|
||||||
@@ -16,20 +31,24 @@
|
|||||||
android:icon="@drawable/ic_menu_waypoints"
|
android:icon="@drawable/ic_menu_waypoints"
|
||||||
android:title="@string/menu_markers"/>
|
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"
|
<item android:id="@+id/menu_sensor_state"
|
||||||
android:icon="@drawable/ic_menu_sensorstatus"
|
android:icon="@drawable/ic_menu_sensorstatus"
|
||||||
android:orderInCategory="1000"
|
android:orderInCategory="1000"
|
||||||
android:title="@string/menu_sensor_state"/>
|
android:title="@string/menu_sensor_state"/>
|
||||||
|
|
||||||
<item android:id="@+id/menu_settings"
|
<item android:id="@+id/menu_settings"
|
||||||
android:icon="@android:drawable/ic_menu_preferences"
|
android:icon="@android:drawable/ic_menu_preferences"
|
||||||
android:orderInCategory="1001"
|
android:orderInCategory="1001"
|
||||||
android:title="@string/menu_settings"/>
|
android:title="@string/menu_settings"/>
|
||||||
|
|
||||||
<item android:id="@+id/menu_aggregated_statistics"
|
<item android:id="@+id/menu_aggregated_statistics"
|
||||||
android:orderInCategory="1002"
|
android:orderInCategory="1002"
|
||||||
android:title="@string/menu_aggregated_statistics"/>
|
android:title="@string/menu_aggregated_statistics"/>
|
||||||
|
|
||||||
<item android:id="@+id/menu_help"
|
<item android:id="@+id/menu_help"
|
||||||
android:icon="@android:drawable/ic_menu_info_details"
|
android:icon="@android:drawable/ic_menu_info_details"
|
||||||
android:orderInCategory="1003"
|
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_analytics_id">UA-7222692-2</string>
|
||||||
<string name="my_tracks_privacy_url">m.google.com/privacy</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_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="my_tracks_web_url">mytracks.appspot.com</string>
|
||||||
<string name="permission_notification_value">
|
<string name="permission_notification_value">
|
||||||
com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS
|
com.google.android.apps.mytracks.MYTRACKS_NOTIFICATIONS
|
||||||
|
|||||||
@@ -483,11 +483,6 @@ limitations under the License.
|
|||||||
http://m.google.com/toscountry.">
|
http://m.google.com/toscountry.">
|
||||||
By using Google\'s mobile products and services ("Services"), you:
|
By using Google\'s mobile products and services ("Services"), you:
|
||||||
</string>
|
</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"
|
<string name="eula_message_date"
|
||||||
translation_description="The date in the Google mobile terms of service. See
|
translation_description="The date in the Google mobile terms of service. See
|
||||||
http://m.google.com/toscountry.">
|
http://m.google.com/toscountry.">
|
||||||
@@ -693,6 +688,43 @@ limitations under the License.
|
|||||||
My Tracks: Imported %1$d of %2$s from %3$s.
|
My Tracks: Imported %1$d of %2$s from %3$s.
|
||||||
</string>
|
</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 -->
|
<!-- Marker -->
|
||||||
<string name="marker_detail_marker_description"
|
<string name="marker_detail_marker_description"
|
||||||
translation_description="In the detail page for a waypoint marker, the text field for the marker
|
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.
|
A marker was inserted.
|
||||||
</string>
|
</string>
|
||||||
<string name="marker_label_end"
|
<string name="marker_label_end"
|
||||||
translation_description="When inserting a marker to indicate the end of a track, the label at
|
translation_description="When inserting a marker to indicate the end of a track, the marker's
|
||||||
the end of the marker name. E.g., the marker is named 'track_name (End)'.">
|
name. E.g., 'track_name (End)'.
|
||||||
(End)
|
|
||||||
|
%1$s track name. E.g., 'track_name'.">
|
||||||
|
%1$s (End)
|
||||||
</string>
|
</string>
|
||||||
<string name="marker_label_start"
|
<string name="marker_label_start"
|
||||||
translation_description="When inserting a marker to indicate the beginning of a track, the label
|
translation_description="When inserting a marker to indicate the start of a track, the marker's
|
||||||
at the end of the marker name. E.g., the marker is named 'track_name (Start)'.">
|
name. E.g., 'track_name (Start)'.
|
||||||
(Start)
|
|
||||||
|
%1$s track name. E.g., 'track_name'.">
|
||||||
|
%1$s (Start)
|
||||||
</string>
|
</string>
|
||||||
<string name="marker_list_context_menu_title"
|
<string name="marker_list_context_menu_title"
|
||||||
translation_description="In the context menu for a marker, the title indicating that all the
|
translation_description="In the context menu for a marker, the title indicating that all the
|
||||||
@@ -820,43 +856,6 @@ limitations under the License.
|
|||||||
Waypoint
|
Waypoint
|
||||||
</string>
|
</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 -->
|
<!-- Menu Items -->
|
||||||
<string name="menu_aggregated_statistics"
|
<string name="menu_aggregated_statistics"
|
||||||
translation_description="In the menu, to go to the aggregated statistics page.
|
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">
|
Screenshot: menu_record_track.png">
|
||||||
Record track
|
Record track
|
||||||
</string>
|
</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"
|
<string name="menu_sensor_state"
|
||||||
translation_description="In the menu, to go to the sensor state page.
|
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.
|
Finished writing to the SD card.
|
||||||
</string>
|
</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 -->
|
<!-- Send Google -->
|
||||||
<string name="send_google_by_my_tracks"
|
<string name="send_google_by_my_tracks"
|
||||||
translation_description="When sending a track to Google, a note indicating it is created by
|
translation_description="When sending a track to Google, a note indicating it is created by
|
||||||
@@ -1153,36 +1174,12 @@ limitations under the License.
|
|||||||
found.">
|
found.">
|
||||||
No account found
|
No account found
|
||||||
</string>
|
</string>
|
||||||
<string name="send_google_progress_authenticating"
|
<string name="send_google_progress_title"
|
||||||
translation_description="When sending a track to a Google service, the message on the progress
|
translation_description="When sending a track to a Google service, the title on the progress
|
||||||
dialog indicating authenticating to the service.
|
dialog.
|
||||||
|
|
||||||
%1$s: service name. 'Google Maps', 'Google Fusion Tables', or 'Google Docs'.">
|
%1$s: service name. 'Google Maps', 'Google Fusion Tables', or 'Google Docs'.">
|
||||||
Authenticating to %1$s...
|
Sending to %1$s. Please wait...
|
||||||
</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>
|
||||||
<string name="send_google_recorded"
|
<string name="send_google_recorded"
|
||||||
translation_description="When sending a track to Google, in the track description, a tag
|
translation_description="When sending a track to Google, in the track description, a tag
|
||||||
@@ -1226,11 +1223,12 @@ limitations under the License.
|
|||||||
Send to...
|
Send to...
|
||||||
</string>
|
</string>
|
||||||
<string name="send_google_track_part_label"
|
<string name="send_google_track_part_label"
|
||||||
translation_description="When sending a track to Google, the label to name segments when
|
translation_description="When sending a track to Google, the label to name segments of a large
|
||||||
splitting a large track.
|
track. E.g., 'track_name (Part 1)'
|
||||||
|
|
||||||
%1$d: part number. E.g., '1'.">
|
%1$s: track name. E.g., 'track_name'
|
||||||
(Part %1$d)
|
%2$d: part number. E.g., '1'.">
|
||||||
|
%1$s (Part %2$d)
|
||||||
</string>
|
</string>
|
||||||
|
|
||||||
<!-- Sensor State -->
|
<!-- Sensor State -->
|
||||||
@@ -1697,28 +1695,28 @@ limitations under the License.
|
|||||||
<string name="settings_recording_track_name"
|
<string name="settings_recording_track_name"
|
||||||
translation_description="In the 'Recording' settings, the title for the dropdown list to choose
|
translation_description="In the 'Recording' settings, the title for the dropdown list to choose
|
||||||
the default track name.
|
the default track name.
|
||||||
|
|
||||||
Character limit: ~23 (1 line)">
|
Character limit: ~23 (1 line)">
|
||||||
Track name
|
Track name
|
||||||
</string>
|
</string>
|
||||||
<string name="settings_recording_track_name_date_iso_8601_option"
|
<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.
|
list to use the track start time in ISO-8601 date format as the track name.
|
||||||
|
|
||||||
Character limit: ~21 (1 line)">
|
Character limit: ~21 (1 line)">
|
||||||
Date (ISO 8601)
|
Date (ISO 8601)
|
||||||
</string>
|
</string>
|
||||||
<string name="settings_recording_track_name_date_local_option"
|
<string name="settings_recording_track_name_date_local_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 local date format as the track name.
|
list to use the track start time in local date format as the track name.
|
||||||
|
|
||||||
Character limit: ~21 (1 line)">
|
Character limit: ~21 (1 line)">
|
||||||
Date (local)
|
Date (local)
|
||||||
</string>
|
</string>
|
||||||
<string name="settings_recording_track_name_number_option"
|
<string name="settings_recording_track_name_number_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 a number as the track name.
|
list to use a number as the track name.
|
||||||
|
|
||||||
Character limit: ~21 (1 line)">
|
Character limit: ~21 (1 line)">
|
||||||
Number
|
Number
|
||||||
</string>
|
</string>
|
||||||
@@ -1735,13 +1733,6 @@ limitations under the License.
|
|||||||
Screenshot: settings_recording_top.png">
|
Screenshot: settings_recording_top.png">
|
||||||
Voice
|
Voice
|
||||||
</string>
|
</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"
|
<string name="settings_recording_voice_summary"
|
||||||
translation_description="In the 'Recording' settings, the summary for the 'Voice'
|
translation_description="In the 'Recording' settings, the summary for the 'Voice'
|
||||||
dropdown option explaining that it configures the time or distance between two 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
|
* @author Sandor Dornbush
|
||||||
*/
|
*/
|
||||||
public class AntPreference extends Preference {
|
public class AntPreference extends Preference {
|
||||||
|
|
||||||
|
private final static int DEFAULT_PERSISTEDINT = 0;
|
||||||
|
|
||||||
public AntPreference(Context context) {
|
public AntPreference(Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
@@ -41,7 +43,7 @@ public class AntPreference extends Preference {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
int sensorId = getPersistedInt(0);
|
int sensorId = getPersistedInt(AntPreference.DEFAULT_PERSISTEDINT);
|
||||||
if (sensorId == 0) {
|
if (sensorId == 0) {
|
||||||
setSummary(R.string.settings_sensor_ant_not_paired);
|
setSummary(R.string.settings_sensor_ant_not_paired);
|
||||||
} else {
|
} 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.TrackDataHub.ListenerDataType;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataListener;
|
import com.google.android.apps.mytracks.content.TrackDataListener;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
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.DoubleBuffer;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatisticsBuilder;
|
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.LocationUtils;
|
||||||
import com.google.android.apps.mytracks.util.UnitConversions;
|
import com.google.android.apps.mytracks.util.UnitConversions;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
@@ -40,6 +38,7 @@ import android.content.DialogInterface;
|
|||||||
import android.content.DialogInterface.OnClickListener;
|
import android.content.DialogInterface.OnClickListener;
|
||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.speech.tts.TextToSpeech;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -116,9 +115,7 @@ public class ChartActivity extends Activity implements TrackDataListener {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
// The volume we want to control is the Text-To-Speech volume
|
// The volume we want to control is the Text-To-Speech volume
|
||||||
int volumeStream =
|
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
|
||||||
new StatusAnnouncerFactory(ApiFeatures.getInstance()).getVolumeStream();
|
|
||||||
setVolumeControlStream(volumeStream);
|
|
||||||
|
|
||||||
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
setContentView(R.layout.mytracks_charts);
|
setContentView(R.layout.mytracks_charts);
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks;
|
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 com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
@@ -63,8 +63,7 @@ class CheckUnits {
|
|||||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
SharedPreferences.Editor editor = useMetricPreferences.edit();
|
SharedPreferences.Editor editor = useMetricPreferences.edit();
|
||||||
String key = context.getString(R.string.metric_units_key);
|
String key = context.getString(R.string.metric_units_key);
|
||||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(
|
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(editor.putBoolean(key, metric));
|
||||||
editor.putBoolean(key, metric));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||||
@@ -76,7 +75,7 @@ class CheckUnits {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void recordCheckPerformed(SharedPreferences preferences) {
|
private static void recordCheckPerformed(SharedPreferences preferences) {
|
||||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(
|
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(
|
||||||
preferences.edit().putBoolean(CHECK_UNITS_PREFERENCE_KEY, true));
|
preferences.edit().putBoolean(CHECK_UNITS_PREFERENCE_KEY, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,29 +35,18 @@ public abstract class Constants {
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* onActivityResult request codes:
|
* 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 SHOW_TRACK = 0;
|
||||||
public static final int GET_MAP = 1;
|
public static final int SHARE_GPX_FILE = 1;
|
||||||
public static final int SHOW_TRACK = 2;
|
public static final int SHARE_KML_FILE = 2;
|
||||||
public static final int AUTHENTICATE_TO_MAPS = 3;
|
public static final int SHARE_CSV_FILE = 3;
|
||||||
public static final int AUTHENTICATE_TO_FUSION_TABLES = 4;
|
public static final int SHARE_TCX_FILE = 4;
|
||||||
public static final int AUTHENTICATE_TO_DOCLIST = 5;
|
public static final int SAVE_GPX_FILE = 5;
|
||||||
public static final int AUTHENTICATE_TO_TRIX = 6;
|
public static final int SAVE_KML_FILE = 6;
|
||||||
public static final int SHARE_GPX_FILE = 7;
|
public static final int SAVE_CSV_FILE = 7;
|
||||||
public static final int SHARE_KML_FILE = 8;
|
public static final int SAVE_TCX_FILE = 8;
|
||||||
public static final int SHARE_CSV_FILE = 9;
|
public static final int SHOW_WAYPOINT = 9;
|
||||||
public static final int SHARE_TCX_FILE = 10;
|
public static final int WELCOME = 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;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Menu ids:
|
* Menu ids:
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
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 com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
@@ -66,7 +66,7 @@ public class DeleteAllTracks extends Handler {
|
|||||||
Editor editor = prefs.edit();
|
Editor editor = prefs.edit();
|
||||||
// TODO: Go through data manager
|
// TODO: Go through data manager
|
||||||
editor.putLong(context.getString(R.string.selected_track_key), -1);
|
editor.putLong(context.getString(R.string.selected_track_key), -1);
|
||||||
ApiFeatures.getInstance().getApiAdapter().applyPreferenceChanges(editor);
|
ApiAdapterFactory.getApiAdapter().applyPreferenceChanges(editor);
|
||||||
if (done != null) {
|
if (done != null) {
|
||||||
Handler h = new Handler();
|
Handler h = new Handler();
|
||||||
h.post(done);
|
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.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.TracksColumns;
|
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.apps.mytracks.util.UriUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
@@ -110,7 +110,7 @@ public class DeleteTrack extends Activity
|
|||||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
if (preferences.getLong(selectedKey, -1) == deleteTrackId) {
|
if (preferences.getLong(selectedKey, -1) == deleteTrackId) {
|
||||||
Editor editor = preferences.edit().putLong(selectedKey, -1);
|
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