Skip to content

Commit 5cce062

Browse files
committed
Prepare for a "autocomplete including translations" setting
1 parent e817862 commit 5cce062

3 files changed

Lines changed: 17 additions & 8 deletions

File tree

Hyperrail/src/main/java/be/hyperrail/android/fragments/RouteSearchFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,8 @@ private static class LoadAutoCompleteTask extends AsyncTask<TransportStopsDataSo
445445
@Override
446446
protected String[] doInBackground(TransportStopsDataSource... provider) {
447447
Thread.currentThread().setName("LoadAutoCompleteTask");
448-
return provider[0].getStoplocationsNames(provider[0].getStoplocationsOrderedBySize());
448+
// TODO: "make use of translations" a setting
449+
return provider[0].getStoplocationsNames(provider[0].getStoplocationsOrderedBySize(), false);
449450

450451
}
451452

OpenTransport/src/main/java/be/hyperrail/opentransportdata/common/contracts/TransportStopsDataSource.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
package be.hyperrail.opentransportdata.common.contracts;
1414

1515
import android.location.Location;
16+
1617
import androidx.annotation.NonNull;
1718
import androidx.annotation.Nullable;
1819

@@ -28,11 +29,13 @@ public interface TransportStopsDataSource {
2829
/**
2930
* Get all station names, localized.
3031
*
31-
* @param stopLocations The list of stations for which a name should be retrieved.
32+
* @param stopLocations The list of stations for which a name should be retrieved.
33+
* @param includeTranslations Whether translations should be included in the name list.
34+
* If this is set to false, only localized names are used.
3235
* @return An array of localized station names.
3336
*/
3437
@NonNull
35-
String[] getStoplocationsNames(@NonNull StopLocation[] stopLocations);
38+
String[] getStoplocationsNames(@NonNull StopLocation[] stopLocations, boolean includeTranslations);
3639

3740

3841
/**

opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailStationsDataProvider.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@
1818

1919
import java.util.Arrays;
2020
import java.util.HashMap;
21+
import java.util.HashSet;
2122
import java.util.Locale;
2223
import java.util.Map;
24+
import java.util.Set;
2325

2426
import be.hyperrail.opentransportdata.common.contracts.TransportStopsDataSource;
2527
import be.hyperrail.opentransportdata.common.exceptions.StopLocationNotResolvedException;
@@ -167,17 +169,20 @@ public void preloadDatabase() {
167169
*/
168170
@NonNull
169171
@Override
170-
public String[] getStoplocationsNames(@NonNull StopLocation[] stopLocations) {
172+
public String[] getStoplocationsNames(@NonNull StopLocation[] stopLocations, boolean includeTranslations) {
171173
if (stopLocations.length == 0) {
172174
log.warning("Tried to load station names on empty station list!");
173175
return new String[0];
174176
}
175177

176-
String[] results = new String[stopLocations.length];
177-
for (int i = 0; i < stopLocations.length; i++) {
178-
results[i] = stopLocations[i].getLocalizedName();
178+
Set<String> results = new HashSet<>();
179+
for (StopLocation stopLocation : stopLocations) {
180+
results.add(stopLocation.getName());
181+
if (includeTranslations) {
182+
results.addAll(stopLocation.getTranslations().values());
183+
}
179184
}
180-
return results;
185+
return results.toArray(new String[0]);
181186
}
182187

183188
@Nullable

0 commit comments

Comments
 (0)