Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.daperrazo.entregas.activities.client;
- import androidx.appcompat.app.AppCompatActivity;
- import android.content.Intent;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- import com.daperrazo.entregas.R;
- import com.google.android.gms.maps.CameraUpdateFactory;
- import com.google.android.gms.maps.GoogleMap;
- import com.google.android.gms.maps.OnMapReadyCallback;
- import com.google.android.gms.maps.SupportMapFragment;
- import com.google.android.gms.maps.model.BitmapDescriptorFactory;
- import com.google.android.gms.maps.model.CameraPosition;
- import com.google.android.gms.maps.model.JointType;
- import com.google.android.gms.maps.model.LatLng;
- import com.google.android.gms.maps.model.MarkerOptions;
- import com.google.android.gms.maps.model.PolylineOptions;
- import com.google.android.gms.maps.model.SquareCap;
- import com.google.gson.JsonObject;
- import com.daperrazo.entregas.includes.MyToolbar;
- import com.daperrazo.entregas.providers.GoogleApiProvider;
- import com.daperrazo.entregas.utils.DecodePoints;
- import org.json.JSONArray;
- import org.json.JSONObject;
- import java.util.List;
- import de.hdodenhof.circleimageview.CircleImageView;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- public class DetailRequestActivity extends AppCompatActivity implements OnMapReadyCallback {
- private GoogleMap mMap;
- private SupportMapFragment mMapFragment;
- private double mExtraOriginLat;
- private double mExtraOriginLng;
- private double mExtraDestinationLat;
- private double mExtraDestinationLng;
- private String mExtraOrigin;
- private String mExtraDestination;
- private LatLng mOriginLatLng;
- private LatLng mDestinationLatLng;
- private GoogleApiProvider mGoogleApiProvider;
- private List<LatLng> mPolylineList;
- private PolylineOptions mPolylineOptions;
- private TextView mTextViewOrigin;
- private TextView mTextViewDestination;
- private TextView mTextViewTime;
- private TextView mTextViewDistance;
- private CircleImageView mCircleImageBack;
- private Button mButtonRequest;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_detail_request);
- MyToolbar.show(this, "TUS DATOS", true);
- mMapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
- mMapFragment.getMapAsync(this);
- mExtraOriginLat = getIntent().getDoubleExtra("origin_lat", 0);
- mExtraOriginLng = getIntent().getDoubleExtra("origin_lng", 0);
- mExtraDestinationLat = getIntent().getDoubleExtra("destination_lat", 0);
- mExtraDestinationLng = getIntent().getDoubleExtra("destination_lng", 0);
- mExtraOrigin = getIntent().getStringExtra("origin");
- mExtraDestination = getIntent().getStringExtra("destination");
- mOriginLatLng = new LatLng(mExtraOriginLat, mExtraOriginLng);
- mDestinationLatLng = new LatLng(mExtraDestinationLat, mExtraDestinationLng);
- mGoogleApiProvider = new GoogleApiProvider(DetailRequestActivity.this);
- mTextViewOrigin = findViewById(R.id.textViewOrigin);
- mTextViewDestination = findViewById(R.id.textViewDestination);
- mTextViewTime = findViewById(R.id.textViewTime);
- mTextViewDistance = findViewById(R.id.textViewDistance);
- mButtonRequest = findViewById(R.id.btnRequestNow);
- mCircleImageBack = findViewById(R.id.circleImageBack);
- mTextViewOrigin.setText(mExtraOrigin);
- mTextViewDestination.setText(mExtraDestination);
- mButtonRequest.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- goToRequestDriver();
- }
- });
- mCircleImageBack.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- finish();
- }
- });
- }
- private void goToRequestDriver() {
- Intent intent = new Intent(DetailRequestActivity.this, RequestDriverActivity.class);
- intent.putExtra("origin_lat", mOriginLatLng.latitude);
- intent.putExtra("origin_lng", mOriginLatLng.longitude);
- intent.putExtra("origin", mExtraOrigin);
- intent.putExtra("destination", mExtraDestination);
- intent.putExtra("destination_lat", mDestinationLatLng.latitude);
- intent.putExtra("destination_lng", mDestinationLatLng.longitude);
- startActivity(intent);
- finish();
- }
- private void drawRoute() {
- mGoogleApiProvider.getDirections(mOriginLatLng, mDestinationLatLng).enqueue(new Callback<String>() {
- @Override
- public void onResponse(Call<String> call, Response<String> response) {
- try {
- JSONObject jsonObject = new JSONObject(response.body());
- JSONArray jsonArray = jsonObject.getJSONArray("routes");
- JSONObject route = jsonArray.getJSONObject(0);
- JSONObject polylines = route.getJSONObject("overview_polyline");
- String points = polylines.getString("points");
- mPolylineList = DecodePoints.decodePoly(points);
- mPolylineOptions = new PolylineOptions();
- mPolylineOptions.color(Color.DKGRAY);
- mPolylineOptions.width(13f);
- mPolylineOptions.startCap(new SquareCap());
- mPolylineOptions.jointType(JointType.ROUND);
- mPolylineOptions.addAll(mPolylineList);
- mMap.addPolyline(mPolylineOptions);
- JSONArray legs = route.getJSONArray("legs");
- JSONObject leg = legs.getJSONObject(0);
- JSONObject distance = leg.getJSONObject("distance");
- JSONObject duration = leg.getJSONObject("duration");
- String distanceText = distance.getString("text");
- String durationText = duration.getString("text");
- mTextViewTime.setText(durationText);
- mTextViewDistance.setText(distanceText);
- } catch(Exception e) {
- Log.d("Error", "Error encontrado " + e.getMessage());
- }
- }
- @Override
- public void onFailure(Call<String> call, Throwable t) {
- }
- });
- }
- @Override
- public void onMapReady(GoogleMap googleMap) {
- mMap = googleMap;
- mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
- mMap.getUiSettings().setZoomControlsEnabled(true);
- mMap.addMarker(new MarkerOptions().position(mOriginLatLng).title("Origen").icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_pin_red)));
- mMap.addMarker(new MarkerOptions().position(mDestinationLatLng).title("Destino").icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_pin_blue)));
- mMap.animateCamera(CameraUpdateFactory.newCameraPosition(
- new CameraPosition.Builder()
- .target(mOriginLatLng)
- .zoom(15f)
- .build()
- ));
- drawRoute();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement