forked from upstream-mirrors/OpenTracks
Register/unregister onSharedPreferenceChangeListener in onStart and on Stop
This commit is contained in:
@@ -62,8 +62,10 @@ public class MapOverlay {
|
|||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (key == null
|
if (key == null
|
||||||
|| PreferencesUtils.getKey(context, R.string.track_color_mode_key).equals(key)) {
|
|| key.equals(PreferencesUtils.getKey(context, R.string.track_color_mode_key))) {
|
||||||
trackPath = TrackPathFactory.getTrackPath(context);
|
trackColorMode = PreferencesUtils.getString(
|
||||||
|
context, R.string.track_color_mode_key, PreferencesUtils.TRACK_COLOR_MODE_DEFAULT);
|
||||||
|
trackPath = TrackPathFactory.getTrackPath(context, trackColorMode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -73,6 +75,8 @@ public class MapOverlay {
|
|||||||
private final BlockingQueue<CachedLocation> pendingLocations;
|
private final BlockingQueue<CachedLocation> pendingLocations;
|
||||||
private final List<Waypoint> waypoints;
|
private final List<Waypoint> waypoints;
|
||||||
|
|
||||||
|
private String trackColorMode = PreferencesUtils.TRACK_COLOR_MODE_DEFAULT;
|
||||||
|
|
||||||
private boolean showEndMarker = true;
|
private boolean showEndMarker = true;
|
||||||
private TrackPath trackPath;
|
private TrackPath trackPath;
|
||||||
|
|
||||||
|
|||||||
@@ -51,31 +51,27 @@ import android.widget.ListView;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Activity to show a list of markers in a track.
|
* Activity to show a list of markers in a track.
|
||||||
*
|
*
|
||||||
* @author Leif Hendrik Wilden
|
* @author Leif Hendrik Wilden
|
||||||
*/
|
*/
|
||||||
public class MarkerListActivity extends AbstractMyTracksActivity {
|
public class MarkerListActivity extends AbstractMyTracksActivity {
|
||||||
|
|
||||||
public static final String EXTRA_TRACK_ID = "track_id";
|
public static final String EXTRA_TRACK_ID = "track_id";
|
||||||
|
|
||||||
private static final String TAG = MarkerListActivity.class.getSimpleName();
|
private static final String TAG = MarkerListActivity.class.getSimpleName();
|
||||||
|
|
||||||
private static final String[] PROJECTION = new String[] {
|
private static final String[] PROJECTION = new String[] { WaypointsColumns._ID,
|
||||||
WaypointsColumns._ID,
|
WaypointsColumns.NAME, WaypointsColumns.DESCRIPTION, WaypointsColumns.CATEGORY,
|
||||||
WaypointsColumns.NAME,
|
WaypointsColumns.TYPE, WaypointsColumns.TIME };
|
||||||
WaypointsColumns.DESCRIPTION,
|
|
||||||
WaypointsColumns.CATEGORY,
|
|
||||||
WaypointsColumns.TYPE,
|
|
||||||
WaypointsColumns.TIME};
|
|
||||||
|
|
||||||
// Callback when an item is selected in the contextual action mode
|
// Callback when an item is selected in the contextual action mode
|
||||||
private ContextualActionModeCallback contextualActionModeCallback =
|
private ContextualActionModeCallback
|
||||||
new ContextualActionModeCallback() {
|
contextualActionModeCallback = new ContextualActionModeCallback() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onClick(int itemId, int position, long id) {
|
public boolean onClick(int itemId, int position, long id) {
|
||||||
return handleContextItem(itemId, id);
|
return handleContextItem(itemId, id);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note that sharedPreferenceChangeListener cannot be an anonymous inner
|
* Note that sharedPreferenceChangeListener cannot be an anonymous inner
|
||||||
@@ -86,14 +82,28 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
// Note that the key can be null
|
// Note that the key can be null
|
||||||
if (PreferencesUtils.getKey(MarkerListActivity.this, R.string.recording_track_id_key)
|
if (key == null || key.equals(
|
||||||
.equals(key) || PreferencesUtils.getKey(
|
PreferencesUtils.getKey(MarkerListActivity.this, R.string.recording_track_id_key))) {
|
||||||
MarkerListActivity.this, R.string.recording_track_paused_key).equals(key)) {
|
recordingTrackId = PreferencesUtils.getLong(
|
||||||
|
MarkerListActivity.this, R.string.recording_track_id_key);
|
||||||
|
}
|
||||||
|
if (key == null || key.equals(PreferencesUtils.getKey(
|
||||||
|
MarkerListActivity.this, R.string.recording_track_paused_key))) {
|
||||||
|
recordingTrackPaused = PreferencesUtils.getBoolean(MarkerListActivity.this,
|
||||||
|
R.string.recording_track_paused_key,
|
||||||
|
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
||||||
|
}
|
||||||
|
if (key != null) {
|
||||||
updateMenu();
|
updateMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private SharedPreferences sharedPreferences;
|
||||||
|
|
||||||
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
|
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
||||||
|
|
||||||
private long trackId = -1;
|
private long trackId = -1;
|
||||||
private ResourceCursorAdapter resourceCursorAdapter;
|
private ResourceCursorAdapter resourceCursorAdapter;
|
||||||
|
|
||||||
@@ -104,23 +114,21 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
|
trackId = getIntent().getLongExtra(EXTRA_TRACK_ID, -1L);
|
||||||
if (trackId == -1L) {
|
if (trackId == -1L) {
|
||||||
Log.d(TAG, "invalid track id");
|
Log.d(TAG, "invalid track id");
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
|
|
||||||
|
|
||||||
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
|
|
||||||
ListView listView = (ListView) findViewById(R.id.marker_list);
|
ListView listView = (ListView) findViewById(R.id.marker_list);
|
||||||
listView.setEmptyView(findViewById(R.id.marker_list_empty));
|
listView.setEmptyView(findViewById(R.id.marker_list_empty));
|
||||||
listView.setOnItemClickListener(new OnItemClickListener() {
|
listView.setOnItemClickListener(new OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
Intent intent = IntentUtils.newIntent(MarkerListActivity.this, MarkerDetailActivity.class)
|
Intent intent = IntentUtils.newIntent(MarkerListActivity.this, MarkerDetailActivity.class)
|
||||||
.putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, id);
|
.putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, id);
|
||||||
@@ -128,7 +136,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
resourceCursorAdapter = new ResourceCursorAdapter(this, R.layout.list_item, null, 0) {
|
resourceCursorAdapter = new ResourceCursorAdapter(this, R.layout.list_item, null, 0) {
|
||||||
@Override
|
@Override
|
||||||
public void bindView(View view, Context context, Cursor cursor) {
|
public void bindView(View view, Context context, Cursor cursor) {
|
||||||
int typeIndex = cursor.getColumnIndex(WaypointsColumns.TYPE);
|
int typeIndex = cursor.getColumnIndex(WaypointsColumns.TYPE);
|
||||||
int nameIndex = cursor.getColumnIndex(WaypointsColumns.NAME);
|
int nameIndex = cursor.getColumnIndex(WaypointsColumns.NAME);
|
||||||
@@ -156,28 +164,44 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
final long firstWaypointId = MyTracksProviderUtils.Factory.get(this)
|
final long firstWaypointId = MyTracksProviderUtils.Factory.get(this)
|
||||||
.getFirstWaypointId(trackId);
|
.getFirstWaypointId(trackId);
|
||||||
getSupportLoaderManager().initLoader(0, null, new LoaderCallbacks<Cursor>() {
|
getSupportLoaderManager().initLoader(0, null, new LoaderCallbacks<Cursor>() {
|
||||||
@Override
|
@Override
|
||||||
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
|
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
|
||||||
return new CursorLoader(MarkerListActivity.this,
|
return new CursorLoader(MarkerListActivity.this, WaypointsColumns.CONTENT_URI, PROJECTION,
|
||||||
WaypointsColumns.CONTENT_URI,
|
|
||||||
PROJECTION,
|
|
||||||
WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + "!=?",
|
WaypointsColumns.TRACKID + "=? AND " + WaypointsColumns._ID + "!=?",
|
||||||
new String[] { String.valueOf(trackId), String.valueOf(firstWaypointId) },
|
new String[] { String.valueOf(trackId), String.valueOf(firstWaypointId) }, null);
|
||||||
null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
|
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
|
||||||
resourceCursorAdapter.swapCursor(cursor);
|
resourceCursorAdapter.swapCursor(cursor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoaderReset(Loader<Cursor> loader) {
|
public void onLoaderReset(Loader<Cursor> loader) {
|
||||||
resourceCursorAdapter.swapCursor(null);
|
resourceCursorAdapter.swapCursor(null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
updateMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStop() {
|
||||||
|
super.onStop();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getLayoutResId() {
|
protected int getLayoutResId() {
|
||||||
return R.layout.marker_list;
|
return R.layout.marker_list;
|
||||||
@@ -195,11 +219,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
|
|
||||||
private void updateMenu() {
|
private void updateMenu() {
|
||||||
if (insertMarkerMenuItem != null) {
|
if (insertMarkerMenuItem != null) {
|
||||||
boolean isRecording = trackId
|
insertMarkerMenuItem.setVisible(trackId == recordingTrackId && !recordingTrackPaused);
|
||||||
== PreferencesUtils.getLong(this, R.string.recording_track_id_key);
|
|
||||||
boolean isPaused = PreferencesUtils.getBoolean(this, R.string.recording_track_paused_key,
|
|
||||||
PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT);
|
|
||||||
insertMarkerMenuItem.setVisible(isRecording && !isPaused);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,8 +246,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onContextItemSelected(MenuItem item) {
|
public boolean onContextItemSelected(MenuItem item) {
|
||||||
if (handleContextItem(
|
if (handleContextItem(item.getItemId(), ((AdapterContextMenuInfo) item.getMenuInfo()).id)) {
|
||||||
item.getItemId(), ((AdapterContextMenuInfo) item.getMenuInfo()).id)) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.onContextItemSelected(item);
|
return super.onContextItemSelected(item);
|
||||||
@@ -235,7 +254,7 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles a context item selection.
|
* Handles a context item selection.
|
||||||
*
|
*
|
||||||
* @param itemId the menu item id
|
* @param itemId the menu item id
|
||||||
* @param markerId the marker id
|
* @param markerId the marker id
|
||||||
* @return true if handled.
|
* @return true if handled.
|
||||||
@@ -266,7 +285,9 @@ public class MarkerListActivity extends AbstractMyTracksActivity {
|
|||||||
@Override
|
@Override
|
||||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||||
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
|
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
|
||||||
if (ApiAdapterFactory.getApiAdapter().handleSearchKey(searchMenuItem)) { return true; }
|
if (ApiAdapterFactory.getApiAdapter().handleSearchKey(searchMenuItem)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return super.onKeyUp(keyCode, event);
|
return super.onKeyUp(keyCode, event);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,6 +93,11 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
|
if (key == null || key.equals(
|
||||||
|
PreferencesUtils.getKey(SearchListActivity.this, R.string.metric_units_key))) {
|
||||||
|
metricUnits = PreferencesUtils.getBoolean(SearchListActivity.this,
|
||||||
|
R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
|
||||||
|
}
|
||||||
if (key == null || key.equals(
|
if (key == null || key.equals(
|
||||||
PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key))) {
|
PreferencesUtils.getKey(SearchListActivity.this, R.string.recording_track_id_key))) {
|
||||||
recordingTrackId = PreferencesUtils.getLong(
|
recordingTrackId = PreferencesUtils.getLong(
|
||||||
@@ -113,45 +118,44 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
// Callback when an item is selected in the contextual action mode
|
// Callback when an item is selected in the contextual action mode
|
||||||
private ContextualActionModeCallback
|
private ContextualActionModeCallback
|
||||||
contextualActionModeCallback = new ContextualActionModeCallback() {
|
contextualActionModeCallback = new ContextualActionModeCallback() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onClick(int itemId, int position, long id) {
|
public boolean onClick(int itemId, int position, long id) {
|
||||||
return handleContextItem(itemId, position);
|
return handleContextItem(itemId, position);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private SharedPreferences sharedPreferences;
|
||||||
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
||||||
private MyTracksProviderUtils myTracksProviderUtils;
|
private MyTracksProviderUtils myTracksProviderUtils;
|
||||||
private SearchEngine searchEngine;
|
private SearchEngine searchEngine;
|
||||||
private SearchRecentSuggestions searchRecentSuggestions;
|
private SearchRecentSuggestions searchRecentSuggestions;
|
||||||
private MyTracksLocationManager myTracksLocationManager;
|
private MyTracksLocationManager myTracksLocationManager;
|
||||||
private long recordingTrackId;
|
|
||||||
private boolean recordingTrackPaused;
|
|
||||||
private boolean metricUnits;
|
|
||||||
private ArrayAdapter<Map<String, Object>> arrayAdapter;
|
private ArrayAdapter<Map<String, Object>> arrayAdapter;
|
||||||
|
|
||||||
|
private boolean metricUnits = PreferencesUtils.METRIC_UNITS_DEFAULT;
|
||||||
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
|
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
||||||
|
|
||||||
// UI elements
|
// UI elements
|
||||||
private ListView listView;
|
private ListView listView;
|
||||||
private MenuItem searchMenuItem;
|
private MenuItem searchMenuItem;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
|
setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL);
|
||||||
|
|
||||||
|
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
|
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
|
||||||
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
||||||
searchEngine = new SearchEngine(myTracksProviderUtils);
|
searchEngine = new SearchEngine(myTracksProviderUtils);
|
||||||
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
|
searchRecentSuggestions = SearchEngineProvider.newHelper(this);
|
||||||
myTracksLocationManager = new MyTracksLocationManager(this);
|
myTracksLocationManager = new MyTracksLocationManager(this);
|
||||||
SharedPreferences sharedPreferences = getSharedPreferences(
|
|
||||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
|
||||||
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, null);
|
|
||||||
|
|
||||||
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));
|
||||||
listView.setOnItemClickListener(new OnItemClickListener() {
|
listView.setOnItemClickListener(new OnItemClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||||
Map<String, Object> item = arrayAdapter.getItem(position);
|
Map<String, Object> item = arrayAdapter.getItem(position);
|
||||||
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
Long trackId = (Long) item.get(TRACK_ID_FIELD);
|
||||||
@@ -169,7 +173,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
});
|
});
|
||||||
arrayAdapter = new ArrayAdapter<Map<String, Object>>(
|
arrayAdapter = new ArrayAdapter<Map<String, Object>>(
|
||||||
this, R.layout.list_item, R.id.list_item_name) {
|
this, R.layout.list_item, R.id.list_item_name) {
|
||||||
@Override
|
@Override
|
||||||
public View getView(int position, View convertView, android.view.ViewGroup parent) {
|
public View getView(int position, View convertView, android.view.ViewGroup parent) {
|
||||||
View view;
|
View view;
|
||||||
if (convertView == null) {
|
if (convertView == null) {
|
||||||
@@ -204,22 +208,24 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
|
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
metricUnits = PreferencesUtils.getBoolean(
|
|
||||||
this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onResume() {
|
||||||
super.onStop();
|
super.onResume();
|
||||||
trackRecordingServiceConnection.unbind();
|
arrayAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStop() {
|
||||||
|
super.onStop();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
trackRecordingServiceConnection.unbind();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
@@ -266,7 +272,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
AdapterContextMenuInfo adapterContextMenuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
|
AdapterContextMenuInfo adapterContextMenuInfo = (AdapterContextMenuInfo) item.getMenuInfo();
|
||||||
if (handleContextItem(item.getItemId(), adapterContextMenuInfo.position)) {
|
if (handleContextItem(item.getItemId(), adapterContextMenuInfo.position)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.onContextItemSelected(item);
|
return super.onContextItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -387,8 +393,8 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
*/
|
*/
|
||||||
private List<Map<String, Object>> prepareResultsforDisplay(
|
private List<Map<String, Object>> prepareResultsforDisplay(
|
||||||
Collection<ScoredResult> scoredResults) {
|
Collection<ScoredResult> scoredResults) {
|
||||||
ArrayList<Map<String, Object>> output = new ArrayList<Map<String, Object>>(scoredResults
|
ArrayList<Map<String, Object>> output = new ArrayList<Map<String, Object>>(
|
||||||
.size());
|
scoredResults.size());
|
||||||
for (ScoredResult result : scoredResults) {
|
for (ScoredResult result : scoredResults) {
|
||||||
Map<String, Object> resultMap = new HashMap<String, Object>();
|
Map<String, Object> resultMap = new HashMap<String, Object>();
|
||||||
if (result.track != null) {
|
if (result.track != null) {
|
||||||
@@ -423,7 +429,7 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
|
|||||||
|
|
||||||
boolean statistics = waypoint.getType() == Waypoint.TYPE_STATISTICS;
|
boolean statistics = waypoint.getType() == Waypoint.TYPE_STATISTICS;
|
||||||
long time = waypoint.getLocation().getTime();
|
long time = waypoint.getLocation().getTime();
|
||||||
|
|
||||||
resultMap.put(IS_RECORDING_FIELD, false);
|
resultMap.put(IS_RECORDING_FIELD, false);
|
||||||
resultMap.put(IS_PAUSED_FIELD, true);
|
resultMap.put(IS_PAUSED_FIELD, true);
|
||||||
resultMap.put(ICON_ID_FIELD, statistics ? R.drawable.yellow_pushpin : R.drawable.blue_pushpin);
|
resultMap.put(ICON_ID_FIELD, statistics ? R.drawable.yellow_pushpin : R.drawable.blue_pushpin);
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key";
|
private static final String CURRENT_TAB_TAG_KEY = "current_tab_tag_key";
|
||||||
|
|
||||||
// The following are set in onCreate
|
// The following are set in onCreate
|
||||||
|
private SharedPreferences sharedPreferences;
|
||||||
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
private TrackRecordingServiceConnection trackRecordingServiceConnection;
|
||||||
private TrackDataHub trackDataHub;
|
private TrackDataHub trackDataHub;
|
||||||
private TabHost tabHost;
|
private TabHost tabHost;
|
||||||
@@ -86,8 +87,8 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
private long markerId;
|
private long markerId;
|
||||||
|
|
||||||
// Preferences
|
// Preferences
|
||||||
private long recordingTrackId;
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
private boolean recordingTrackPaused;
|
private boolean recordingTrackPaused = PreferencesUtils.RECORDING_TRACK_PAUSED_DEFAULT;
|
||||||
|
|
||||||
private MenuItem insertMarkerMenuItem;
|
private MenuItem insertMarkerMenuItem;
|
||||||
private MenuItem playMenuItem;
|
private MenuItem playMenuItem;
|
||||||
@@ -173,10 +174,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
handleIntent(getIntent());
|
handleIntent(getIntent());
|
||||||
|
|
||||||
SharedPreferences sharedPreferences = getSharedPreferences(
|
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
|
||||||
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, null);
|
|
||||||
|
|
||||||
trackRecordingServiceConnection = new TrackRecordingServiceConnection(
|
trackRecordingServiceConnection = new TrackRecordingServiceConnection(
|
||||||
this, bindChangedCallback);
|
this, bindChangedCallback);
|
||||||
@@ -207,6 +205,10 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
|
|
||||||
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
|
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
|
||||||
trackDataHub.start();
|
trackDataHub.start();
|
||||||
AnalyticsUtils.sendPageViews(this, "/page/track_detail");
|
AnalyticsUtils.sendPageViews(this, "/page/track_detail");
|
||||||
@@ -216,9 +218,13 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
trackDataHub.loadTrack(trackId);
|
trackDataHub.loadTrack(trackId);
|
||||||
trackController.update(trackId == recordingTrackId, recordingTrackPaused);
|
|
||||||
|
// Update UI
|
||||||
|
boolean isRecording = trackId == recordingTrackId;
|
||||||
|
updateMenuItems(isRecording, recordingTrackPaused);
|
||||||
|
trackController.update(isRecording, recordingTrackPaused);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
@@ -228,6 +234,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
trackRecordingServiceConnection.unbind();
|
trackRecordingServiceConnection.unbind();
|
||||||
trackDataHub.stop();
|
trackDataHub.stop();
|
||||||
AnalyticsUtils.dispatch();
|
AnalyticsUtils.dispatch();
|
||||||
|
|||||||
@@ -426,9 +426,6 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
|
|
||||||
trackDataHub.start();
|
trackDataHub.start();
|
||||||
|
|
||||||
// Update track data hub
|
|
||||||
handleStartGps();
|
|
||||||
|
|
||||||
AnalyticsUtils.sendPageViews(this, "/page/track_list");
|
AnalyticsUtils.sendPageViews(this, "/page/track_list");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -436,6 +433,9 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
|
// Update track data hub
|
||||||
|
handleStartGps();
|
||||||
|
|
||||||
// Update UI
|
// Update UI
|
||||||
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
updateMenuItems(isRecording);
|
updateMenuItems(isRecording);
|
||||||
@@ -454,6 +454,9 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
|
||||||
|
// Update track data hub
|
||||||
|
trackDataHub.unregisterTrackDataListener(trackDataListener);
|
||||||
|
|
||||||
// Update UI
|
// Update UI
|
||||||
trackController.stop();
|
trackController.stop();
|
||||||
}
|
}
|
||||||
@@ -467,9 +470,6 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
|
|||||||
|
|
||||||
trackRecordingServiceConnection.unbind();
|
trackRecordingServiceConnection.unbind();
|
||||||
|
|
||||||
// Update track data hub
|
|
||||||
trackDataHub.unregisterTrackDataListener(trackDataListener);
|
|
||||||
|
|
||||||
trackDataHub.stop();
|
trackDataHub.stop();
|
||||||
|
|
||||||
AnalyticsUtils.dispatch();
|
AnalyticsUtils.dispatch();
|
||||||
|
|||||||
+2
-4
@@ -43,8 +43,7 @@ public class DynamicSpeedTrackPathDescriptor implements TrackPathDescriptor {
|
|||||||
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (PreferencesUtils.getKey(context, R.string.track_color_mode_percentage_key)
|
if (key == null || key.equals(PreferencesUtils.getKey(context, R.string.track_color_mode_percentage_key))) {
|
||||||
.equals(key)) {
|
|
||||||
speedMargin = PreferencesUtils.getInt(context, R.string.track_color_mode_percentage_key,
|
speedMargin = PreferencesUtils.getInt(context, R.string.track_color_mode_percentage_key,
|
||||||
PreferencesUtils.TRACK_COLOR_MODE_PERCENTAGE_DEFAULT);
|
PreferencesUtils.TRACK_COLOR_MODE_PERCENTAGE_DEFAULT);
|
||||||
}
|
}
|
||||||
@@ -62,10 +61,9 @@ public class DynamicSpeedTrackPathDescriptor implements TrackPathDescriptor {
|
|||||||
|
|
||||||
public DynamicSpeedTrackPathDescriptor(Context context) {
|
public DynamicSpeedTrackPathDescriptor(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
speedMargin = PreferencesUtils.getInt(context, R.string.track_color_mode_percentage_key,
|
|
||||||
PreferencesUtils.TRACK_COLOR_MODE_PERCENTAGE_DEFAULT);
|
|
||||||
context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+6
-7
@@ -35,11 +35,13 @@ public class FixedSpeedTrackPathDescriptor implements TrackPathDescriptor {
|
|||||||
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (PreferencesUtils.getKey(context, R.string.track_color_mode_slow_key).equals(key)) {
|
if (key == null
|
||||||
|
|| key.equals(PreferencesUtils.getKey(context, R.string.track_color_mode_slow_key))) {
|
||||||
slowSpeed = PreferencesUtils.getInt(context, R.string.track_color_mode_slow_key,
|
slowSpeed = PreferencesUtils.getInt(context, R.string.track_color_mode_slow_key,
|
||||||
PreferencesUtils.TRACK_COLOR_MODE_SLOW_DEFAULT);
|
PreferencesUtils.TRACK_COLOR_MODE_SLOW_DEFAULT);
|
||||||
} else if (PreferencesUtils.getKey(context, R.string.track_color_mode_medium_key)
|
}
|
||||||
.equals(key)) {
|
if (key == null || key.equals(
|
||||||
|
PreferencesUtils.getKey(context, R.string.track_color_mode_medium_key))) {
|
||||||
normalSpeed = PreferencesUtils.getInt(context, R.string.track_color_mode_medium_key,
|
normalSpeed = PreferencesUtils.getInt(context, R.string.track_color_mode_medium_key,
|
||||||
PreferencesUtils.TRACK_COLOR_MODE_MEDIUM_DEFAULT);
|
PreferencesUtils.TRACK_COLOR_MODE_MEDIUM_DEFAULT);
|
||||||
}
|
}
|
||||||
@@ -53,12 +55,9 @@ public class FixedSpeedTrackPathDescriptor implements TrackPathDescriptor {
|
|||||||
public FixedSpeedTrackPathDescriptor(Context context) {
|
public FixedSpeedTrackPathDescriptor(Context context) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
|
||||||
slowSpeed = PreferencesUtils.getInt(context, R.string.track_color_mode_slow_key,
|
|
||||||
PreferencesUtils.TRACK_COLOR_MODE_SLOW_DEFAULT);
|
|
||||||
normalSpeed = PreferencesUtils.getInt(context, R.string.track_color_mode_medium_key,
|
|
||||||
PreferencesUtils.TRACK_COLOR_MODE_MEDIUM_DEFAULT);
|
|
||||||
context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
context.getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.maps;
|
package com.google.android.apps.mytracks.maps;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -35,10 +34,7 @@ public class TrackPathFactory {
|
|||||||
*
|
*
|
||||||
* @param context the context
|
* @param context the context
|
||||||
*/
|
*/
|
||||||
public static TrackPath getTrackPath(Context context) {
|
public static TrackPath getTrackPath(Context context, String trackColorMode) {
|
||||||
String trackColorMode = PreferencesUtils.getString(
|
|
||||||
context, R.string.track_color_mode_key, PreferencesUtils.TRACK_COLOR_MODE_DEFAULT);
|
|
||||||
|
|
||||||
if (context.getString(R.string.settings_map_track_color_mode_dynamic_value)
|
if (context.getString(R.string.settings_map_track_color_mode_dynamic_value)
|
||||||
.equals(trackColorMode)) {
|
.equals(trackColorMode)) {
|
||||||
return new MultiColorTrackPath(context, new DynamicSpeedTrackPathDescriptor(context));
|
return new MultiColorTrackPath(context, new DynamicSpeedTrackPathDescriptor(context));
|
||||||
|
|||||||
+30
-13
@@ -43,8 +43,11 @@ public class BackupSettingsActivity extends AbstractSettingsActivity {
|
|||||||
|
|
||||||
private static final int DIALOG_CONFIRM_RESTORE_ID = 0;
|
private static final int DIALOG_CONFIRM_RESTORE_ID = 0;
|
||||||
|
|
||||||
Preference backupPreference;
|
private SharedPreferences sharedPreferences;
|
||||||
Preference restorePreference;
|
private Preference backupPreference;
|
||||||
|
private Preference restorePreference;
|
||||||
|
|
||||||
|
private long recordingTrackId = PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note that sharedPreferenceChangeListenr cannot be an anonymous inner class.
|
* Note that sharedPreferenceChangeListenr cannot be an anonymous inner class.
|
||||||
@@ -52,11 +55,14 @@ public class BackupSettingsActivity extends AbstractSettingsActivity {
|
|||||||
*/
|
*/
|
||||||
private final OnSharedPreferenceChangeListener
|
private final OnSharedPreferenceChangeListener
|
||||||
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
// Note that key can be null
|
if (key == null || key.equals(PreferencesUtils.getKey(
|
||||||
if (PreferencesUtils.getKey(BackupSettingsActivity.this, R.string.recording_track_id_key)
|
BackupSettingsActivity.this, R.string.recording_track_id_key))) {
|
||||||
.equals(key)) {
|
recordingTrackId = PreferencesUtils.getLong(
|
||||||
|
BackupSettingsActivity.this, R.string.recording_track_id_key);
|
||||||
|
}
|
||||||
|
if (key != null) {
|
||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -66,8 +72,7 @@ public class BackupSettingsActivity extends AbstractSettingsActivity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle bundle) {
|
protected void onCreate(Bundle bundle) {
|
||||||
super.onCreate(bundle);
|
super.onCreate(bundle);
|
||||||
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.backup_settings);
|
addPreferencesFromResource(R.xml.backup_settings);
|
||||||
backupPreference = findPreference(getString(R.string.settings_backup_now_key));
|
backupPreference = findPreference(getString(R.string.settings_backup_now_key));
|
||||||
@@ -96,7 +101,7 @@ public class BackupSettingsActivity extends AbstractSettingsActivity {
|
|||||||
}
|
}
|
||||||
return DialogUtils.createConfirmationDialog(this,
|
return DialogUtils.createConfirmationDialog(this,
|
||||||
R.string.settings_backup_restore_confirm_message, new DialogInterface.OnClickListener() {
|
R.string.settings_backup_restore_confirm_message, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
Intent intent = IntentUtils.newIntent(
|
Intent intent = IntentUtils.newIntent(
|
||||||
BackupSettingsActivity.this, RestoreChooserActivity.class);
|
BackupSettingsActivity.this, RestoreChooserActivity.class);
|
||||||
@@ -105,22 +110,34 @@ public class BackupSettingsActivity extends AbstractSettingsActivity {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStop() {
|
||||||
|
super.onStop();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the UI based on the recording state.
|
* Updates the UI based on the recording state.
|
||||||
*/
|
*/
|
||||||
private void updateUi() {
|
private void updateUi() {
|
||||||
boolean isRecording = PreferencesUtils.getLong(this, R.string.recording_track_id_key)
|
boolean isRecording = recordingTrackId != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
||||||
!= PreferencesUtils.RECORDING_TRACK_ID_DEFAULT;
|
|
||||||
backupPreference.setEnabled(!isRecording);
|
backupPreference.setEnabled(!isRecording);
|
||||||
restorePreference.setEnabled(!isRecording);
|
restorePreference.setEnabled(!isRecording);
|
||||||
backupPreference.setSummary(isRecording ? R.string.settings_not_while_recording
|
backupPreference.setSummary(
|
||||||
: R.string.settings_backup_now_summary);
|
isRecording ? R.string.settings_not_while_recording : R.string.settings_backup_now_summary);
|
||||||
restorePreference.setSummary(isRecording ? R.string.settings_not_while_recording
|
restorePreference.setSummary(isRecording ? R.string.settings_not_while_recording
|
||||||
: R.string.settings_backup_restore_summary);
|
: R.string.settings_backup_restore_summary);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,22 +41,33 @@ public class StatsSettingsActivity extends AbstractSettingsActivity {
|
|||||||
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
sharedPreferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
|
||||||
// Note that key can be null
|
if (key == null || key.equals(
|
||||||
if (PreferencesUtils.getKey(StatsSettingsActivity.this, R.string.metric_units_key)
|
PreferencesUtils.getKey(StatsSettingsActivity.this, R.string.metric_units_key))) {
|
||||||
.equals(key)) {
|
metricUnits = PreferencesUtils.getBoolean(StatsSettingsActivity.this,
|
||||||
|
R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
|
||||||
|
}
|
||||||
|
if (key != null) {
|
||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private SharedPreferences sharedPreferences;
|
||||||
|
private boolean metricUnits = PreferencesUtils.METRIC_UNITS_DEFAULT;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle bundle) {
|
protected void onCreate(Bundle bundle) {
|
||||||
super.onCreate(bundle);
|
super.onCreate(bundle);
|
||||||
addPreferencesFromResource(R.xml.stats_settings);
|
addPreferencesFromResource(R.xml.stats_settings);
|
||||||
|
sharedPreferences = getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE);
|
||||||
|
}
|
||||||
|
|
||||||
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
@Override
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
protected void onStart() {
|
||||||
|
super.onStart();
|
||||||
|
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -65,15 +76,21 @@ public class StatsSettingsActivity extends AbstractSettingsActivity {
|
|||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onStop() {
|
||||||
|
super.onStop();
|
||||||
|
sharedPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
private void updateUi() {
|
private void updateUi() {
|
||||||
CheckBoxPreference reportSpeedCheckBoxPreference = (CheckBoxPreference) findPreference(
|
CheckBoxPreference reportSpeedCheckBoxPreference = (CheckBoxPreference) findPreference(
|
||||||
getString(R.string.report_speed_key));
|
getString(R.string.report_speed_key));
|
||||||
boolean metric = PreferencesUtils.getBoolean(
|
reportSpeedCheckBoxPreference.setSummaryOn(
|
||||||
this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
|
metricUnits ? getString(R.string.description_speed_metric)
|
||||||
reportSpeedCheckBoxPreference.setSummaryOn(metric ? getString(R.string.description_speed_metric)
|
: getString(R.string.description_speed_imperial));
|
||||||
: getString(R.string.description_speed_imperial));
|
reportSpeedCheckBoxPreference.setSummaryOff(
|
||||||
reportSpeedCheckBoxPreference.setSummaryOff(metric ? getString(R.string.description_pace_metric)
|
metricUnits ? getString(R.string.description_pace_metric)
|
||||||
: getString(R.string.description_pace_imperial));
|
: getString(R.string.description_pace_imperial));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user