forked from upstream-mirrors/OpenTracks
Cleanup: AutoCloseableIterator now handles the cursor.
This commit is contained in:
@@ -27,7 +27,6 @@ import de.dennisguse.opentracks.services.RecordingStatus;
|
||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||
import de.dennisguse.opentracks.ui.util.ActivityUtils;
|
||||
import de.dennisguse.opentracks.ui.util.ListItemUtils;
|
||||
import de.dennisguse.opentracks.util.AutoCloseableIterator;
|
||||
import de.dennisguse.opentracks.util.IntentUtils;
|
||||
|
||||
public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements ActionMode.Callback {
|
||||
@@ -39,7 +38,7 @@ public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
|
||||
private final SparseBooleanArray selection = new SparseBooleanArray();
|
||||
private RecordingStatus recordingStatus;
|
||||
private UnitSystem unitSystem;
|
||||
private AutoCloseableIterator<TrackListIterator.Item> cursor;
|
||||
private TrackListIterator cursor;
|
||||
private boolean selectionMode = false;
|
||||
private ActivityUtils.ContextualActionModeCallback actionModeCallback;
|
||||
private ActionMode actionMode;
|
||||
@@ -85,7 +84,7 @@ public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
|
||||
return cursor.getCount();
|
||||
}
|
||||
|
||||
public void swapData(AutoCloseableIterator<TrackListIterator.Item> cursor) {
|
||||
public void swapData(TrackListIterator cursor) {
|
||||
this.cursor = cursor;
|
||||
this.notifyDataSetChanged();
|
||||
}
|
||||
@@ -176,7 +175,7 @@ public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
|
||||
}
|
||||
|
||||
|
||||
public void bind(AutoCloseableIterator<TrackListIterator.Item> cursor) {
|
||||
public void bind(TrackListIterator cursor) {
|
||||
TrackListIterator.Item tracksListItem = cursor.get();
|
||||
trackId = tracksListItem.id();
|
||||
|
||||
|
||||
@@ -17,13 +17,13 @@ import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
||||
import de.dennisguse.opentracks.data.TrackPointIterator;
|
||||
import de.dennisguse.opentracks.data.models.Distance;
|
||||
import de.dennisguse.opentracks.data.models.Statistics;
|
||||
import de.dennisguse.opentracks.data.models.Track;
|
||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||
import de.dennisguse.opentracks.data.tables.TrackPointsColumns;
|
||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||
import de.dennisguse.opentracks.util.AutoCloseableIterator;
|
||||
|
||||
/**
|
||||
* This model is used to load intervals for a track.
|
||||
@@ -93,7 +93,7 @@ public class IntervalStatisticsModel extends AndroidViewModel {
|
||||
private void loadIntervalStatistics(Track.Id trackId) {
|
||||
executor.execute(() -> {
|
||||
ContentProviderUtils contentProviderUtils = new ContentProviderUtils(getApplication());
|
||||
try (AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointIterator(trackId, lastTrackPointId)) {
|
||||
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointIterator(trackId, lastTrackPointId)) {
|
||||
lastTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator);
|
||||
intervalsLiveData.postValue(intervalStatistics.getIntervalList());
|
||||
}
|
||||
|
||||
@@ -30,10 +30,10 @@ import androidx.viewpager2.widget.ViewPager2;
|
||||
import de.dennisguse.opentracks.AbstractActivity;
|
||||
import de.dennisguse.opentracks.R;
|
||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
||||
import de.dennisguse.opentracks.data.MarkerIterator;
|
||||
import de.dennisguse.opentracks.data.models.Marker;
|
||||
import de.dennisguse.opentracks.databinding.MarkerDetailActivityBinding;
|
||||
import de.dennisguse.opentracks.ui.markers.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
||||
import de.dennisguse.opentracks.util.AutoCloseableIterator;
|
||||
|
||||
/**
|
||||
* An activity to display marker detail info.
|
||||
@@ -50,7 +50,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
||||
|
||||
private MarkerDetailActivityBinding viewBinding;
|
||||
|
||||
private AutoCloseableIterator<Marker> markerAutoCloseableIterator;
|
||||
private MarkerIterator markerIterator;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle bundle) {
|
||||
@@ -66,15 +66,15 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
||||
ContentProviderUtils contentProviderUtils = new ContentProviderUtils(this);
|
||||
Marker marker = contentProviderUtils.getMarker(markerId);
|
||||
|
||||
markerAutoCloseableIterator = contentProviderUtils.getMarkerIterator(marker.trackId());
|
||||
if (markerAutoCloseableIterator == null) {
|
||||
markerIterator = contentProviderUtils.getMarkerIterator(marker.trackId());
|
||||
if (markerIterator == null) {
|
||||
finish();
|
||||
}
|
||||
|
||||
int markerIndex = -1;
|
||||
while (markerAutoCloseableIterator.hasNext()) {
|
||||
if (markerId.equals(markerAutoCloseableIterator.next().id())) {
|
||||
markerIndex = markerAutoCloseableIterator.getPosition();
|
||||
while (markerIterator.hasNext()) {
|
||||
if (markerId.equals(markerIterator.next().id())) {
|
||||
markerIndex = markerIterator.getPosition();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -104,8 +104,8 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
||||
super.onDestroy();
|
||||
viewBinding = null;
|
||||
|
||||
if (markerAutoCloseableIterator != null) markerAutoCloseableIterator.close();
|
||||
markerAutoCloseableIterator = null;
|
||||
if (markerIterator != null) markerIterator.close();
|
||||
markerIterator = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -122,18 +122,18 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
||||
@Override
|
||||
@NonNull
|
||||
public Fragment createFragment(int position) {
|
||||
markerAutoCloseableIterator.moveToPosition(position);
|
||||
return MarkerDetailFragment.newInstance(markerAutoCloseableIterator.get(position).id());
|
||||
markerIterator.moveToPosition(position);
|
||||
return MarkerDetailFragment.newInstance(markerIterator.get(position).id());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return markerAutoCloseableIterator.getCount();
|
||||
return markerIterator.getCount();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return getString(R.string.marker_detail_title, position + 1, getItemCount(), markerAutoCloseableIterator.get().name());
|
||||
return getString(R.string.marker_detail_title, position + 1, getItemCount(), markerIterator.get().name());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user