forked from upstream-mirrors/OpenTracks
ServiceUtils deleted because it doesn't need anymore.
It uses gps status received from service.
This commit is contained in:
@@ -57,7 +57,6 @@ import de.dennisguse.opentracks.util.IntentDashboardUtils;
|
|||||||
import de.dennisguse.opentracks.util.IntentUtils;
|
import de.dennisguse.opentracks.util.IntentUtils;
|
||||||
import de.dennisguse.opentracks.util.ListItemUtils;
|
import de.dennisguse.opentracks.util.ListItemUtils;
|
||||||
import de.dennisguse.opentracks.util.PreferencesUtils;
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.util.ServiceUtils;
|
|
||||||
import de.dennisguse.opentracks.util.StringUtils;
|
import de.dennisguse.opentracks.util.StringUtils;
|
||||||
import de.dennisguse.opentracks.util.TrackIconUtils;
|
import de.dennisguse.opentracks.util.TrackIconUtils;
|
||||||
import de.dennisguse.opentracks.util.TrackUtils;
|
import de.dennisguse.opentracks.util.TrackUtils;
|
||||||
@@ -164,8 +163,6 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private boolean startGps = false; // true to start gps
|
|
||||||
|
|
||||||
// Callback when the trackRecordingServiceConnection binding changes.
|
// Callback when the trackRecordingServiceConnection binding changes.
|
||||||
private final Runnable bindChangedCallback = new Runnable() {
|
private final Runnable bindChangedCallback = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
@@ -178,6 +175,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
|
|||||||
TrackRecordingServiceInterface service = trackRecordingServiceConnection.getServiceIfBound();
|
TrackRecordingServiceInterface service = trackRecordingServiceConnection.getServiceIfBound();
|
||||||
if (service == null) {
|
if (service == null) {
|
||||||
Log.d(TAG, "service not available to start gps or a new recording");
|
Log.d(TAG, "service not available to start gps or a new recording");
|
||||||
|
gpsStatusValue = GpsStatusValue.GPS_NONE;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,12 +187,11 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
|
|||||||
updateGpsMenuItem(true, isRecording);
|
updateGpsMenuItem(true, isRecording);
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!startGps) {
|
if (isGpsStarted()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
service.startGps();
|
service.startGps();
|
||||||
startGps = false;
|
|
||||||
gpsStatusValue = GpsStatusValue.GPS_ENABLED;
|
gpsStatusValue = GpsStatusValue.GPS_ENABLED;
|
||||||
updateGpsMenuItem(true, isRecording);
|
updateGpsMenuItem(true, isRecording);
|
||||||
}
|
}
|
||||||
@@ -361,7 +358,7 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||||
boolean isGpsStarted = ServiceUtils.isTrackRecordingServiceRunning(this);
|
boolean isGpsStarted = isGpsStarted();
|
||||||
boolean isRecording = PreferencesUtils.isRecording(recordingTrackId);
|
boolean isRecording = PreferencesUtils.isRecording(recordingTrackId);
|
||||||
updateMenuItems(isGpsStarted, isRecording);
|
updateMenuItems(isGpsStarted, isRecording);
|
||||||
|
|
||||||
@@ -381,10 +378,8 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
|
|||||||
intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
|
intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
} else {
|
} else {
|
||||||
startGps = !ServiceUtils.isTrackRecordingServiceRunning(this);
|
|
||||||
|
|
||||||
// Invoke trackRecordingService
|
// Invoke trackRecordingService
|
||||||
if (startGps) {
|
if (!isGpsStarted()) {
|
||||||
trackRecordingServiceConnection.startAndBind(this);
|
trackRecordingServiceConnection.startAndBind(this);
|
||||||
bindChangedCallback.run();
|
bindChangedCallback.run();
|
||||||
} else {
|
} else {
|
||||||
@@ -440,6 +435,10 @@ public class TrackListActivity extends AbstractListActivity implements ConfirmDe
|
|||||||
// Do nothing
|
// Do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isGpsStarted() {
|
||||||
|
return gpsStatusValue != GpsStatusValue.GPS_NONE && gpsStatusValue != GpsStatusValue.GPS_DISABLED;
|
||||||
|
}
|
||||||
|
|
||||||
private void requestGPSPermissions() {
|
private void requestGPSPermissions() {
|
||||||
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
||||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, GPS_REQUEST_CODE);
|
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, GPS_REQUEST_CODE);
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ class GpsStatus {
|
|||||||
if (gpsStatusRunner != null) {
|
if (gpsStatusRunner != null) {
|
||||||
gpsStatusRunner.stop();
|
gpsStatusRunner.stop();
|
||||||
gpsStatusRunner = null;
|
gpsStatusRunner = null;
|
||||||
|
client = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
package de.dennisguse.opentracks.util;
|
|
||||||
|
|
||||||
import android.app.ActivityManager;
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import de.dennisguse.opentracks.services.TrackRecordingService;
|
|
||||||
|
|
||||||
public class ServiceUtils {
|
|
||||||
|
|
||||||
private ServiceUtils() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the recording service is running.
|
|
||||||
*
|
|
||||||
* @param context the current context
|
|
||||||
*/
|
|
||||||
@Deprecated //TODO This method must be removed as the service will nowadays always be started
|
|
||||||
public static boolean isTrackRecordingServiceRunning(Context context) {
|
|
||||||
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
|
||||||
if (activityManager == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO This approach is deprecated as of API level 26 and should be replaced.
|
|
||||||
List<ActivityManager.RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE);
|
|
||||||
|
|
||||||
for (ActivityManager.RunningServiceInfo serviceInfo : services) {
|
|
||||||
ComponentName componentName = serviceInfo.service;
|
|
||||||
String serviceName = componentName.getClassName();
|
|
||||||
if (TrackRecordingService.class.getName().equals(serviceName)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user