Skip to content

Commit

Permalink
Fixed issue: trip plan additional preferences not saving transit mode
Browse files Browse the repository at this point in the history
  • Loading branch information
carvalhorr committed Aug 27, 2017
1 parent 551c71a commit c0d50df
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,18 @@ public class TripRequestBuilder {
private static final String MODE_SET = ".MODE_SET";
private static final String DATE_TIME = ".DATE_TIME";

private static final int TRANSIT_MODE = 0;
private static final int BUS_ONLY_MODE = 1;
private static final int RAIL_ONLY_MODE = 2;
private static final int BIKESHARE_MODE = 3;


private TripRequest.Callback mListener;

private Bundle mBundle;

private int mModeId;

public TripRequestBuilder(Bundle bundle) {
this.mBundle = bundle;
}
Expand Down Expand Up @@ -151,9 +159,12 @@ public Double getMaxWalkDistance() {
public TripRequestBuilder setModeSetById(int id) {
List<String> modes;

mModeId = id;

switch (id) {
case R.string.transit_mode_transit_only:
case R.string.transit_mode_transit_and_bikeshare:
// Transit only
// Transit & bikeshare
case TRANSIT_MODE:
if (Application.isBikeshareEnabled()) {
modes = Arrays.asList(TraverseMode.TRANSIT.toString(),
TraverseMode.WALK.toString(),
Expand All @@ -162,18 +173,19 @@ public TripRequestBuilder setModeSetById(int id) {
modes = Arrays.asList(TraverseMode.TRANSIT.toString(), TraverseMode.WALK.toString());
}
break;
case R.string.transit_mode_bus:
case BUS_ONLY_MODE:
modes = Arrays.asList(TraverseMode.BUSISH.toString(), TraverseMode.WALK.toString());
break;
case R.string.transit_mode_rail:
case RAIL_ONLY_MODE:
modes = Arrays.asList(TraverseMode.TRAINISH.toString(), TraverseMode.WALK.toString());
break;
case R.string.transit_mode_bikeshare:
case BIKESHARE_MODE:
modes = Arrays.asList(Application.get().getString(R.string.traverse_mode_bicycle_rent));
break;
default:
Log.e(TAG, "Invalid mode set ID");
modes = Arrays.asList(TraverseMode.TRANSIT.toString(), TraverseMode.WALK.toString());
mModeId = -1;
}

String modeString = TextUtils.join(",", modes);
Expand All @@ -182,20 +194,11 @@ public TripRequestBuilder setModeSetById(int id) {
}

public int getModeSetId() {
List<String> modes = getModes();
if (modes.contains(TraverseMode.BUSISH.toString())) {
return R.string.transit_mode_bus;
}
if (modes.contains(TraverseMode.TRAINISH.toString())) {
return R.string.transit_mode_rail;
}
if (modes.contains(("BICYCLE_RENT"))) {
return R.string.transit_mode_bikeshare;
}
if (modes.contains(TraverseMode.TRANSIT.toString())) {
return R.string.transit_mode_transit_only;
// IF bike mode is selected in the trip plan additional preferences but bikeshare is not enabled use the default mode (TRANSTI)
if (BIKESHARE_MODE == mModeId && !Application.isBikeshareEnabled()) {
return TRANSIT_MODE;
}
return -1;
return mModeId;
}

private List<String> getModes() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,6 @@ private void advancedSettings() {

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());

final TypedArray transitModeResource = getContext().getResources().obtainTypedArray(R.array.transit_mode_array);
final boolean unitsAreImperial = !PreferenceUtils.getUnitsAreMetricFromPreferences(getContext());

dialogBuilder.setTitle(R.string.trip_plan_advanced_settings)
Expand All @@ -409,7 +408,7 @@ public void onClick(DialogInterface dialogInterface, int which) {

Spinner spinnerTravelBy = (Spinner) dialog.findViewById(R.id.spinner_travel_by);

int modeId = transitModeResource.getResourceId(spinnerTravelBy.getSelectedItemPosition(), 0);
int modeId = spinnerTravelBy.getSelectedItemPosition();

boolean wheelchair = ((CheckBox) dialog.findViewById(R.id.checkbox_wheelchair_acccesible))
.isChecked();
Expand Down Expand Up @@ -471,13 +470,8 @@ public void onClick(DialogInterface dialogInterface, int which) {
spinnerTravelBy.setAdapter(adapter);

int modeSetId = mBuilder.getModeSetId();
if (modeSetId != -1) {
for (int i = 0; i < travelByOptions.size(); i++) {
if (travelByOptions.get(i) == getString(modeSetId)) {
spinnerTravelBy.setSelection(i);
break;
}
}
if (modeSetId != -1 && modeSetId < travelByOptions.size()) {
spinnerTravelBy.setSelection(modeSetId);
}

Double maxWalk = mBuilder.getMaxWalkDistance();
Expand Down

0 comments on commit c0d50df

Please sign in to comment.