Refactored TrackRecordingServiceConnection: made static methods object methods.

This commit is contained in:
Dennis Guse
2019-09-10 22:45:20 +02:00
parent 443e069a13
commit b5cb47a0c7
8 changed files with 34 additions and 36 deletions
@@ -31,6 +31,8 @@ import android.widget.AbsListView;
import android.widget.ListView;
import android.widget.SearchView;
import androidx.annotation.NonNull;
import java.util.ArrayList;
import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment;
@@ -199,7 +201,7 @@ public abstract class AbstractListActivity extends AbstractActivity implements C
}
}
if (stopRecording) {
TrackRecordingServiceConnection.stopRecording(this, getTrackRecordingServiceConnection(), false);
getTrackRecordingServiceConnection().stopRecording(this, false);
}
Intent intent = IntentUtils.newIntent(this, DeleteActivity.class);
intent.putExtra(DeleteActivity.EXTRA_TRACK_IDS, trackIds);
@@ -210,6 +212,7 @@ public abstract class AbstractListActivity extends AbstractActivity implements C
* Gets the track recording service connection. For stopping the current
* recording if need to delete the current recording track.
*/
@NonNull
abstract protected TrackRecordingServiceConnection getTrackRecordingServiceConnection();
/**
@@ -90,7 +90,7 @@ public class MarkerEditActivity extends AbstractActivity {
@Override
protected void onStart() {
super.onStart();
TrackRecordingServiceConnection.startConnection(this, trackRecordingServiceConnection);
trackRecordingServiceConnection.startConnection(this);
}
@Override
@@ -167,7 +167,7 @@ public class MarkerEditActivity extends AbstractActivity {
waypointDescription.getText().toString(),
null,
null);
TrackRecordingServiceConnection.addMarker(this, trackRecordingServiceConnection, waypointCreationRequest);
trackRecordingServiceConnection.addMarker(this, waypointCreationRequest);
}
/**
@@ -231,7 +231,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa
super.onStart();
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
TrackRecordingServiceConnection.startConnection(this, trackRecordingServiceConnection);
trackRecordingServiceConnection.startConnection(this);
}
@Override
@@ -110,7 +110,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
if (hasPhoto && photoUri != null) {
hasPhoto = false;
WaypointCreationRequest waypointCreationRequest = new WaypointCreationRequest(WaypointType.WAYPOINT, false, null, null, null, null, photoUri.toString());
long markerId = TrackRecordingServiceConnection.addMarker(TrackDetailActivity.this, trackRecordingServiceConnection, waypointCreationRequest);
long markerId = trackRecordingServiceConnection.addMarker(TrackDetailActivity.this, waypointCreationRequest);
if (markerId != -1L) {
//TODO: Make configurable.
FileUtils.updateMediaScanner(TrackDetailActivity.this, photoUri);
@@ -167,12 +167,12 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
if (recordingTrackPaused) {
// Paused -> Resume
updateMenuItems(false);
TrackRecordingServiceConnection.resumeTrack(trackRecordingServiceConnection);
trackRecordingServiceConnection.resumeTrack();
trackController.update(true, false);
} else {
// Recording -> Paused
updateMenuItems(true);
TrackRecordingServiceConnection.pauseTrack(trackRecordingServiceConnection);
trackRecordingServiceConnection.pauseTrack();
trackController.update(true, true);
}
}
@@ -181,7 +181,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
private final OnClickListener stopListener = new OnClickListener() {
@Override
public void onClick(View v) {
TrackRecordingServiceConnection.stopRecording(TrackDetailActivity.this, trackRecordingServiceConnection, true);
trackRecordingServiceConnection.stopRecording(TrackDetailActivity.this, true);
updateMenuItems(true);
}
};
@@ -248,7 +248,7 @@ public class TrackDetailActivity extends AbstractListActivity implements ChooseA
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
TrackRecordingServiceConnection.startConnection(this, trackRecordingServiceConnection);
trackRecordingServiceConnection.startConnection(this);
trackDataHub.start();
}
@@ -172,7 +172,7 @@ public class TrackEditActivity extends AbstractActivity implements ChooseActivit
@Override
protected void onStart() {
super.onStart();
TrackRecordingServiceConnection.startConnection(this, trackRecordingServiceConnection);
trackRecordingServiceConnection.startConnection(this);
}
@Override
@@ -182,7 +182,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
@Override
public void onClick(View v) {
updateMenuItems(false, false);
TrackRecordingServiceConnection.stopRecording(TrackListActivity.this, trackRecordingServiceConnection, true);
trackRecordingServiceConnection.stopRecording(TrackListActivity.this, true);
}
};
@@ -241,12 +241,12 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
if (recordingTrackPaused) {
// Paused -> Resume
updateMenuItems(false, true);
TrackRecordingServiceConnection.resumeTrack(trackRecordingServiceConnection);
trackRecordingServiceConnection.resumeTrack();
trackController.update(true, false);
} else {
// Recording -> Paused
updateMenuItems(false, true);
TrackRecordingServiceConnection.pauseTrack(trackRecordingServiceConnection);
trackRecordingServiceConnection.pauseTrack();
trackController.update(true, true);
}
}
@@ -329,7 +329,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
sharedPreferences.registerOnSharedPreferenceChangeListener(sharedPreferenceChangeListener);
sharedPreferenceChangeListener.onSharedPreferenceChanged(null, null);
TrackRecordingServiceConnection.startConnection(this, trackRecordingServiceConnection);
trackRecordingServiceConnection.startConnection(this);
}
@Override
@@ -95,7 +95,7 @@ public class StatsFragment extends Fragment implements TrackDataListener {
super.onActivityCreated(savedInstanceState);
handlerUpdateUI = new Handler();
trackRecordingServiceConnection = new TrackRecordingServiceConnection(getContext(), null);
TrackRecordingServiceConnection.startConnection(getContext(), trackRecordingServiceConnection);
trackRecordingServiceConnection.startConnection(getContext());
Spinner activityTypeIcon = getView().findViewById(R.id.stats_activity_type_icon);
activityTypeIcon.setAdapter(TrackIconUtils.getIconSpinnerAdapter(getActivity(), ""));
@@ -27,6 +27,8 @@ import android.os.RemoteException;
import android.util.Log;
import android.widget.Toast;
import androidx.annotation.NonNull;
import java.util.List;
import de.dennisguse.opentracks.BuildConfig;
@@ -195,11 +197,10 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
/**
* Resumes the track recording service connection.
*
* @param context the context
* @param trackRecordingServiceConnection the track recording service connection
* @param context the context
*/
public static void startConnection(Context context, TrackRecordingServiceConnection trackRecordingServiceConnection) {
trackRecordingServiceConnection.bindIfStarted();
public void startConnection(@NonNull Context context) {
bindIfStarted();
if (!isRecordingServiceRunning(context)) {
resetRecordingState(context);
}
@@ -207,11 +208,9 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
/**
* Resumes the recording track.
*
* @param trackRecordingServiceConnection the track recording service
*/
public static void resumeTrack(TrackRecordingServiceConnection trackRecordingServiceConnection) {
ITrackRecordingService service = trackRecordingServiceConnection.getServiceIfBound();
public void resumeTrack() {
ITrackRecordingService service = getServiceIfBound();
if (service != null) {
service.resumeCurrentTrack();
}
@@ -219,12 +218,9 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
/**
* Pauses the recording track.
*
* @param trackRecordingServiceConnection the track recording service
* connection
*/
public static void pauseTrack(TrackRecordingServiceConnection trackRecordingServiceConnection) {
ITrackRecordingService service = trackRecordingServiceConnection.getServiceIfBound();
public void pauseTrack() {
ITrackRecordingService service = getServiceIfBound();
if (service != null) {
service.pauseCurrentTrack();
}
@@ -233,12 +229,11 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
/**
* Stops the recording.
*
* @param context the context
* @param trackRecordingServiceConnection the track recording service connection
* @param showEditor true to show the editor
* @param context the context
* @param showEditor true to show the editor
*/
public static void stopRecording(Context context, TrackRecordingServiceConnection trackRecordingServiceConnection, boolean showEditor) {
ITrackRecordingService trackRecordingService = trackRecordingServiceConnection.getServiceIfBound();
public void stopRecording(@NonNull Context context, boolean showEditor) {
ITrackRecordingService trackRecordingService = getServiceIfBound();
if (trackRecordingService == null) {
resetRecordingState(context);
} else {
@@ -261,7 +256,7 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
Log.e(TAG, "Unable to stop recording.", e);
}
}
trackRecordingServiceConnection.unbindAndStop();
unbindAndStop();
}
/**
@@ -269,8 +264,8 @@ public class TrackRecordingServiceConnection implements ServiceConnection, Death
*
* @return the id of the marker or -1L if none could be created.
*/
public static long addMarker(Context context, TrackRecordingServiceConnection trackRecordingServiceConnection, WaypointCreationRequest waypointCreationRequest) {
ITrackRecordingService trackRecordingService = trackRecordingServiceConnection.getServiceIfBound();
public long addMarker(Context context, WaypointCreationRequest waypointCreationRequest) {
ITrackRecordingService trackRecordingService = getServiceIfBound();
if (trackRecordingService == null) {
Log.d(TAG, "Unable to add marker, no track recording service");
} else {