I want to draw route on map when I place the destination marker from the Places `AutoComplete` search bar. As soon as I select the Drop location from Auto Complete, I want the route. I have seen some examples of drawing path but can't find any via the Places `Autocomplete`. My map and Places `Autocomplete` are working properly. How do I do it?

MainActivity.java

```
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    if (!Places.isInitialized()) {
        Places.initialize(getApplicationContext(), "my_api_ke");
    }

    /*Map Initialisation*/
    mv = findViewById(R.id.Gmapview);
    mv.onCreate(savedInstanceState);
    mv.getMapAsync(this);

    lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    provider = lm.getBestProvider(new Criteria(), false);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    checkLocationPermission();
    enableMyLocationIfPermitted();

    //Initialize AutoCompleteSupportFragment

    //Pickup Search Bar
    supportFragment = (AutocompleteSupportFragment)
            getSupportFragmentManager().findFragmentById(R.id.pickup);

    supportFragment1 = (AutocompleteSupportFragment) getSupportFragmentManager()
            .findFragmentById(R.id.drop);

    //Initialize the Fields to get Latitude and Langitude and name of the selected place.
    supportFragment.setPlaceFields(Arrays.asList(Place.Field.LAT_LNG, Place.Field.NAME));
    supportFragment1.setPlaceFields(Arrays.asList(Place.Field.LAT_LNG, Place.Field.NAME));

    //Placing Pickup Marker
    supportFragment.setOnPlaceSelectedListener(newPlaceSelectionListener(){
        @Override
        public void onPlaceSelected(@NonNull Place pickup) {

            Log.i("PickUP", "Place: " + pickup.getName() + ", ");
            String name = pickup.getName();
            LatLng latLng = pickup.getLatLng();

            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(latLng);
            markerOptions.title(name);
            markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
            gm.addMarker(markerOptions);

            gm.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 11));

        }

        @Override
        public void onError(@NonNull Status status) {
            Log.i("pickup", "An error occurred: " + status);

        }
    });

    //Placing Drop Marker
    supportFragment1.setOnPlaceSelectedListener(new PlaceSelectionListener() {
        @Override
        public void onPlaceSelected(@NonNull Place drop) {
            Log.i("Drop", "Place: " + drop.getName() + ", ");

            String name = drop.getName();
            LatLng latLng = drop.getLatLng();

            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(latLng);
            markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
            gm.addMarker(markerOptions);

            gm.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 11));

        }

        @Override
        public void onError(@NonNull Status status) {
        Log.i("drop", "An error occurred: " + status);

        }
    });
}

```