DirectionsShortcutActivity: Launcher shortcuts were missing IDs and place in many cases.

This commit is contained in:
Andreas Schildbach 2018-11-19 01:25:07 +01:00
parent 65834dad0b
commit d4371cda0f
2 changed files with 8 additions and 6 deletions

View file

@ -68,10 +68,11 @@ public class DirectionsShortcutActivity extends OeffiActivity
implements ActivityCompat.OnRequestPermissionsResultCallback, LocationHelper.Callback {
public static final String INTENT_EXTRA_NETWORK = "network";
public static final String INTENT_EXTRA_TYPE = "type";
public static final String INTENT_EXTRA_NAME = "stationname";
public static final String INTENT_EXTRA_ID = "stationid";
public static final String INTENT_EXTRA_LAT = "lat";
public static final String INTENT_EXTRA_LON = "lon";
public static final String INTENT_EXTRA_PLACE = "place";
public static final String INTENT_EXTRA_NAME = "stationname";
private LocationHelper locationHelper;
private ProgressDialog progressDialog;
@ -210,12 +211,13 @@ public class DirectionsShortcutActivity extends OeffiActivity
final NetworkProvider networkProvider = getNetworkExtra(intent);
final LocationType type = getLocationTypeExtra(intent);
final String name = intent.getStringExtra(INTENT_EXTRA_NAME);
final String id = getLocationIdExtra(intent);
final int lat = intent.getIntExtra(INTENT_EXTRA_LAT, 0);
final int lon = intent.getIntExtra(INTENT_EXTRA_LON, 0);
final Point coord = lat != 0 || lon != 0 ? Point.from1E6(lat, lon) : null;
final Location to = new Location(type, id, coord, null, id != null ? name : name + "!");
final String place = intent.getStringExtra(INTENT_EXTRA_PLACE);
final String name = intent.getStringExtra(INTENT_EXTRA_NAME);
final Location to = new Location(type, id, coord, place, name);
if (networkProvider != null) {
final Optimize optimize = prefs.contains(Constants.PREFS_KEY_OPTIMIZE_TRIP)

View file

@ -92,9 +92,7 @@ public class StationContextMenu extends PopupMenu {
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_NETWORK, networkId.name());
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_TYPE, location.type.name());
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_NAME, location.name);
if (location.type == LocationType.STATION
&& (networkId != NetworkId.BVG || Integer.parseInt(location.id) >= 1000000))
if (location.hasId())
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_ID, location.id);
if (location.hasCoord()) {
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_LAT,
@ -102,6 +100,8 @@ public class StationContextMenu extends PopupMenu {
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_LON,
location.getLonAs1E6());
}
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_PLACE, location.place);
shortcutIntent.putExtra(DirectionsShortcutActivity.INTENT_EXTRA_NAME, location.name);
ShortcutManagerCompat.requestPinShortcut(context,
new ShortcutInfoCompat.Builder(context, shortcutId)