Implement automatic restart of MyTracks on phone reboot.

In addition fix the following issues/add functionality:
0) Introduce MyTracksReceiver for listening on broadcast messages
1) Remove unnecessary call to VerifyChecker to avoid 403.
2) Clean up TrackRecordingService by adding private methods for common functionality
3) Fix a bug related to not canceling a timer after service was stopped
4) Add a new preference item to control behavior of new functionality
5) Add a unit test for the service (still need to figure out one issue with mocking content resolver).
This commit is contained in:
Bartlomiej Niechwiej
2010-09-28 22:46:24 -07:00
commit 4df6095089
236 changed files with 36215 additions and 0 deletions
+136
View File
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2010 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Display settings -->
<PreferenceScreen android:title="@string/settings_display">
<CheckBoxPreference
android:key="@string/metric_units_key"
android:title="@string/settings_metric_units"
android:summaryOn="@string/settings_metric_units_summary_on"
android:summaryOff="@string/settings_metric_units_summary_off"
android:defaultValue="true" />
<CheckBoxPreference
android:key="@string/report_speed_key"
android:title="@string/settings_report_speed_or_pace"
android:summaryOn="@string/settings_report_speed_or_pace_summary_on"
android:summaryOff="@string/settings_report_speed_or_pace_summary_off"
android:defaultValue="true" />
</PreferenceScreen>
<!-- Recording settings -->
<PreferenceScreen android:title="@string/settings_recording">
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/announcement_frequency_key"
android:title="@string/settings_announcement_frequency"
android:summary="@string/settings_announcement_frequency_summary"
android:entries="@array/task_frequency_options"
android:entryValues="@array/task_frequency_values"
android:defaultValue="-1" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/split_frequency_key"
android:title="@string/settings_split_frequency"
android:summary="@string/settings_split_frequency_summary"
android:entries="@array/split_frequency_options"
android:entryValues="@array/split_frequency_values"
android:defaultValue="0" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/min_recording_interval_key"
android:title="@string/settings_min_recording_interval"
android:summary="@string/settings_min_recording_interval_summary"
android:entries="@array/min_recording_interval_options"
android:entryValues="@array/min_recording_interval_values"
android:defaultValue="0" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/min_recording_distance_key"
android:title="@string/settings_min_recording_distance"
android:summary="@string/settings_min_recording_distance_summary"
android:entries="@array/min_recording_distance_options"
android:entryValues="@array/min_recording_distance_values"
android:defaultValue="5" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/max_recording_distance_key"
android:title="@string/settings_max_recording_distance"
android:summary="@string/settings_max_recording_distance_summary"
android:entries="@array/max_recording_distance_options"
android:entryValues="@array/max_recording_distance_values"
android:defaultValue="200" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/min_required_accuracy_key"
android:title="@string/settings_min_required_accuracy"
android:summary="@string/settings_min_required_accuracy_summary"
android:entries="@array/min_required_accuracy_options"
android:entryValues="@array/min_required_accuracy_values"
android:defaultValue="200" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/signal_sampling_frequency_key"
android:title="@string/settings_signal_sampling_frequency"
android:summary="@string/settings_signal_sampling_frequency_summary"
android:entries="@array/task_frequency_options"
android:entryValues="@array/task_frequency_values"
android:defaultValue="-1" />
<com.google.android.apps.mytracks.IntegerListPreference
android:key="@string/auto_resume_track_timeout_key"
android:title="@string/settings_auto_resume_track_timeout"
android:summary="@string/settings_auto_resume_track_timeout_summary"
android:entries="@array/auto_resume_track_timeout_options"
android:entryValues="@array/auto_resume_track_timeout_values"
android:defaultValue="10" />
</PreferenceScreen>
<!-- Sharing settings -->
<PreferenceScreen android:title="@string/settings_sharing">
<CheckBoxPreference
android:key="@string/default_map_public_key"
android:title="@string/settings_map_public"
android:summaryOn="@string/settings_map_public_summary_on"
android:summaryOff="@string/settings_map_public_summary_off"
android:defaultValue="true" />
<CheckBoxPreference
android:key="@string/share_url_only_key"
android:title="@string/settings_share_url_only"
android:summaryOn="@string/settings_share_url_only_summary_on"
android:summaryOff="@string/settings_share_url_only_summary_off"
android:defaultValue="false" />
</PreferenceScreen>
<!-- Backup settings -->
<PreferenceScreen android:title="@string/settings_backup">
<PreferenceCategory android:title="@string/settings_sd_backup">
<Preference
android:key="@string/backup_to_sd_key"
android:title="@string/settings_backup_to_sd"
android:summary="@string/settings_backup_to_sd_summary"
android:persistent="false" />
<Preference
android:key="@string/restore_from_sd_key"
android:title="@string/settings_restore_from_sd"
android:summary="@string/settings_restore_from_sd_summary"
android:persistent="false" />
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>