bind and unbind recording service in onStart and onStop

This commit is contained in:
Jimmy Shih
2012-10-31 11:21:21 -07:00
parent bf5b060123
commit 620b6e09b5
7 changed files with 67 additions and 57 deletions
@@ -51,15 +51,6 @@ public abstract class AbstractMyTracksActivity extends FragmentActivity {
*/
protected abstract int getLayoutResId();
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) {
return super.onOptionsItemSelected(item);
}
onHomeSelected();
return true;
}
/**
* Returns true to hide the title. Be default, do not hide the title.
*/
@@ -73,4 +64,13 @@ public abstract class AbstractMyTracksActivity extends FragmentActivity {
protected void onHomeSelected() {
finish();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() != android.R.id.home) {
return super.onOptionsItemSelected(item);
}
onHomeSelected();
return true;
}
}
@@ -90,6 +90,18 @@ public class MarkerEditActivity extends AbstractMyTracksActivity {
updateUiByMarkerId();
}
@Override
protected void onStart() {
super.onStart();
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
}
@Override
protected void onStop() {
super.onStop();
trackRecordingServiceConnection.unbind();
}
@Override
protected int getLayoutResId() {
return R.layout.marker_edit;
@@ -100,7 +112,7 @@ public class MarkerEditActivity extends AbstractMyTracksActivity {
*/
private void updateUiByMarkerId() {
final boolean newMarker = markerId == -1L;
setTitle(newMarker ? R.string.menu_insert_marker : R.string.menu_edit);
done.setText(newMarker ? R.string.generic_add : R.string.generic_save);
done.setOnClickListener(new View.OnClickListener() {
@@ -114,7 +126,7 @@ public class MarkerEditActivity extends AbstractMyTracksActivity {
finish();
}
});
if (newMarker) {
statisticsSection.setVisibility(View.GONE);
waypointSection.setVisibility(View.VISIBLE);
@@ -147,18 +159,6 @@ public class MarkerEditActivity extends AbstractMyTracksActivity {
}
}
@Override
protected void onResume() {
super.onResume();
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
}
@Override
protected void onDestroy() {
super.onDestroy();
trackRecordingServiceConnection.unbind();
}
/**
* Adds a marker.
*/
@@ -202,23 +202,33 @@ public class SearchListActivity extends AbstractMyTracksActivity implements Dele
}
@Override
protected int getLayoutResId() {
return R.layout.search_list;
protected void onStart() {
super.onStart();
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
}
@Override
protected void onResume() {
super.onResume();
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
metricUnits = PreferencesUtils.getBoolean(
this, R.string.metric_units_key, PreferencesUtils.METRIC_UNITS_DEFAULT);
}
@Override
protected void onStop() {
super.onStop();
trackRecordingServiceConnection.unbind();
}
@Override
protected void onDestroy() {
super.onDestroy();
myTracksLocationManager.close();
trackRecordingServiceConnection.unbind();
}
@Override
protected int getLayoutResId() {
return R.layout.search_list;
}
@Override
@@ -96,14 +96,14 @@ public class SensorStateActivity extends AbstractMyTracksActivity {
}
@Override
protected int getLayoutResId() {
return R.layout.sensor_state;
protected void onStart() {
super.onStart();
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
}
@Override
protected void onResume() {
super.onResume();
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
isVisible = true;
timer = new Timer();
timer.schedule(new UpdateTimerTask(), 0, REFRESH_PERIOD_MS);
@@ -120,11 +120,16 @@ public class SensorStateActivity extends AbstractMyTracksActivity {
}
@Override
protected void onDestroy() {
super.onDestroy();
protected void onStop() {
super.onStop();
trackRecordingServiceConnection.unbind();
}
@Override
protected int getLayoutResId() {
return R.layout.sensor_state;
}
/**
* Stops the temp sensor manager.
*/
@@ -204,23 +204,21 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
showMarker();
}
@Override
protected int getLayoutResId() {
return R.layout.track_detail;
}
@Override
protected boolean hideTitle() {
return true;
}
@Override
protected void onStart() {
super.onStart();
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
trackDataHub.start();
AnalyticsUtils.sendPageViews(this, "/page/track_detail");
}
@Override
protected void onResume() {
super.onResume();
trackDataHub.loadTrack(trackId);
trackController.update(trackId == recordingTrackId, recordingTrackPaused);
}
@Override
protected void onPause() {
super.onPause();
@@ -228,11 +226,11 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
}
@Override
protected void onResume() {
super.onResume();
trackDataHub.loadTrack(trackId);
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
trackController.update(trackId == recordingTrackId, recordingTrackPaused);
protected void onStop() {
super.onStop();
trackRecordingServiceConnection.unbind();
trackDataHub.stop();
AnalyticsUtils.dispatch();
}
@Override
@@ -242,16 +240,13 @@ public class TrackDetailActivity extends AbstractMyTracksActivity implements Del
}
@Override
protected void onStop() {
super.onStop();
trackDataHub.stop();
AnalyticsUtils.dispatch();
protected int getLayoutResId() {
return R.layout.track_detail;
}
@Override
protected void onDestroy() {
super.onDestroy();
trackRecordingServiceConnection.unbind();
protected boolean hideTitle() {
return true;
}
@Override
@@ -422,7 +422,7 @@ public class TrackListActivity extends FragmentActivity implements DeleteOneTrac
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
// Update track recording service connection
TrackRecordingServiceConnectionUtils.resumeConnection(this, trackRecordingServiceConnection);
TrackRecordingServiceConnectionUtils.startConnection(this, trackRecordingServiceConnection);
trackDataHub.start();
@@ -145,7 +145,7 @@ public class TrackRecordingServiceConnectionUtils {
* @param trackRecordingServiceConnection the track recording service
* connection
*/
public static void resumeConnection(
public static void startConnection(
Context context, TrackRecordingServiceConnection trackRecordingServiceConnection) {
trackRecordingServiceConnection.bindIfStarted();
if (!isRecordingServiceRunning(context)) {