Merge heads

This commit is contained in:
Jimmy Shih
2011-12-22 15:29:20 -08:00
97 changed files with 738 additions and 564 deletions
+2 -2
View File
@@ -17,8 +17,8 @@ limitations under the License.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.maps.mytracks"
android:installLocation="auto"
android:versionCode="35"
android:versionName="1.1.12">
android:versionCode="36"
android:versionName="1.1.13">
<application android:icon="@drawable/arrow_icon"
android:label="@string/my_tracks_app_name"
android:name="com.google.android.apps.mytracks.MyTracksApplication"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 275 B

+82 -78
View File
@@ -17,87 +17,91 @@ limitations under the License.
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
<TableLayout
android:layout_width="fill_parent">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="2dp"
android:shrinkColumns="0"
android:stretchColumns="1">
<TableRow style="@style/AboutTableRow">
<ImageView
android:layout_column="0"
android:scaleType="center"
android:src="@drawable/arrow_icon"/>
<LinearLayout
android:layout_column="1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="fill_parent"
android:orientation="vertical"
android:padding="10dp">
<!-- Title -->
<TableLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:padding="2dp"
android:shrinkColumns="0"
android:stretchColumns="1">
<TableRow>
<ImageView
android:layout_column="0"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/my_tracks_app_name"
android:textSize="30sp" />
<TextView
android:scaleType="center"
android:src="@drawable/arrow_icon"/>
<LinearLayout
android:layout_column="1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/about_copyright_notice"
android:textSize="15sp" />
</LinearLayout>
</TableRow>
<TableRow style="@style/AboutTableRow">
<TextView
android:text="@string/about_team"
style="@style/AboutTextView.Column0"/>
<LinearLayout
android:layout_column="1"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<TextView
android:text="@string/about_bart"
style="@style/AboutTextView"/>
<TextView
android:text="@string/about_dylan"
style="@style/AboutTextView"/>
<TextView
android:text="@string/about_jimmy"
style="@style/AboutTextView"/>
<TextView
android:text="@string/about_leif"
style="@style/AboutTextView"/>
<TextView
android:text="@string/about_rodrigo"
style="@style/AboutTextView"/>
<TextView
android:text="@string/about_sandor"
style="@style/AboutTextView"/>
</LinearLayout>
</TableRow>
<TableRow style="@style/AboutTableRow">
<TextView
android:text="@string/about_version"
style="@style/AboutTextView.Column0"/>
<TextView
android:id="@+id/about_version"
style="@style/AboutTextView"/>
</TableRow>
<TableRow style="@style/AboutTableRow">
<TextView
android:text="@string/about_support"
style="@style/AboutTextView.Column0"/>
<TextView
android:text="@string/my_tracks_web_url"
style="@style/AboutTextView.Url"/>
</TableRow>
<TableRow style="@style/AboutTableRow">
<TextView
android:text="@string/about_privacy"
style="@style/AboutTextView.Column0"/>
<TextView
android:text="@string/my_tracks_privacy_url"
style="@style/AboutTextView.Url"/>
</TableRow>
</TableLayout>
android:orientation="vertical">
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/my_tracks_app_name"
android:textSize="30sp"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/about_copyright_notice"
android:textSize="15sp"/>
</LinearLayout>
</TableRow>
</TableLayout>
<!-- Team -->
<TextView
android:text="@string/about_team"
style="@style/AboutLabel"/>
<TextView
android:text="@string/about_bart"
style="@style/AboutItem"/>
<TextView
android:text="@string/about_dylan"
style="@style/AboutItem"/>
<TextView
android:text="@string/about_jimmy"
style="@style/AboutItem"/>
<TextView
android:text="@string/about_leif"
style="@style/AboutItem"/>
<TextView
android:text="@string/about_rodrigo"
style="@style/AboutItem"/>
<TextView
android:text="@string/about_sandor"
style="@style/AboutItem"/>
<!-- Version -->
<TextView
android:text="@string/about_version"
style="@style/AboutLabel"/>
<TextView
android:id="@+id/about_version"
style="@style/AboutItem"/>
<!-- Support -->
<TextView
android:text="@string/about_support"
style="@style/AboutLabel"/>
<TextView
android:text="@string/my_tracks_web_url"
style="@style/AboutUrl"/>
<!-- Privacy -->
<TextView
android:text="@string/about_privacy"
style="@style/AboutLabel"/>
<TextView
android:text="@string/my_tracks_privacy_url"
style="@style/AboutUrl"/>
</LinearLayout>
</ScrollView>
+76 -106
View File
@@ -17,120 +17,90 @@ 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:minWidth="300dp"
android:orientation="vertical">
<LinearLayout
android:background="@drawable/list_bar"
<TableLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<TextView
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_width="fill_parent"
android:text="@string/menu_chart_view_chart_settings"
android:textColor="#fff"
android:textSize="20sp"/>
</LinearLayout>
android:layout_width="fill_parent"
android:shrinkColumns="0"
android:stretchColumns="0">
<TableRow>
<TextView
android:background="@drawable/list_bar"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingLeft="10dp"
android:text="@string/menu_chart_view_chart_settings"
android:textColor="@color/white"
android:textSize="20sp"/>
</TableRow>
</TableLayout>
<ScrollView
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="fill_parent">
<TableLayout
<LinearLayout
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"
android:layout_width="fill_parent"
android:stretchColumns="1">
<TableRow>
<LinearLayout
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_width="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/x_axis"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/chart_settings_x_axis"
android:textSize="20sp"/>
</LinearLayout>
<RadioGroup
android:id="@+id/chart_settings_x"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<RadioButton
android:id="@+id/chart_settings_by_distance"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/chart_settings_by_distance"/>
<RadioButton
android:id="@+id/chart_settings_by_time"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/chart_settings_by_time"/>
</RadioGroup>
</LinearLayout>
</TableRow>
<TableRow>
<LinearLayout
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_width="fill_parent"
android:orientation="vertical">
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="horizontal">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/y_axis"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/chart_settings_y_axis"
android:textSize="20sp" />
</LinearLayout>
<CheckBox
android:id="@+id/chart_settings_elevation"
android:checked="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/stat_elevation"/>
<CheckBox
android:id="@+id/chart_settings_speed"
android:checked="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/stat_speed"/>
<CheckBox
android:id="@+id/chart_settings_power"
android:checked="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/sensor_state_power"/>
<CheckBox
android:id="@+id/chart_settings_cadence"
android:checked="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/sensor_state_cadence"/>
<CheckBox
android:id="@+id/chart_settings_heart_rate"
android:checked="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/sensor_state_heart_rate"/>
</LinearLayout>
</TableRow>
</TableLayout>
android:orientation="vertical"
android:padding="10dp">
<!-- X axis -->
<LinearLayout style="@style/ChartSettingsAxisLayout">
<ImageView
android:src="@drawable/x_axis"
style="@style/ChartSettingsAxisImage"/>
<TextView
android:text="@string/chart_settings_x_axis"
style="@style/ChartSettingsAxisText"/>
</LinearLayout>
<RadioGroup
android:id="@+id/chart_settings_x"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<RadioButton
android:id="@+id/chart_settings_by_distance"
android:text="@string/chart_settings_by_distance"
style="@style/ChartSettingsRadioButton"/>
<RadioButton
android:id="@+id/chart_settings_by_time"
android:text="@string/chart_settings_by_time"
style="@style/ChartSettingsRadioButton"/>
</RadioGroup>
<!-- Y axis -->
<LinearLayout
android:paddingTop="10dp"
style="@style/ChartSettingsAxisLayout">
<ImageView
android:src="@drawable/y_axis"
style="@style/ChartSettingsAxisImage"/>
<TextView
android:text="@string/chart_settings_y_axis"
style="@style/ChartSettingsAxisText"/>
</LinearLayout>
<CheckBox
android:id="@+id/chart_settings_elevation"
android:text="@string/stat_elevation"
style="@style/ChartSettingsCheckbox"/>
<CheckBox
android:id="@+id/chart_settings_speed"
android:text="@string/stat_speed"
style="@style/ChartSettingsCheckbox"/>
<CheckBox
android:id="@+id/chart_settings_power"
android:text="@string/sensor_state_power"
style="@style/ChartSettingsCheckbox"/>
<CheckBox
android:id="@+id/chart_settings_cadence"
android:text="@string/sensor_state_cadence"
style="@style/ChartSettingsCheckbox"/>
<CheckBox
android:id="@+id/chart_settings_heart_rate"
android:text="@string/sensor_state_heart_rate"
style="@style/ChartSettingsCheckbox"/>
</LinearLayout>
</ScrollView>
<LinearLayout style="@style/ButtonLayout">
<LinearLayout style="@style/ButtonSpacer"/>
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
File diff suppressed because one or more lines are too long
+3
View File
@@ -22,6 +22,9 @@ limitations under the License.
<string name="about_leif">Leif Wilden</string>
<string name="about_rodrigo">Rodrigo Damazio</string>
<string name="about_sandor">Sandor Dornbush</string>
<string name="color_mode_dynamic_percentage_default">25</string>
<string name="color_mode_fixed_medium_default">15</string>
<string name="color_mode_fixed_slow_default">9</string>
<string name="display_track_color_value_dynamic">DYNAMIC</string>
<string name="display_track_color_value_fixed">FIXED</string>
<string name="display_track_color_value_none">NONE</string>
+79 -67
View File
@@ -420,11 +420,17 @@ limitations under the License.
\n
http://mytracks.googlecode.com\n
</string>
<string name="android_market_recent_changes_text"
translation_description="For the Android Market (not used in the app), the recent changes text.
Character limit: 500.">
Please see the English version for more information.
</string>
<string name="android_market_promo_text"
translation_description="For the Android Market (not used in the app), the promotion text.
Character limit: 80.">
My Tracks allows you to record and share your GPS tracks, including statistics.
Record and share your GPS tracks with My Tracks.
</string>
<!-- Chart Settings -->
@@ -477,6 +483,11 @@ limitations under the License.
http://m.google.com/toscountry.">
By using Google\'s mobile products and services ("Services"), you:
</string>
<string name="eula_message_copyright"
translation_description="The copyright in the Google mobile terms of service. See
http://m.google.com/toscountry.">
©2011
</string>
<string name="eula_message_date"
translation_description="The date in the Google mobile terms of service. See
http://m.google.com/toscountry.">
@@ -583,7 +594,7 @@ limitations under the License.
<string name="generic_progress_title"
translation_description="The title on a progress dialog asking the user to wait.
Screenshot: sc_card_progress_write_file.png">
Screenshot: sd_card_progress_write_file.png">
Please wait...
</string>
<string name="generic_save"
@@ -593,7 +604,7 @@ limitations under the License.
<string name="generic_success_title"
translation_description="The title on an alert dialog indicating success.
Screenshot: sc_card_success_write_file.png">
Screenshot: sd_card_success_write_file.png">
Success
</string>
<string name="generic_yes"
@@ -966,7 +977,7 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: my_tracks_recording_service.png">
Track recording service
Recording service
</string>
<!-- Permission -->
@@ -1076,7 +1087,7 @@ limitations under the License.
translation_description="When reading from the SD card, the success message when finish reading
from the SD card.
Screenshot: sc_card_success_read_file.png">
Screenshot: sd_card_success_read_file.png">
Finished reading from the SD card.
</string>
<string name="sd_card_success_write_file"
@@ -1118,8 +1129,9 @@ limitations under the License.
translation_description="When sending a track to Google Maps, the radio option to use an
existing map as opposed to create a new map.
Character limit: ~21 (1 line)
Screenshot: send_google_choose_service.png">
Use an existing map
Use existing map
</string>
<string name="send_google_fusion_tables"
translation_description="When sending a track to Google, under the 'Send to...' dialog, the
@@ -1139,8 +1151,9 @@ limitations under the License.
translation_description="When sending a track to Google Maps, the radio option to create a
new map as opposed to use an existing map.
Character limit: ~21 (1 line)
Screenshot: send_google_choose_service.png">
Create a new map
Create new map
</string>
<string name="send_google_no_account_message"
translation_description="When sending to Google, the dialog message when no Google account is
@@ -1294,7 +1307,7 @@ limitations under the License.
<string name="sensor_state_heart_rate_value"
translation_description="In the 'Sensor state' page, the value for the 'Heart rate'. E.g.,
'Hear rate: 100 bpm'.
%1$d: a number. E.g., '100'.">
%1$d bpm
</string>
@@ -1337,7 +1350,7 @@ limitations under the License.
Backup
</string>
<string name="settings_backup_now"
translation_description="In the 'Backup' settings, under the 'SD card backup' section, the
translation_description="In the 'Backup' settings, under the 'SD card' section, the
option to backup to the SD card now.
Character limit: ~26 (1 line)
@@ -1353,7 +1366,7 @@ limitations under the License.
Writing all tracks and settings to the SD card. This may take a while...
</string>
<string name="settings_backup_now_summary"
translation_description="In the 'Backup' settings, under the 'SD card backup' section, the
translation_description="In the 'Backup' settings, under the 'SD card' section, the
summary for the 'Backup now' option explaining that all tracks and settings will be written to
the SD card.
@@ -1361,7 +1374,7 @@ limitations under the License.
Write a full copy of all your tracks and settings to the SD card.
</string>
<string name="settings_backup_restore"
translation_description="In the 'Backup' settings, under the 'SD card backup' section, the
translation_description="In the 'Backup' settings, under the 'SD card' section, the
option to restore everything from the SD card.
Character limit: ~26 (1 line)
@@ -1400,11 +1413,10 @@ limitations under the License.
Select a backup to restore
</string>
<string name="settings_backup_restore_summary"
translation_description="In the 'Backup' settings, under the 'SD card backup' section, the
translation_description="In the 'Backup' settings, under the 'SD card' section, the
summary for the 'Restore now' option explaining that it restores all tracks and settings from
the SD card.
Character limit: ~26 (1 line)
Screenshot: settings_backup.png">
Restore all tracks and settings from the SD card.
</string>
@@ -1414,7 +1426,7 @@ limitations under the License.
Character limit: ~40 (1 line)
Screenshot: settings_backup.png">
SD card backup
SD card
</string>
<string name="settings_display"
translation_description="In the 'Settings' page, the option to change the display related
@@ -1429,17 +1441,17 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_display.png">
Use metric units
Use metric
</string>
<string name="settings_display_metric_summary_off"
translation_description="In the 'Display' settings, the summary for the 'Use metric units'
translation_description="In the 'Display' settings, the summary for the 'Use metric'
checkbox when it is unchecked explaining using the imperial units to display distances.
Screenshot: settings_display_unchecked.png">
Use imperial units to display distances.
</string>
<string name="settings_display_metric_summary_on"
translation_description="In the 'Display' settings, the summary for the 'Use metric units'
translation_description="In the 'Display' settings, the summary for the 'Use metric'
checkbox when it is checked explaining using the metric units to display distances.
Screenshot: settings_display.png">
@@ -1475,10 +1487,10 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_display.png">
Track color mode
Color mode
</string>
<string name="settings_display_track_color_dynamic"
translation_description="In the 'Display' settings, for the 'Track color mode' dropdown, the
translation_description="In the 'Display' settings, for the 'Color mode' dropdown, the
option to use different colors to color a track based on dynamically determined speed
thresholds. E.g., use one color when the speed is below the slow speed threshold.
@@ -1489,17 +1501,17 @@ limitations under the License.
<string name="settings_display_track_color_dynamic_medium"
translation_description="In the 'Display' settings, under the 'Dynamic thresholds'
configurations, the option for configuring the percentage from the average speed for the
medium speed range. The track color mode will use different colors to color a track depending
medium speed range. The color mode will use different colors to color a track depending
on whether the speed is above, in, or below the medium speed range.
Character limit: ~23 (1 line)
Screenshot: settings_display.png">
Percentage from average
Percentage
</string>
<string name="settings_display_track_color_dynamic_medium_summary"
translation_description="In the 'Display' settings, under the 'Dynamic thresholds'
configurations, the summary for the 'Percentage from average' option explaining that it sets
the percentage from the average speed for the medium speed range. The track color mode will
configurations, the summary for the 'Percentage' option explaining that it sets
the percentage from the average speed for the medium speed range. The color mode will
use different colors to color a track depending on whether the speed is above, in, or below
the medium speed range.
@@ -1507,7 +1519,7 @@ limitations under the License.
Percentage from the average speed for the medium speed range.
</string>
<string name="settings_display_track_color_fixed"
translation_description="In the 'Display' settings, for the 'Track color mode' dropdown, the
translation_description="In the 'Display' settings, for the 'Color mode' dropdown, the
option to use different colors to color a track based on fixed speed thresholds. E.g., use
one color when the speed is below the slow speed threshold.
@@ -1523,11 +1535,11 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_display.png">
Medium speed threshold
Medium speed
</string>
<string name="settings_display_track_color_fixed_medium_summary"
translation_description="In the 'Display' settings, under the 'Fixed thresholds' configurations,
the summary for the 'Medium speed threshold' option explaining that it sets a cutoff speed
the summary for the 'Medium speed' option explaining that it sets a cutoff speed
for the medium speed color.
Screenshot: settings_display.png">
@@ -1540,18 +1552,18 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_display.png">
Slow speed threshold
Slow speed
</string>
<string name="settings_display_track_color_fixed_slow_summary"
translation_description="In the 'Display' settings, under the 'Fixed thresholds' configurations,
the summary for the 'Slow speed threshold' option explaining that it sets a cutoff speed for
the summary for the 'Slow speed' option explaining that it sets a cutoff speed for
the slow speed color.
Screenshot: settings_display.png">
Slow speed top value.
</string>
<string name="settings_display_track_color_single"
translation_description="In the 'Display' settings, for the 'Track color mode' dropdown, the
translation_description="In the 'Display' settings, for the 'Color mode' dropdown, the
option to use a single color for all speeds.
Character limit: ~21 (1 line)
@@ -1559,7 +1571,7 @@ limitations under the License.
Single color
</string>
<string name="settings_display_track_color_summary"
translation_description="In the 'Display' settings, the summary for the 'Track color mode'
translation_description="In the 'Display' settings, the summary for the 'Color mode'
dropdown explaining that it configures how colors are used to color a track based on
slow, medium, and fast speed.
@@ -1587,10 +1599,10 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_bottom.png">
Auto-resume timeout
Auto-resume
</string>
<string name="settings_recording_auto_resume_summary"
translation_description="In the 'Recording' settings, the summary for the 'Auto-resume timeout'
translation_description="In the 'Recording' settings, the summary for the 'Auto-resume'
dropdown option explaining that it configures the maximum time after which a previous
recording will not be resumed after phone reboot.
@@ -1603,11 +1615,11 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_bottom.png">
Default activity type
Default activity
</string>
<string name="settings_recording_default_activity_summary"
translation_description="In the 'Recording' settings, the summary for the 'Default activity
type' option explaining that it sets the default activity type for a new track.
translation_description="In the 'Recording' settings, the summary for the 'Default activity'
option explaining that it sets the default activity type for a new track.
Screenshot: settings_recording_bottom.png">
Default activity type for a new track.
@@ -1618,11 +1630,11 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_top.png">
Distance between points
Distance interval
</string>
<string name="settings_recording_distance_summary"
translation_description="In the 'Recording' settings, the summary for the 'Distance between
points' dropdown option explaining that it configures the smallest distance between two
translation_description="In the 'Recording' settings, the summary for the 'Distance interval'
dropdown option explaining that it configures the smallest distance between two
recordings of your position.
Screenshot: settings_recording_top.png">
@@ -1651,10 +1663,10 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_top.png">
Time between points
Time interval
</string>
<string name="settings_recording_interval_summary"
translation_description="In the 'Recording' settings, the summary for the 'Time between points'
translation_description="In the 'Recording' settings, the summary for the 'Time interval'
dropdown option explaining that it configures the smallest time interval between two
recordings of your position.
@@ -1667,10 +1679,10 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_top.png">
Marker frequency
Marker
</string>
<string name="settings_recording_marker_summary"
translation_description="In the 'Recording' settings, the summary for the 'Marker frequency'
translation_description="In the 'Recording' settings, the summary for the 'Marker'
dropdown option explaining that it configures the time or distance after which a new marker
will be inserted.
@@ -1683,19 +1695,18 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_bottom.png">
Use time for track name
Use timestamp
</string>
<string name="settings_recording_name_summary_off"
translation_description="In the 'Recording' settings, the summary for the 'Use time for track
name' checkbox when it is unchecked explaining using a number as the default track name.
translation_description="In the 'Recording' settings, the summary for the 'Use timestamp'
checkbox when it is unchecked explaining using a number as the default track name.
Screenshot: settings_recording_bottom_unchecked.png">
Use a number as the default track name.
</string>
<string name="settings_recording_name_summary_on"
translation_description="In the 'Recording' settings, the summary for the 'Use time for track
name' checkbox when it is checked explaining using the track's start time as the default track
name.
translation_description="In the 'Recording' settings, the summary for the 'Use timestamp'
checkbox when it is checked explaining using the track's start time as the default track name.
Screenshot: settings_recording_bottom.png">
Use the track\'s start time as the default track name.
@@ -1706,15 +1717,16 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_top.png">
Distance between tracks
Max interval
</string>
<string name="settings_recording_track_distance_summary"
translation_description="In the 'Recording' settings, the summary for the 'Distance between
tracks' dropdown option explaining that it configures the maximum distance for two recorded
translation_description="In the 'Recording' settings, the summary for the 'Max interval'
dropdown option explaining that it configures the maximum distance for two recorded
points for them to be still considered as the same track.
Screenshot: settings_recording_top.png">
Track will be split if two recordings of your position are further than this.
Maximum distance between two recordings of your position. If two positions are further than
this, the track will be split.
</string>
<string name="settings_recording_voice"
translation_description="In the 'Recording' settings, the dropdown option to configure the voice
@@ -1722,17 +1734,17 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_recording_top.png">
Voice frequency
Voice
</string>
<string name="settings_recording_voice_not_available"
translation_description="In the 'Recording' settings, the summary for the 'Voice frequency'
translation_description="In the 'Recording' settings, the summary for the 'Voice'
explaining that this option is not available on your Android phone.
Screenshot: settings_recording_voice_not_available.png">
Voice announcement is not available on your Android phone.
</string>
<string name="settings_recording_voice_summary"
translation_description="In the 'Recording' settings, the summary for the 'Voice frequency'
translation_description="In the 'Recording' settings, the summary for the 'Voice'
dropdown option explaining that it configures the time or distance between two voice
announcements.
@@ -1744,10 +1756,10 @@ limitations under the License.
Character limit: ~26 (1 line)
Screenshot: settings.png">
Reset to defaults
Reset
</string>
<string name="settings_reset_dialog_message"
translation_description="In the 'Settings' page, after pressing the 'Reset to defaults' option,
translation_description="In the 'Settings' page, after pressing the 'Reset' option,
the confirmation dialog asking the user to confirm reverting all settings to defaults. But
the saved tracks will be preserved.
@@ -1756,7 +1768,7 @@ limitations under the License.
preserved. Are you sure?
</string>
<string name="settings_reset_done"
translation_description="In the 'Settings' page, after pressing the 'Reset to defaults' option,
translation_description="In the 'Settings' page, after pressing the 'Reset' option,
the confirmation dialog informing the user that all settings have been reverted to their
defaults.
@@ -1764,7 +1776,7 @@ limitations under the License.
All settings have been reverted to their defaults.
</string>
<string name="settings_reset_summary"
translation_description="In the 'Settings' page, the summary for the 'Reset to defaults' option
translation_description="In the 'Settings' page, the summary for the 'Reset' option
explaining reverting all the settings to the default values.
Screenshot: settings.png">
@@ -1854,7 +1866,7 @@ limitations under the License.
Character limit: ~21 (1 line)
Screenshot: settings_sensor_type.png">
ANT+ heart rate sensor
ANT+ heart rate
</string>
<string name="settings_sensor_type_none"
translation_description="In the 'Sensor' settings, for the 'Sensor type' dropdown, the option to
@@ -1875,7 +1887,7 @@ limitations under the License.
</string>
<string name="settings_sensor_type_srm"
translation_description="In the 'Sensor' settings, for the 'Sensor type' dropdown, the option to
connect to a SRM ANT+ bridge. Do not trasnlate SRM, the company name, but can translate
connect to a SRM ANT+ bridge. Do not translate SRM, the company name, but can translate
ANT+, the radio standard, and bridge (network bridge).
Character limit: ~21 (1 line)
@@ -1904,11 +1916,11 @@ limitations under the License.
Character limit: ~26 (1 line)
Screenshot: settings_sensor.png">
Unpair ANT+ heart rate sensor
Unpair ANT+ heart rate
</string>
<string name="settings_sensor_unpair_srm"
translation_description="In the 'Sensor' settings, under the 'ANT+ options' configurations, the
option to unpair a SRM ANT+ bridge. Do not trasnlate SRM, the company name, but can translate
option to unpair a SRM ANT+ bridge. Do not translate SRM, the company name, but can translate
ANT+, the radio standard, and bridge (network bridge).
Character limit: ~26 (1 line)
@@ -1963,10 +1975,10 @@ limitations under the License.
Character limit: ~23 (1 line)
Screenshot: settings_sharing.png">
Make new maps public
New maps public
</string>
<string name="settings_sharing_map_public_summary_off"
translation_description="In the 'Sharing' settings, the summary for the 'Make new maps public'
translation_description="In the 'Sharing' settings, the summary for the 'New maps public'
checkbox option when it is unchecked explaining that new maps created in Google Maps will
be unlisted, as opposed to public.
@@ -1974,7 +1986,7 @@ limitations under the License.
Make new maps created in Google Maps unlisted.
</string>
<string name="settings_sharing_map_public_summary_on"
translation_description="In the 'Sharing' settings, the summary for the 'Make new maps public'
translation_description="In the 'Sharing' settings, the summary for the 'New maps public'
checkbox option when it is checked explaining that new maps created in Google Maps will
be public, as opposed to unlisted.
@@ -2711,7 +2723,7 @@ limitations under the License.
%2$s: time string. E.g., '1 hour and 30 minutes' or '20 minutes 1 second'
%3$s: speed/pace string. For speed, e.g., '2.2 miles per hour', '1 kilometer per hour'. For
pace, e.g., '2 hours 1 minute per mile', '30 minutes 1 second per kilometer'.">
My Tracks total distance %1$s in %2$s at %3$s.
My Tracks %1$s in %2$s at %3$s.
</string>
<string name="voice_total_distance_kilometers_few"
translation_description="For voice announcement, to say total distance 'few' kilometers.
+68 -33
View File
@@ -15,33 +15,33 @@ See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<!-- About dialog TableRow -->
<style name="AboutTableRow">
<item name="android:paddingBottom">2dp</item>
</style>
<!-- About dialog TextView -->
<style name="AboutTextView">
<!-- About page label -->
<style name="AboutLabel">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textSize">20sp</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:paddingBottom">2dp</item>
<item name="android:textSize">20sp</item>
</style>
<!-- About dialog TextView column 0 -->
<style name="AboutTextView.Column0">
<item name="android:gravity">right</item>
<item name="android:layout_column">0</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:paddingRight">10dp</item>
<!-- About page item -->
<style name="AboutItem">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:paddingBottom">2dp</item>
<item name="android:paddingLeft">20dp</item>
<item name="android:textSize">18sp</item>
</style>
<!-- About dialog TextView Url -->
<style name="AboutTextView.Url">
<!-- About page url -->
<style name="AboutUrl">
<item name="android:autoLink">web</item>
<item name="android:textSize">18sp</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:paddingBottom">2dp</item>
<item name="android:paddingLeft">20dp</item>
<item name="android:textSize">18sp</item>
</style>
<!-- Button -->
<style name="Button">
<item name="android:layout_height">fill_parent</item>
@@ -50,7 +50,7 @@ limitations under the License.
<item name="android:maxLines">2</item>
<item name="android:textSize">14dip</item>
</style>
<!-- Button layout -->
<style name="ButtonLayout">
<item name="android:background">@drawable/list_bar</item>
@@ -61,7 +61,7 @@ limitations under the License.
<item name="android:paddingRight">2dip</item>
<item name="android:paddingTop">4dip</item>
</style>
<!-- Button spacer -->
<style name="ButtonSpacer">
<item name="android:layout_height">wrap_content</item>
@@ -70,7 +70,42 @@ limitations under the License.
<item name="android:orientation">horizontal</item>
<item name="android:visibility">gone</item>
</style>
<!-- Chart settings axis image -->
<style name="ChartSettingsAxisImage">
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_width">wrap_content</item>
</style>
<!-- Chart settings axis layout -->
<style name="ChartSettingsAxisLayout">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:orientation">horizontal</item>
</style>
<!-- Chart settings axis text -->
<style name="ChartSettingsAxisText">
<item name="android:gravity">bottom</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:textSize">20sp</item>
</style>
<!-- Chart settings checkbox -->
<style name="ChartSettingsCheckbox">
<item name="android:checked">true</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>
<!-- Chart settings radio button -->
<style name="ChartSettingsRadioButton">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
</style>
<style name="SensorStateLabel">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">fill_parent</item>
@@ -95,7 +130,7 @@ limitations under the License.
<item name="android:layout_height">3dip</item>
<item name="android:layout_width">fill_parent</item>
</style>
<!-- The style for a text view for displaying a value on the statistics activity. -->
<style name="StatsRegister" parent="@android:Widget.TextView">
<item name="android:gravity">right</item>
@@ -130,7 +165,7 @@ limitations under the License.
<item name="android:layout_width">5dip</item>
<item name="android:textSize">40sp</item>
</style>
<!-- The style for the unit on the statistics activity. -->
<style name="StatsUnit" parent="@android:Widget.TextView">
<item name="android:gravity">bottom</item>
@@ -147,8 +182,8 @@ limitations under the License.
<item name="android:layout_marginBottom">-9dip</item>
<item name="android:layout_marginTop">-9dip</item>
<item name="android:textColor">@color/stat_label_text</item>
</style>
</style>
<!-- Welcome page TextView -->
<style name="WelcomeTextView">
<item name="android:layout_height">wrap_content</item>
@@ -157,13 +192,13 @@ limitations under the License.
<item name="android:paddingRight">10sp</item>
<item name="android:textColor">@color/black</item>
<item name="android:textSize">16sp</item>
</style>
</style>
<!-- Welcome page TextView question -->
<style name="WelcomeTextView.Question">
<item name="android:paddingTop">10sp</item>
<item name="android:textStyle">bold</item>
</style>
</style>
<!-- Widget TextView -->
<style name="WidgetTextView">
@@ -172,9 +207,9 @@ limitations under the License.
<item name="android:textColor">@color/appwidget_text</item>
<item name="android:textSize">14sp</item>
</style>
<!-- Widget TextView value -->
<style name="WidgetTextView.Value">
<item name="android:width">160px</item>
</style>
</resources>
</resources>
+27 -27
View File
@@ -32,7 +32,7 @@ limitations under the License.
android:summaryOn="@string/settings_display_speed_summary_on"
android:summaryOff="@string/settings_display_speed_summary_off"
android:defaultValue="true" />
<ListPreference android:key="@string/track_color_mode_key"
android:title="@string/settings_display_track_color"
android:summary="@string/settings_display_track_color_summary"
@@ -40,46 +40,46 @@ limitations under the License.
android:entryValues="@array/display_track_color_values"
android:defaultValue="@string/display_track_color_value_none"/>
<PreferenceCategory android:title="@string/settings_display_track_color_fixed"
<PreferenceCategory android:title="@string/settings_display_track_color_fixed"
android:key="@string/track_color_mode_fixed_speed_options_key">
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_slow_key"
android:title="@string/settings_display_track_color_fixed_slow"
android:summary="@string/settings_display_track_color_fixed_slow_summary"
android:defaultValue="9"
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_slow_key"
android:title="@string/settings_display_track_color_fixed_slow"
android:summary="@string/settings_display_track_color_fixed_slow_summary"
android:defaultValue="@string/color_mode_fixed_slow_default"
android:inputType="number"
android:maxLength="3">
</EditTextPreference>
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_slow_display_key"
android:title="@string/settings_display_track_color_fixed_slow"
android:summary="@string/settings_display_track_color_fixed_slow_summary"
android:defaultValue="9"
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_slow_display_key"
android:title="@string/settings_display_track_color_fixed_slow"
android:summary="@string/settings_display_track_color_fixed_slow_summary"
android:defaultValue="@string/color_mode_fixed_slow_default"
android:inputType="number"
android:maxLength="3">
</EditTextPreference>
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_medium_key"
android:title="@string/settings_display_track_color_fixed_medium"
android:summary="@string/settings_display_track_color_fixed_medium_summary"
android:defaultValue="15"
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_medium_key"
android:title="@string/settings_display_track_color_fixed_medium"
android:summary="@string/settings_display_track_color_fixed_medium_summary"
android:defaultValue="@string/color_mode_fixed_medium_default"
android:inputType="number"
android:maxLength="3">
</EditTextPreference>
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_medium_display_key"
android:title="@string/settings_display_track_color_fixed_medium"
android:summary="@string/settings_display_track_color_fixed_medium_summary"
android:defaultValue="15"
<EditTextPreference android:key="@string/track_color_mode_fixed_speed_medium_display_key"
android:title="@string/settings_display_track_color_fixed_medium"
android:summary="@string/settings_display_track_color_fixed_medium_summary"
android:defaultValue="@string/color_mode_fixed_medium_default"
android:inputType="number"
android:maxLength="3">
</EditTextPreference>
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_display_track_color_dynamic">
<EditTextPreference android:key="@string/track_color_mode_dynamic_speed_variation_key"
android:title="@string/settings_display_track_color_dynamic_medium"
android:summary="@string/settings_display_track_color_dynamic_medium_summary"
android:defaultValue="25"
<EditTextPreference android:key="@string/track_color_mode_dynamic_speed_variation_key"
android:title="@string/settings_display_track_color_dynamic_medium"
android:summary="@string/settings_display_track_color_dynamic_medium_summary"
android:defaultValue="@string/color_mode_dynamic_percentage_default"
android:inputType="number"
android:maxLength="2">
</EditTextPreference>
@@ -143,7 +143,7 @@ limitations under the License.
android:summaryOn="@string/settings_recording_name_summary_on"
android:summaryOff="@string/settings_recording_name_summary_off"
android:defaultValue="true" />
<com.google.android.apps.mytracks.AutoCompleteTextPreference
android:key="@string/default_activity_key"
android:title="@string/settings_recording_default_activity"
@@ -167,7 +167,7 @@ limitations under the License.
<ListPreference android:key="@string/bluetooth_sensor_key"
android:title="@string/settings_sensor_bluetooth_sensor"
android:summary="@string/settings_sensor_bluetooth_sensor_summary"
android:defaultValue="any" />
android:defaultValue="" />
<Preference android:key="@string/bluetooth_pairing_key"
android:title="@string/settings_sensor_bluetooth_pairing"
@@ -77,8 +77,8 @@ public class ChartActivity extends Activity implements TrackDataListener {
private double trackMaxSpeed;
// Modes of operation
private boolean metricUnits;
private boolean reportSpeed;
private boolean metricUnits = true;
private boolean reportSpeed = true;
/*
* UI elements:
@@ -240,6 +240,7 @@ public class ChartActivity extends Activity implements TrackDataListener {
private void prepareSettingsDialog(ChartSettingsDialog settingsDialog) {
settingsDialog.setMode(chartView.getMode());
settingsDialog.setDisplaySpeed(reportSpeed);
for (int i = 0; i < ChartView.NUM_SERIES; i++) {
settingsDialog.setSeriesEnabled(i, chartView.isChartValueSeriesEnabled(i));
}
@@ -452,26 +453,33 @@ public class ChartActivity extends Activity implements TrackDataListener {
@Override
public boolean onUnitsChanged(boolean metric) {
boolean changed = metric != this.metricUnits;
if (!changed) return false;
this.metricUnits = metric;
chartView.setMetricUnits(metric);
return true; // Reload data
if (metricUnits == metric) {
return false;
}
metricUnits = metric;
chartView.setMetricUnits(metricUnits);
runOnUiThread(new Runnable() {
@Override
public void run() {
chartView.requestLayout();
}
});
return true;
}
@SuppressWarnings("hiding")
@Override
public boolean onReportSpeedChanged(boolean reportSpeed) {
boolean changed = reportSpeed != this.reportSpeed;
if (!changed) return false;
this.reportSpeed = reportSpeed;
chartView.setReportSpeed(reportSpeed, this);
return true; // Reload data
public boolean onReportSpeedChanged(boolean speed) {
if (reportSpeed == speed) {
return false;
}
reportSpeed = speed;
chartView.setReportSpeed(speed, this);
runOnUiThread(new Runnable() {
@Override
public void run() {
chartView.requestLayout();
}
});
return true;
}
}
@@ -89,6 +89,15 @@ public class ChartSettingsDialog extends Dialog {
? R.id.chart_settings_by_distance
: R.id.chart_settings_by_time);
}
/**
* Sets whether to display speed or pace.
*
* @param displaySpeed true to display speed
*/
public void setDisplaySpeed(boolean displaySpeed) {
series[ChartView.SPEED_SERIES].setText(displaySpeed ? R.string.stat_speed : R.string.stat_pace);
}
public void setSeriesEnabled(int seriesIdx, boolean enabled) {
series[seriesIdx].setChecked(enabled);
@@ -91,7 +91,7 @@ public class ChartView extends View {
*/
private int bottomBorder;
private static final int RIGHT_BORDER = 17;
private static final int RIGHT_BORDER = 40;
/** Space to leave for drawing the unit labels */
private static final int UNIT_BORDER = 15;
@@ -116,7 +116,7 @@ public class ImportAllTracks {
Log.i(Constants.TAG, "ImportAllTracks: Releasing wake lock.");
}
activity.runOnUiThread(new Thread() {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
showDoneDialog();
@@ -219,7 +219,7 @@ public class ImportAllTracks {
* Attempts to import a GPX file. Returns true on success, issues error
* notifications and returns false on failure.
*/
private boolean importFile(File gpxFile, MyTracksProviderUtils providerUtils) {
private boolean importFile(final File gpxFile, MyTracksProviderUtils providerUtils) {
Log.i(Constants.TAG, "ImportAllTracks: importing: " + gpxFile.getName());
try {
importedTrackIds = GpxImporter.importGPXFile(new FileInputStream(gpxFile), providerUtils);
@@ -234,8 +234,13 @@ public class ImportAllTracks {
} catch (IOException e) {
Log.w(Constants.TAG, "Error reading file: " + gpxFile.getAbsolutePath(), e);
}
Toast.makeText(activity, activity.getString(R.string.import_error, gpxFile.getName()),
Toast.LENGTH_LONG).show();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(activity, activity.getString(R.string.import_error, gpxFile.getName()),
Toast.LENGTH_LONG).show();
}
});
return false;
}
@@ -118,7 +118,8 @@ public class StatsActivity extends Activity implements TrackDataListener {
sv.setScrollBarStyle(ScrollView.SCROLLBARS_OUTSIDE_INSET);
showUnknownLocation();
updateLabels();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
if (metrics.heightPixels > 600) {
@@ -153,24 +154,22 @@ public class StatsActivity extends Activity implements TrackDataListener {
@Override
public boolean onUnitsChanged(boolean metric) {
// Ignore if unchanged.
if (metric == utils.isMetricUnits()) return false;
if (utils.isMetricUnits() == metric) {
return false;
}
utils.setMetricUnits(metric);
updateLabels();
return true; // Reload data
return true;
}
@Override
public boolean onReportSpeedChanged(boolean displaySpeed) {
// Ignore if unchanged.
if (displaySpeed == utils.isReportSpeed()) return false;
utils.setReportSpeed(displaySpeed);
public boolean onReportSpeedChanged(boolean speed) {
if (utils.isReportSpeed() == speed) {
return false;
}
utils.setReportSpeed(speed);
updateLabels();
return true; // Reload data
return true;
}
private void updateLabels() {
@@ -36,27 +36,40 @@ import android.util.Log;
*/
public class DynamicSpeedTrackPathDescriptor
implements TrackPathDescriptor, OnSharedPreferenceChangeListener {
private int slowSpeed;
private int normalSpeed;
private int speedMargin;
private final int speedMarginDefault;
private double averageMovingSpeed;
private final Context context;
public DynamicSpeedTrackPathDescriptor(Context context){
this.context = context;
speedMarginDefault = Integer.parseInt(
context.getString(R.string.color_mode_dynamic_percentage_default));
SharedPreferences prefs = context.getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (prefs == null) {
speedMargin = 25;
speedMargin = speedMarginDefault;
return;
}
prefs.registerOnSharedPreferenceChangeListener(this);
speedMargin = Integer.parseInt(prefs.getString(
context.getString(R.string.track_color_mode_dynamic_speed_variation_key), "25"));
speedMargin = getSpeedMargin(prefs);
}
private int getSpeedMargin(SharedPreferences sharedPreferences) {
try {
return Integer.parseInt(sharedPreferences.getString(
context.getString(R.string.track_color_mode_dynamic_speed_variation_key),
Integer.toString(speedMarginDefault)));
} catch (NumberFormatException e) {
return speedMarginDefault;
}
}
/**
* Get the slow speed calculated based on the % below the average speed.
* @return The speed limit considered as slow.
@@ -88,15 +101,12 @@ public class DynamicSpeedTrackPathDescriptor
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (prefs == null) {
speedMargin = 25;
speedMargin = speedMarginDefault;
return;
}
speedMargin =
Integer.parseInt(
prefs.getString(
context.getString(R.string.track_color_mode_dynamic_speed_variation_key), "25"));
}
speedMargin = getSpeedMargin(prefs);
}
@Override
public boolean needsRedraw() {
@@ -34,32 +34,37 @@ import android.util.Log;
public class FixedSpeedTrackPathDescriptor implements TrackPathDescriptor, OnSharedPreferenceChangeListener {
private int slowSpeed;
private int normalSpeed;
private final int slowDefault;
private final int normalDefault;
private final Context context;
public FixedSpeedTrackPathDescriptor(Context context) {
this.context = context;
slowDefault = Integer.parseInt(context.getString(R.string.color_mode_fixed_slow_default));
normalDefault = Integer.parseInt(context.getString(R.string.color_mode_fixed_medium_default));
SharedPreferences prefs = context.getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (prefs == null) {
slowSpeed = 9;
normalSpeed = 17;
slowSpeed = slowDefault;
normalSpeed = normalDefault;
return;
}
prefs.registerOnSharedPreferenceChangeListener(this);
try {
slowSpeed = Integer.parseInt(prefs.getString(context.getString(
R.string.track_color_mode_fixed_speed_slow_key), "9"));
R.string.track_color_mode_fixed_speed_slow_key), Integer.toString(slowDefault)));
} catch (NumberFormatException e) {
slowSpeed = 9;
slowSpeed = slowDefault;
}
try {
normalSpeed = Integer.parseInt(prefs.getString(context.getString(
R.string.track_color_mode_fixed_speed_medium_key), "17"));
R.string.track_color_mode_fixed_speed_medium_key), Integer.toString(normalDefault)));
} catch (NumberFormatException e) {
normalSpeed = 17;
normalSpeed = normalDefault;
}
}
@@ -90,22 +95,22 @@ public class FixedSpeedTrackPathDescriptor implements TrackPathDescriptor, OnSha
SharedPreferences prefs = context.getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
if (prefs == null) {
slowSpeed = 9;
normalSpeed = 17;
slowSpeed = slowDefault;
normalSpeed = normalDefault;
return;
}
try {
slowSpeed = Integer.parseInt(prefs.getString(context.getString(
R.string.track_color_mode_fixed_speed_slow_key), "9"));
R.string.track_color_mode_fixed_speed_slow_key), Integer.toString(slowDefault)));
} catch (NumberFormatException e) {
slowSpeed = 9;
slowSpeed = slowDefault;
}
try {
normalSpeed = Integer.parseInt(prefs.getString(context.getString(
R.string.track_color_mode_fixed_speed_medium_key), "17"));
R.string.track_color_mode_fixed_speed_medium_key), Integer.toString(normalDefault)));
} catch (NumberFormatException e) {
normalSpeed = 17;
normalSpeed = normalDefault;
}
}
@@ -130,8 +130,8 @@ public class BluetoothSensorManager extends SensorManager {
SharedPreferences prefs = context.getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
String address =
prefs.getString(context.getString(R.string.bluetooth_sensor_key), null);
if (address == null) {
prefs.getString(context.getString(R.string.bluetooth_sensor_key), "");
if (address.isEmpty()) {
return;
}
Log.w(Constants.TAG, "Connecting to bluetooth sensor: " + address);
@@ -30,7 +30,6 @@ public class EulaUtil {
// Accepting Google mobile terms of service
private static final String EULA_PREFERENCE_KEY = "eula.google_mobile_tos_accepted";
private static final String COPYRIGHT = "©2011";
private static final String HOST_NAME = "m.google.com";
private EulaUtil() {}
@@ -71,6 +70,6 @@ public class EulaUtil {
+ "\n\n"
+ footer
+ "\n\n"
+ COPYRIGHT;
+ context.getString(R.string.eula_message_copyright);
}
}