Skip to content

Commit

Permalink
Merge pull request #17713 from osmandapp/fix_17475
Browse files Browse the repository at this point in the history
Fix #17475
  • Loading branch information
Chumva committed Jul 25, 2023
2 parents 275ac1f + 48941f6 commit 1d2c947
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ public void showSortByDialog() {
@NonNull
@Override
public TracksSortMode getTracksSortMode() {
Map<String, String> tabsSortModes = settings.getTrackTabsSortModes();
Map<String, String> tabsSortModes = settings.getTrackFoldersSortModes();
for (Entry<String, String> entry : tabsSortModes.entrySet()) {
if (Algorithms.stringsEqual(entry.getKey(), selectedFolder.getDirName())) {
return TracksSortMode.getByValue(entry.getValue());
Expand All @@ -286,10 +286,10 @@ public TracksSortMode getTracksSortMode() {
public void setTracksSortMode(@NonNull TracksSortMode sortMode) {
adapter.setSortMode(sortMode);

Map<String, String> tabsSortModes = settings.getTrackTabsSortModes();
Map<String, String> tabsSortModes = settings.getTrackFoldersSortModes();
tabsSortModes.put(selectedFolder.getDirName(), sortMode.name());

settings.saveTabsSortModes(tabsSortModes);
settings.saveFoldersSortModes(tabsSortModes);
}

@Override
Expand Down
38 changes: 29 additions & 9 deletions OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java
Original file line number Diff line number Diff line change
Expand Up @@ -1849,30 +1849,50 @@ public boolean shouldHidePolygons(boolean groundPolygons) {

public final CommonPreference<TracksSortByMode> TRACKS_SORT_BY_MODE = new EnumStringPreference<>(this, "tracks_sort_by_mode", TracksSortByMode.BY_DATE, TracksSortByMode.values());
public final CommonPreference<TracksSortMode> SEARCH_TRACKS_SORT_MODE = new EnumStringPreference<>(this, "search_tracks_sort_mode", TracksSortMode.getDefaultSortMode(), TracksSortMode.values());
public final ListStringPreference TRACKS_TABS_SORT_MODES = (ListStringPreference) new ListStringPreference(this, "tracks_tabs_sort_modes", null, ";;").cache();
public final ListStringPreference TRACKS_TABS_SORT_MODES = (ListStringPreference) new ListStringPreference(this, "tracks_tabs_sort_modes", null, ";;").makeGlobal().makeShared().cache();
public final ListStringPreference TRACKS_FOLDERS_SORT_MODES = (ListStringPreference) new ListStringPreference(this, "tracks_folders_sort_modes", null, ";;").makeGlobal().makeShared().cache();

@NonNull
public Map<String, String> getTrackTabsSortModes() {
Map<String, String> tabsSortModes = new HashMap<>();
return getTrackSortModes(TRACKS_TABS_SORT_MODES.getStringsList());
}

@NonNull
public Map<String, String> getTrackFoldersSortModes() {
return getTrackSortModes(TRACKS_FOLDERS_SORT_MODES.getStringsList());
}

public void saveTabsSortModes(@NonNull Map<String, String> tabsSortModes) {
List<String> sortModes = getPlainSortModes(tabsSortModes);
TRACKS_TABS_SORT_MODES.setStringsList(sortModes);
}

public void saveFoldersSortModes(@NonNull Map<String, String> tabsSortModes) {
List<String> sortModes = getPlainSortModes(tabsSortModes);
TRACKS_FOLDERS_SORT_MODES.setStringsList(sortModes);
}

List<String> sortModes = TRACKS_TABS_SORT_MODES.getStringsList();
if (!Algorithms.isEmpty(sortModes)) {
for (String sortMode : sortModes) {
@NonNull
private Map<String, String> getTrackSortModes(@Nullable List<String> modes) {
Map<String, String> sortModes = new HashMap<>();
if (!Algorithms.isEmpty(modes)) {
for (String sortMode : modes) {
String[] tabSortMode = sortMode.split(",,");
if (tabSortMode.length == 2) {
tabsSortModes.put(tabSortMode[0], tabSortMode[1]);
sortModes.put(tabSortMode[0], tabSortMode[1]);
}
}
}
return tabsSortModes;
return sortModes;
}

public void saveTabsSortModes(@NonNull Map<String, String> tabsSortModes) {
@NonNull
private List<String> getPlainSortModes(@NonNull Map<String, String> tabsSortModes) {
List<String> sortTypes = new ArrayList<>();
for (Entry<String, String> entry : tabsSortModes.entrySet()) {
sortTypes.add(entry.getKey() + ",," + entry.getValue());
}
TRACKS_TABS_SORT_MODES.setStringsList(sortTypes);
return sortTypes;
}

public final OsmandPreference<Boolean> ANIMATE_MY_LOCATION = new BooleanPreference(this, "animate_my_location", true).makeProfile().cache();
Expand Down

0 comments on commit 1d2c947

Please sign in to comment.