forked from upstream-mirrors/OpenTracks
Create one TrackDataHub per TrackDetailActivity.
This commit is contained in:
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.TrackDataHub;
|
|
||||||
import com.google.android.apps.mytracks.services.RemoveTempFilesService;
|
import com.google.android.apps.mytracks.services.RemoveTempFilesService;
|
||||||
import com.google.android.apps.mytracks.util.AnalyticsUtils;
|
import com.google.android.apps.mytracks.util.AnalyticsUtils;
|
||||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||||
@@ -31,8 +30,6 @@ import android.content.Intent;
|
|||||||
*/
|
*/
|
||||||
public class MyTracksApplication extends Application {
|
public class MyTracksApplication extends Application {
|
||||||
|
|
||||||
private TrackDataHub trackDataHub;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
@@ -43,21 +40,4 @@ public class MyTracksApplication extends Application {
|
|||||||
Intent intent = new Intent(this, RemoveTempFilesService.class);
|
Intent intent = new Intent(this, RemoveTempFilesService.class);
|
||||||
startService(intent);
|
startService(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the application's TrackDataHub. Note: use synchronized to make sure
|
|
||||||
* only one instance is created per application.
|
|
||||||
*/
|
|
||||||
public synchronized TrackDataHub getTrackDataHub() {
|
|
||||||
if (trackDataHub == null) {
|
|
||||||
/*
|
|
||||||
* TODO: One TrackDataHub per TrackDetailActivity. Match start/stop
|
|
||||||
* TrackDataHub with TrackDetailActivity lifecycle. Call
|
|
||||||
* TrackDataHub.loadTrack when TrackDetailActivity resumes.
|
|
||||||
*/
|
|
||||||
trackDataHub = TrackDataHub.newInstance(getApplicationContext());
|
|
||||||
trackDataHub.start();
|
|
||||||
}
|
|
||||||
return trackDataHub;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -137,8 +137,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
getSharedPreferences(Constants.SETTINGS_NAME, Context.MODE_PRIVATE)
|
||||||
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
|
||||||
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
|
trackRecordingServiceConnection = new TrackRecordingServiceConnection(this, null);
|
||||||
trackDataHub = ((MyTracksApplication) getApplication()).getTrackDataHub();
|
trackDataHub = TrackDataHub.newInstance(this);
|
||||||
trackDataHub.loadTrack(trackId);
|
|
||||||
|
|
||||||
mapViewContainer = getLayoutInflater().inflate(R.layout.map, null);
|
mapViewContainer = getLayoutInflater().inflate(R.layout.map, null);
|
||||||
ApiAdapterFactory.getApiAdapter().disableHardwareAccelerated(mapViewContainer);
|
ApiAdapterFactory.getApiAdapter().disableHardwareAccelerated(mapViewContainer);
|
||||||
@@ -167,19 +166,19 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
public void onNewIntent(Intent intent) {
|
public void onNewIntent(Intent intent) {
|
||||||
setIntent(intent);
|
setIntent(intent);
|
||||||
handleIntent(intent);
|
handleIntent(intent);
|
||||||
trackDataHub.loadTrack(trackId);
|
|
||||||
showMarker();
|
showMarker();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onStart() {
|
protected void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
//trackDataHub.start();
|
trackDataHub.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
trackDataHub.loadTrack(trackId);
|
||||||
TrackRecordingServiceConnectionUtils.resume(this, trackRecordingServiceConnection);
|
TrackRecordingServiceConnectionUtils.resume(this, trackRecordingServiceConnection);
|
||||||
setTitle(trackId == PreferencesUtils.getLong(this, R.string.recording_track_id_key));
|
setTitle(trackId == PreferencesUtils.getLong(this, R.string.recording_track_id_key));
|
||||||
}
|
}
|
||||||
@@ -193,7 +192,7 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
@Override
|
@Override
|
||||||
protected void onStop() {
|
protected void onStop() {
|
||||||
super.onStop();
|
super.onStop();
|
||||||
//trackDataHub.stop();
|
trackDataHub.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -350,12 +349,19 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the mapViewContainer
|
* Gets the map view container.
|
||||||
*/
|
*/
|
||||||
public View getMapViewContainer() {
|
public View getMapViewContainer() {
|
||||||
return mapViewContainer;
|
return mapViewContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the {@link TrackDataHub}.
|
||||||
|
*/
|
||||||
|
public TrackDataHub getTrackDataHub() {
|
||||||
|
return trackDataHub;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles the data in the intent.
|
* Handles the data in the intent.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -316,7 +316,12 @@ public class TrackDataHub implements DataSourceListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (PreferencesUtils.getKey(context, R.string.selected_track_id_key).equals(key)) {
|
} else if (PreferencesUtils.getKey(context, R.string.selected_track_id_key).equals(key)) {
|
||||||
selectedTrackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key);
|
long trackId = PreferencesUtils.getLong(context, R.string.selected_track_id_key);
|
||||||
|
if (trackId == selectedTrackId) {
|
||||||
|
Log.i(TAG, "Not reloading track " + trackId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
selectedTrackId = trackId;
|
||||||
loadDataForAll();
|
loadDataForAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ package com.google.android.apps.mytracks.fragments;
|
|||||||
|
|
||||||
import com.google.android.apps.mytracks.ChartView;
|
import com.google.android.apps.mytracks.ChartView;
|
||||||
import com.google.android.apps.mytracks.Constants;
|
import com.google.android.apps.mytracks.Constants;
|
||||||
import com.google.android.apps.mytracks.MyTracksApplication;
|
import com.google.android.apps.mytracks.TrackDetailActivity;
|
||||||
import com.google.android.apps.mytracks.content.MyTracksLocation;
|
import com.google.android.apps.mytracks.content.MyTracksLocation;
|
||||||
import com.google.android.apps.mytracks.content.Sensor;
|
import com.google.android.apps.mytracks.content.Sensor;
|
||||||
import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
|
import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
|
||||||
@@ -358,7 +358,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
|
|||||||
* accessed by multiple threads.
|
* accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized void resumeTrackDataHub() {
|
private synchronized void resumeTrackDataHub() {
|
||||||
trackDataHub = ((MyTracksApplication) getActivity().getApplication()).getTrackDataHub();
|
trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub();
|
||||||
trackDataHub.registerTrackDataListener(this, EnumSet.of(
|
trackDataHub.registerTrackDataListener(this, EnumSet.of(
|
||||||
TrackDataType.SELECTED_TRACK,
|
TrackDataType.SELECTED_TRACK,
|
||||||
TrackDataType.TRACKS_TABLE,
|
TrackDataType.TRACKS_TABLE,
|
||||||
|
|||||||
@@ -17,14 +17,13 @@
|
|||||||
package com.google.android.apps.mytracks.fragments;
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.MapOverlay;
|
import com.google.android.apps.mytracks.MapOverlay;
|
||||||
import com.google.android.apps.mytracks.MyTracksApplication;
|
|
||||||
import com.google.android.apps.mytracks.TrackDetailActivity;
|
import com.google.android.apps.mytracks.TrackDetailActivity;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataType;
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.Factory;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils.Factory;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataHub;
|
import com.google.android.apps.mytracks.content.TrackDataHub;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataListener;
|
import com.google.android.apps.mytracks.content.TrackDataListener;
|
||||||
|
import com.google.android.apps.mytracks.content.TrackDataType;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.stats.TripStatistics;
|
import com.google.android.apps.mytracks.stats.TripStatistics;
|
||||||
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
import com.google.android.apps.mytracks.util.ApiAdapterFactory;
|
||||||
@@ -418,7 +417,7 @@ public class MapFragment extends Fragment
|
|||||||
* accessed by multiple threads.
|
* accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized void resumeTrackDataHub() {
|
private synchronized void resumeTrackDataHub() {
|
||||||
trackDataHub = ((MyTracksApplication) getActivity().getApplication()).getTrackDataHub();
|
trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub();
|
||||||
trackDataHub.registerTrackDataListener(this, EnumSet.of(
|
trackDataHub.registerTrackDataListener(this, EnumSet.of(
|
||||||
TrackDataType.SELECTED_TRACK,
|
TrackDataType.SELECTED_TRACK,
|
||||||
TrackDataType.WAYPOINTS_TABLE,
|
TrackDataType.WAYPOINTS_TABLE,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.fragments;
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.MyTracksApplication;
|
import com.google.android.apps.mytracks.TrackDetailActivity;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataHub;
|
import com.google.android.apps.mytracks.content.TrackDataHub;
|
||||||
import com.google.android.apps.mytracks.content.TrackDataListener;
|
import com.google.android.apps.mytracks.content.TrackDataListener;
|
||||||
@@ -255,7 +255,7 @@ public class StatsFragment extends Fragment implements TrackDataListener {
|
|||||||
* be accessed by multiple threads.
|
* be accessed by multiple threads.
|
||||||
*/
|
*/
|
||||||
private synchronized void resumeTrackDataHub() {
|
private synchronized void resumeTrackDataHub() {
|
||||||
trackDataHub = ((MyTracksApplication) getActivity().getApplication()).getTrackDataHub();
|
trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub();
|
||||||
trackDataHub.registerTrackDataListener(this, EnumSet.of(
|
trackDataHub.registerTrackDataListener(this, EnumSet.of(
|
||||||
TrackDataType.SELECTED_TRACK,
|
TrackDataType.SELECTED_TRACK,
|
||||||
TrackDataType.TRACKS_TABLE,
|
TrackDataType.TRACKS_TABLE,
|
||||||
|
|||||||
Reference in New Issue
Block a user