diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java index a750ad897..7b65be072 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/AnnouncementUtilsTest.java @@ -50,9 +50,8 @@ public class AnnouncementUtilsTest { stats.setMaxSpeed(100); stats.setTotalElevationGain(6000); - IntervalStatistics intervalStatistics = new IntervalStatistics(); List trackPoints = Arrays.asList(TestDataUtil.createTrack(new Track.Id(System.currentTimeMillis()), 10).second); - intervalStatistics.build(trackPoints, 1000); + IntervalStatistics intervalStatistics = new IntervalStatistics(trackPoints, 1000); IntervalStatistics.Interval lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1); int speedId = R.plurals.voiceSpeedKilometersPerHour; diff --git a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java index 0ade930e1..68cea62b4 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java @@ -47,10 +47,9 @@ public class IntervalStatisticsTest { List trackPoints = buildTrackPoints(50); TrackStatistics trackStatistics = buildTrackStatistics(trackPoints); float distanceInterval = 1000f; - IntervalStatistics intervalStatistics = new IntervalStatistics(); // when and then - whenAndThen(trackPoints, trackStatistics, distanceInterval, intervalStatistics); + whenAndThen(trackPoints, trackStatistics, distanceInterval); } /** @@ -64,10 +63,9 @@ public class IntervalStatisticsTest { List trackPoints = buildTrackPoints(200); TrackStatistics trackStatistics = buildTrackStatistics(trackPoints); float distanceInterval = 1000f; - IntervalStatistics intervalStatistics = new IntervalStatistics(); // when and then - whenAndThen(trackPoints, trackStatistics, distanceInterval, intervalStatistics); + whenAndThen(trackPoints, trackStatistics, distanceInterval); } /** @@ -81,10 +79,9 @@ public class IntervalStatisticsTest { List trackPoints = buildTrackPoints(200); TrackStatistics trackStatistics = buildTrackStatistics(trackPoints); float distanceInterval = 3000f; - IntervalStatistics intervalStatistics = new IntervalStatistics(); // when and then - whenAndThen(trackPoints, trackStatistics, distanceInterval, intervalStatistics); + whenAndThen(trackPoints, trackStatistics, distanceInterval); } /** @@ -98,10 +95,9 @@ public class IntervalStatisticsTest { List trackPoints = buildTrackPoints(1000); TrackStatistics trackStatistics = buildTrackStatistics(trackPoints); float distanceInterval = 3000f; - IntervalStatistics intervalStatistics = new IntervalStatistics(); // when and then - whenAndThen(trackPoints, trackStatistics, distanceInterval, intervalStatistics); + whenAndThen(trackPoints, trackStatistics, distanceInterval); } /** @@ -115,14 +111,13 @@ public class IntervalStatisticsTest { List trackPoints = buildTrackPoints(10000); TrackStatistics trackStatistics = buildTrackStatistics(trackPoints); float distanceInterval = 1000f; - IntervalStatistics intervalStatistics = new IntervalStatistics(); // when and then - whenAndThen(trackPoints, trackStatistics, distanceInterval, intervalStatistics); + whenAndThen(trackPoints, trackStatistics, distanceInterval); } - private void whenAndThen(List trackPoints, TrackStatistics trackStatistics, float distanceInterval, IntervalStatistics intervalStatistics) { - intervalStatistics.build(trackPoints, distanceInterval); + private void whenAndThen(List trackPoints, TrackStatistics trackStatistics, float distanceInterval) { + IntervalStatistics intervalStatistics = new IntervalStatistics(trackPoints, distanceInterval); List intervalList = intervalStatistics.getIntervalList(); double totalDistance = 0d; long totalTime = 0L; diff --git a/src/main/java/de/dennisguse/opentracks/TrackController.java b/src/main/java/de/dennisguse/opentracks/TrackController.java index 641baf4a2..4f584024c 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackController.java +++ b/src/main/java/de/dennisguse/opentracks/TrackController.java @@ -23,7 +23,6 @@ import android.os.Handler; import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityEvent; -import android.widget.ImageButton; import de.dennisguse.opentracks.databinding.TrackControllerBinding; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; @@ -103,7 +102,7 @@ public class TrackController implements View.OnTouchListener { if (buttonDelay != null && event.getAction() == MotionEvent.ACTION_UP) { handlerUpdateTotalTime.removeCallbacks(buttonDelay); buttonDelay = null; - ((ImageButton) view).setPressed(false); + view.setPressed(false); transition.resetTransition(); @@ -113,7 +112,7 @@ public class TrackController implements View.OnTouchListener { } //Trigger button pressed animation - ((ImageButton) view).setPressed(true); + view.setPressed(true); //To pause a recording if (viewBinding.trackControllerRecord.equals(view) diff --git a/src/main/java/de/dennisguse/opentracks/TrackDeleteActivity.java b/src/main/java/de/dennisguse/opentracks/TrackDeleteActivity.java index cae23c320..3ccbbd74a 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackDeleteActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackDeleteActivity.java @@ -78,6 +78,12 @@ public class TrackDeleteActivity extends AbstractActivity { deleteThread.interrupt(); } + @Override + protected void onDestroy() { + super.onDestroy(); + viewBinding = null; + } + @Override protected View getRootView() { viewBinding = TrackDeleteBinding.inflate(getLayoutInflater()); diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java index b3a637040..67aa66ee1 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java @@ -65,7 +65,6 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi private StatisticsRecordingBinding viewBinding; private SensorsAdapter sensorsAdapter; - private RecyclerView sensorsRecyclerView; public static Fragment newInstance() { return new StatisticsRecordingFragment(); @@ -112,7 +111,7 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi viewBinding.statsActivityTypeIcon.setOnClickListener(v -> ((TrackRecordingActivity) getActivity()).chooseActivityType(category)); sensorsAdapter = new SensorsAdapter(getContext()); - sensorsRecyclerView = viewBinding.statsSensorsRecyclerView; + RecyclerView sensorsRecyclerView = viewBinding.statsSensorsRecyclerView; sensorsRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2)); sensorsRecyclerView.setAdapter(sensorsAdapter); } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java index 35251e4a9..1d65e48dd 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java @@ -72,7 +72,6 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes private ExportServiceResultReceiver resultReceiver; - private String directoryDisplayName; private List directoryFiles; private int trackExportSuccessCount; @@ -143,7 +142,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes contentProviderUtils = new ContentProviderUtils(this); DocumentFile documentFile = DocumentFile.fromTreeUri(this, directoryUri); - directoryDisplayName = FileUtils.getPath(documentFile); + String directoryDisplayName = FileUtils.getPath(documentFile); viewBinding.toolbar.toolbar.setTitle(getString(R.string.export_progress_message, directoryDisplayName)); diff --git a/src/main/java/de/dennisguse/opentracks/services/tasks/AnnouncementPeriodicTask.java b/src/main/java/de/dennisguse/opentracks/services/tasks/AnnouncementPeriodicTask.java index c0359b01c..c7617bda0 100644 --- a/src/main/java/de/dennisguse/opentracks/services/tasks/AnnouncementPeriodicTask.java +++ b/src/main/java/de/dennisguse/opentracks/services/tasks/AnnouncementPeriodicTask.java @@ -168,8 +168,7 @@ public class AnnouncementPeriodicTask implements PeriodicTask { String category = track != null ? track.getCategory() : ""; List trackPoints = contentProviderUtils.getTrackPoints(track.getId()); - IntervalStatistics intervalStatistics = new IntervalStatistics(); - intervalStatistics.build(trackPoints, (float) (PreferencesUtils.isMetricUnits(context) ? 1d * UnitConversions.KM_TO_M : 1d * UnitConversions.MI_TO_M)); + IntervalStatistics intervalStatistics = new IntervalStatistics(trackPoints, (float) (PreferencesUtils.isMetricUnits(context) ? 1d * UnitConversions.KM_TO_M : 1d * UnitConversions.MI_TO_M)); IntervalStatistics.Interval lastInterval = intervalStatistics.getLastInterval(); String announcement = AnnouncementUtils.getAnnouncement(context, trackStatistics, category, lastInterval); diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java b/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java index 60dbf1aa4..03173db5d 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java @@ -50,10 +50,6 @@ public class AggregatedStatistics { return dataMap.get(category); } - public String getCategory(int position) { - return dataList.get(position).getCategory(); - } - public AggregatedStatistic getItem(int position) { return dataList.get(position); } diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java index 193ddf9cc..a56a42ed3 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java @@ -9,25 +9,25 @@ import de.dennisguse.opentracks.util.UnitConversions; public class IntervalStatistics { private final List intervalList = new ArrayList<>(); - private float distanceInterval_m; + private final float distanceInterval_m; /** - * @param trackPointList the list of TrackPoint. + * @param trackPoints the list of TrackPoint. * @param distanceInterval_m the meters of every interval. */ - public void build(List trackPointList, float distanceInterval_m) { + public IntervalStatistics(List trackPoints, float distanceInterval_m) { intervalList.clear(); this.distanceInterval_m = distanceInterval_m; - if (trackPointList == null || trackPointList.size() == 0) { + if (trackPoints == null || trackPoints.size() == 0) { return; } Interval interval = new Interval(); - interval.gain_m += trackPointList.get(0).hasElevationGain() ? trackPointList.get(0).getElevationGain() : 0; - for (int i = 1; i < trackPointList.size(); i++) { - TrackPoint prevTrackPoint = trackPointList.get(i - 1); - TrackPoint trackPoint = trackPointList.get(i); + interval.gain_m += trackPoints.get(0).hasElevationGain() ? trackPoints.get(0).getElevationGain() : 0; + for (int i = 1; i < trackPoints.size(); i++) { + TrackPoint prevTrackPoint = trackPoints.get(i - 1); + TrackPoint trackPoint = trackPoints.get(i); if (LocationUtils.isValidLocation(trackPoint.getLocation()) && LocationUtils.isValidLocation(prevTrackPoint.getLocation())) { interval.distance_m += prevTrackPoint.distanceTo(trackPoint); @@ -51,6 +51,7 @@ public class IntervalStatistics { } } + public List getIntervalList() { return intervalList; } @@ -62,10 +63,6 @@ public class IntervalStatistics { * @return the interval object or null if any interval is completed. */ public Interval getLastInterval() { - if (intervalList == null) { - return null; - } - if (intervalList.size() == 1 && intervalList.get(0).getDistance_m() < distanceInterval_m) { return null; } diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java index f46f6029d..459a8e887 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java @@ -14,7 +14,6 @@ import de.dennisguse.opentracks.util.UnitConversions; */ public class IntervalStatisticsModel { - private IntervalStatistics intervalStats; private final List trackPoints = new ArrayList<>(); public IntervalStatistics getIntervalStats(boolean metricUnits, @Nullable IntervalOption interval) { @@ -23,10 +22,8 @@ public class IntervalStatisticsModel { interval = IntervalOption.OPTION_1; } - intervalStats = new IntervalStatistics(); float distanceInterval = metricUnits ? (float) (interval.getValue() * UnitConversions.KM_TO_M) : (float) (interval.getValue() * UnitConversions.MI_TO_M); - intervalStats.build(trackPoints, distanceInterval); - return intervalStats; + return new IntervalStatistics(trackPoints, distanceInterval); } }