mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-02 09:33:06 +02:00
merge heads
This commit is contained in:
@@ -148,6 +148,9 @@ limitations under the License.
|
||||
android:label="@string/menu_aggregated_statistics"
|
||||
android:name="com.google.android.apps.mytracks.AggregatedStatsActivity" />
|
||||
<activity android:name="com.google.android.apps.mytracks.ExportActivity"/>
|
||||
<activity
|
||||
android:label="@string/menu_help"
|
||||
android:name="com.google.android.apps.mytracks.HelpActivity" />
|
||||
<activity
|
||||
android:label="@string/my_tracks_importer"
|
||||
android:name="com.google.android.apps.mytracks.ImportActivity"
|
||||
@@ -229,10 +232,6 @@ limitations under the License.
|
||||
android:name="android.app.default_searchable"
|
||||
android:value="com.google.android.apps.mytracks.SearchActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:exported="false"
|
||||
android:label="@string/welcome_title"
|
||||
android:name="com.google.android.apps.mytracks.WelcomeActivity" />
|
||||
<activity android:name="com.google.android.apps.mytracks.io.backup.BackupActivity"/>
|
||||
<activity android:name="com.google.android.apps.mytracks.io.backup.RestoreActivity"/>
|
||||
<activity android:name="com.google.android.apps.mytracks.io.backup.RestoreChooserActivity"/>
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
<?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.
|
||||
-->
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<Button
|
||||
android:id="@+id/help_about"
|
||||
android:text="@string/help_about"
|
||||
style="@style/BottomButton" />
|
||||
<Button
|
||||
android:id="@+id/help_ok"
|
||||
android:text="@string/generic_ok"
|
||||
style="@style/BottomButton" />
|
||||
</merge>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?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="fill_parent"
|
||||
android:layout_width="fill_parent"
|
||||
android:orientation="vertical" >
|
||||
<ScrollView
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="fill_parent" >
|
||||
<include layout="@layout/welcome" />
|
||||
</ScrollView>
|
||||
<LinearLayout style="@style/BottomBar" >
|
||||
<include layout="@layout/help_buttons" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,26 @@
|
||||
<?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.
|
||||
-->
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<Button
|
||||
android:id="@+id/help_ok"
|
||||
android:text="@string/generic_ok"
|
||||
style="@style/BottomButton" />
|
||||
<Button
|
||||
android:id="@+id/help_about"
|
||||
android:text="@string/help_about"
|
||||
style="@style/BottomButton" />
|
||||
</merge>
|
||||
@@ -0,0 +1,114 @@
|
||||
<?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.
|
||||
-->
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<LinearLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="8dp" >
|
||||
<ImageView
|
||||
android:contentDescription="@string/my_tracks_app_name"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:scaleType="fitStart"
|
||||
android:src="@drawable/arrow_icon" />
|
||||
<TextView
|
||||
android:text="@string/help_my_tracks_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_my_tracks_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_location_precision_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_location_precision_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_gps_fix_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_gps_fix_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_data_connection_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_data_connection_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_elevation_precision_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_elevation_precision_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_battery_life_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_battery_life_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_share_friends_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_share_friends_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_share_visibility_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_share_visibility_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_split_track_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_split_track_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_saved_files_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_saved_files_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_waypoint_marker_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_waypoint_marker_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_statistics_marker_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_statistics_marker_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_delete_tracks_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_delete_tracks_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_edit_tracks_question"
|
||||
style="@style/WelcomeQuestionTextView" />
|
||||
<TextView
|
||||
android:text="@string/help_edit_tracks_answer"
|
||||
style="@style/WelcomeAnswerTextView" />
|
||||
</LinearLayout>
|
||||
</merge>
|
||||
@@ -486,16 +486,14 @@ limitations under the License.
|
||||
</TableLayout>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
<LinearLayout style="@style/ButtonLayout">
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
<Button android:id="@+id/waypointdetails_save"
|
||||
android:layout_gravity="left"
|
||||
<LinearLayout style="@style/BottomBar" >
|
||||
<Button
|
||||
android:id="@+id/waypointdetails_save"
|
||||
android:text="@string/generic_save"
|
||||
style="@style/Button"/>
|
||||
<Button android:id="@+id/waypointdetails_cancel"
|
||||
android:layout_gravity="right"
|
||||
style="@style/BottomButton" />
|
||||
<Button
|
||||
android:id="@+id/waypointdetails_cancel"
|
||||
android:text="@string/generic_cancel"
|
||||
style="@style/Button"/>
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
style="@style/BottomButton" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -35,21 +35,18 @@ limitations under the License.
|
||||
android:text="@string/marker_list_pick_one"
|
||||
android:layout_weight="1"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ListView android:id="@android:id/list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"/>
|
||||
<LinearLayout style="@style/ButtonLayout">
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
<Button android:id="@+id/waypointslist_btn_insert_statistics"
|
||||
android:layout_gravity="left"
|
||||
<LinearLayout style="@style/BottomBar" >
|
||||
<Button
|
||||
android:id="@+id/waypointslist_btn_insert_statistics"
|
||||
android:text="@string/marker_list_insert_statistics"
|
||||
style="@style/Button"/>
|
||||
<Button android:id="@+id/waypointslist_btn_insert_waypoint"
|
||||
android:layout_gravity="right"
|
||||
style="@style/BottomButton" />
|
||||
<Button
|
||||
android:id="@+id/waypointslist_btn_insert_waypoint"
|
||||
android:text="@string/marker_list_insert_waypoint"
|
||||
style="@style/Button"/>
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
style="@style/BottomButton" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -92,20 +92,14 @@ limitations under the License.
|
||||
/>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
<LinearLayout style="@style/ButtonLayout">
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
<LinearLayout style="@style/BottomBar" >
|
||||
<Button
|
||||
android:id="@+id/track_edit_save"
|
||||
android:layout_gravity="left"
|
||||
android:text="@string/generic_save"
|
||||
style="@style/Button"
|
||||
/>
|
||||
style="@style/BottomButton" />
|
||||
<Button
|
||||
android:id="@+id/track_edit_cancel"
|
||||
android:layout_gravity="right"
|
||||
android:text="@string/generic_cancel"
|
||||
style="@style/Button"
|
||||
/>
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
style="@style/BottomButton" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
@@ -14,142 +14,8 @@ 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"
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_width="fill_parent"
|
||||
android:orientation="vertical">
|
||||
<ScrollView
|
||||
android:background="@color/white"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="fill_parent">
|
||||
<LinearLayout
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:orientation="vertical">
|
||||
<ImageView
|
||||
android:contentDescription="@string/my_tracks_app_name"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:scaleType="fitStart"
|
||||
android:src="@drawable/arrow_icon"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_my_tracks_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_my_tracks_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_app_navigation_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_app_navigation_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_add_graph_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_add_graph_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_gps_fix_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_gps_fix_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_send_google_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_send_google_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_share_friends_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_share_friends_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_waypoint_marker_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_waypoint_marker_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_statistics_marker_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_statistics_marker_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_data_connection_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_data_connection_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_battery_life_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_battery_life_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_share_file_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_share_file_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_location_precision_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_location_precision_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_elevation_precision_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_elevation_precision_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_edit_accuracy_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_edit_accuracy_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_split_track_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_split_track_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_delete_all_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_delete_all_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_maps_sharing_question"
|
||||
style="@style/WelcomeTextView.Question"/>
|
||||
<TextView
|
||||
android:text="@string/welcome_maps_sharing_answer"
|
||||
style="@style/WelcomeTextView"/>
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
<LinearLayout style="@style/ButtonLayout">
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
<Button
|
||||
android:id="@+id/welcome_ok"
|
||||
android:layout_gravity="left"
|
||||
android:text="@string/generic_ok"
|
||||
style="@style/Button"/>
|
||||
<Button
|
||||
android:id="@+id/welcome_about"
|
||||
android:layout_gravity="right"
|
||||
android:text="@string/welcome_about"
|
||||
style="@style/Button"/>
|
||||
<LinearLayout style="@style/ButtonSpacer"/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
android:layout_width="fill_parent" >
|
||||
<include layout="@layout/help_content"/>
|
||||
</ScrollView>
|
||||
+152
-199
@@ -700,6 +700,155 @@ limitations under the License.
|
||||
Waiting for a better GPS fix. Make sure the sky is visible.
|
||||
</string>
|
||||
|
||||
<!-- Help page -->
|
||||
<string name="help_about"
|
||||
translation_description="In the 'Help' page, the button on the bottom to open the 'About My
|
||||
Tracks' dialog.">
|
||||
About My Tracks
|
||||
</string>
|
||||
<string name="help_battery_life_answer"
|
||||
translation_description="In the 'Help' page, the answer on battery life.">
|
||||
The GPS receiver draws a relatively high amount of power, so a fully charged battery typically
|
||||
survives less than 5 hours. Battery life depends on many factors, including signal strength,
|
||||
battery freshness, and tasks running in parallel. Switching off some or all of the phone\'s
|
||||
radios will lengthen battery life. Putting the phone into Airplane mode will yield the best
|
||||
results.
|
||||
</string>
|
||||
<string name="help_battery_life_question"
|
||||
translation_description="In the 'Help' page, the question on battery life.">
|
||||
How long does the battery last when recording tracks?
|
||||
</string>
|
||||
<string name="help_data_connection_answer"
|
||||
translation_description="In the 'Help' page, the answer on data connection.">
|
||||
Cell signal or data connection is not required to record GPS tracks. However, if there is no
|
||||
data connection, you will not be able to see a map. Instead, you will see a grey screen or a
|
||||
partial map. Tracks, represented as simple lines, can still be recorded even if there is no data
|
||||
connection.
|
||||
</string>
|
||||
<string name="help_data_connection_question"
|
||||
translation_description="In the 'Help' page, the question on data connection.">
|
||||
Do I need cell signal and data connection to use My Tracks?
|
||||
</string>
|
||||
<string name="help_delete_tracks_answer"
|
||||
translation_description="In the 'Help' page, the answer on delete tracks.">
|
||||
From the track list, select \"Delete all\" when not recording. This permanently deletes the
|
||||
recorded tracks from memory. If you have saved tracks or backups on the SD card, you must delete
|
||||
them separately. Tracks uploaded to Google Maps, Google Fusion Tables, and Google Doc must also
|
||||
be deleted separately.
|
||||
</string>
|
||||
<string name="help_delete_tracks_question"
|
||||
translation_description="In the 'Help' page, the question on delete tracks.">
|
||||
How do I delete all the tracks from the phone?
|
||||
</string>
|
||||
<string name="help_edit_tracks_answer"
|
||||
translation_description="In the 'Help' page, the answer on edit tracks.">
|
||||
Currently, you can\'t with My Tracks. But you can upload your tracks to Google or save them to
|
||||
the SD card to modify them there.
|
||||
</string>
|
||||
<string name="help_edit_tracks_question"
|
||||
translation_description="In the 'Help' page, the question on edit tracks.">
|
||||
How can I edit or correct tracks for accuracy?
|
||||
</string>
|
||||
<string name="help_elevation_precision_answer"
|
||||
translation_description="In the 'Help' page, the help content answer on elevation
|
||||
precision.">
|
||||
GPS receivers measure elevations much less precisely than latitude and longitude. Elevations
|
||||
can sometimes be off by a few hundred feet, though relative changes are tracked more precisely.
|
||||
To get a good elevation measurement, make sure that you have a strong GPS signal and wait a few
|
||||
minutes for the elevation to settle to a stable value.
|
||||
</string>
|
||||
<string name="help_elevation_precision_question"
|
||||
translation_description="In the 'Help' page, the question on elevation precision.">
|
||||
How precise is the elevation measurement?
|
||||
</string>
|
||||
<string name="help_gps_fix_answer"
|
||||
translation_description="In the 'Help' page, the answer on the GPS fix message.">
|
||||
For My Tracks to work, your phone needs to be in line-of-sight contact with the GPS satellites.
|
||||
If the line-of-sight is obstructed by trees, buildings or canyon walls, you may not get an
|
||||
accurate fix. If you see the message, wait a minute or two. If your device does not achieve a
|
||||
fix, move to an area clear of obstructions and try again.
|
||||
</string>
|
||||
<string name="help_gps_fix_question"
|
||||
translation_description="In the 'Help' page, the question on the GPS fix message.">
|
||||
Why does the application sometimes display \"Waiting for a better GPS fix.\"?
|
||||
</string>
|
||||
<string name="help_location_precision_answer"
|
||||
translation_description="In the 'Help' page, the answer on location precision.">
|
||||
Under optimal conditions, the location error can be +/- 20 feet (6 meters). However, precision
|
||||
depends on the quality of the GPS signal. The blue circle around the orange location arrow
|
||||
indicates estimated precision. (You may need to zoom in or out to see the circle.) You can
|
||||
change the GPS precision at Settings -> Recording -> GPS accuracy.
|
||||
</string>
|
||||
<string name="help_location_precision_question"
|
||||
translation_description="In the 'Help' page, the question on location precision.">
|
||||
How precise are the recorded tracks?
|
||||
</string>
|
||||
<string name="help_my_tracks_answer"
|
||||
translation_description="In the 'Help' page, the answer on what is My Tracks.">
|
||||
My Tracks allows you to record GPS tracks and visualize your hiking, running, biking or any
|
||||
other activity while watching live performance statistics. My Tracks makes it easy to archive
|
||||
your training history with Google Maps, Google Fusion Tables, and Google Docs, and share your
|
||||
activities with friends and the world.
|
||||
</string>
|
||||
<string name="help_my_tracks_question"
|
||||
translation_description="In the 'Help' page, the question on what is My Tracks.">
|
||||
What is My Tracks?
|
||||
</string>
|
||||
<string name="help_saved_files_answer"
|
||||
translation_description="In the 'Help' page, the answer on saved files.">
|
||||
You can use Google Earth or similar applications to visualize and edit GPS tracks.
|
||||
</string>
|
||||
<string name="help_saved_files_question"
|
||||
translation_description="In the 'Help' page, the question on saved files.">
|
||||
What can I do with tracks after saving them to the SD card or sharing such files with friends?
|
||||
</string>
|
||||
<string name="help_share_friends_answer"
|
||||
translation_description="In the 'Help' page, the answer on sharing with friends.">
|
||||
You can share a track as a link to Google Map or Google Fusion Table (you will be prompted to
|
||||
upload the track first) or as a GPX, KML, CSV, or TCX file in an e-mail attachment.
|
||||
</string>
|
||||
<string name="help_share_friends_question"
|
||||
translation_description="In the 'Help' page, the question on sharing with friends.">
|
||||
How do I share tracks with friends and the rest of the world?
|
||||
</string>
|
||||
<string name="help_share_visibility_answer"
|
||||
translation_description="In the 'Help' page, the answer on share visibility.">
|
||||
By default, tracks sent to Google Maps and Google Fusion Tables are public. You can change the
|
||||
visibility of your tracks in Google Maps and Google Fusion. For Google Maps, you can change the
|
||||
default from public to unlisted in Settings -> Sharing.
|
||||
</string>
|
||||
<string name="help_share_visibility_question"
|
||||
translation_description="In the 'Help' page, the question on share visibility.">
|
||||
Who can see the tracks I send to Google Maps and Google Fusion Tables?
|
||||
</string>
|
||||
<string name="help_split_track_answer"
|
||||
translation_description="In the 'Help' page, the answer on splitting long tracks.">
|
||||
Tracks on Google Maps and Google Fusion Tables are limited to certain sizes.
|
||||
</string>
|
||||
<string name="help_split_track_question"
|
||||
translation_description="In the 'Help' page, the question on splitting long tracks.">
|
||||
Why do very long tracks split into multiple segments upon sending them to Google Maps and
|
||||
Google Fusion Tables?
|
||||
</string>
|
||||
<string name="help_statistics_marker_answer"
|
||||
translation_description="In the 'Help' page, the answer on statistics markers.">
|
||||
Statistics markers are used to segment a track to calculate statistics for each segment. For
|
||||
example, let\'s say you are recording a bike ride up a hill, you can insert a statistics marker
|
||||
at the bottom of the hill and another at the top.
|
||||
</string>
|
||||
<string name="help_statistics_marker_question"
|
||||
translation_description="In the 'Help' page, the question on statistics markers.">
|
||||
What are statistics markers?
|
||||
</string>
|
||||
<string name="help_waypoint_marker_answer"
|
||||
translation_description="In the 'Help' page, the answer on waypoint markers.">
|
||||
Waypoint markers are used to annotate a location.
|
||||
</string>
|
||||
<string name="help_waypoint_marker_question"
|
||||
translation_description="In the 'Help' page, the question on waypoint markers.">
|
||||
What are waypoint markers?
|
||||
</string>
|
||||
|
||||
<!-- Import -->
|
||||
<string name="import_error"
|
||||
translation_description="When importing all the tracks, a toast message indicating import error
|
||||
@@ -2792,205 +2941,9 @@ limitations under the License.
|
||||
waypoint
|
||||
</string>
|
||||
|
||||
<!-- Welcome Page -->
|
||||
<string name="welcome_about"
|
||||
translation_description="In the 'Welcome' page, the button on the bottom to open the 'About My
|
||||
Tracks' dialog.">
|
||||
About My Tracks
|
||||
</string>
|
||||
<string name="welcome_add_graph_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on adding graphs to the
|
||||
graphs view.">
|
||||
In the graphs view, Menu -> Chart settings.
|
||||
</string>
|
||||
<string name="welcome_add_graph_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on adding graphs to
|
||||
the graphs view.">
|
||||
How do I add more graphs?
|
||||
</string>
|
||||
<string name="welcome_app_navigation_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on app navigation.">
|
||||
Touch the map. Left and right arrows will appear. Tap on these arrows to cycle between the map,
|
||||
statistics, and graphs view.
|
||||
</string>
|
||||
<string name="welcome_app_navigation_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on app navigation.">
|
||||
How do I see the map, statistics, and graphs view?
|
||||
</string>
|
||||
<string name="welcome_battery_life_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on battery life.">
|
||||
The GPS receiver draws a relatively high amount of power, so a fully charged battery typically
|
||||
survives less than 5 hours. Battery life depends on many factors, including signal strength,
|
||||
battery freshness, and tasks running in parallel. Switching off some or all of the phone\'s
|
||||
radios will lengthen battery life. Putting the phone into Airplane mode will yield the best
|
||||
results.
|
||||
</string>
|
||||
<string name="welcome_battery_life_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on battery life.">
|
||||
How long does the battery last when recording tracks?
|
||||
</string>
|
||||
<string name="welcome_data_connection_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on data connection.">
|
||||
Cell signal or data connection is not required to record GPS tracks. However, if there is no
|
||||
data connection, you will not be able to see a map. Instead, you will see a grey screen or a
|
||||
partial map. Tracks, represented as simple lines, can still be recorded even if there is no data
|
||||
connection.
|
||||
</string>
|
||||
<string name="welcome_data_connection_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on data connection.">
|
||||
Do I need cell signal and data connection to use My Tracks?
|
||||
</string>
|
||||
<string name="welcome_delete_all_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on deleting all
|
||||
tracks.">
|
||||
Menu -> Tracks -> Delete all. This permanently deletes the recorded tracks from memory. If you
|
||||
have saved tracks to the SD card, you must delete them separately. Tracks uploaded to Google
|
||||
Maps, Google Fusion Tables, and Google Docs must also be deleted separately.
|
||||
</string>
|
||||
<string name="welcome_delete_all_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on deleting all
|
||||
tracks.">
|
||||
How do I delete all the tracks from the phone?
|
||||
</string>
|
||||
<string name="welcome_edit_accuracy_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on editing points.">
|
||||
Once you upload tracks to Google Maps, Google Fusion Tables, or Google Docs, you can move,
|
||||
delete or insert individual track points as desired.
|
||||
</string>
|
||||
<string name="welcome_edit_accuracy_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on editing points.">
|
||||
How can I edit or correct tracks for accuracy?
|
||||
</string>
|
||||
<string name="welcome_elevation_precision_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on elevation
|
||||
precision.">
|
||||
GPS receivers measure elevations much less precisely than latitude and longitude. Elevations
|
||||
can sometimes be off by a few hundred feet, though relative changes are tracked more precisely.
|
||||
To get a good elevation measurement, make sure that you have a strong GPS signal and wait a few
|
||||
minutes for the elevation to settle to a stable value.
|
||||
</string>
|
||||
<string name="welcome_elevation_precision_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on elevation
|
||||
precision.">
|
||||
How precise is the elevation measurement?
|
||||
</string>
|
||||
<string name="welcome_gps_fix_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on the GPS fix
|
||||
message.">
|
||||
For My Tracks to work, your phone needs to be in line-of-sight contact with the GPS satellites.
|
||||
If the line-of-sight is obstructed by trees, buildings or canyon walls, you may not get an
|
||||
accurate fix. If you see the message, wait a minute or two. If your device does not achieve a
|
||||
fix, move to an area clear of obstructions and try again.
|
||||
</string>
|
||||
<string name="welcome_gps_fix_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on the GPS fix
|
||||
message.">
|
||||
Why does the application sometimes display \"Waiting for a better GPS fix. Make sure the sky is
|
||||
visible.\"?
|
||||
</string>
|
||||
<string name="welcome_location_precision_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on location precision.">
|
||||
Under optimal conditions, the location error can be +/- 20 feet (6 meters). However, precision
|
||||
depends on the quality of the GPS signal. The blue circle around the orange location arrow
|
||||
indicates estimated precision. (You may need to zoom in or out to see the circle.) You can
|
||||
change the GPS precision at Settings -> Recording -> GPS accuracy. If the precision is too low,
|
||||
at the top of the screen, you will see the message \"Waiting for a better GPS fix.\".
|
||||
</string>
|
||||
<string name="welcome_location_precision_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on location
|
||||
precision.">
|
||||
How precise are the recorded tracks?
|
||||
</string>
|
||||
<string name="welcome_maps_sharing_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on Google Maps
|
||||
visibility.">
|
||||
By default, new maps are public. To change the default to unlisted, uncheck Settings -> Sharing
|
||||
-> Make new maps public. You can change the visibility of all your maps at My places in Google
|
||||
Maps.
|
||||
</string>
|
||||
<string name="welcome_maps_sharing_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on Google Maps
|
||||
visibility.">
|
||||
Who can see the maps I send to Google Maps?
|
||||
</string>
|
||||
<string name="welcome_my_tracks_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on what is My Tracks.">
|
||||
My Tracks allows you to record GPS tracks and visualize your hiking, running, biking or any
|
||||
other activity while watching live performance statistics. My Tracks makes it easy to archive
|
||||
your training history with Google Maps, Google Fusion Tables, and Google Docs, and share your
|
||||
activities with friends and the world.
|
||||
</string>
|
||||
<string name="welcome_my_tracks_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on what is My
|
||||
Tracks.">
|
||||
What is My Tracks?
|
||||
</string>
|
||||
<string name="welcome_send_google_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on sending a track to
|
||||
Google.">
|
||||
Tap the Options button located at the bottom right corner of the map view and select \"Send to
|
||||
Google...\".
|
||||
</string>
|
||||
<string name="welcome_send_google_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on sending a track to
|
||||
Google.">
|
||||
How do I send my tracks to Google Maps, Google Fusion Tables, and Google Docs?
|
||||
</string>
|
||||
<string name="welcome_share_file_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on sharing a file.">
|
||||
You can use Google Earth or similar applications to visualize and edit GPS tracks.
|
||||
</string>
|
||||
<string name="welcome_share_file_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on sharing a file.">
|
||||
What can I do with tracks after saving them to the SD card or sharing such files with friends?
|
||||
</string>
|
||||
<string name="welcome_share_friends_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on sharing a track with
|
||||
friends.">
|
||||
Tap the Options button located at the bottom right corner of the map view and select \"Share
|
||||
with friends...\". You can share the track as a link to Google Map or Google Fusion Table
|
||||
(you will be prompted to upload the track first) or as a GPX, KML, CSV, or TCX file in an e-mail
|
||||
attachment.
|
||||
</string>
|
||||
<string name="welcome_share_friends_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on sharing a track
|
||||
with friends.">
|
||||
How do I share tracks with friends and the rest of the world?
|
||||
</string>
|
||||
<string name="welcome_split_track_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on splitting long
|
||||
tracks.">
|
||||
Tracks on Google Maps and Google Fusion Tables are limited to certain sizes.
|
||||
</string>
|
||||
<string name="welcome_split_track_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on splitting long
|
||||
tracks.">
|
||||
Why do very long tracks split into multiple segments upon sending them to Google Maps and
|
||||
Google Fusion Tables?
|
||||
</string>
|
||||
<string name="welcome_statistics_marker_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on statistics markers.">
|
||||
Statistics markers are used to segment a track to calculate statistics for each segment. For
|
||||
example, let\'s say you are recording a bike ride up a hill, you can insert a statistics marker
|
||||
at the bottom of the hill and another at the top by pressing Menu -> Markers -> Insert
|
||||
statistics.
|
||||
</string>
|
||||
<string name="welcome_statistics_marker_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on statistics
|
||||
markers.">
|
||||
What are statistics markers?
|
||||
</string>
|
||||
<!-- Welcome -->
|
||||
<string name="welcome_title"
|
||||
translation_description="In the 'Welcome' page, the title of the page.">
|
||||
My Tracks Welcome
|
||||
</string>
|
||||
<string name="welcome_waypoint_marker_answer"
|
||||
translation_description="In the 'Welcome' page, the help content answer on waypoint markers.">
|
||||
Waypoint markers are used to annotate a location. For example, if you are recording a track and
|
||||
you are close to an interesting place, press Menu -> Markers -> Insert waypoint.
|
||||
</string>
|
||||
<string name="welcome_waypoint_marker_question"
|
||||
translation_description="In the 'Welcome' page, the help content question on waypoint markers.">
|
||||
What are waypoint markers?
|
||||
translation_description="The title of the welcome dialog.">
|
||||
Welcome to My Tracks
|
||||
</string>
|
||||
</resources>
|
||||
|
||||
@@ -17,34 +17,18 @@ limitations under the License.
|
||||
<resources>
|
||||
<style name="ThemeSelector" parent="android:Theme" />
|
||||
|
||||
<!-- Button -->
|
||||
<style name="Button">
|
||||
<item name="android:layout_height">fill_parent</item>
|
||||
<item name="android:layout_weight">1</item>
|
||||
<item name="android:layout_width">0dp</item>
|
||||
<item name="android:maxLines">2</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
</style>
|
||||
|
||||
<!-- Button layout -->
|
||||
<style name="ButtonLayout">
|
||||
<item name="android:background">@drawable/list_bar</item>
|
||||
<!-- Bottom Bar -->
|
||||
<style name="BottomBar" parent="@android:style/DeviceDefault.ButtonBar">
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">fill_parent</item>
|
||||
<item name="android:measureWithLargestChild">true</item>
|
||||
<item name="android:orientation">horizontal</item>
|
||||
<item name="android:paddingLeft">2dp</item>
|
||||
<item name="android:paddingRight">2dp</item>
|
||||
<item name="android:paddingTop">4dp</item>
|
||||
</style>
|
||||
|
||||
<!-- Button spacer -->
|
||||
<style name="ButtonSpacer">
|
||||
<!-- Bottom Button -->
|
||||
<style name="BottomButton" parent="@android:style/Widget.DeviceDefault.Button.Borderless">
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_weight">0.25</item>
|
||||
<item name="android:layout_weight">1</item>
|
||||
<item name="android:layout_width">0dp</item>
|
||||
<item name="android:orientation">horizontal</item>
|
||||
<item name="android:visibility">gone</item>
|
||||
</style>
|
||||
|
||||
<style name="SensorStateLabel">
|
||||
@@ -126,27 +110,26 @@ limitations under the License.
|
||||
</style>
|
||||
|
||||
<!-- The TextView showing the stats in the track list item -->
|
||||
<style name="TrackListItemStatsTextView" parents="@android:style/TextAppearance.DeviceDefault.Small">
|
||||
<style name="TrackListItemStatsTextView" parent="@android:style/TextAppearance.DeviceDefault.Small">
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:singleLine">true</item>
|
||||
<item name="android:textColor">@color/green</item>
|
||||
</style>
|
||||
|
||||
<!-- Welcome page TextView -->
|
||||
<style name="WelcomeTextView">
|
||||
|
||||
<!-- The welcome activity answer TextView -->
|
||||
<style name="WelcomeAnswerTextView" parent="@android:style/TextAppearance.DeviceDefault.Small">
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">fill_parent</item>
|
||||
<item name="android:paddingLeft">10sp</item>
|
||||
<item name="android:paddingRight">10sp</item>
|
||||
<item name="android:textColor">@color/black</item>
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:paddingBottom">8dp</item>
|
||||
</style>
|
||||
|
||||
<!-- Welcome page TextView question -->
|
||||
<style name="WelcomeTextView.Question">
|
||||
<item name="android:paddingTop">10sp</item>
|
||||
|
||||
<!-- The welcome activity question TextView -->
|
||||
<style name="WelcomeQuestionTextView" parent="@android:style/TextAppearance.DeviceDefault.Medium">
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:textStyle">bold</item>
|
||||
<item name="android:paddingTop">8dp</item>
|
||||
</style>
|
||||
|
||||
<!-- Widget TextView -->
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright 2008 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.fragments.AboutDialogFragment;
|
||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.speech.tts.TextToSpeech;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
|
||||
/**
|
||||
* An activity that displays the help page.
|
||||
*
|
||||
* @author Sandor Dornbush
|
||||
*/
|
||||
public class HelpActivity extends FragmentActivity {
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
|
||||
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
|
||||
setContentView(R.layout.help);
|
||||
|
||||
findViewById(R.id.help_ok).setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
findViewById(R.id.help_about).setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
new AboutDialogFragment().show(
|
||||
getSupportFragmentManager(), AboutDialogFragment.ABOUT_DIALOG_TAG);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() != android.R.id.home) {
|
||||
return false;
|
||||
}
|
||||
startActivity(new Intent(this, TrackListActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -136,6 +136,7 @@ public class TrackDetailActivity extends FragmentActivity {
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setVolumeControlStream(TextToSpeech.Engine.DEFAULT_STREAM);
|
||||
ApiAdapterFactory.getApiAdapter().hideTitle(this);
|
||||
ApiAdapterFactory.getApiAdapter().configureActionBarHomeAsUp(this);
|
||||
setContentView(R.layout.track_detail);
|
||||
|
||||
@@ -428,7 +429,7 @@ public class TrackDetailActivity extends FragmentActivity {
|
||||
startActivity(new Intent(this, SettingsActivity.class));
|
||||
return true;
|
||||
case R.id.track_detail_help:
|
||||
startActivity(new Intent(this, WelcomeActivity.class));
|
||||
startActivity(new Intent(this, HelpActivity.class));
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.content.TracksColumns;
|
||||
import com.google.android.apps.mytracks.fragments.CheckUnitsDialogFragment;
|
||||
import com.google.android.apps.mytracks.fragments.DeleteAllDialogFragment;
|
||||
import com.google.android.apps.mytracks.fragments.EulaDialogFragment;
|
||||
import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
|
||||
@@ -25,7 +24,6 @@ import com.google.android.apps.mytracks.services.ITrackRecordingService;
|
||||
import com.google.android.apps.mytracks.services.ServiceUtils;
|
||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||
import com.google.android.apps.mytracks.util.CheckUnitsUtils;
|
||||
import com.google.android.apps.mytracks.util.EulaUtils;
|
||||
import com.google.android.apps.mytracks.util.StringUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
@@ -39,9 +37,7 @@ import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
import android.speech.tts.TextToSpeech;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.support.v4.app.FragmentTransaction;
|
||||
import android.support.v4.app.LoaderManager.LoaderCallbacks;
|
||||
import android.support.v4.content.CursorLoader;
|
||||
import android.support.v4.content.Loader;
|
||||
@@ -65,11 +61,6 @@ import android.widget.Toast;
|
||||
public class TrackListActivity extends FragmentActivity {
|
||||
|
||||
private static final String TAG = TrackListActivity.class.getSimpleName();
|
||||
private static final String CHECK_UNITS_DIALOG_TAG = "checkUnitsDialog";
|
||||
private static final String DELETE_ALL_DIALOG_TAG = "deleteAllDialog";
|
||||
private static final String EULA_DIALOG_TAG = "eulaDialog";
|
||||
|
||||
public static final int WELCOME_ACTIVITY_REQUEST_CODE = 0;
|
||||
|
||||
private static final String[] PROJECTION = new String[] {
|
||||
TracksColumns._ID,
|
||||
@@ -237,9 +228,11 @@ public class TrackListActivity extends FragmentActivity {
|
||||
});
|
||||
|
||||
if (!EulaUtils.getEulaValue(this)) {
|
||||
Fragment fragment = getSupportFragmentManager().findFragmentByTag(EULA_DIALOG_TAG);
|
||||
Fragment fragment = getSupportFragmentManager()
|
||||
.findFragmentByTag(EulaDialogFragment.EULA_DIALOG_TAG);
|
||||
if (fragment == null) {
|
||||
new EulaDialogFragment().show(getSupportFragmentManager(), EULA_DIALOG_TAG);
|
||||
EulaDialogFragment.newInstance(false).show(
|
||||
getSupportFragmentManager(), EulaDialogFragment.EULA_DIALOG_TAG);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -256,24 +249,6 @@ public class TrackListActivity extends FragmentActivity {
|
||||
trackRecordingServiceConnection.unbind();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, final Intent results) {
|
||||
if (requestCode == WELCOME_ACTIVITY_REQUEST_CODE) {
|
||||
if (!CheckUnitsUtils.getCheckUnitsValue(this)) {
|
||||
/*
|
||||
* See bug http://code.google.com/p/android/issues/detail?id=23761.
|
||||
* Cannot use
|
||||
* CheckUnitsDialogFragment().show(getSupportFragmentManager(),
|
||||
* CHECK_UNITS_DIALOG_TAG). Need to use commitAllowingStateLoss with the
|
||||
* support package.
|
||||
*/
|
||||
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
|
||||
fragmentTransaction.add(new CheckUnitsDialogFragment(), CHECK_UNITS_DIALOG_TAG);
|
||||
fragmentTransaction.commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
getMenuInflater().inflate(R.menu.track_list, menu);
|
||||
@@ -364,7 +339,8 @@ public class TrackListActivity extends FragmentActivity {
|
||||
ExportActivity.EXTRA_TRACK_FILE_FORMAT, (Parcelable) TrackFileFormat.TCX));
|
||||
return true;
|
||||
case R.id.track_list_delete_all:
|
||||
new DeleteAllDialogFragment().show(getSupportFragmentManager(), DELETE_ALL_DIALOG_TAG);
|
||||
new DeleteAllDialogFragment().show(
|
||||
getSupportFragmentManager(), DeleteAllDialogFragment.DELETE_ALL_DIALOG_TAG);
|
||||
return true;
|
||||
case R.id.track_list_aggregated_statistics:
|
||||
startActivity(new Intent(this, AggregatedStatsActivity.class));
|
||||
@@ -373,7 +349,7 @@ public class TrackListActivity extends FragmentActivity {
|
||||
startActivity(new Intent(this, SettingsActivity.class));
|
||||
return true;
|
||||
case R.id.track_list_help:
|
||||
startActivity(new Intent(this, WelcomeActivity.class));
|
||||
startActivity(new Intent(this, HelpActivity.class));
|
||||
return true;
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
/*
|
||||
* Copyright 2008 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.util.EulaUtils;
|
||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.TextView;
|
||||
|
||||
/**
|
||||
* An activity that displays a welcome screen.
|
||||
*
|
||||
* @author Sandor Dornbush
|
||||
*/
|
||||
public class WelcomeActivity extends Activity {
|
||||
|
||||
private static final int DIALOG_ABOUT_ID = 0;
|
||||
private static final int DIALOG_EULA_ID = 1;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.welcome);
|
||||
findViewById(R.id.welcome_ok).setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
findViewById(R.id.welcome_about).setOnClickListener(new OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
showDialog(DIALOG_ABOUT_ID);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Dialog onCreateDialog(int id) {
|
||||
switch (id) {
|
||||
case DIALOG_ABOUT_ID:
|
||||
View view = getLayoutInflater().inflate(R.layout.about, null);
|
||||
TextView aboutVersion = (TextView) view.findViewById(R.id.about_version);
|
||||
aboutVersion.setText(SystemUtils.getMyTracksVersion(this));
|
||||
return new AlertDialog.Builder(this)
|
||||
.setCancelable(true)
|
||||
.setNegativeButton(R.string.about_license, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
showDialog(DIALOG_EULA_ID);
|
||||
}
|
||||
})
|
||||
.setPositiveButton(R.string.generic_ok, null)
|
||||
.setTitle(R.string.my_tracks_app_name)
|
||||
.setView(view)
|
||||
.create();
|
||||
case DIALOG_EULA_ID:
|
||||
return new AlertDialog.Builder(this)
|
||||
.setCancelable(true)
|
||||
.setMessage(EulaUtils.getEulaMessage(this))
|
||||
.setPositiveButton(R.string.generic_ok, null)
|
||||
.setTitle(R.string.eula_title)
|
||||
.create();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package com.google.android.apps.mytracks.fragments;
|
||||
|
||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
/**
|
||||
* A DialogFragment to show information about My Tracks.
|
||||
*
|
||||
* @author Jimmy Shih
|
||||
*/
|
||||
public class AboutDialogFragment extends DialogFragment {
|
||||
|
||||
public static final String ABOUT_DIALOG_TAG = "aboutDialog";
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
View view = getActivity().getLayoutInflater().inflate(R.layout.about, null);
|
||||
TextView aboutVersion = (TextView) view.findViewById(R.id.about_version);
|
||||
aboutVersion.setText(SystemUtils.getMyTracksVersion(getActivity()));
|
||||
return new AlertDialog.Builder(getActivity())
|
||||
.setCancelable(true)
|
||||
.setNegativeButton(R.string.about_license, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
EulaDialogFragment.newInstance(true).show(
|
||||
getActivity().getSupportFragmentManager(), EulaDialogFragment.EULA_DIALOG_TAG);
|
||||
}
|
||||
})
|
||||
.setPositiveButton(R.string.generic_ok, null)
|
||||
.setTitle(R.string.help_about)
|
||||
.setView(view)
|
||||
.create();
|
||||
}
|
||||
}
|
||||
+9
-2
@@ -30,20 +30,27 @@ import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
||||
/**
|
||||
* Check Units DialogFragment.
|
||||
* A DialogFragment to check preferred units.
|
||||
*
|
||||
* @author Jimmy Shih
|
||||
*/
|
||||
public class CheckUnitsDialogFragment extends DialogFragment {
|
||||
|
||||
public static final String CHECK_UNITS_DIALOG_TAG = "checkUnitsDialog";
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
|
||||
return new AlertDialog.Builder(getActivity()).setCancelable(true)
|
||||
return new AlertDialog.Builder(getActivity())
|
||||
.setCancelable(true)
|
||||
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
CheckUnitsUtils.setCheckUnitsValue(getActivity());
|
||||
}
|
||||
})
|
||||
.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
CheckUnitsUtils.setCheckUnitsValue(getActivity());
|
||||
|
||||
|
||||
+5
-1
@@ -26,10 +26,14 @@ import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
||||
/**
|
||||
* Delete All DialogFragment.
|
||||
* A DialogFragment to delete all tracks.
|
||||
*
|
||||
* @author Jimmy Shih
|
||||
*/
|
||||
public class DeleteAllDialogFragment extends DialogFragment {
|
||||
|
||||
public static final String DELETE_ALL_DIALOG_TAG = "deleteAllDialog";
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
return DialogUtils.createConfirmationDialog(getActivity(),
|
||||
|
||||
@@ -16,49 +16,71 @@
|
||||
|
||||
package com.google.android.apps.mytracks.fragments;
|
||||
|
||||
import com.google.android.apps.mytracks.TrackListActivity;
|
||||
import com.google.android.apps.mytracks.WelcomeActivity;
|
||||
import com.google.android.apps.mytracks.util.EulaUtils;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
|
||||
/**
|
||||
* Eula DialogFragment.
|
||||
* A DialogFragment to show EULA.
|
||||
*
|
||||
* @author Jimmy Shih
|
||||
*/
|
||||
public class EulaDialogFragment extends DialogFragment {
|
||||
|
||||
public static final String EULA_DIALOG_TAG = "eulaDialog";
|
||||
private static final String KEY_HAS_ACCEPTED = "hasAccepted";
|
||||
|
||||
/**
|
||||
* Creates a new instance of {@link EulaDialogFragment}.
|
||||
*
|
||||
* @param hasAccepted true if the user has accepted the eula.
|
||||
*/
|
||||
public static EulaDialogFragment newInstance(boolean hasAccepted) {
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putBoolean(KEY_HAS_ACCEPTED, hasAccepted);
|
||||
|
||||
EulaDialogFragment eulaDialogFragment = new EulaDialogFragment();
|
||||
eulaDialogFragment.setArguments(bundle);
|
||||
return eulaDialogFragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
return new AlertDialog.Builder(getActivity())
|
||||
boolean hasAccepted = getArguments().getBoolean(KEY_HAS_ACCEPTED);
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||
.setCancelable(true)
|
||||
.setMessage(EulaUtils.getEulaMessage(getActivity()))
|
||||
.setNegativeButton(R.string.eula_decline, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.setPositiveButton(R.string.eula_accept, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
EulaUtils.setEulaValue(getActivity());
|
||||
getActivity().startActivityForResult(
|
||||
new Intent(getActivity(), WelcomeActivity.class), TrackListActivity.WELCOME_ACTIVITY_REQUEST_CODE);
|
||||
}
|
||||
})
|
||||
.setTitle(R.string.eula_title)
|
||||
.create();
|
||||
.setTitle(R.string.eula_title);
|
||||
|
||||
if (hasAccepted) {
|
||||
builder.setPositiveButton(R.string.generic_ok, null);
|
||||
} else {
|
||||
builder.setNegativeButton(R.string.eula_decline, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
getActivity().finish();
|
||||
}
|
||||
})
|
||||
.setPositiveButton(R.string.eula_accept, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
EulaUtils.setEulaValue(getActivity());
|
||||
new WelcomeDialogFragment().show(
|
||||
getActivity().getSupportFragmentManager(), WelcomeDialogFragment.WELCOME_DIALOG_TAG);
|
||||
}
|
||||
});
|
||||
}
|
||||
return builder.create();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2012 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||
* use this file except in compliance with the License. You may obtain a copy of
|
||||
* the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations under
|
||||
* the License.
|
||||
*/
|
||||
|
||||
package com.google.android.apps.mytracks.fragments;
|
||||
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.DialogFragment;
|
||||
import android.view.View;
|
||||
|
||||
/**
|
||||
* A DialogFrament to show the welcome info.
|
||||
*
|
||||
* @author Jimmy Shih
|
||||
*/
|
||||
public class WelcomeDialogFragment extends DialogFragment {
|
||||
|
||||
public static final String WELCOME_DIALOG_TAG = "welcomeDialog";
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
View view = getActivity().getLayoutInflater().inflate(R.layout.welcome, null);
|
||||
return new AlertDialog.Builder(getActivity())
|
||||
.setCancelable(true)
|
||||
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
checkUnits();
|
||||
}
|
||||
})
|
||||
.setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
checkUnits();
|
||||
}
|
||||
})
|
||||
.setTitle(R.string.welcome_title)
|
||||
.setView(view)
|
||||
.create();
|
||||
}
|
||||
|
||||
private void checkUnits() {
|
||||
new CheckUnitsDialogFragment().show(
|
||||
getActivity().getSupportFragmentManager(), CheckUnitsDialogFragment.CHECK_UNITS_DIALOG_TAG);
|
||||
}
|
||||
}
|
||||
@@ -32,13 +32,18 @@ import android.widget.SearchView;
|
||||
@TargetApi(11)
|
||||
public class Api11Adapter extends Api10Adapter {
|
||||
|
||||
@Override
|
||||
public void hideTitle(Activity activity) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureActionBarHomeAsUp(Activity activity) {
|
||||
ActionBar actionBar = activity.getActionBar();
|
||||
actionBar.setHomeButtonEnabled(true);
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void configureSearchWidget(Activity activity, MenuItem menuItem) {
|
||||
SearchManager searchManager = (SearchManager) activity.getSystemService(Context.SEARCH_SERVICE);
|
||||
|
||||
@@ -104,17 +104,20 @@ public class Api7Adapter implements ApiAdapter {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureActionBarHomeAsUp(Activity activity) {
|
||||
// Action bar not available, just hide the title and let actions be shown
|
||||
// via the regular menu.
|
||||
public void hideTitle(Activity activity) {
|
||||
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void configureActionBarHomeAsUp(Activity activity) {
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void configureSearchWidget(Activity activity, MenuItem menuItem) {
|
||||
// Do nothing
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean handleSearchMenuSelection(Activity activity) {
|
||||
activity.onSearchRequested();
|
||||
|
||||
@@ -100,14 +100,26 @@ public interface ApiAdapter {
|
||||
* @param bluetoothDevice
|
||||
*/
|
||||
public BluetoothSocket getBluetoothSocket(BluetoothDevice bluetoothDevice) throws IOException;
|
||||
|
||||
|
||||
/**
|
||||
* Hides the title. If the platform supports the action bar, do nothing.
|
||||
* Ideally, with the action bar, we would like to collapse the navigation tabs
|
||||
* into the action bar. However, collapsing is not supported by the
|
||||
* compatibility library.
|
||||
* <p>
|
||||
* Due to changes in API level 11.
|
||||
*
|
||||
* @param activity the activity
|
||||
*/
|
||||
public void hideTitle(Activity activity);
|
||||
|
||||
/**
|
||||
* Configures the action bar with the Home button as an Up button. If the
|
||||
* system doesn't support action bar, hide the title bar.
|
||||
* platform doesn't support the action bar, do nothing.
|
||||
* <p>
|
||||
* Due to changes in API level 11.
|
||||
*
|
||||
* @param activity the current activity
|
||||
* @param activity the activity
|
||||
*/
|
||||
public void configureActionBarHomeAsUp(Activity activity);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user