Inline methods in PreferencesUtils.

Donot want to have a pair of getter and setting for each preference.
This commit is contained in:
Jimmy Shih
2012-05-02 12:23:32 -07:00
parent 81281e560e
commit 234f1f4a0a
25 changed files with 84 additions and 231 deletions
@@ -21,6 +21,7 @@ import com.google.android.apps.mytracks.io.file.GpxImporter;
import com.google.android.apps.mytracks.util.FileUtils; import com.google.android.apps.mytracks.util.FileUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.apps.mytracks.util.SystemUtils; import com.google.android.apps.mytracks.util.SystemUtils;
import com.google.android.maps.mytracks.R;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.PowerManager.WakeLock; import android.os.PowerManager.WakeLock;
@@ -82,7 +83,7 @@ public class ImportAsyncTask extends AsyncTask<Void, Integer, Boolean> {
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(importActivity); myTracksProviderUtils = MyTracksProviderUtils.Factory.get(importActivity);
// Get the wake lock if not recording // Get the wake lock if not recording
if (PreferencesUtils.getRecordingTrackId(importActivity) == -1L) { if (PreferencesUtils.getLong(importActivity, R.string.recording_track_id_key) == -1L) {
wakeLock = SystemUtils.acquireWakeLock(importActivity, wakeLock); wakeLock = SystemUtils.acquireWakeLock(importActivity, wakeLock);
} }
@@ -86,7 +86,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
// Note that key can be null // Note that key can be null
if (PreferencesUtils.getRecordingTrackIdKey(MarkerListActivity.this).equals(key)) { if (PreferencesUtils.getKey(MarkerListActivity.this, R.string.recording_track_id_key).equals(key)) {
updateMenu(); updateMenu();
} }
} }
@@ -188,7 +188,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
private void updateMenu() { private void updateMenu() {
if (insertMarkerMenuItem != null) { if (insertMarkerMenuItem != null) {
insertMarkerMenuItem.setVisible(trackId == PreferencesUtils.getRecordingTrackId(this)); insertMarkerMenuItem.setVisible(trackId == PreferencesUtils.getLong(this, R.string.recording_track_id_key));
} }
} }
@@ -66,7 +66,7 @@ public class SaveAllAsyncTask extends AsyncTask<Void, Integer, Boolean> {
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(saveAllActivity); myTracksProviderUtils = MyTracksProviderUtils.Factory.get(saveAllActivity);
// Get the wake lock if not recording // Get the wake lock if not recording
if (PreferencesUtils.getRecordingTrackId(saveAllActivity) == -1L) { if (PreferencesUtils.getLong(saveAllActivity, R.string.recording_track_id_key) == -1L) {
wakeLock = SystemUtils.acquireWakeLock(saveAllActivity, wakeLock); wakeLock = SystemUtils.acquireWakeLock(saveAllActivity, wakeLock);
} }
success = false; success = false;
@@ -85,8 +85,8 @@ public class SearchListActivity extends AbstractMyTracksActivity {
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() { sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
if (PreferencesUtils.getRecordingTrackIdKey(SearchListActivity.this).equals(key)) { if (PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key).equals(key)) {
recordingTrackId = PreferencesUtils.getRecordingTrackId(SearchListActivity.this); recordingTrackId = PreferencesUtils.getLong(SearchListActivity.this, R.string.recording_track_id_key);
arrayAdapter.notifyDataSetChanged(); arrayAdapter.notifyDataSetChanged();
} }
} }
@@ -126,7 +126,7 @@ public class SearchListActivity extends AbstractMyTracksActivity {
SharedPreferences sharedPreferences = getSharedPreferences( SharedPreferences sharedPreferences = getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE); Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
recordingTrackId = PreferencesUtils.getRecordingTrackId(this); recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key);
listView = (ListView) findViewById(R.id.search_list); listView = (ListView) findViewById(R.id.search_list);
listView.setEmptyView(findViewById(R.id.search_list_empty)); listView.setEmptyView(findViewById(R.id.search_list_empty));
@@ -185,7 +185,7 @@ public class SearchListActivity extends AbstractMyTracksActivity {
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
metricUnits = PreferencesUtils.isMetricUnits(this); metricUnits = PreferencesUtils.getBoolean(this, R.string.metric_units_key, true);
} }
@Override @Override
@@ -131,7 +131,7 @@ public class SettingsActivity extends PreferenceActivity {
// Hook up switching of displayed list entries between metric and imperial // Hook up switching of displayed list entries between metric and imperial
// units // units
CheckBoxPreference metricUnitsPreference = CheckBoxPreference metricUnitsPreference =
(CheckBoxPreference) findPreference(PreferencesUtils.getMetricUnitsKey(this)); (CheckBoxPreference) findPreference(PreferencesUtils.getKey(this, R.string.metric_units_key));
metricUnitsPreference.setOnPreferenceChangeListener( metricUnitsPreference.setOnPreferenceChangeListener(
new OnPreferenceChangeListener() { new OnPreferenceChangeListener() {
@Override @Override
@@ -348,7 +348,7 @@ public class SettingsActivity extends PreferenceActivity {
// If recording, disable backup/restore/reset // If recording, disable backup/restore/reset
// (we don't want to get to inconsistent states) // (we don't want to get to inconsistent states)
boolean recording = PreferencesUtils.getRecordingTrackId(this) != -1; boolean recording = PreferencesUtils.getLong(this, R.string.recording_track_id_key) != -1;
backupNowPreference.setEnabled(!recording); backupNowPreference.setEnabled(!recording);
restoreNowPreference.setEnabled(!recording); restoreNowPreference.setEnabled(!recording);
resetPreference.setEnabled(!recording); resetPreference.setEnabled(!recording);
@@ -642,7 +642,7 @@ public class SettingsActivity extends PreferenceActivity {
* If the units are not metric convert the value before displaying. * If the units are not metric convert the value before displaying.
*/ */
private void viewTrackColorModeSettings(EditTextPreference preference, int id) { private void viewTrackColorModeSettings(EditTextPreference preference, int id) {
if (PreferencesUtils.isMetricUnits(this)) { if (PreferencesUtils.getBoolean(this, R.string.metric_units_key, true)) {
return; return;
} }
// Convert miles/h to km/h // Convert miles/h to km/h
@@ -663,7 +663,7 @@ public class SettingsActivity extends PreferenceActivity {
*/ */
private void validateTrackColorModeSettings(String newValue, int id) { private void validateTrackColorModeSettings(String newValue, int id) {
String metricspeed; String metricspeed;
if (PreferencesUtils.isMetricUnits(this)) { if (PreferencesUtils.getBoolean(this, R.string.metric_units_key, true)) {
metricspeed = newValue; metricspeed = newValue;
} else { } else {
// Convert miles/h to km/h // Convert miles/h to km/h
@@ -101,7 +101,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
// Note that key can be null // Note that key can be null
if (PreferencesUtils.getRecordingTrackIdKey(TrackDetailActivity.this).equals(key)) { if (PreferencesUtils.getKey(TrackDetailActivity.this, R.string.recording_track_id_key).equals(key)) {
updateMenu(); updateMenu();
} }
} }
@@ -438,7 +438,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity
* Updates the menu. * Updates the menu.
*/ */
private void updateMenu() { private void updateMenu() {
updateMenuItems(trackId == PreferencesUtils.getRecordingTrackId(this)); updateMenuItems(trackId == PreferencesUtils.getLong(this, R.string.recording_track_id_key));
} }
/** /**
@@ -119,12 +119,12 @@ public class TrackListActivity extends FragmentActivity {
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) { public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
boolean updateList = false; boolean updateList = false;
// Note that key can be null // Note that key can be null
if (PreferencesUtils.getMetricUnitsKey(TrackListActivity.this).equals(key)) { if (PreferencesUtils.getKey(TrackListActivity.this, R.string.metric_units_key).equals(key)) {
metricUnits = PreferencesUtils.isMetricUnits(TrackListActivity.this); metricUnits = PreferencesUtils.getBoolean(TrackListActivity.this, R.string.metric_units_key, true);
updateList = true; updateList = true;
} }
if (PreferencesUtils.getRecordingTrackIdKey(TrackListActivity.this).equals(key)) { if (PreferencesUtils.getKey(TrackListActivity.this, R.string.recording_track_id_key).equals(key)) {
recordingTrackId = PreferencesUtils.getRecordingTrackId(TrackListActivity.this); recordingTrackId = PreferencesUtils.getLong(TrackListActivity.this, R.string.recording_track_id_key);
if (TrackRecordingServiceConnectionUtils.isRecording( if (TrackRecordingServiceConnectionUtils.isRecording(
TrackListActivity.this, trackRecordingServiceConnection)) { TrackListActivity.this, trackRecordingServiceConnection)) {
trackRecordingServiceConnection.startAndBind(); trackRecordingServiceConnection.startAndBind();
@@ -176,8 +176,8 @@ public class TrackListActivity extends FragmentActivity {
SharedPreferences sharedPreferences = getSharedPreferences( SharedPreferences sharedPreferences = getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE); Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
metricUnits = PreferencesUtils.isMetricUnits(this); metricUnits = PreferencesUtils.getBoolean(this, R.string.metric_units_key, true);
recordingTrackId = PreferencesUtils.getRecordingTrackId(this); recordingTrackId = PreferencesUtils.getLong(this, R.string.recording_track_id_key);
ImageButton recordImageButton = (ImageButton) findViewById(R.id.track_list_record_button); ImageButton recordImageButton = (ImageButton) findViewById(R.id.track_list_record_button);
recordImageButton.setOnClickListener(new View.OnClickListener() { recordImageButton.setOnClickListener(new View.OnClickListener() {
@@ -274,14 +274,14 @@ public class TrackListActivity extends FragmentActivity {
EulaDialogFragment.newInstance(false) EulaDialogFragment.newInstance(false)
.show(getSupportFragmentManager(), EulaDialogFragment.EULA_DIALOG_TAG); .show(getSupportFragmentManager(), EulaDialogFragment.EULA_DIALOG_TAG);
} }
} else if (PreferencesUtils.isShowWelcomeDialog(this)) { } else if (PreferencesUtils.getBoolean(this, R.string.show_welcome_dialog_key, true)) {
Fragment fragment = getSupportFragmentManager() Fragment fragment = getSupportFragmentManager()
.findFragmentByTag(WelcomeDialogFragment.WELCOME_DIALOG_TAG); .findFragmentByTag(WelcomeDialogFragment.WELCOME_DIALOG_TAG);
if (fragment == null) { if (fragment == null) {
new WelcomeDialogFragment().show( new WelcomeDialogFragment().show(
getSupportFragmentManager(), WelcomeDialogFragment.WELCOME_DIALOG_TAG); getSupportFragmentManager(), WelcomeDialogFragment.WELCOME_DIALOG_TAG);
} }
} else if (PreferencesUtils.isShowCheckUnitsDialog(this)) { } else if (PreferencesUtils.getBoolean(this, R.string.show_check_units_dialog_key, true)) {
Fragment fragment = getSupportFragmentManager() Fragment fragment = getSupportFragmentManager()
.findFragmentByTag(CheckUnitsDialogFragment.CHECK_UNITS_DIALOG_TAG); .findFragmentByTag(CheckUnitsDialogFragment.CHECK_UNITS_DIALOG_TAG);
if (fragment == null) { if (fragment == null) {
@@ -294,9 +294,9 @@ public class TrackDataHub {
} }
private void loadSharedPreferences() { private void loadSharedPreferences() {
selectedTrackId = PreferencesUtils.getSelectedTrackId(context); selectedTrackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key);
metricUnits = PreferencesUtils.isMetricUnits(context); metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
reportSpeed = PreferencesUtils.isReportSpeed(context); reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true);
minRequiredAccuracy = preferences.getInt(MIN_REQUIRED_ACCURACY_KEY, minRequiredAccuracy = preferences.getInt(MIN_REQUIRED_ACCURACY_KEY,
DEFAULT_MIN_REQUIRED_ACCURACY); DEFAULT_MIN_REQUIRED_ACCURACY);
} }
@@ -372,7 +372,7 @@ public class TrackDataHub {
if (!isStarted()) { if (!isStarted()) {
loadSharedPreferences(); loadSharedPreferences();
} }
long recordingTrackId = PreferencesUtils.getRecordingTrackId(context); long recordingTrackId = PreferencesUtils.getLong(context, R.string.recording_track_id_key);
return recordingTrackId != -1L && recordingTrackId == selectedTrackId; return recordingTrackId != -1L && recordingTrackId == selectedTrackId;
} }
@@ -391,7 +391,7 @@ public class TrackDataHub {
// Save the selection to memory and flush. // Save the selection to memory and flush.
selectedTrackId = trackId; selectedTrackId = trackId;
PreferencesUtils.setSelectedTrackId(context, selectedTrackId); PreferencesUtils.setLong(context, R.string.selected_track_id_key, selectedTrackId);
// Force it to reload data from the beginning. // Force it to reload data from the beginning.
Log.d(TAG, "Loading track"); Log.d(TAG, "Loading track");
@@ -612,14 +612,14 @@ public class TrackDataHub {
if (MIN_REQUIRED_ACCURACY_KEY.equals(key)) { if (MIN_REQUIRED_ACCURACY_KEY.equals(key)) {
minRequiredAccuracy = preferences.getInt(MIN_REQUIRED_ACCURACY_KEY, minRequiredAccuracy = preferences.getInt(MIN_REQUIRED_ACCURACY_KEY,
DEFAULT_MIN_REQUIRED_ACCURACY); DEFAULT_MIN_REQUIRED_ACCURACY);
} else if (PreferencesUtils.getMetricUnitsKey(context).equals(key)) { } else if (PreferencesUtils.getKey(context, R.string.metric_units_key).equals(key)) {
metricUnits = PreferencesUtils.isMetricUnits(context); metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
notifyUnitsChanged(); notifyUnitsChanged();
} else if (PreferencesUtils.getReportSpeedKey(context).equals(key)) { } else if (PreferencesUtils.getKey(context, R.string.report_speed_key).equals(key)) {
reportSpeed = PreferencesUtils.isReportSpeed(context); reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true);
notifySpeedReportingChanged(); notifySpeedReportingChanged();
} else if (PreferencesUtils.getSelectedTrackIdKey(context).equals(key)) { } else if (PreferencesUtils.getKey(context, R.string.selected_track_id_key).equals(key)) {
loadTrack(PreferencesUtils.getSelectedTrackId(context)); loadTrack(PreferencesUtils.getLong(context, R.string.selected_track_id_key));
} }
} }
@@ -46,7 +46,7 @@ public class CheckUnitsDialogFragment extends DialogFragment {
public Dialog onCreateDialog(Bundle savedInstanceState) { public Dialog onCreateDialog(Bundle savedInstanceState) {
Locale defaultLocale = Locale.getDefault(); Locale defaultLocale = Locale.getDefault();
boolean defaultMetric = !defaultLocale.equals(Locale.US) && !defaultLocale.equals(Locale.UK); boolean defaultMetric = !defaultLocale.equals(Locale.US) && !defaultLocale.equals(Locale.UK);
PreferencesUtils.setMetricUnits(getActivity(), defaultMetric); PreferencesUtils.setBoolean(getActivity(), R.string.metric_units_key, defaultMetric);
final String metric = getString(R.string.preferred_units_metric); final String metric = getString(R.string.preferred_units_metric);
final String imperial = getString(R.string.preferred_units_imperial); final String imperial = getString(R.string.preferred_units_imperial);
final CharSequence[] items = defaultMetric ? new CharSequence[] { metric, imperial } final CharSequence[] items = defaultMetric ? new CharSequence[] { metric, imperial }
@@ -56,7 +56,7 @@ public class CheckUnitsDialogFragment extends DialogFragment {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
int position = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); int position = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
PreferencesUtils.setMetricUnits(getActivity(), items[position].equals(metric)); PreferencesUtils.setBoolean(getActivity(), R.string.metric_units_key, items[position].equals(metric));
onDone(); onDone();
} }
}) })
@@ -68,7 +68,7 @@ public class CheckUnitsDialogFragment extends DialogFragment {
* Tasks to perform when done. * Tasks to perform when done.
*/ */
private void onDone() { private void onDone() {
PreferencesUtils.setShowCheckUnitsDialog(getActivity()); PreferencesUtils.setBoolean(getActivity(), R.string.show_check_units_dialog_key, false);
TrackListActivity trackListActivity = (TrackListActivity) getActivity(); TrackListActivity trackListActivity = (TrackListActivity) getActivity();
trackListActivity.showStartupDialogs(); trackListActivity.showStartupDialogs();
} }
@@ -74,7 +74,7 @@ public class StatsFragment extends Fragment implements TrackDataListener {
@Override @Override
public void run() { public void run() {
Log.d(TAG, "UI update thread started"); Log.d(TAG, "UI update thread started");
while (PreferencesUtils.getRecordingTrackId(getActivity()) != -1L) { while (PreferencesUtils.getLong(getActivity(), R.string.recording_track_id_key) != -1L) {
getActivity().runOnUiThread(updateTotalTime); getActivity().runOnUiThread(updateTotalTime);
try { try {
Thread.sleep(1000L); Thread.sleep(1000L);
@@ -55,7 +55,7 @@ public class WelcomeDialogFragment extends DialogFragment {
} }
private void onDone() { private void onDone() {
PreferencesUtils.setShowWelcome(getActivity()); PreferencesUtils.setBoolean(getActivity(), R.string.show_welcome_dialog_key, false);
TrackListActivity trackListActivity = (TrackListActivity) getActivity(); TrackListActivity trackListActivity = (TrackListActivity) getActivity();
trackListActivity.showStartupDialogs(); trackListActivity.showStartupDialogs();
} }
@@ -270,7 +270,7 @@ public class SendDocsUtils {
Track track, String spreadsheetId, String worksheetId, String authToken, Context context) Track track, String spreadsheetId, String worksheetId, String authToken, Context context)
throws IOException { throws IOException {
String worksheetUri = String.format(GET_WORKSHEET_URI, spreadsheetId, worksheetId); String worksheetUri = String.format(GET_WORKSHEET_URI, spreadsheetId, worksheetId);
boolean metricUnits = PreferencesUtils.isMetricUnits(context); boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
addRow(worksheetUri, getRowContent(track, metricUnits, context), authToken); addRow(worksheetUri, getRowContent(track, metricUnits, context), authToken);
} }
@@ -205,7 +205,7 @@ public class SendFusionTablesAsyncTask extends AbstractSendAsyncTask {
private boolean uploadAllTrackPoints(Track track) { private boolean uploadAllTrackPoints(Track track) {
Cursor locationsCursor = null; Cursor locationsCursor = null;
try { try {
boolean metricUnits = PreferencesUtils.isMetricUnits(context); boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
locationsCursor = myTracksProviderUtils.getLocationsCursor(trackId, 0, -1, false); locationsCursor = myTracksProviderUtils.getLocationsCursor(trackId, 0, -1, false);
if (locationsCursor == null) { if (locationsCursor == null) {
@@ -258,7 +258,7 @@ public class SendMapsAsyncTask extends AbstractSendAsyncTask {
boolean uploadAllTrackPoints(Track track) { boolean uploadAllTrackPoints(Track track) {
Cursor locationsCursor = null; Cursor locationsCursor = null;
try { try {
boolean metricUnits = PreferencesUtils.isMetricUnits(context); boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
locationsCursor = myTracksProviderUtils.getLocationsCursor(trackId, 0, -1, false); locationsCursor = myTracksProviderUtils.getLocationsCursor(trackId, 0, -1, false);
if (locationsCursor == null) { if (locationsCursor == null) {
@@ -113,7 +113,7 @@ public class DynamicSpeedTrackPathDescriptor implements TrackPathDescriptor,
@Override @Override
public boolean needsRedraw() { public boolean needsRedraw() {
long selectedTrackId = PreferencesUtils.getSelectedTrackId(context); long selectedTrackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key);
if (selectedTrackId == -1L) { if (selectedTrackId == -1L) {
// Could not find track. // Could not find track.
return false; return false;
@@ -144,8 +144,8 @@ public class PreferenceManager implements OnSharedPreferenceChangeListener {
autoResumeTrackTimeoutKey, autoResumeTrackTimeoutKey,
Constants.DEFAULT_AUTO_RESUME_TRACK_TIMEOUT)); Constants.DEFAULT_AUTO_RESUME_TRACK_TIMEOUT));
} }
if (key == null || key.equals(PreferencesUtils.getRecordingTrackIdKey(service))) { if (key == null || key.equals(PreferencesUtils.getKey(service, R.string.recording_track_id_key))) {
long recordingTrackId = PreferencesUtils.getRecordingTrackId(service); long recordingTrackId = PreferencesUtils.getLong(service, R.string.recording_track_id_key);
// Only read the id if it is valid. // Only read the id if it is valid.
// Setting it to -1 should only happen in // Setting it to -1 should only happen in
// TrackRecordingService.endCurrentTrack() // TrackRecordingService.endCurrentTrack()
@@ -157,8 +157,8 @@ public class PreferenceManager implements OnSharedPreferenceChangeListener {
service.setSplitFrequency( service.setSplitFrequency(
sharedPreferences.getInt(splitFrequencyKey, 0)); sharedPreferences.getInt(splitFrequencyKey, 0));
} }
if (key == null || key.equals(PreferencesUtils.getMetricUnitsKey(service))) { if (key == null || key.equals(PreferencesUtils.getKey(service, R.string.metric_units_key))) {
service.setMetricUnits(PreferencesUtils.isMetricUnits(service)); service.setMetricUnits(PreferencesUtils.getBoolean(service, R.string.metric_units_key, true));
} }
} }
@@ -271,7 +271,7 @@ public class TrackRecordingService extends Service {
+ "Resetting an orphaned recording track = " + recordingTrackId); + "Resetting an orphaned recording track = " + recordingTrackId);
} }
recordingTrackId = -1L; recordingTrackId = -1L;
PreferencesUtils.setRecordingTrackId(this, recordingTrackId); PreferencesUtils.setLong(this, R.string.recording_track_id_key, recordingTrackId);
} }
showNotification(); showNotification();
} }
@@ -328,7 +328,7 @@ public class TrackRecordingService extends Service {
+ recordingTrack + ") doesn't exist or is too old"); + recordingTrack + ") doesn't exist or is too old");
isRecording = false; isRecording = false;
recordingTrackId = -1L; recordingTrackId = -1L;
PreferencesUtils.setRecordingTrackId(this, recordingTrackId); PreferencesUtils.setLong(this, R.string.recording_track_id_key, recordingTrackId);
stopSelfResult(startId); stopSelfResult(startId);
return; return;
} }
@@ -611,7 +611,7 @@ public class TrackRecordingService extends Service {
// Reset the number of auto-resume retries. // Reset the number of auto-resume retries.
setAutoResumeTrackRetries(0); setAutoResumeTrackRetries(0);
// Persist the current recording track. // Persist the current recording track.
PreferencesUtils.setRecordingTrackId(this, recordingTrackId); PreferencesUtils.setLong(this, R.string.recording_track_id_key, recordingTrackId);
// Notify the world that we're now recording. // Notify the world that we're now recording.
sendTrackBroadcast( sendTrackBroadcast(
@@ -1054,7 +1054,7 @@ public class TrackRecordingService extends Service {
showNotification(); showNotification();
long recordedTrackId = recordingTrackId; long recordedTrackId = recordingTrackId;
recordingTrackId = -1L; recordingTrackId = -1L;
PreferencesUtils.setRecordingTrackId(this, recordingTrackId); PreferencesUtils.setLong(this, R.string.recording_track_id_key, recordingTrackId);
if (sensorManager != null) { if (sensorManager != null) {
SensorManagerFactory.getInstance().releaseSensorManager(sensorManager); SensorManagerFactory.getInstance().releaseSensorManager(sensorManager);
@@ -150,8 +150,8 @@ public class StatusAnnouncerTask implements PeriodicTask {
*/ */
// @VisibleForTesting // @VisibleForTesting
protected String getAnnouncement(TripStatistics stats) { protected String getAnnouncement(TripStatistics stats) {
boolean metricUnits = PreferencesUtils.isMetricUnits(context); boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
boolean reportSpeed = PreferencesUtils.isReportSpeed(context); boolean reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true);
double d = stats.getTotalDistance() * UnitConversions.M_TO_KM; double d = stats.getTotalDistance() * UnitConversions.M_TO_KM;
double s = stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH; double s = stats.getAverageMovingSpeed() * UnitConversions.MS_TO_KMH;
@@ -47,7 +47,7 @@ public class ChartURLGenerator {
*/ */
public static String getChartUrl( public static String getChartUrl(
Vector<Double> distances, Vector<Double> elevations, Track track, Context context) { Vector<Double> distances, Vector<Double> elevations, Track track, Context context) {
boolean metricUnits = PreferencesUtils.isMetricUnits(context); boolean metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
return getChartUrl( return getChartUrl(
distances, elevations, track, context.getString(R.string.stats_elevation), metricUnits); distances, elevations, track, context.getString(R.string.stats_elevation), metricUnits);
} }
@@ -17,7 +17,6 @@
package com.google.android.apps.mytracks.util; package com.google.android.apps.mytracks.util;
import com.google.android.apps.mytracks.Constants; import com.google.android.apps.mytracks.Constants;
import com.google.android.maps.mytracks.R;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
@@ -32,161 +31,13 @@ public class PreferencesUtils {
private PreferencesUtils() {} private PreferencesUtils() {}
/**
* Gets the metric units key.
*
* @param context the context
*/
public static String getMetricUnitsKey(Context context) {
return getKey(context, R.string.metric_units_key);
}
/**
* Returns the metric units value.
*
* @param context the context
*/
public static boolean isMetricUnits(Context context) {
return getBoolean(context, R.string.metric_units_key, true);
}
/**
* Sets the metric units value.
*
* @param context the context
* @param value the value
*/
public static void setMetricUnits(Context context, boolean value) {
setBoolean(context, R.string.metric_units_key, value);
}
/**
* Gets the recording track id key.
*
* @param context the context
*/
public static String getRecordingTrackIdKey(Context context) {
return getKey(context, R.string.recording_track_id_key);
}
/**
* Gets the recording track id.
*
* @param context the context
*/
public static long getRecordingTrackId(Context context) {
return getLong(context, R.string.recording_track_id_key);
}
/**
* Sets the recording track id.
*
* @param context the context
* @param trackId the track id
*/
public static void setRecordingTrackId(Context context, long trackId) {
setLong(context, R.string.recording_track_id_key, trackId);
}
/**
* Gets the report speed key.
*
* @param context the context
*/
public static String getReportSpeedKey(Context context) {
return getKey(context, R.string.report_speed_key);
}
/**
* Returns the report speed value.
*
* @param context the context
*/
public static boolean isReportSpeed(Context context) {
return getBoolean(context, R.string.report_speed_key, true);
}
/**
* Sets the report speed value.
*
* @param context the context
* @param value the value
*/
public static void setReportSpeed(Context context, boolean value) {
setBoolean(context, R.string.report_speed_key, value);
}
/**
* Gets the selected track id key.
*
* @param context the context
*/
public static String getSelectedTrackIdKey(Context context) {
return getKey(context, R.string.selected_track_id_key);
}
/**
* Gets the selected track id.
*
* @param context the context
*/
public static long getSelectedTrackId(Context context) {
return getLong(context, R.string.selected_track_id_key);
}
/**
* Sets the selected track id.
*
* @param context the context
* @param trackId the track id
*/
public static void setSelectedTrackId(Context context, long trackId) {
setLong(context, R.string.selected_track_id_key, trackId);
}
/**
* Returns the show check units dialog value.
*
* @param context the context
*/
public static boolean isShowCheckUnitsDialog(Context context) {
return getBoolean(context, R.string.show_check_units_dialog_key, true);
}
/**
* Sets the show check units dialog value to false.
*
* @param context the context
*/
public static void setShowCheckUnitsDialog(Context context) {
setBoolean(context, R.string.show_check_units_dialog_key, false);
}
/**
* Returns the show welcomes dialog value.
*
* @param context the context
*/
public static boolean isShowWelcomeDialog(Context context) {
return getBoolean(context, R.string.show_welcome_dialog_key, true);
}
/**
* Sets the show welcome dialog value to false.
*
* @param context the context
*/
public static void setShowWelcome(Context context) {
setBoolean(context, R.string.show_welcome_dialog_key, false);
}
/** /**
* Gets a preference key * Gets a preference key
* *
* @param context the context * @param context the context
* @param keyId the key id * @param keyId the key id
*/ */
private static String getKey(Context context, int keyId) { public static String getKey(Context context, int keyId) {
return context.getString(keyId); return context.getString(keyId);
} }
@@ -224,7 +75,7 @@ public class PreferencesUtils {
* @param context the context * @param context the context
* @param keyId the key id * @param keyId the key id
*/ */
private static long getLong(Context context, int keyId) { public static long getLong(Context context, int keyId) {
SharedPreferences sharedPreferences = context.getSharedPreferences( SharedPreferences sharedPreferences = context.getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE); Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
return sharedPreferences.getLong(getKey(context, keyId), -1L); return sharedPreferences.getLong(getKey(context, keyId), -1L);
@@ -237,7 +88,7 @@ public class PreferencesUtils {
* @param keyId the key id * @param keyId the key id
* @param value the value * @param value the value
*/ */
private static void setLong(Context context, int keyId, long value) { public static void setLong(Context context, int keyId, long value) {
SharedPreferences sharedPreferences = context.getSharedPreferences( SharedPreferences sharedPreferences = context.getSharedPreferences(
Constants.SETTINGS_NAME, Context.MODE_PRIVATE); Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit(); Editor editor = sharedPreferences.edit();
@@ -86,7 +86,7 @@ public class TrackRecordingServiceConnectionUtils {
Log.e(TAG, "Failed to check if service is recording", e); Log.e(TAG, "Failed to check if service is recording", e);
} }
} }
return PreferencesUtils.getRecordingTrackId(context) != -1L; return PreferencesUtils.getLong(context, R.string.recording_track_id_key) != -1L;
} }
/** /**
@@ -106,7 +106,7 @@ public class TrackRecordingServiceConnectionUtils {
* Need to remember the recordingTrackId before calling endCurrentTrack. * Need to remember the recordingTrackId before calling endCurrentTrack.
* endCurrentTrack sets the value to -1L. * endCurrentTrack sets the value to -1L.
*/ */
long recordingTrackId = PreferencesUtils.getRecordingTrackId(context); long recordingTrackId = PreferencesUtils.getLong(context, R.string.recording_track_id_key);
trackRecordingService.endCurrentTrack(); trackRecordingService.endCurrentTrack();
if (recordingTrackId != -1L) { if (recordingTrackId != -1L) {
Intent intent = IntentUtils.newIntent(context, TrackEditActivity.class) Intent intent = IntentUtils.newIntent(context, TrackEditActivity.class)
@@ -118,7 +118,7 @@ public class TrackRecordingServiceConnectionUtils {
Log.e(TAG, "Unable to stop recording.", e); Log.e(TAG, "Unable to stop recording.", e);
} }
} else { } else {
PreferencesUtils.setRecordingTrackId(context, -1L); PreferencesUtils.setLong(context, R.string.recording_track_id_key, -1L);
} }
trackRecordingServiceConnection.stop(); trackRecordingServiceConnection.stop();
} }
@@ -134,7 +134,7 @@ public class TrackRecordingServiceConnectionUtils {
Context context, TrackRecordingServiceConnection trackRecordingServiceConnection) { Context context, TrackRecordingServiceConnection trackRecordingServiceConnection) {
trackRecordingServiceConnection.bindIfRunning(); trackRecordingServiceConnection.bindIfRunning();
if (!isRecordingServiceRunning(context)) { if (!isRecordingServiceRunning(context)) {
PreferencesUtils.setRecordingTrackId(context, -1L); PreferencesUtils.setLong(context, R.string.recording_track_id_key, -1L);
} }
} }
@@ -230,16 +230,16 @@ public class TrackWidgetProvider
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (key == null || key.equals(PreferencesUtils.getMetricUnitsKey(context))) { if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.metric_units_key))) {
metricUnits = PreferencesUtils.isMetricUnits(context); metricUnits = PreferencesUtils.getBoolean(context, R.string.metric_units_key, true);
} }
if (key == null || key.equals(PreferencesUtils.getReportSpeedKey(context))) { if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.report_speed_key))) {
reportSpeed = PreferencesUtils.isReportSpeed(context); reportSpeed = PreferencesUtils.getBoolean(context, R.string.report_speed_key, true);
} }
if (key == null || key.equals(PreferencesUtils.getSelectedTrackIdKey(context))) { if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.selected_track_id_key))) {
selectedTrackId = PreferencesUtils.getSelectedTrackId(context); selectedTrackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key);
Log.d(TAG, "TrackWidgetProvider setting selecting track from preference: " + selectedTrackId); Log.d(TAG, "TrackWidgetProvider setting selecting track from preference: " + selectedTrackId);
} }
} }
@@ -30,6 +30,7 @@ import com.google.android.apps.mytracks.content.TrackDataHub.ListenerDataType;
import com.google.android.apps.mytracks.content.TrackDataListener.ProviderState; import com.google.android.apps.mytracks.content.TrackDataListener.ProviderState;
import com.google.android.apps.mytracks.services.TrackRecordingServiceTest.MockContext; import com.google.android.apps.mytracks.services.TrackRecordingServiceTest.MockContext;
import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.maps.mytracks.R;
import com.google.android.testing.mocking.AndroidMock; import com.google.android.testing.mocking.AndroidMock;
import android.content.Context; import android.content.Context;
@@ -112,8 +113,8 @@ public class TrackDataHubTest extends AndroidTestCase {
listener1 = AndroidMock.createStrictMock("listener1", TrackDataListener.class); listener1 = AndroidMock.createStrictMock("listener1", TrackDataListener.class);
listener2 = AndroidMock.createStrictMock("listener2", TrackDataListener.class); listener2 = AndroidMock.createStrictMock("listener2", TrackDataListener.class);
PreferencesUtils.setRecordingTrackId(context, TRACK_ID); PreferencesUtils.setLong(context, R.string.recording_track_id_key, TRACK_ID);
PreferencesUtils.setSelectedTrackId(context, TRACK_ID); PreferencesUtils.setLong(context, R.string.selected_track_id_key, TRACK_ID);
} }
@Override @Override
@@ -797,8 +798,8 @@ public class TrackDataHubTest extends AndroidTestCase {
} }
public void testDisplayPreferencesListen() throws Exception { public void testDisplayPreferencesListen() throws Exception {
String metricUnitsKey = PreferencesUtils.getMetricUnitsKey(context); String metricUnitsKey = PreferencesUtils.getKey(context, R.string.metric_units_key);
String reportSpeedKey = PreferencesUtils.getReportSpeedKey(context); String reportSpeedKey = PreferencesUtils.getKey(context, R.string.report_speed_key);
prefs.edit() prefs.edit()
.putBoolean(metricUnitsKey, true) .putBoolean(metricUnitsKey, true)
@@ -145,7 +145,7 @@ public class DynamicSpeedTrackPathDescriptorTest extends AndroidTestCase {
* id. * id.
*/ */
public void testNeedsRedraw_WrongTrackId() { public void testNeedsRedraw_WrongTrackId() {
PreferencesUtils.setSelectedTrackId(context, -1L); PreferencesUtils.setLong(context, R.string.selected_track_id_key, -1L);
DynamicSpeedTrackPathDescriptor dynamicSpeedTrackPathDescriptor = new DynamicSpeedTrackPathDescriptor( DynamicSpeedTrackPathDescriptor dynamicSpeedTrackPathDescriptor = new DynamicSpeedTrackPathDescriptor(
context); context);
assertEquals(false, dynamicSpeedTrackPathDescriptor.needsRedraw()); assertEquals(false, dynamicSpeedTrackPathDescriptor.needsRedraw());
@@ -167,7 +167,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
// Disable auto resume by default. // Disable auto resume by default.
updateAutoResumePrefs(0, -1); updateAutoResumePrefs(0, -1);
// No recording track. // No recording track.
PreferencesUtils.setRecordingTrackId(context, -1L); PreferencesUtils.setLong(context, R.string.recording_track_id_key, -1L);
} }
@SmallTest @SmallTest
@@ -219,7 +219,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
assertTrue(service.isRecording()); assertTrue(service.isRecording());
assertEquals(id, service.getRecordingTrackId()); assertEquals(id, service.getRecordingTrackId());
shutdownService(); shutdownService();
assertEquals(id, PreferencesUtils.getRecordingTrackId(context)); assertEquals(id, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
// Start the service in "resume" mode (simulates the on-reboot action). // Start the service in "resume" mode (simulates the on-reboot action).
Intent startIntent = createStartIntent(); Intent startIntent = createStartIntent();
@@ -315,7 +315,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
@MediumTest @MediumTest
public void testRecording_orphanedRecordingTrack() throws Exception { public void testRecording_orphanedRecordingTrack() throws Exception {
// Just set recording track to a bogus value. // Just set recording track to a bogus value.
PreferencesUtils.setRecordingTrackId(context, 256L); PreferencesUtils.setLong(context, R.string.recording_track_id_key, 256L);
// Make sure that the service will not start recording and will clear // Make sure that the service will not start recording and will clear
// the bogus track. // the bogus track.
@@ -389,7 +389,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
assertEquals(id, track.getId()); assertEquals(id, track.getId());
assertEquals(sharedPreferences.getString(context.getString(R.string.default_activity_key), ""), assertEquals(sharedPreferences.getString(context.getString(R.string.default_activity_key), ""),
track.getCategory()); track.getCategory());
assertEquals(id, PreferencesUtils.getRecordingTrackId(context)); assertEquals(id, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
assertEquals(id, service.getRecordingTrackId()); assertEquals(id, service.getRecordingTrackId());
// Verify that the start broadcast was received. // Verify that the start broadcast was received.
@@ -415,7 +415,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
long newTrack = service.startNewTrack(); long newTrack = service.startNewTrack();
assertEquals(-1L, newTrack); assertEquals(-1L, newTrack);
assertEquals(123L, PreferencesUtils.getRecordingTrackId(context)); assertEquals(123L, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
assertEquals(123L, service.getRecordingTrackId()); assertEquals(123L, service.getRecordingTrackId());
} }
@@ -434,7 +434,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
// End the current track. // End the current track.
service.endCurrentTrack(); service.endCurrentTrack();
assertFalse(service.isRecording()); assertFalse(service.isRecording());
assertEquals(-1L, PreferencesUtils.getRecordingTrackId(context)); assertEquals(-1L, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
assertEquals(-1L, service.getRecordingTrackId()); assertEquals(-1L, service.getRecordingTrackId());
// Verify that the stop broadcast was received. // Verify that the stop broadcast was received.
@@ -457,7 +457,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
// Ending the current track when there is no recording should not result in any error. // Ending the current track when there is no recording should not result in any error.
service.endCurrentTrack(); service.endCurrentTrack();
assertEquals(-1L, PreferencesUtils.getRecordingTrackId(context)); assertEquals(-1L, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
assertEquals(-1L, service.getRecordingTrackId()); assertEquals(-1L, service.getRecordingTrackId());
} }
@@ -665,7 +665,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
assertTrue(track.getId() >= 0); assertTrue(track.getId() >= 0);
providerUtils.insertTrack(track); providerUtils.insertTrack(track);
assertEquals(track.getId(), providerUtils.getTrack(track.getId()).getId()); assertEquals(track.getId(), providerUtils.getTrack(track.getId()).getId());
PreferencesUtils.setRecordingTrackId(context, isRecording ? track.getId() : -1L); PreferencesUtils.setLong(context, R.string.recording_track_id_key, isRecording ? track.getId() : -1L);
} }
// TODO: We support multiple values for readability, however this test's // TODO: We support multiple values for readability, however this test's
@@ -706,7 +706,7 @@ public class TrackRecordingServiceTest extends ServiceTestCase<TestRecordingServ
Track track = providerUtils.getTrack(id); Track track = providerUtils.getTrack(id);
assertNotNull(track); assertNotNull(track);
assertEquals(id, track.getId()); assertEquals(id, track.getId());
assertEquals(id, PreferencesUtils.getRecordingTrackId(context)); assertEquals(id, PreferencesUtils.getLong(context, R.string.recording_track_id_key));
assertEquals(id, service.getRecordingTrackId()); assertEquals(id, service.getRecordingTrackId());
// Insert a few points, markers and statistics. // Insert a few points, markers and statistics.