Reorganization of MainActivity code.

This commit is contained in:
chteufleur 2018-10-04 16:06:46 +02:00
parent 35d9b8ccfb
commit f040aaa514
1 changed files with 107 additions and 97 deletions

View File

@ -103,6 +103,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
}
//<editor-fold defaultstate="collapsed" desc="Activity life cycle">
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -237,92 +238,6 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
}
private void changeStatusTrace() {
serviceGps.toggleTraceurActivation();
if (serviceGps.isTraceurActivated()) {
this.start_stop_trace.setText(R.string.trail_stop);
this.add_object.setVisibility(View.VISIBLE);
this.add_object.setText(R.string.trail_object);
this.start_stop_dog_trace.setVisibility(View.GONE);
updateDistance();
} else {
this.start_stop_trace.setText(R.string.trail_start);
this.add_object.setVisibility(View.GONE);
this.start_stop_dog_trace.setVisibility(View.VISIBLE);
}
}
private void changeStatusDogTrace() {
serviceGps.toggleDogActivation();
if (serviceGps.isDogActivated()) {
this.start_stop_dog_trace.setText(R.string.dog_stop);
this.add_object.setVisibility(View.VISIBLE);
this.add_object.setText(R.string.dog_object);
this.start_stop_trace.setVisibility(View.GONE);
this.textViewCurrentLocation.setVisibility(View.GONE);
updateDistance();
} else {
this.start_stop_dog_trace.setText(R.string.dog_start);
this.add_object.setVisibility(View.GONE);
this.start_stop_trace.setVisibility(View.VISIBLE);
}
}
private void addMarker(GeoPoint gp, boolean isFound) {
Marker marker = new Marker(map);
marker.setIcon(getResources().getDrawable(isFound ? R.drawable.ic_marker_blue : R.drawable.ic_marker_red));
marker.setPosition(gp);
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
marker.setTitle("Object");
marker.setDraggable(false);
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
if (serviceGps.isDogActivated()) {
GeoPoint gp = marker.getPosition();
WayPointLocation wpl = serviceGps.getPointTrail(gp.getLatitude(), gp.getLongitude());
if (wpl != null) {
wpl.setFound();
marker.setIcon(getResources().getDrawable(R.drawable.ic_marker_blue));
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
}
}
return true;
}
});
map.getOverlays().add(marker);
}
private void markAsFound() {
List<WayPointLocation> wpls = serviceGps.foundNearObjects();
boolean findMarker = false;
for (WayPointLocation wpl : wpls) {
if (wpl != null && !wpl.isFound()) {
wpl.setFound();
for (Overlay o : map.getOverlays()) {
if (o instanceof Marker) {
Marker marker = (Marker) o;
GeoPoint gp = marker.getPosition();
if (wpl.isEquals(gp.getLatitude(), gp.getLongitude())) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_marker_blue));
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
break;
}
}
}
serviceGps.addPointObjectDog();
findMarker = true;
break;
}
}
if (wpls.isEmpty() || !findMarker) {
// if no object is near
WayPointLocation wpl = serviceGps.addPointObjectDog();
GeoPoint gp = new GeoPoint(wpl.getLatitude(), wpl.getLongitude(), wpl.getAltitude());
addMarker(gp, true);
}
}
@Override
public void onResume(){
super.onResume();
@ -410,7 +325,9 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
zoomed = false;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Menu management">
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
@ -466,6 +383,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
return super.onOptionsItemSelected(item);
}
//</editor-fold>
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
@ -529,7 +447,6 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
}
@Override
public void onOrientationChanged(float orientationToMagneticNorth, IOrientationProvider source) {
//note, on devices without a compass this never fires...
@ -570,6 +487,94 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
}
//<editor-fold defaultstate="collapsed" desc="Map management">
private void changeStatusTrace() {
serviceGps.toggleTraceurActivation();
if (serviceGps.isTraceurActivated()) {
this.start_stop_trace.setText(R.string.trail_stop);
this.add_object.setVisibility(View.VISIBLE);
this.add_object.setText(R.string.trail_object);
this.start_stop_dog_trace.setVisibility(View.GONE);
updateDistance();
} else {
this.start_stop_trace.setText(R.string.trail_start);
this.add_object.setVisibility(View.GONE);
this.start_stop_dog_trace.setVisibility(View.VISIBLE);
}
}
private void changeStatusDogTrace() {
serviceGps.toggleDogActivation();
if (serviceGps.isDogActivated()) {
this.start_stop_dog_trace.setText(R.string.dog_stop);
this.add_object.setVisibility(View.VISIBLE);
this.add_object.setText(R.string.dog_object);
this.start_stop_trace.setVisibility(View.GONE);
this.textViewCurrentLocation.setVisibility(View.GONE);
updateDistance();
} else {
this.start_stop_dog_trace.setText(R.string.dog_start);
this.add_object.setVisibility(View.GONE);
this.start_stop_trace.setVisibility(View.VISIBLE);
}
}
private void addMarker(GeoPoint gp, boolean isFound) {
Marker marker = new Marker(map);
marker.setIcon(getResources().getDrawable(isFound ? R.drawable.ic_marker_blue : R.drawable.ic_marker_red));
marker.setPosition(gp);
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
marker.setTitle("Object");
marker.setDraggable(false);
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
if (serviceGps.isDogActivated()) {
GeoPoint gp = marker.getPosition();
WayPointLocation wpl = serviceGps.getPointTrail(gp.getLatitude(), gp.getLongitude());
if (wpl != null) {
wpl.setFound();
marker.setIcon(getResources().getDrawable(R.drawable.ic_marker_blue));
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
}
}
return true;
}
});
map.getOverlays().add(marker);
}
private void markAsFound() {
List<WayPointLocation> wpls = serviceGps.foundNearObjects();
boolean findMarker = false;
for (WayPointLocation wpl : wpls) {
if (wpl != null && !wpl.isFound()) {
wpl.setFound();
for (Overlay o : map.getOverlays()) {
if (o instanceof Marker) {
Marker marker = (Marker) o;
GeoPoint gp = marker.getPosition();
if (wpl.isEquals(gp.getLatitude(), gp.getLongitude())) {
marker.setIcon(getResources().getDrawable(R.drawable.ic_marker_blue));
marker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM);
break;
}
}
}
serviceGps.addPointObjectDog();
findMarker = true;
break;
}
}
if (wpls.isEmpty() || !findMarker) {
// if no object is near
WayPointLocation wpl = serviceGps.addPointObjectDog();
GeoPoint gp = new GeoPoint(wpl.getLatitude(), wpl.getLongitude(), wpl.getAltitude());
addMarker(gp, true);
}
}
private void calculTrailDistance() {
List<MyLocation> listLoc = serviceGps.getListGeoPointTraceur();
MyLocation last = null;
@ -621,6 +626,18 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
map.invalidate();
}
private List<GeoPoint> convertListLocation(MyLocationArray list) {
List<GeoPoint> ret = new ArrayList<>();
if (list != null) {
for (MyLocation loc : list) {
ret.add(new GeoPoint(loc.getLatitude(), loc.getLongitude(), loc.getAltitude()));
}
}
return ret;
}
//</editor-fold>
//<editor-fold defaultstate="collapsed" desc="Service callback">
@Override
public void update(Observable observable, Object o) {
if (observable == serviceGps) {
@ -714,17 +731,9 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
}
}
}
//</editor-fold>
private List<GeoPoint> convertListLocation(MyLocationArray list) {
List<GeoPoint> ret = new ArrayList<>();
if (list != null) {
for (MyLocation loc : list) {
ret.add(new GeoPoint(loc.getLatitude(), loc.getLongitude(), loc.getAltitude()));
}
}
return ret;
}
//<editor-fold defaultstate="collapsed" desc="Placeholder management">
private void updateDistance() {
String text = null;
if (serviceGps.isTraceurActivated()) {
@ -770,4 +779,5 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
this.textViewCurrentLocation.setVisibility(View.VISIBLE);
}
}
//</editor-fold>
}