AggregatedStatisticsActivity: added filter option (by category, start and/or end date).

Fixes #1039.
This commit is contained in:
Román Ginés
2021-12-15 23:22:13 +01:00
committed by Román Martínez
parent 4d333bbafa
commit b4ce99440a
20 changed files with 940 additions and 18 deletions
@@ -11,6 +11,7 @@ import androidx.lifecycle.MutableLiveData;
import java.util.List;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.data.TrackSelection;
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
public class AggregatedStatisticsModel extends AndroidViewModel {
@@ -21,18 +22,26 @@ public class AggregatedStatisticsModel extends AndroidViewModel {
super(application);
}
public LiveData<AggregatedStatistics> getAggregatedStats(@Nullable List<Track.Id> trackIds) {
public LiveData<AggregatedStatistics> getAggregatedStats(@Nullable TrackSelection selection) {
if (aggregatedStats == null) {
aggregatedStats = new MutableLiveData<>();
loadAggregatedStats(trackIds);
loadAggregatedStats(selection);
}
return aggregatedStats;
}
private void loadAggregatedStats(@Nullable List<Track.Id> trackIds) {
public void updateSelection(TrackSelection selection) {
loadAggregatedStats(selection);
}
public void clearSelection() {
loadAggregatedStats(new TrackSelection());
}
private void loadAggregatedStats(TrackSelection selection) {
new Thread(() -> {
ContentProviderUtils contentProviderUtils = new ContentProviderUtils(getApplication().getApplicationContext());
List<Track> tracks = contentProviderUtils.getTracks(trackIds);
List<Track> tracks = selection != null ? contentProviderUtils.getTracks(selection) : contentProviderUtils.getTracks();
AggregatedStatistics aggregatedStatistics = new AggregatedStatistics(tracks);