mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-02 18:33:54 +00:00
detect running TrackingService and adjust display accordingly
This commit is contained in:
1 parent
01864a92b8
commit
036cfddb23
1 file changed
+28
-9
+28
-9
@@ -7,6 +7,8 @@ import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.ActivityManager.RunningServiceInfo;
|
||||
import android.app.Dialog;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
@@ -31,14 +33,21 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
public class LaunchActivity extends BaseActivity {
|
||||
private static int requestCodeQRCode = 42471;
|
||||
private static final String TAG = LaunchActivity.class.getName();
|
||||
private boolean isTrackingActive = false;
|
||||
private Button toggleTrackingBtn;
|
||||
private boolean isTrackingActive = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.launch_activity);
|
||||
toggleTrackingBtn = (Button) findViewById(R.id.btnToggleTracking);
|
||||
isTrackingActive = isTrackingServiceRunning();
|
||||
updateToggleTrackingBtn();
|
||||
}
|
||||
|
||||
private void updateToggleTrackingBtn() {
|
||||
toggleTrackingBtn.setText(getString(
|
||||
isTrackingActive ? R.string.stop_tracking : R.string.start_tracking));
|
||||
}
|
||||
|
||||
public void onScanQRCodeClicked(View view) {
|
||||
@@ -102,18 +111,16 @@ public class LaunchActivity extends BaseActivity {
|
||||
if (!googlePLayServicesAvailable()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (isTrackingActive == false){
|
||||
Intent startTrackingIntent = new Intent(this, TrackingService.class);
|
||||
|
||||
if (! isTrackingActive){
|
||||
Intent startTrackingIntent = new Intent(this, TrackingService.class);
|
||||
getBaseContext().startService(startTrackingIntent);
|
||||
toggleTrackingBtn.setText(getString(R.string.stop_tracking));
|
||||
isTrackingActive = true;
|
||||
} else {
|
||||
Intent startTrackingIntent = new Intent(this, TrackingService.class);
|
||||
Intent startTrackingIntent = new Intent(this, TrackingService.class);
|
||||
getBaseContext().stopService(startTrackingIntent);
|
||||
toggleTrackingBtn.setText(getString(R.string.start_tracking));
|
||||
isTrackingActive = false;
|
||||
}
|
||||
isTrackingActive = ! isTrackingActive;
|
||||
updateToggleTrackingBtn();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -184,4 +191,16 @@ public class LaunchActivity extends BaseActivity {
|
||||
String port = apkUrl.getPort() == -1 ? "" : ":" + apkUrl.getPort();
|
||||
return protocol + "://" + host + port;
|
||||
}
|
||||
|
||||
// approach with static member on TrackingService class did not work
|
||||
// this is not a really good approach in my opinion either, but simple
|
||||
private boolean isTrackingServiceRunning() {
|
||||
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
|
||||
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
|
||||
if (TrackingService.class.getName().equals(service.service.getClassName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user