mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 16:49:40 +01:00
Fix chosen location not being sent sometimes.
This commit is contained in:
@@ -6,9 +6,11 @@ import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.location.Address;
|
||||
import android.location.Geocoder;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -25,18 +27,26 @@ import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||
import com.google.android.gms.maps.GoogleMap;
|
||||
import com.google.android.gms.maps.MapView;
|
||||
import com.google.android.gms.maps.SupportMapFragment;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.android.gms.maps.model.MapStyleOptions;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.components.location.SignalMapView;
|
||||
import org.thoughtcrime.securesms.providers.BlobProvider;
|
||||
import org.thoughtcrime.securesms.util.BitmapUtil;
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
|
||||
import org.thoughtcrime.securesms.util.views.SimpleProgressDialog;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
/**
|
||||
* Allows selection of an address from a google map.
|
||||
@@ -180,9 +190,29 @@ public final class PlacePickerActivity extends AppCompatActivity {
|
||||
String address = currentAddress != null && currentAddress.getAddressLine(0) != null ? currentAddress.getAddressLine(0) : "";
|
||||
AddressData addressData = new AddressData(currentLocation.latitude, currentLocation.longitude, address);
|
||||
|
||||
returnIntent.putExtra(ADDRESS_INTENT, addressData);
|
||||
setResult(RESULT_OK, returnIntent);
|
||||
finish();
|
||||
SimpleProgressDialog.DismissibleDialog dismissibleDialog = SimpleProgressDialog.showDelayed(this);
|
||||
MapView mapView = findViewById(R.id.map_view);
|
||||
SignalMapView.snapshot(currentLocation, mapView).addListener(new ListenableFuture.Listener<>() {
|
||||
@Override
|
||||
public void onSuccess(Bitmap result) {
|
||||
dismissibleDialog.dismiss();
|
||||
byte[] blob = BitmapUtil.toByteArray(result);
|
||||
Uri uri = BlobProvider.getInstance()
|
||||
.forData(blob)
|
||||
.withMimeType(MediaUtil.IMAGE_JPEG)
|
||||
.createForSingleSessionInMemory();
|
||||
returnIntent.putExtra(ADDRESS_INTENT, addressData);
|
||||
returnIntent.setData(uri);
|
||||
setResult(RESULT_OK, returnIntent);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(ExecutionException e) {
|
||||
dismissibleDialog.dismiss();
|
||||
Log.e(TAG, "Failed to generate snapshot", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void enableMyLocationButtonIfHaveThePermission(GoogleMap googleMap) {
|
||||
|
||||
Reference in New Issue
Block a user