Skip to content

Commit

Permalink
Show Error Play Services Dialog when appropriate for geo activities (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Divya authored and lognaturel committed Mar 3, 2017
1 parent db5213d commit 12ef549
Show file tree
Hide file tree
Showing 8 changed files with 588 additions and 459 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import org.odk.collect.android.R;
import org.odk.collect.android.application.Collect;
import org.odk.collect.android.utilities.InfoLogger;
import org.odk.collect.android.utilities.PlayServicesUtil;
import org.odk.collect.android.widgets.GeoPointWidget;

import java.text.DecimalFormat;
Expand All @@ -47,7 +48,6 @@ public class GeoPointActivity extends Activity implements LocationListener {
private double mLocationAccuracy;
private int mLocationCount = 0;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand All @@ -69,56 +69,61 @@ protected void onCreate(Bundle savedInstanceState) {

setTitle(getString(R.string.get_location));

mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (PlayServicesUtil.checkPlayServices(GeoPointActivity.this)) {
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

// make sure we have a good location provider before continuing
List<String> providers = mLocationManager.getProviders(true);
for (String provider : providers) {
if (provider.equalsIgnoreCase(LocationManager.GPS_PROVIDER)) {
mGPSOn = true;
// make sure we have a good location provider before continuing
List<String> providers = mLocationManager.getProviders(true);
for (String provider : providers) {
if (provider.equalsIgnoreCase(LocationManager.GPS_PROVIDER)) {
mGPSOn = true;
}
if (provider.equalsIgnoreCase(LocationManager.NETWORK_PROVIDER)) {
mNetworkOn = true;
}
}
if (provider.equalsIgnoreCase(LocationManager.NETWORK_PROVIDER)) {
mNetworkOn = true;
if (!mGPSOn && !mNetworkOn) {
Toast.makeText(getBaseContext(), getString(R.string.provider_disabled_error),
Toast.LENGTH_SHORT).show();
finish();
}
}
if (!mGPSOn && !mNetworkOn) {
Toast.makeText(getBaseContext(), getString(R.string.provider_disabled_error),
Toast.LENGTH_SHORT).show();
finish();
}

if (mGPSOn) {
Location loc = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (loc != null) {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(GPS) lat: " +
loc.getLatitude() + " long: " +
loc.getLongitude() + " acc: " +
loc.getAccuracy());
} else {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(GPS) null location");
if (mGPSOn) {
Location loc = mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (loc != null) {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(GPS) lat: " +
loc.getLatitude() + " long: " +
loc.getLongitude() + " acc: " +
loc.getAccuracy());
} else {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(GPS) null location");
}
}
}

if (mNetworkOn) {
Location loc = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (loc != null) {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(Network) lat: " +
loc.getLatitude() + " long: " +
loc.getLongitude() + " acc: " +
loc.getAccuracy());
} else {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(Network) null location");
if (mNetworkOn) {
Location loc = mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (loc != null) {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(Network) lat: " +
loc.getLatitude() + " long: " +
loc.getLongitude() + " acc: " +
loc.getAccuracy());
} else {
InfoLogger.geolog("GeoPointActivity: " + System.currentTimeMillis() +
" lastKnownLocation(Network) null location");
}
}
}

setupLocationDialog();
setupLocationDialog();
} else {
PlayServicesUtil.requestPlayServicesErrorDialog(GeoPointActivity.this);
}

}


@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Expand Down Expand Up @@ -253,6 +258,13 @@ public void onLocationChanged(Location location) {
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PlayServicesUtil.PLAY_SERVICE_ERROR_REQUEST_CODE) {
finish();
}
super.onActivityResult(requestCode, resultCode, data);
}

private String truncateDouble(float number) {
DecimalFormat df = new DecimalFormat("#.##");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import org.odk.collect.android.application.Collect;
import org.odk.collect.android.spatial.MapHelper;
import org.odk.collect.android.utilities.InfoLogger;
import org.odk.collect.android.utilities.PlayServicesUtil;
import org.odk.collect.android.widgets.GeoPointWidget;

import java.text.DecimalFormat;
Expand Down Expand Up @@ -129,12 +130,16 @@ public void onCreate(Bundle savedInstanceState) {
return;
}

((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
setupMap(googleMap);
}
});
if (PlayServicesUtil.checkPlayServices(GeoPointMapActivity.this)) {
((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
setupMap(googleMap);
}
});
} else {
PlayServicesUtil.requestPlayServicesErrorDialog(GeoPointMapActivity.this);
}
}

@Override
Expand Down Expand Up @@ -574,4 +579,12 @@ public void onClick(DialogInterface dialog, int id) {
alert.show();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PlayServicesUtil.PLAY_SERVICE_ERROR_REQUEST_CODE) {
finish();
}
super.onActivityResult(requestCode, resultCode, data);
}

}
Loading

0 comments on commit 12ef549

Please sign in to comment.