Working again.

This commit is contained in:
2014-08-31 22:32:06 -04:00
parent a2035b05ba
commit c6c6f1819b
6 changed files with 146 additions and 93 deletions

View File

@@ -5,7 +5,7 @@
android:versionCode="248" android:versionCode="248"
android:versionName="8cc52de" > android:versionName="8cc52de" >
<uses-sdk android:minSdkVersion="11" /> <uses-sdk android:minSdkVersion="17" />
<uses-feature <uses-feature
android:name="android.hardware.location" android:name="android.hardware.location"
@@ -32,6 +32,7 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" /> <uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- licensing library --> <!-- licensing library -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" /> <uses-permission android:name="com.android.vending.CHECK_LICENSE" />

View File

@@ -48,12 +48,12 @@
android:visibility="gone" /> android:visibility="gone" />
<fragment <fragment
android:id="@+id/mapview" android:id="@+id/map"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_above="@id/buttons" android:layout_above="@id/buttons"
android:layout_below="@id/map_controls" android:layout_below="@id/map_controls"
class="org.RickBarrette.android.LocationRinger.ui.fragments.MapFragment" > class="com.google.android.gms.maps.SupportMapFragment" >
</fragment> </fragment>
<TextView <TextView
@@ -61,7 +61,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignTop="@+id/mapview" android:layout_alignTop="@+id/map"
android:textAppearance="?android:attr/textAppearanceLarge" android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#ff0000" /> android:textColor="#ff0000" />

View File

