From 4fbbd10c6478687be081c220b9fbc194721b2b31 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 14 May 2016 13:59:08 +0200 Subject: show addresses in ShareLocation and ShowLocation --- .../conversations/ui/ShareLocationActivity.java | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java') diff --git a/src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java b/src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java index f532ab38c..cd1f8fca2 100644 --- a/src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ShareLocationActivity.java @@ -3,6 +3,8 @@ package eu.siacs.conversations.ui; import android.annotation.TargetApi; import android.app.Activity; import android.content.Intent; +import android.location.Address; +import android.location.Geocoder; import android.location.Location; import android.os.Build; import android.os.Bundle; @@ -27,6 +29,9 @@ import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.model.LatLng; +import java.util.List; +import java.util.Locale; + public class ShareLocationActivity extends Activity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, @@ -39,6 +44,7 @@ public class ShareLocationActivity extends Activity implements OnMapReadyCallbac private Button mCancelButton; private Button mShareButton; private RelativeLayout mSnackbar; + private RelativeLayout mLocationInfo; @Override protected void onCreate(Bundle savedInstanceState) { @@ -136,11 +142,37 @@ public class ShareLocationActivity extends Activity implements OnMapReadyCallbac @Override public void onLocationChanged(Location location) { + double longitude = location.getLongitude(); + double latitude = location.getLatitude(); + if (latitude != 0 && longitude != 0) { + Geocoder geoCoder = new Geocoder(getBaseContext(), Locale.getDefault()); + try { + List
addresses = geoCoder.getFromLocation(latitude, longitude, 1); + + String address = ""; + if (addresses != null) { + Address Address = addresses.get(0); + StringBuilder strAddress = new StringBuilder(""); + + for (int i = 0; i < Address.getMaxAddressLineIndex(); i++) { + strAddress.append(Address.getAddressLine(i)).append("\n"); + } + address = strAddress.toString(); + address = address.substring(0, address.length()-1); //trim last \n + mLocationInfo = (RelativeLayout) findViewById(R.id.location); + TextView snackbarLocation = (TextView) findViewById(R.id.snackbar_message); + snackbarLocation.setText(address); + } + } catch (Exception e) { + e.printStackTrace(); + } + } if (this.mLastLocation == null) { centerOnLocation(new LatLng(location.getLatitude(), location.getLongitude())); this.mShareButton.setEnabled(true); this.mShareButton.setTextColor(0xde000000); this.mShareButton.setText(R.string.share); + mLocationInfo.setVisibility(View.VISIBLE); } this.mLastLocation = location; } -- cgit v1.2.3