This commit is contained in:
Dennis Guse
2025-12-06 08:41:57 +01:00
parent 55f1bcb30b
commit 2cab394d03
9 changed files with 18 additions and 15 deletions
+1 -2
View File
@@ -112,8 +112,7 @@ The API is disabled by default to protect the user's privacy, but it can easily
`Classes`: `Classes`:
* **Start a recording:** `de.dennisguse.opentracks.publicapi.StartRecording` * **Start a recording:** `de.dennisguse.opentracks.publicapi.StartRecording`
* Set track data: `TRACK_NAME`, `TRACK_DESCRIPTION`, `TRACK_CATEGORY`, and `TRACK_ICON` ( * Set track data: `TRACK_NAME`, `TRACK_DESCRIPTION`, `TRACK_CATEGORY`, and `TRACK_ICON` (
non-localized identifier see `ActivityType.id` defined in [/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38](/src/main/java/de/dennisguse/opentracks/data/model/ActivityType.java)).
see [/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38](/src/main/java/de/dennisguse/opentracks/util/TrackIconUtils.java#L38)).
NOTE: if `TRACK_ICON` is not present, `TRACK_CATEGORY` will be used to determine the icon ( NOTE: if `TRACK_ICON` is not present, `TRACK_CATEGORY` will be used to determine the icon (
localized). localized).
* Send recorded data to another application via _Dashboard API_: `STATS_TARGET_PACKAGE` and * Send recorded data to another application via _Dashboard API_: `STATS_TARGET_PACKAGE` and
@@ -9,6 +9,7 @@ import android.location.Location;
import android.location.LocationManager; import android.location.LocationManager;
import android.os.Looper; import android.os.Looper;
import androidx.annotation.NonNull;
import androidx.core.location.LocationManagerCompat; import androidx.core.location.LocationManagerCompat;
import androidx.test.core.app.ApplicationProvider; import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -738,6 +739,7 @@ public class TrackRecordingServiceRecordingTest {
return true; return true;
} }
@NonNull
@Override @Override
public AltitudeGainLoss getAggregatedValue(Instant now) { public AltitudeGainLoss getAggregatedValue(Instant now) {
return new AltitudeGainLoss(altitudeGain, altitudeGain); return new AltitudeGainLoss(altitudeGain, altitudeGain);
@@ -118,7 +118,7 @@ public class ChartView extends View {
private final GestureDetectorCompat detectorScrollFlingTab = new GestureDetectorCompat(getContext(), new GestureDetector.SimpleOnGestureListener() { private final GestureDetectorCompat detectorScrollFlingTab = new GestureDetectorCompat(getContext(), new GestureDetector.SimpleOnGestureListener() {
@Override @Override
public boolean onDown(MotionEvent e) { public boolean onDown(@NonNull MotionEvent e) {
if (!scroller.isFinished()) { if (!scroller.isFinished()) {
scroller.abortAnimation(); scroller.abortAnimation();
} }
@@ -126,7 +126,7 @@ public class ChartView extends View {
} }
@Override @Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { public boolean onScroll(MotionEvent e1, @NonNull MotionEvent e2, float distanceX, float distanceY) {
if (Math.abs(distanceX) > 0) { if (Math.abs(distanceX) > 0) {
int availableToScroll = effectiveWidth * (zoomLevel - 1) - getScrollX(); int availableToScroll = effectiveWidth * (zoomLevel - 1) - getScrollX();
if (availableToScroll > 0) { if (availableToScroll > 0) {
@@ -137,7 +137,7 @@ public class ChartView extends View {
} }
@Override @Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { public boolean onFling(MotionEvent e1, @NonNull MotionEvent e2, float velocityX, float velocityY) {
fling((int) -velocityX); fling((int) -velocityX);
return true; return true;
} }
@@ -147,7 +147,7 @@ public class ChartView extends View {
private final ScaleGestureDetector detectorZoom = new ScaleGestureDetector(getContext(), new ScaleGestureDetector.SimpleOnScaleGestureListener() { private final ScaleGestureDetector detectorZoom = new ScaleGestureDetector(getContext(), new ScaleGestureDetector.SimpleOnScaleGestureListener() {
@Override @Override
public boolean onScale(ScaleGestureDetector detector) { public boolean onScale(@NonNull ScaleGestureDetector detector) {
float scaleFactor = detector.getScaleFactor(); float scaleFactor = detector.getScaleFactor();
if (scaleFactor >= 1.1f) { if (scaleFactor >= 1.1f) {
zoomIn(); zoomIn();
@@ -4,10 +4,6 @@ import androidx.annotation.NonNull;
public class ParsingException extends RuntimeException { public class ParsingException extends RuntimeException {
protected ParsingException(@NonNull String message) {
super(message);
}
protected ParsingException(@NonNull String message, Exception cause) { protected ParsingException(@NonNull String message, Exception cause) {
super(message, cause); super(message, cause);
} }
@@ -15,6 +11,6 @@ public class ParsingException extends RuntimeException {
@NonNull @NonNull
@Override @Override
public String toString() { public String toString() {
return "" + getMessage(); return getMessage();
} }
} }
@@ -24,6 +24,7 @@ import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView; import android.widget.AutoCompleteTextView;
import android.widget.ImageView; import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.preference.DialogPreference; import androidx.preference.DialogPreference;
import androidx.preference.PreferenceDialogFragmentCompat; import androidx.preference.PreferenceDialogFragmentCompat;
@@ -71,7 +72,7 @@ public class ActivityTypePreference extends DialogPreference {
} }
@Override @Override
protected void onBindDialogView(View view) { protected void onBindDialogView(@NonNull View view) {
super.onBindDialogView(view); super.onBindDialogView(view);
final Context context = getActivity(); final Context context = getActivity();
@@ -3,6 +3,7 @@ package de.dennisguse.opentracks.settings;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.preference.ListPreference; import androidx.preference.ListPreference;
import androidx.preference.Preference; import androidx.preference.Preference;
@@ -48,7 +49,7 @@ public class DefaultsSettingsFragment extends PreferenceFragmentCompat implement
} }
@Override @Override
public void onDisplayPreferenceDialog(Preference preference) { public void onDisplayPreferenceDialog(@NonNull Preference preference) {
DialogFragment dialogFragment = null; DialogFragment dialogFragment = null;
if (preference instanceof ActivityTypePreference) { if (preference instanceof ActivityTypePreference) {
activityPreferenceDialog = ActivityTypePreference.ActivityPreferenceDialog.newInstance(preference.getKey()); activityPreferenceDialog = ActivityTypePreference.ActivityPreferenceDialog.newInstance(preference.getKey());
@@ -17,6 +17,7 @@ import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.preference.DialogPreference; import androidx.preference.DialogPreference;
import androidx.preference.PreferenceDialogFragmentCompat; import androidx.preference.PreferenceDialogFragmentCompat;
@@ -234,7 +235,7 @@ public abstract class BluetoothLeSensorPreference extends DialogPreference {
//Behave like ListPreferenceDialogFragmentCompat, but uses a custom listAdapter. //Behave like ListPreferenceDialogFragmentCompat, but uses a custom listAdapter.
@Override @Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { protected void onPrepareDialogBuilder(@NonNull AlertDialog.Builder builder) {
super.onPrepareDialogBuilder(builder); super.onPrepareDialogBuilder(builder);
builder.setSingleChoiceItems(listAdapter, selectedEntryIndex, builder.setSingleChoiceItems(listAdapter, selectedEntryIndex,
@@ -3,6 +3,8 @@ package de.dennisguse.opentracks.ui.customRecordingLayout;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import androidx.annotation.NonNull;
import java.util.Objects; import java.util.Objects;
public class DataField implements Parcelable { public class DataField implements Parcelable {
@@ -88,6 +90,7 @@ public class DataField implements Parcelable {
return Objects.hash(key, isVisible, isPrimary, isWide); return Objects.hash(key, isVisible, isPrimary, isWide);
} }
@NonNull
@Override @Override
public String toString() { public String toString() {
return "DataField{" + return "DataField{" +
@@ -216,7 +216,7 @@ public class StringUtils {
.setUnit(unitSystem) .setUnit(unitSystem)
.build(context); .build(context);
Distance distance = altitude_m != null ? Distance.of(altitude_m) : Distance.of((Double) null); Distance distance = altitude_m != null ? Distance.of(altitude_m) : Distance.of(null);
return formatter.getDistanceParts(distance); return formatter.getDistanceParts(distance);
} }