Adapt to: NetworkProvider: queryTrips() now uses a TripOptions field for products, optimize, walkSpeed, accessibilty and options.

This commit is contained in:
Andreas Schildbach 2018-11-05 20:01:46 +01:00
parent e477e97480
commit c4c537445e
3 changed files with 28 additions and 39 deletions

View file

@ -64,7 +64,7 @@ import de.schildbach.pte.NetworkProvider;
import de.schildbach.pte.NetworkProvider.Accessibility;
import de.schildbach.pte.NetworkProvider.Capability;
import de.schildbach.pte.NetworkProvider.Optimize;
import de.schildbach.pte.NetworkProvider.Option;
import de.schildbach.pte.NetworkProvider.TripFlag;
import de.schildbach.pte.NetworkProvider.WalkSpeed;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
@ -72,6 +72,7 @@ import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.SuggestLocationsResult;
import de.schildbach.pte.dto.Trip;
import de.schildbach.pte.dto.TripOptions;
import android.Manifest;
import android.animation.LayoutTransition;
@ -831,12 +832,12 @@ public class DirectionsActivity extends OeffiMainActivity implements ActivityCom
if (view.isChecked())
products.add(Product.fromCode(((String) view.getTag()).charAt(0)));
final Set<Option> options;
final Set<TripFlag> flags;
if (viewBike.isChecked()) {
options = new HashSet<>();
options.add(Option.BIKE);
flags = new HashSet<>();
flags.add(TripFlag.BIKE);
} else {
options = null;
flags = null;
}
final ProgressDialog progressDialog = ProgressDialog.show(DirectionsActivity.this, null,
@ -849,8 +850,10 @@ public class DirectionsActivity extends OeffiMainActivity implements ActivityCom
progressDialog.setCanceledOnTouchOutside(false);
final NetworkProvider networkProvider = NetworkProviderFactory.provider(network);
final TripOptions options = new TripOptions(products, prefsGetOptimizeTrip(), prefsGetWalkSpeed(),
prefsGetAccessibility(), flags);
queryTripsRunnable = new QueryTripsRunnable(getResources(), progressDialog, handler, networkProvider, from, via,
to, time, products, prefsGetOptimizeTrip(), prefsGetWalkSpeed(), prefsGetAccessibility(), options) {
to, time, options) {
@Override
protected void onPreExecute() {
viewGo.setClickable(false);

View file

@ -42,6 +42,7 @@ import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.TripOptions;
import android.Manifest;
import android.app.ProgressDialog;
@ -222,18 +223,17 @@ public class DirectionsShortcutActivity extends OeffiActivity
final Accessibility accessibility = Accessibility
.valueOf(prefs.getString(Constants.PREFS_KEY_ACCESSIBILITY, Accessibility.NEUTRAL.name()));
final Set<Product> products = networkProvider.defaultProducts();
query(networkProvider, from, to, optimize, walkSpeed, accessibility, products);
final TripOptions options = new TripOptions(products, optimize, walkSpeed, accessibility, null);
query(networkProvider, from, to, options);
} else {
errorDialog(R.string.directions_shortcut_error_message_network);
}
}
private void query(final NetworkProvider networkProvider, final Location from, final Location to,
final Optimize optimize, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Product> products) {
final TripOptions options) {
queryTripsRunnable = new QueryTripsRunnable(getResources(), progressDialog, handler, networkProvider, from,
null, to, new TimeSpec.Relative(0), products, optimize, walkSpeed, accessibility, null) {
null, to, new TimeSpec.Relative(0), options) {
@Override
protected void onPostExecute() {
progressDialog.dismiss();

View file

@ -22,7 +22,6 @@ import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
@ -37,12 +36,10 @@ import de.schildbach.oeffi.Constants;
import de.schildbach.oeffi.R;
import de.schildbach.pte.NetworkProvider;
import de.schildbach.pte.NetworkProvider.Accessibility;
import de.schildbach.pte.NetworkProvider.Optimize;
import de.schildbach.pte.NetworkProvider.Option;
import de.schildbach.pte.NetworkProvider.WalkSpeed;
import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.TripOptions;
import de.schildbach.pte.exception.BlockedException;
import de.schildbach.pte.exception.InternalErrorException;
import de.schildbach.pte.exception.NotFoundException;
@ -67,11 +64,7 @@ public abstract class QueryTripsRunnable implements Runnable {
private final Location via;
private final Location to;
private final TimeSpec time;
private final Set<Product> products;
private final Optimize optimize;
private final WalkSpeed walkSpeed;
private final Accessibility accessibility;
private final Set<Option> options;
private final TripOptions options;
private AtomicBoolean cancelled = new AtomicBoolean(false);
@ -79,8 +72,7 @@ public abstract class QueryTripsRunnable implements Runnable {
public QueryTripsRunnable(final Resources res, final ProgressDialog dialog, final Handler handler,
final NetworkProvider networkProvider, final Location from, final Location via, final Location to,
final TimeSpec time, final Set<Product> products, final Optimize optimize, final WalkSpeed walkSpeed,
final Accessibility accessibility, final Set<Option> options) {
final TimeSpec time, final TripOptions options) {
this.res = res;
this.dialog = dialog;
this.handler = handler;
@ -91,10 +83,6 @@ public abstract class QueryTripsRunnable implements Runnable {
this.via = via;
this.to = to;
this.time = time;
this.products = products;
this.optimize = optimize;
this.walkSpeed = walkSpeed;
this.accessibility = accessibility;
this.options = options;
}
@ -109,7 +97,7 @@ public abstract class QueryTripsRunnable implements Runnable {
try {
final boolean depArr = time.depArr == TimeSpec.DepArr.DEPART;
final QueryTripsResult result = networkProvider.queryTrips(from, via, to, new Date(time.timeInMillis()),
depArr, products, optimize, walkSpeed, accessibility, options);
depArr, options);
if (!cancelled.get())
postOnResult(result);
@ -171,9 +159,10 @@ public abstract class QueryTripsRunnable implements Runnable {
private void postOnPreExecute() {
handler.post(new Runnable() {
public void run() {
final boolean hasOptimize = optimize != null;
final boolean hasWalkSpeed = walkSpeed != null && walkSpeed != WalkSpeed.NORMAL;
final boolean hasAccessibility = accessibility != null && accessibility != Accessibility.NEUTRAL;
final boolean hasOptimize = options.optimize != null;
final boolean hasWalkSpeed = options.walkSpeed != null && options.walkSpeed != WalkSpeed.NORMAL;
final boolean hasAccessibility = options.accessibility != null
&& options.accessibility != Accessibility.NEUTRAL;
final SpannableStringBuilder progressMessage = new SpannableStringBuilder(
res.getString(R.string.directions_query_progress));
@ -186,8 +175,8 @@ public abstract class QueryTripsRunnable implements Runnable {
.append(res.getString(R.string.directions_preferences_optimize_trip_title))
.append(": ");
final int begin = progressMessage.length();
progressMessage
.append(res.getStringArray(R.array.directions_optimize_trip)[optimize.ordinal()]);
progressMessage.append(
res.getStringArray(R.array.directions_optimize_trip)[options.optimize.ordinal()]);
progressMessage.setSpan(new StyleSpan(Typeface.BOLD), begin, progressMessage.length(),
SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@ -195,7 +184,8 @@ public abstract class QueryTripsRunnable implements Runnable {
progressMessage.append('\n')
.append(res.getString(R.string.directions_preferences_walk_speed_title)).append(": ");
final int begin = progressMessage.length();
progressMessage.append(res.getStringArray(R.array.directions_walk_speed)[walkSpeed.ordinal()]);
progressMessage
.append(res.getStringArray(R.array.directions_walk_speed)[options.walkSpeed.ordinal()]);
progressMessage.setSpan(new StyleSpan(Typeface.BOLD), begin, progressMessage.length(),
SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@ -204,8 +194,8 @@ public abstract class QueryTripsRunnable implements Runnable {
.append(res.getString(R.string.directions_preferences_accessibility_title))
.append(": ");
final int begin = progressMessage.length();
progressMessage
.append(res.getStringArray(R.array.directions_accessibility)[accessibility.ordinal()]);
progressMessage.append(
res.getStringArray(R.array.directions_accessibility)[options.accessibility.ordinal()]);
progressMessage.setSpan(new StyleSpan(Typeface.BOLD), begin, progressMessage.length(),
SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
}
@ -307,10 +297,6 @@ public abstract class QueryTripsRunnable implements Runnable {
builder.append("v:").append(via).append('|');
builder.append("t:").append(to).append('|');
builder.append(time).append('|');
builder.append(products).append('|');
builder.append(optimize).append('|');
builder.append(walkSpeed).append('|');
builder.append(accessibility).append('|');
builder.append(options).append(']');
return builder.toString();
}