Skip to content

Commit

Permalink
Unify the two GeoShape activities further.
Browse files Browse the repository at this point in the history
  • Loading branch information
zestyping committed Aug 18, 2018
1 parent 76cd7f8 commit 0ff1f39
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public class GeoShapeGoogleMapActivity extends CollectAbstractActivity {
private Button zoomLocationButton;

@Override
public void onCreate(Bundle savedInstanceState) {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (!checkIfLocationPermissionsGranted(this)) {
Expand Down Expand Up @@ -149,13 +149,6 @@ private void setupMap(MapFragment newMapFragment) {
zoomDialog.dismiss();
});

// If there is a last know location go there
if (hasWindowFocus() && map.getGpsLocation() != null) {
// foundFirstLocation = true;
gpsButton.setEnabled(true);
showZoomDialog();
}

helper.setBasemap();
}

Expand Down Expand Up @@ -187,6 +180,24 @@ private void showClearDialog() {
}
}

@Override
public void onBackPressed() {
if (!map.getPointsOfShape(shapeId).isEmpty()) {
showBackDialog();
} else {
finish();
}
}

private void showBackDialog() {
new AlertDialog.Builder(this)
.setMessage(getString(R.string.geo_exit_warning))
.setPositiveButton(R.string.discard, (dialog, id) -> finish())
.setNegativeButton(R.string.cancel, null)
.show();

}

private void finishWithResult() {
List<MapPoint> points = map.getPointsOfShape(shapeId);
if (points.size() < 3) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import android.widget.TextView;

import org.odk.collect.android.R;
import org.odk.collect.android.application.Collect;
import org.odk.collect.android.map.MapFragment;
import org.odk.collect.android.map.MapPoint;
import org.odk.collect.android.map.OsmMapFragment;
Expand All @@ -50,8 +51,8 @@
public class GeoShapeOsmMapActivity extends CollectAbstractActivity implements IRegisterReceiver {
private MapFragment map;
private int shapeId = -1; // will be a positive featureId once map is ready
private ImageButton clearButton;
private ImageButton gpsButton;
private ImageButton clearButton;

private MapHelper helper;
private AlertDialog zoomDialog;
Expand Down Expand Up @@ -83,7 +84,26 @@ public static MapFragment createMapFragment() {
return new OsmMapFragment();
}

@Override
protected void onStart() {
super.onStart();
Collect.getInstance().getActivityLogger().logOnStart(this);
if (map != null) map.setGpsLocationEnabled(true);
}

@Override
protected void onStop() {
map.setGpsLocationEnabled(false);
Collect.getInstance().getActivityLogger().logOnStop(this);
super.onStop();
}

private void setupMap(MapFragment newMapFragment) {
if (newMapFragment == null) {
finish();
return;
}

map = newMapFragment;
map.setGpsLocationEnabled(true);
map.setLongPressListener(this::addVertex);
Expand Down Expand Up @@ -134,27 +154,8 @@ private void setupMap(MapFragment newMapFragment) {
map.zoomToBoundingBox(map.getPointsOfShape(shapeId), 0.8);
zoomDialog.dismiss();
});
}

@Override
public void onBackPressed() {
if (!map.getPointsOfShape(shapeId).isEmpty()) {
showBackDialog();
} else {
finish();
}
}

@Override
protected void onStart() {
super.onStart();
if (map != null) map.setGpsLocationEnabled(true);
}

@Override
protected void onStop() {
map.setGpsLocationEnabled(false);
super.onStop();
helper.setBasemap();
}

private void onGpsLocationReady(MapFragment map) {
Expand Down Expand Up @@ -185,6 +186,15 @@ private void showClearDialog() {
}
}

@Override
public void onBackPressed() {
if (!map.getPointsOfShape(shapeId).isEmpty()) {
showBackDialog();
} else {
finish();
}
}

private void showBackDialog() {
new AlertDialog.Builder(this)
.setMessage(getString(R.string.geo_exit_warning))
Expand Down Expand Up @@ -294,9 +304,4 @@ public void onCancel(DialogInterface dialog) {
}
zoomDialog.show();
}

@Override
public void destroy() {

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ public void update() {
for (Marker marker : markers) {
geoPoints.add(marker.getPosition());
}
geoPoints.add(markers.get(0).getPosition()); // close the polygon
polyline.setPoints(geoPoints);
map.invalidate();
}
Expand Down

0 comments on commit 0ff1f39

Please sign in to comment.