@@ -23,7 +23,6 @@ import android.net.wifi.WifiManager;
import android.os.IBinder; import android.os.IBinder;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.PowerManager.WakeLock; import android.os.PowerManager.WakeLock;
import android.provider.Settings;
import com.TwentyCodes.android.debug.LocationLibraryConstants; import com.TwentyCodes.android.debug.LocationLibraryConstants;
import com.TwentyCodes.android.exception.ExceptionHandler; import com.TwentyCodes.android.exception.ExceptionHandler;
import com.TwentyCodes.android.location.GeoUtils; import com.TwentyCodes.android.location.GeoUtils;
@@ -133,17 +132,19 @@ public class RingerProcessingService extends Service {
/* /*
* airplane mode * airplane mode
*
* TODO fix airplane mode or remove it
*/ */
if (values.containsKey(RingerDatabase.KEY_AIRPLANE_MODE)) { // if (values.containsKey(RingerDatabase.KEY_AIRPLANE_MODE)) {
final boolean airplaneModeEnabled = !RingerDatabase.parseBoolean(values.getAsString(RingerDatabase.KEY_AIRPLANE_MODE)); // final boolean airplaneModeEnabled = !RingerDatabase.parseBoolean(values.getAsString(RingerDatabase.KEY_AIRPLANE_MODE));
// toggle airplane mode // // toggle airplane mode
Log.d(TAG, "airplane mode has be set " + Settings.System.putInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, airplaneModeEnabled ? 0 : 1)); // Log.d(TAG, "airplane mode has be set " + Settings.Global.getInt(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, airplaneModeEnabled ? 0 : 1));
//
// Post an intent to reload // // Post an intent to reload
final Intent changeMode = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); // final Intent changeMode = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
changeMode.putExtra("state", !airplaneModeEnabled); // changeMode.putExtra("state", !airplaneModeEnabled);
this.sendBroadcast(changeMode); // this.sendBroadcast(changeMode);
} // }
} }
/** /**

View File

@@ -239,7 +239,7 @@ public class ListActivity extends Activity implements OnItemClickListener, OnCli
info.put(RingerDatabase.KEY_RINGTONE_VOLUME, am.getStreamVolume(AudioManager.STREAM_RING)); info.put(RingerDatabase.KEY_RINGTONE_VOLUME, am.getStreamVolume(AudioManager.STREAM_RING));
info.put(RingerDatabase.KEY_BT, bt.isEnabled()); info.put(RingerDatabase.KEY_BT, bt.isEnabled());
info.put(RingerDatabase.KEY_WIFI, wifi.isWifiEnabled()); info.put(RingerDatabase.KEY_WIFI, wifi.isWifiEnabled());
info.put(RingerDatabase.KEY_AIRPLANE_MODE, Settings.System.getInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0); info.put(RingerDatabase.KEY_AIRPLANE_MODE, Settings.System.getInt(getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) != 0);
new Handler().post(new Runnable() { new Handler().post(new Runnable() {
@Override @Override
@@ -296,7 +296,7 @@ public class ListActivity extends Activity implements OnItemClickListener, OnCli
@Override @Override
public void onItemClick(final AdapterView<?> arg0, final View v, final int postion, final long id) { public void onItemClick(final AdapterView<?> arg0, final View v, final int postion, final long id) {
final ProgressDialog progress = null; //ProgressDialog.show(this.getParent(), "", getText(R.string.loading), true, true); // final ProgressDialog progress = ProgressDialog.show(this.getParent(), "", getText(R.string.loading), true, true);
new Thread(new Runnable() { new Thread(new Runnable() {
@Override @Override
@@ -327,7 +327,7 @@ public class ListActivity extends Activity implements OnItemClickListener, OnCli
i.putExtra(KEY_INFO, mDb.getRingerInfo(r.getAsString(RingerDatabase.KEY_RINGER_NAME))); i.putExtra(KEY_INFO, mDb.getRingerInfo(r.getAsString(RingerDatabase.KEY_RINGER_NAME)));
} }
progress.dismiss(); // progress.dismiss();
// start the ringer info activity in editor mode // start the ringer info activity in editor mode
startActivityForResult(i, ACTIVITY_EDIT); startActivityForResult(i, ACTIVITY_EDIT);

View File

@@ -17,7 +17,7 @@ import org.RickBarrette.android.LocationRinger.R;
import org.RickBarrette.android.LocationRinger.db.RingerDatabase; import org.RickBarrette.android.LocationRinger.db.RingerDatabase;
import org.RickBarrette.android.LocationRinger.ui.fragments.AboutRingerFragment; import org.RickBarrette.android.LocationRinger.ui.fragments.AboutRingerFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.FeatureListFragment; import org.RickBarrette.android.LocationRinger.ui.fragments.FeatureListFragment;
import org.RickBarrette.android.LocationRinger.ui.fragments.LocationInfomationFragment; import org.RickBarrette.android.LocationRinger.ui.fragments.LocationInformationFragment;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
@@ -51,7 +51,7 @@ public class RingerInformationActivity extends FragmentActivity implements OnCon
private ContentValues mInfo; private ContentValues mInfo;
private Intent mData; private Intent mData;
private ViewPager mPager; private ViewPager mPager;
private LocationInfomationFragment mLocationInfomationFragment; private LocationInformationFragment mLocationInfomationFragment;
/** /**
* Logs the content values * Logs the content values
@@ -119,7 +119,7 @@ public class RingerInformationActivity extends FragmentActivity implements OnCon
* Location page * Location page
*/ */
if (!isDefault) { if (!isDefault) {
mLocationInfomationFragment = new LocationInfomationFragment(mInfo, this, this); mLocationInfomationFragment = new LocationInformationFragment(mInfo, this, this);
fragments.add(mLocationInfomationFragment); fragments.add(mLocationInfomationFragment);
} }

View File

