mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2025-06-05 21:49:48 +02:00
Compare commits
3 Commits
0.67.0
...
openTracks
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8ecb11db9 | ||
|
|
e7ba9c66f8 | ||
|
|
ef47f004ce |
@@ -35,6 +35,7 @@ import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
@@ -70,6 +71,8 @@ import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Random;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
@@ -83,6 +86,8 @@ import nodomain.freeyourgadget.gadgetbridge.devices.DeviceCoordinator;
|
||||
import nodomain.freeyourgadget.gadgetbridge.devices.DeviceManager;
|
||||
import nodomain.freeyourgadget.gadgetbridge.entities.DaoSession;
|
||||
import nodomain.freeyourgadget.gadgetbridge.entities.Device;
|
||||
import nodomain.freeyourgadget.gadgetbridge.externalevents.OpenTracksContentObserver;
|
||||
import nodomain.freeyourgadget.gadgetbridge.externalevents.OpenTracksController;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.CallSpec;
|
||||
@@ -508,6 +513,72 @@ public class DebugActivity extends AbstractGBActivity {
|
||||
}
|
||||
});
|
||||
|
||||
Button startFitnessAppTracking = findViewById(R.id.startFitnessAppTracking);
|
||||
startFitnessAppTracking.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
OpenTracksController.startRecording(DebugActivity.this);
|
||||
}
|
||||
});
|
||||
|
||||
Button stopFitnessAppTracking = findViewById(R.id.stopFitnessAppTracking);
|
||||
stopFitnessAppTracking.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
OpenTracksController.stopRecording(DebugActivity.this);
|
||||
}
|
||||
});
|
||||
|
||||
Button showStatusFitnessAppTracking = findViewById(R.id.showStatusFitnessAppTracking);
|
||||
final int delay = 2 * 1000;
|
||||
|
||||
showStatusFitnessAppTracking.setOnClickListener(new View.OnClickListener() {
|
||||
final Handler handler = new Handler();
|
||||
Runnable runnable;
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
final AlertDialog.Builder fitnesStatusBuilder = new AlertDialog.Builder(DebugActivity.this);
|
||||
fitnesStatusBuilder
|
||||
.setCancelable(false)
|
||||
.setTitle("openTracksObserver Status")
|
||||
.setMessage("Starting openTracksObserver watcher, waiting for an update, refreshing every: " + delay + "ms")
|
||||
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
handler.removeCallbacks(runnable);
|
||||
}
|
||||
});
|
||||
final AlertDialog alert = fitnesStatusBuilder.show();
|
||||
|
||||
|
||||
runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
LOG.debug("openTracksObserver debug watch dialog running");
|
||||
handler.postDelayed(this, delay); //schedule next execution
|
||||
|
||||
OpenTracksContentObserver openTracksObserver = GBApplication.app().getOpenTracksObserver();
|
||||
if (openTracksObserver == null) {
|
||||
LOG.debug("openTracksObserver is null");
|
||||
alert.cancel();
|
||||
alert.setMessage("openTracksObserver not running");
|
||||
alert.show();
|
||||
return;
|
||||
}
|
||||
LOG.debug("openTracksObserver is not null, updating debug view");
|
||||
long timeSecs = openTracksObserver.getTimeMillisChange() / 1000;
|
||||
float distanceCM = openTracksObserver.getDistanceMeterChange() * 100;
|
||||
|
||||
LOG.debug("Time: " + timeSecs + " distanceCM " + distanceCM);
|
||||
alert.cancel();
|
||||
alert.setMessage("TimeSec: " + timeSecs + " distanceCM " + distanceCM);
|
||||
alert.show();
|
||||
}
|
||||
};
|
||||
handler.postDelayed(runnable, delay);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -881,6 +881,7 @@ public class NotificationListener extends NotificationListenerService {
|
||||
String source = sbn.getPackageName();
|
||||
if (source.equals("de.dennisguse.opentracks")
|
||||
|| source.equals("de.dennisguse.opentracks.debug")
|
||||
|| source.equals("de.dennisguse.opentracks.nightly")
|
||||
|| source.equals("de.tadris.fitness")
|
||||
|| source.equals("de.tadris.fitness.debug")
|
||||
) {
|
||||
|
||||
@@ -85,6 +85,10 @@ public class OpenTracksController extends Activity {
|
||||
|
||||
public static void stopRecording(Context context) {
|
||||
sendIntent(context, "de.dennisguse.opentracks.publicapi.StopRecording");
|
||||
GBApplication.app().getOpenTracksObserver().finish();
|
||||
OpenTracksContentObserver openTracksObserver = GBApplication.app().getOpenTracksObserver();
|
||||
if (openTracksObserver != null) {
|
||||
openTracksObserver.finish();
|
||||
}
|
||||
GBApplication.app().setOpenTracksObserver(null);
|
||||
}
|
||||
}
|
||||
@@ -233,6 +233,29 @@
|
||||
grid:layout_columnSpan="2"
|
||||
grid:layout_gravity="fill_horizontal" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/startFitnessAppTracking"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pref_device_action_fitness_app_control_start"
|
||||
grid:layout_columnSpan="2"
|
||||
grid:layout_gravity="fill_horizontal" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/stopFitnessAppTracking"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/pref_device_action_fitness_app_control_stop"
|
||||
grid:layout_columnSpan="2"
|
||||
grid:layout_gravity="fill_horizontal" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/showStatusFitnessAppTracking"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Show Fit.App.Track. Status"
|
||||
grid:layout_columnSpan="2"
|
||||
grid:layout_gravity="fill_horizontal" />
|
||||
</androidx.gridlayout.widget.GridLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
Reference in New Issue
Block a user