forked from upstream-mirrors/OpenTracks
@@ -24,6 +24,12 @@ class MarkerIterator extends AutoCloseableIterator<Marker> {
|
|||||||
cursor = contentProviderUtils.getMarkerCursor(trackId, maxCount);
|
cursor = contentProviderUtils.getMarkerCursor(trackId, maxCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Marker get() {
|
||||||
|
return contentProviderUtils.createMarker(cursor);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasNext() {
|
public boolean hasNext() {
|
||||||
if (cursor == null) {
|
if (cursor == null) {
|
||||||
@@ -38,7 +44,7 @@ class MarkerIterator extends AutoCloseableIterator<Marker> {
|
|||||||
if (cursor == null || !cursor.moveToNext()) {
|
if (cursor == null || !cursor.moveToNext()) {
|
||||||
throw new NoSuchElementException();
|
throw new NoSuchElementException();
|
||||||
}
|
}
|
||||||
return contentProviderUtils.createMarker(cursor);
|
return get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -33,13 +33,19 @@ class TrackPointIterator extends AutoCloseableIterator<TrackPoint> {
|
|||||||
return !cursor.isLast() && !cursor.isAfterLast();
|
return !cursor.isLast() && !cursor.isAfterLast();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NonNull
|
||||||
|
public TrackPoint get() {
|
||||||
|
return ContentProviderUtils.fillTrackPoint(cursor, indexes);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NonNull
|
@NonNull
|
||||||
public TrackPoint next() {
|
public TrackPoint next() {
|
||||||
if (cursor == null || !cursor.moveToNext()) {
|
if (cursor == null || !cursor.moveToNext()) {
|
||||||
throw new NoSuchElementException();
|
throw new NoSuchElementException();
|
||||||
}
|
}
|
||||||
return ContentProviderUtils.fillTrackPoint(cursor, indexes);
|
return get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
|||||||
@NonNull
|
@NonNull
|
||||||
public Fragment createFragment(int position) {
|
public Fragment createFragment(int position) {
|
||||||
markerAutoCloseableIterator.moveToPosition(position);
|
markerAutoCloseableIterator.moveToPosition(position);
|
||||||
return MarkerDetailFragment.newInstance(markerAutoCloseableIterator.next().id());
|
return MarkerDetailFragment.newInstance(markerAutoCloseableIterator.get(position).id());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -133,8 +133,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public CharSequence getPageTitle(int position) {
|
public CharSequence getPageTitle(int position) {
|
||||||
markerAutoCloseableIterator.moveToPosition(position);
|
return getString(R.string.marker_detail_title, position + 1, getItemCount(), markerAutoCloseableIterator.get().name());
|
||||||
return getString(R.string.marker_detail_title, position + 1, getItemCount(), markerAutoCloseableIterator.next().name());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package de.dennisguse.opentracks.util;
|
package de.dennisguse.opentracks.util;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
public abstract class AutoCloseableIterator<T> implements Iterator<T>, AutoCloseable {
|
public abstract class AutoCloseableIterator<T> implements Iterator<T>, AutoCloseable {
|
||||||
@@ -13,5 +15,14 @@ public abstract class AutoCloseableIterator<T> implements Iterator<T>, AutoClose
|
|||||||
|
|
||||||
public abstract boolean moveToPosition(int position);
|
public abstract boolean moveToPosition(int position);
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public abstract T get();
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
public T get(int position) {
|
||||||
|
moveToPosition(position);
|
||||||
|
return get();
|
||||||
|
}
|
||||||
|
|
||||||
public abstract int getCount();
|
public abstract int getCount();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user