@@ -8,6 +8,7 @@ package org.RickBarrette.android.LocationRinger.ui.fragments;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.ContentValues; import android.content.ContentValues;
import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -21,10 +22,11 @@ import com.TwentyCodes.android.location.AndroidGPS;
import com.TwentyCodes.android.location.GeoUtils; import com.TwentyCodes.android.location.GeoUtils;
import com.TwentyCodes.android.location.LatLngListener; import com.TwentyCodes.android.location.LatLngListener;
import com.TwentyCodes.android.location.OnLocationSelectedListener; import com.TwentyCodes.android.location.OnLocationSelectedListener;
import com.TwentyCodes.android.overlays.RadiusOverlay;
import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.Circle;
import com.google.android.gms.maps.model.CircleOptions;
import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.LatLng;
import org.RickBarrette.android.LocationRinger.*; import org.RickBarrette.android.LocationRinger.*;
import org.RickBarrette.android.LocationRinger.db.RingerDatabase; import org.RickBarrette.android.LocationRinger.db.RingerDatabase;
@@ -37,28 +39,27 @@ import org.RickBarrette.android.LocationRinger.ui.SearchDialog;
* @author ricky * @author ricky
*/ */
@SuppressLint("ValidFragment") @SuppressLint("ValidFragment")
public class LocationInfomationFragment extends Fragment implements LatLngListener, OnClickListener, OnCheckedChangeListener, OnSeekBarChangeListener, public class LocationInformationFragment extends Fragment implements LatLngListener, OnClickListener, OnCheckedChangeListener, OnSeekBarChangeListener, SearchRequestedListener, GoogleMap.OnMapClickListener, OnLocationSelectedListener {
OnLocationSelectedListener, SearchRequestedListener {
private static final String TAG = "RingerInformationHowActivity"; private static final String TAG = "RingerInformationHowActivity";
private final ContentValues mInfo; private final ContentValues mInfo;
private final OnContentChangedListener mListener; private final OnContentChangedListener mListener;
private final EnableScrollingListener mEnableScrollingListener; private final EnableScrollingListener mEnableScrollingListener;
private SeekBar mRadius; private SeekBar mRadius;
private MapFragment mMap; private GoogleMap mMap;
private ToggleButton mMapEditToggle; private ToggleButton mMapEditToggle;
private RadiusOverlay mRadiusOverlay;
private LatLng mPoint; private LatLng mPoint;
private AndroidGPS mGPS; private AndroidGPS mGPS;
private View view; private View view;
private TextView mRadiusTextView; private TextView mRadiusTextView;
private Circle mCircle;
/** /**
* Creates a new MapFragment * Creates a new MapFragment
* *
* @author ricky barrette * @author ricky barrette
*/ */
public LocationInfomationFragment(final ContentValues info, final OnContentChangedListener listener, final EnableScrollingListener enabledListener) { public LocationInformationFragment(final ContentValues info, final OnContentChangedListener listener, final EnableScrollingListener enabledListener) {
mInfo = info; mInfo = info;
mListener = listener; mListener = listener;
mEnableScrollingListener = enabledListener; mEnableScrollingListener = enabledListener;
@@ -76,14 +77,16 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
if (mEnableScrollingListener != null) if (mEnableScrollingListener != null)
mEnableScrollingListener.setScrollEnabled(!isChecked); mEnableScrollingListener.setScrollEnabled(!isChecked);
// /*if (isChecked) { if (isChecked) {
// mGPS.enableLocationUpdates(this); mGPS.enableLocationUpdates(this);
// mMap.enableGPSProgess(); // mMap.enableGPSProgess();
// } else { mMap.setOnMapClickListener(this);
// mGPS.disableLocationUpdates(); } else {
mGPS.disableLocationUpdates();
// mMap.disableGPSProgess(); // mMap.disableGPSProgess();
// } mMap.setOnMapClickListener(null);
// }
// mMap.setDoubleTapZoonEnabled(isChecked); // mMap.setDoubleTapZoonEnabled(isChecked);
// // buttons // // buttons
// mMap.setBuiltInZoomControls(isChecked); // mMap.setBuiltInZoomControls(isChecked);
@@ -102,14 +105,14 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
switch (v.getId()) { switch (v.getId()) {
case R.id.mark_my_location: case R.id.mark_my_location:
if (mPoint != null) if (mPoint != null)
onLocationSelected(mPoint); onMapClick(mPoint);
break; break;
case R.id.my_location: case R.id.my_location:
if (mPoint != null) if (mPoint != null)
mMap.getMap().moveCamera(CameraUpdateFactory.newLatLng(mPoint)); mMap.moveCamera(CameraUpdateFactory.newLatLng(mPoint));
break; break;
case R.id.map_mode: case R.id.map_mode:
mMap.getMap().setMapType(mMap.getMap().getMapType() == GoogleMap.MAP_TYPE_NORMAL ? GoogleMap.MAP_TYPE_NORMAL : GoogleMap.MAP_TYPE_SATELLITE); mMap.setMapType(mMap.getMapType() == GoogleMap.MAP_TYPE_NORMAL ? GoogleMap.MAP_TYPE_SATELLITE : GoogleMap.MAP_TYPE_NORMAL);
break; break;
case R.id.search: case R.id.search:
new SearchDialog(getActivity(), this).show(); new SearchDialog(getActivity(), this).show();
@@ -120,10 +123,10 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
@Override @Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
view = inflater.inflate(R.layout.map_info_fragment, container, false); view = inflater.inflate(R.layout.map_info_fragment, container, false);
setUpMapIfNeeded();
mGPS = new AndroidGPS(getActivity()); mGPS = new AndroidGPS(getActivity());
// mMap = (MapFragment) getFragmentManager().findFragmentById(R.id.mapview);
mRadius = (SeekBar) view.findViewById(R.id.radius); mRadius = (SeekBar) view.findViewById(R.id.radius);
mRadiusTextView = (TextView) view.findViewById(R.id.radius_textview); mRadiusTextView = (TextView) view.findViewById(R.id.radius_textview);
mRadius.setMax(Constraints.MAX_RADIUS_IN_METERS); mRadius.setMax(Constraints.MAX_RADIUS_IN_METERS);
@@ -134,29 +137,22 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
mMapEditToggle = (ToggleButton) view.findViewById(R.id.map_edit_toggle); mMapEditToggle = (ToggleButton) view.findViewById(R.id.map_edit_toggle);
mMapEditToggle.setChecked(false); mMapEditToggle.setChecked(false);
mMapEditToggle.setOnCheckedChangeListener(this); mMapEditToggle.setOnCheckedChangeListener(this);
mRadiusOverlay = new RadiusOverlay();
mRadiusOverlay.setLocationSelectedListener(this);
mRadius.setOnSeekBarChangeListener(this); mRadius.setOnSeekBarChangeListener(this);
mMap.getMap().addCircle(mRadiusOverlay.getCircleOptions());
mRadius.setEnabled(false); mRadius.setEnabled(false);
if (mInfo.get(RingerDatabase.KEY_LOCATION) != null) { if (mInfo.get(RingerDatabase.KEY_LOCATION) != null) {
final String[] point = mInfo.getAsString(RingerDatabase.KEY_LOCATION).split(","); final String[] point = mInfo.getAsString(RingerDatabase.KEY_LOCATION).split(",");
mRadiusOverlay.setLocation(new LatLng(Integer.parseInt(point[0]), Integer.parseInt(point[1]))); final LatLng location = new LatLng(Double.parseDouble(point[0]), Double.parseDouble(point[1]));
mCircle.setCenter(location);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 14));
} }
if (mInfo.get(RingerDatabase.KEY_RADIUS) != null) if (mInfo.get(RingerDatabase.KEY_RADIUS) != null) {
mRadius.setProgress(mInfo.getAsInteger(RingerDatabase.KEY_RADIUS)); mRadius.setProgress(mInfo.getAsInteger(RingerDatabase.KEY_RADIUS));
if (mRadiusOverlay.getLocation() != null) {
mMap.getMap().moveCamera(CameraUpdateFactory.newLatLng(mRadiusOverlay.getLocation()));
//todo zoom
// mMap.setZoom(16);
} }
//
// mMap.setDoubleTapZoonEnabled(false);
view.findViewById(R.id.my_location).setOnClickListener(this); view.findViewById(R.id.my_location).setOnClickListener(this);
view.findViewById(R.id.mark_my_location).setOnClickListener(this); view.findViewById(R.id.mark_my_location).setOnClickListener(this);
view.findViewById(R.id.search).setOnClickListener(this); view.findViewById(R.id.search).setOnClickListener(this);
@@ -169,31 +165,30 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
* Called when the location is a first fix (non-Javadoc) * Called when the location is a first fix (non-Javadoc)
* *
* todo fix this * todo fix this
* *
* @see com.TwentyCodes.android.location.LatLngListener#onFirstFix(boolean) * @see com.TwentyCodes.android.location.LatLngListener#onFirstFix(boolean)
*/ */
@Override @Override
public void onFirstFix(final boolean isFirstFix) { public void onFirstFix(final boolean isFirstFix) {
// if (mPoint != null) { if (mPoint != null) {
// /* /*
// * if this is the first fix and the radius overlay does not have a * if this is the first fix and the radius overlay does not have a
// * point specified then pan the map, and zoom in to the users * point specified then pan the map, and zoom in to the users
// * current location * current location
// */ */
// if (isFirstFix) { if (isFirstFix) {
// mMap.disableGPSProgess(); // mMap.disableGPSProgess();
// if (mRadiusOverlay.getLocation() == null) if (mMap != null) {
// if (mMap != null) { mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(mPoint, 14));
// mMap.setMapCenter(mPoint); }
// mMap.setZoom(mMap.getMap().getMaxZoomLevel() - 5); }
// } }
// } // else
// } else
// mMap.enableGPSProgess(); // mMap.enableGPSProgess();
} }
/** /**
* Called when skyhook has a location to report * Called when the GPS has a location to report
* *
* @author ricky barrette * @author ricky barrette
*/ */
@@ -202,31 +197,6 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
mPoint = point; mPoint = point;
} }
/**
* Called when a location has been selected (non-Javadoc)
*
// * @see com.TwentyCodes.android.location.OnLocationSelectedListener#onLocationSelected(com.google.android.maps.GeoPoint)
*/
@Override
public void onLocationSelected(final LatLng point) {
if (point != null) {
Log.d(TAG, "onLocationSelected() " + point.toString());
if (mRadiusOverlay != null)
mRadiusOverlay.setLocation(point);
if (mMap != null)
mMap.getMap().moveCamera(CameraUpdateFactory.newLatLng(point));
if (mListener != null) {
final ContentValues info = new ContentValues();
info.put(RingerDatabase.KEY_LOCATION, point.toString());
mListener.onInfoContentChanged(info);
}
} else
Log.d(TAG, "onLocationSelected() Location was null");
}
/** /**
* (non-Javadoc) * (non-Javadoc)
* *
@@ -247,7 +217,7 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
switch (seekBar.getId()) { switch (seekBar.getId()) {
case R.id.radius: case R.id.radius:
mRadiusTextView.setText(GeoUtils.distanceToString(Float.valueOf(progress) / 1000, true)); mRadiusTextView.setText(GeoUtils.distanceToString(Float.valueOf(progress) / 1000, true));
mRadiusOverlay.setRadius(progress); mCircle.setRadius(progress);
//todo invalidate this shit //todo invalidate this shit
// mMap.invalidate(); // mMap.invalidate();
if (mListener != null) { if (mListener != null) {
@@ -267,6 +237,7 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
public void onResume() { public void onResume() {
if (mMapEditToggle.isChecked()) if (mMapEditToggle.isChecked())
mGPS.enableLocationUpdates(this); mGPS.enableLocationUpdates(this);
setUpMapIfNeeded();
super.onResume(); super.onResume();
} }
@@ -301,4 +272,84 @@ public class LocationInfomationFragment extends Fragment implements LatLngListen
@Override @Override
public void onStopTrackingTouch(final SeekBar seekBar) { public void onStopTrackingTouch(final SeekBar seekBar) {
} }
/**
* Sets up the map if it is possible to do so (i.e., the Google Play services APK is correctly
* installed) and the map has not already been instantiated.. This will ensure that we only ever
* call {@link #setUpMap()} once when {@link #mMap} is not null.
* <p>
* If it isn't installed {@link SupportMapFragment} (and
* {@link com.google.android.gms.maps.MapView MapView}) will show a prompt for the user to
* install/update the Google Play services APK on their device.
* <p>
* A user can return to this FragmentActivity after following the prompt and correctly
* installing/updating/enabling the Google Play services. Since the FragmentActivity may not have been
* completely destroyed during this process (it is likely that it would only be stopped or
* paused), {@link #onCreate(Bundle)} may not be called again so we should call this method in
* {@link #onResume()} to guarantee that it will be called.
*/
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
setUpMap();
}
}
}
/**
* This is where we can add markers or lines, add listeners or move the camera.
* This should only be called once and when we are sure that {@link #mMap} is not null.
*/
private void setUpMap() {
final CircleOptions circle = new CircleOptions();
circle.strokeColor(Color.GREEN);
circle.fillColor(Color.argb(100, 0, 255, 0));
circle.center(new LatLng(0, 0));
circle.radius(0);
mCircle = mMap.addCircle(circle);
if (mCircle.getCenter() != null) {
mMap.moveCamera(CameraUpdateFactory.newLatLng(mCircle.getCenter()));
//todo zoom
// mMap.setZoom(16);
}
// mMap.addCircle(mRadiusOverlay.getCircleOptions());
//
// mMap.setDoubleTapZoonEnabled(false);
}
@Override
public void onMapClick(LatLng point) {
if (point != null) {
Log.d(TAG, "onLocationSelected() " + point.toString());
if (mCircle != null)
mCircle.setCenter(point);
if (mMap != null)
mMap.moveCamera(CameraUpdateFactory.newLatLng(point));
if (mListener != null) {
final ContentValues info = new ContentValues();
final StringBuilder sb = new StringBuilder();
sb.append(point.latitude).append(",").append(point.longitude);
info.put(RingerDatabase.KEY_LOCATION, sb.toString());
mListener.onInfoContentChanged(info);
}
} else
Log.d(TAG, "onLocationSelected() Location was null");
}
@Override
public void onLocationSelected(LatLng point) {
onMapClick(point);
}
} }