forked from upstream-mirrors/OpenTracks
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 42ae582cd8 | |||
| 6e0ad50397 | |||
| d43efad52a |
+2
-2
@@ -46,8 +46,8 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId 'de.dennisguse.opentracks'
|
||||
versionCode 6513
|
||||
versionName "v4.24.1"
|
||||
versionCode 6516
|
||||
versionName "v4.24.2"
|
||||
|
||||
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
v4.24.2: OpenTracks
|
||||
|
||||
Bugfix:
|
||||
- Crash when select all (introduced in v4.24.0)
|
||||
@@ -38,7 +38,7 @@ public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
|
||||
private final SparseBooleanArray selection = new SparseBooleanArray();
|
||||
private RecordingStatus recordingStatus;
|
||||
private UnitSystem unitSystem;
|
||||
private TrackListIterator cursor;
|
||||
private TrackListIterator trackIterator;
|
||||
private boolean selectionMode = false;
|
||||
private ActivityUtils.ContextualActionModeCallback actionModeCallback;
|
||||
private ActionMode actionMode;
|
||||
@@ -66,26 +66,26 @@ public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
ViewHolder viewHolder = (ViewHolder) holder;
|
||||
|
||||
cursor.moveToPosition(position);
|
||||
viewHolder.bind(cursor);
|
||||
trackIterator.moveToPosition(position);
|
||||
viewHolder.bind(trackIterator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getItemId(int position) {
|
||||
cursor.moveToPosition(position);
|
||||
return cursor.get().id().id();
|
||||
trackIterator.moveToPosition(position);
|
||||
return trackIterator.get().id().id();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
if (cursor == null) {
|
||||
if (trackIterator == null) {
|
||||
return 0;
|
||||
}
|
||||
return cursor.getCount();
|
||||
return trackIterator.getCount();
|
||||
}
|
||||
|
||||
public void swapData(TrackListIterator cursor) {
|
||||
this.cursor = cursor;
|
||||
this.trackIterator = cursor;
|
||||
this.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@@ -132,10 +132,10 @@ public class TrackListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHold
|
||||
|
||||
public void setAllSelected(boolean isSelected) {
|
||||
if (isSelected) {
|
||||
cursor.moveToPosition(-1);
|
||||
while (cursor.hasNext()) {
|
||||
selection.put((int) cursor.get().id().id(), true);
|
||||
cursor.next();
|
||||
trackIterator.moveToFirst();
|
||||
while (trackIterator.hasNext()) {
|
||||
selection.put((int) trackIterator.get().id().id(), true);
|
||||
trackIterator.next();
|
||||
}
|
||||
} else {
|
||||
selection.clear();
|
||||
|
||||
@@ -136,7 +136,7 @@ public class MarkerListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
||||
|
||||
public void setAllSelected(boolean isSelected) {
|
||||
if (isSelected) {
|
||||
markerIterator.moveToPosition(-1);
|
||||
markerIterator.moveToFirst();
|
||||
while (markerIterator.hasNext()) {
|
||||
selection.put((int) markerIterator.get().id().id(), true);
|
||||
markerIterator.next();
|
||||
|
||||
@@ -29,6 +29,10 @@ public abstract class AutoCloseableIterator<T> implements Iterator<T>, AutoClose
|
||||
return cursor.getPosition();
|
||||
}
|
||||
|
||||
public final boolean moveToFirst() {
|
||||
return cursor.moveToFirst();
|
||||
}
|
||||
|
||||
public final boolean moveToPosition(int position) {
|
||||
return cursor.moveToPosition(position);
|
||||
}
|
||||
|
||||
@@ -450,7 +450,7 @@ Si le dispositif GPS signale des données inexactes (par exemple, la localisatio
|
||||
<string name="generic_show_errors">Afficher les erreurs</string>
|
||||
<string name="generic_separator_done_total">/</string>
|
||||
<string name="generic_skip">Ignorer</string>
|
||||
<string name="generic_open_track">Voie ouverte</string>
|
||||
<string name="generic_open_track">Ouvrir le tracé</string>
|
||||
<string name="gps_disabled_msg">GPS désactivé</string>
|
||||
<string name="gps_fixed_and_ready">GPS fixe et prêt</string>
|
||||
<string name="import_thread_interrupted">Fil interrompu</string>
|
||||
@@ -638,7 +638,7 @@ Si le dispositif GPS signale des données inexactes (par exemple, la localisatio
|
||||
<string name="settings_recording_title">Enregistrement</string>
|
||||
<string name="settings_theme_switch_restart">Les changements de thème peuvent nécessiter un redémarrage manuel.</string>
|
||||
<string name="settings_ui_dynamic_colors_summary">Utiliser des couleurs dynamiques définies par l\'utilisateur (Android 12+ uniquement ; requiert un redémarrage manuel)</string>
|
||||
<string name="settings_recording_idle_timeout_title">Délai avant mise en veille</string>
|
||||
<string name="settings_recording_idle_timeout_title">Délai d\'inactivité</string>
|
||||
<string name="settings_night_mode_option_night_oled">Compatible OLED</string>
|
||||
<string name="settings_announcements_unit">Unité de Distance/Vitesse</string>
|
||||
<string name="value_internal_sensor">Capteur interne</string>
|
||||
@@ -674,4 +674,7 @@ Si le dispositif GPS signale des données inexactes (par exemple, la localisatio
|
||||
<string name="settings_night_mode_option_system_dynamic">Système (couleurs dynamiques)</string>
|
||||
<string name="settings_night_mode_option_day_dynamic">Jour (couleurs dynamiques)</string>
|
||||
<string name="settings_night_mode_option_night_dynamic">Nuit (couleurs dynamiques)</string>
|
||||
<string name="stats_elapsed_segment_time">Durée sur ce segment</string>
|
||||
<string name="stats_average_segment_pace">Allure sur ce segment</string>
|
||||
<string name="settings_announcements_segment_average_speed_pace">Allure/vitesse moyenne sur ce segment</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user