From 70bc8f33b13524afb1b2292ed02bd5808318ea35 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 2 Apr 2020 22:06:00 +0200 Subject: [PATCH] Do not expose TrackDataType to fragments. --- .../dennisguse/opentracks/content/TrackDataHub.java | 11 ++++++++--- .../dennisguse/opentracks/content/TrackDataType.java | 2 +- .../opentracks/fragments/ChartFragment.java | 8 ++------ .../opentracks/fragments/StatsFragment.java | 6 +----- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java b/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java index c9213e9c9..91da9466a 100644 --- a/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java +++ b/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java @@ -193,13 +193,18 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL * Registers a {@link TrackDataListener}. * * @param trackDataListener the track data listener - * @param trackDataTypes the track data types */ - public void registerTrackDataListener(final TrackDataListener trackDataListener, final EnumSet trackDataTypes) { + public void registerTrackDataListener(final TrackDataListener trackDataListener, boolean tracksTable, boolean waypointTable, boolean trackPointsTable_SampleIn, boolean trackPointsTable_SampleOut) { + final EnumSet types = EnumSet.noneOf(TrackDataType.class); + if (tracksTable) types.add(TrackDataType.TRACKS_TABLE); + if (waypointTable) types.add(TrackDataType.WAYPOINTS_TABLE); + if (trackPointsTable_SampleIn) types.add(TrackDataType.SAMPLED_IN_TRACK_POINTS_TABLE); + if (trackPointsTable_SampleOut) types.add(TrackDataType.SAMPLED_OUT_TRACK_POINTS_TABLE); + runInHandlerThread(new Runnable() { @Override public void run() { - trackDataManager.registerListener(trackDataListener, trackDataTypes); + trackDataManager.registerListener(trackDataListener, types); if (started) { loadDataForListener(trackDataListener); } diff --git a/src/main/java/de/dennisguse/opentracks/content/TrackDataType.java b/src/main/java/de/dennisguse/opentracks/content/TrackDataType.java index 728a01de4..ac95171a6 100644 --- a/src/main/java/de/dennisguse/opentracks/content/TrackDataType.java +++ b/src/main/java/de/dennisguse/opentracks/content/TrackDataType.java @@ -21,7 +21,7 @@ package de.dennisguse.opentracks.content; * * @author Jimmy Shih */ -public enum TrackDataType { +enum TrackDataType { TRACKS_TABLE, // tracks table changes WAYPOINTS_TABLE, // waypoints table changes SAMPLED_IN_TRACK_POINTS_TABLE, // sampled-in track points table changes diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java index 60b97ea06..7b5edf647 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java @@ -29,7 +29,6 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import java.util.ArrayList; -import java.util.EnumSet; import java.util.List; import de.dennisguse.opentracks.R; @@ -37,7 +36,6 @@ import de.dennisguse.opentracks.TrackDetailActivity; import de.dennisguse.opentracks.chart.ChartView; import de.dennisguse.opentracks.content.TrackDataHub; import de.dennisguse.opentracks.content.TrackDataListener; -import de.dennisguse.opentracks.content.TrackDataType; import de.dennisguse.opentracks.content.data.Track; import de.dennisguse.opentracks.content.data.TrackPoint; import de.dennisguse.opentracks.content.data.Waypoint; @@ -305,9 +303,7 @@ public class ChartFragment extends Fragment implements TrackDataListener { */ private synchronized void resumeTrackDataHub() { trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub(); - trackDataHub.registerTrackDataListener(this, EnumSet.of(TrackDataType.TRACKS_TABLE, - TrackDataType.WAYPOINTS_TABLE, TrackDataType.SAMPLED_IN_TRACK_POINTS_TABLE, - TrackDataType.SAMPLED_OUT_TRACK_POINTS_TABLE)); + trackDataHub.registerTrackDataListener(this, true, true, true, true); } /** @@ -360,7 +356,7 @@ public class ChartFragment extends Fragment implements TrackDataListener { * data[6] = power
* * @param trackPoint the trackPoint - * @param data the data point to fill in, can be null + * @param data the data point to fill in, can be null */ @VisibleForTesting void fillDataPoint(@NonNull TrackPoint trackPoint, double[] data) { diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java index b6372261c..874d0bd64 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatsFragment.java @@ -33,13 +33,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; -import java.util.EnumSet; - import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.TrackDetailActivity; import de.dennisguse.opentracks.content.TrackDataHub; import de.dennisguse.opentracks.content.TrackDataListener; -import de.dennisguse.opentracks.content.TrackDataType; import de.dennisguse.opentracks.content.data.Track; import de.dennisguse.opentracks.content.data.TrackPoint; import de.dennisguse.opentracks.content.data.Waypoint; @@ -393,8 +390,7 @@ public class StatsFragment extends Fragment implements TrackDataListener { */ private synchronized void resumeTrackDataHub() { trackDataHub = ((TrackDetailActivity) getActivity()).getTrackDataHub(); - trackDataHub.registerTrackDataListener(this, EnumSet.of(TrackDataType.TRACKS_TABLE, - TrackDataType.SAMPLED_IN_TRACK_POINTS_TABLE, TrackDataType.SAMPLED_OUT_TRACK_POINTS_TABLE)); + trackDataHub.registerTrackDataListener(this, true, false, true, true); } /**