Add states for the "apply" button; add lines filtering
This commit is contained in:
parent
62be4e773e
commit
972ad84196
2 changed files with 42 additions and 14 deletions
|
@ -107,6 +107,13 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
@Override
|
@Override
|
||||||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||||||
view.findViewById(R.id.warning_linear_layout).setVisibility(View.GONE);
|
view.findViewById(R.id.warning_linear_layout).setVisibility(View.GONE);
|
||||||
|
if (charSequence.length() > 0 ||
|
||||||
|
settings.MAPILLARY_FILTER_TO_DATE.get() != 0 ||
|
||||||
|
settings.MAPILLARY_FILTER_FROM_DATE.get() != 0) {
|
||||||
|
changeButtonState((Button) view.findViewById(R.id.button_apply), 1, true);
|
||||||
|
} else {
|
||||||
|
changeButtonState((Button) view.findViewById(R.id.button_apply), .5f, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -122,13 +129,14 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
final EditText dateFromEt = (EditText) view.findViewById(R.id.date_from_edit_text);
|
final EditText dateFromEt = (EditText) view.findViewById(R.id.date_from_edit_text);
|
||||||
final DatePickerDialog.OnDateSetListener dateFromDialog = new DatePickerDialog.OnDateSetListener() {
|
final DatePickerDialog.OnDateSetListener dateFromDialog = new DatePickerDialog.OnDateSetListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
|
public void onDateSet(DatePicker v, int year, int monthOfYear, int dayOfMonth) {
|
||||||
Calendar from = Calendar.getInstance();
|
Calendar from = Calendar.getInstance();
|
||||||
from.set(Calendar.YEAR, year);
|
from.set(Calendar.YEAR, year);
|
||||||
from.set(Calendar.MONTH, monthOfYear);
|
from.set(Calendar.MONTH, monthOfYear);
|
||||||
from.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
from.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
||||||
dateFromEt.setText(dateFormat.format(from.getTime()));
|
dateFromEt.setText(dateFormat.format(from.getTime()));
|
||||||
settings.MAPILLARY_FILTER_FROM_DATE.set(from.getTimeInMillis());
|
settings.MAPILLARY_FILTER_FROM_DATE.set(from.getTimeInMillis());
|
||||||
|
changeButtonState((Button) view.findViewById(R.id.button_apply), 1, true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
dateFromEt.setOnClickListener(new View.OnClickListener() {
|
dateFromEt.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@ -147,13 +155,14 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
final EditText dateToEt = (EditText) view.findViewById(R.id.date_to_edit_text);
|
final EditText dateToEt = (EditText) view.findViewById(R.id.date_to_edit_text);
|
||||||
final DatePickerDialog.OnDateSetListener dateToDialog = new DatePickerDialog.OnDateSetListener() {
|
final DatePickerDialog.OnDateSetListener dateToDialog = new DatePickerDialog.OnDateSetListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
|
public void onDateSet(DatePicker v, int year, int monthOfYear, int dayOfMonth) {
|
||||||
Calendar to = Calendar.getInstance();
|
Calendar to = Calendar.getInstance();
|
||||||
to.set(Calendar.YEAR, year);
|
to.set(Calendar.YEAR, year);
|
||||||
to.set(Calendar.MONTH, monthOfYear);
|
to.set(Calendar.MONTH, monthOfYear);
|
||||||
to.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
to.set(Calendar.DAY_OF_MONTH, dayOfMonth);
|
||||||
dateToEt.setText(dateFormat.format(to.getTime()));
|
dateToEt.setText(dateFormat.format(to.getTime()));
|
||||||
settings.MAPILLARY_FILTER_TO_DATE.set(to.getTimeInMillis());
|
settings.MAPILLARY_FILTER_TO_DATE.set(to.getTimeInMillis());
|
||||||
|
changeButtonState((Button) view.findViewById(R.id.button_apply), 1, true);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
dateToEt.setOnClickListener(new View.OnClickListener() {
|
dateToEt.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@ -181,6 +190,7 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
|
|
||||||
|
|
||||||
final Button apply = (Button) view.findViewById(R.id.button_apply);
|
final Button apply = (Button) view.findViewById(R.id.button_apply);
|
||||||
|
changeButtonState(apply, .5f, false);
|
||||||
apply.setOnClickListener(new View.OnClickListener() {
|
apply.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -200,6 +210,9 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
if (dateTo.equals("")) {
|
if (dateTo.equals("")) {
|
||||||
settings.MAPILLARY_FILTER_TO_DATE.set(0L);
|
settings.MAPILLARY_FILTER_TO_DATE.set(0L);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
changeButtonState(apply, .5f, false);
|
||||||
|
plugin.updateLayers(mapActivity.getMapView(), mapActivity);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -217,6 +230,9 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
settings.MAPILLARY_FILTER_USERNAME.set("");
|
settings.MAPILLARY_FILTER_USERNAME.set("");
|
||||||
settings.MAPILLARY_FILTER_FROM_DATE.set(0L);
|
settings.MAPILLARY_FILTER_FROM_DATE.set(0L);
|
||||||
settings.MAPILLARY_FILTER_TO_DATE.set(0L);
|
settings.MAPILLARY_FILTER_TO_DATE.set(0L);
|
||||||
|
|
||||||
|
changeButtonState(apply, .5f, false);
|
||||||
|
plugin.updateLayers(mapActivity.getMapView(), mapActivity);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -228,4 +244,9 @@ public class MapillaryFiltersFragment extends BaseOsmAndFragment {
|
||||||
plugin.updateLayers(mapActivity.getMapView(), mapActivity);
|
plugin.updateLayers(mapActivity.getMapView(), mapActivity);
|
||||||
mapActivity.getDashboard().refreshContent(true);
|
mapActivity.getDashboard().refreshContent(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void changeButtonState(Button button, float alpha, boolean enabled) {
|
||||||
|
button.setAlpha(alpha);
|
||||||
|
button.setEnabled(enabled);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,7 +182,7 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
ty = (tileY + py) * mult;
|
ty = (tileY + py) * mult;
|
||||||
if (tileBounds.contains(tx, ty, tx, ty)) {
|
if (tileBounds.contains(tx, ty, tx, ty)) {
|
||||||
if (settings.USE_MAPILLARY_FILTER.get()) {
|
if (settings.USE_MAPILLARY_FILTER.get()) {
|
||||||
if (skipPoint(p)) continue;
|
if (filtered(p.getUserData())) continue;
|
||||||
}
|
}
|
||||||
x = tileBox.getPixXFromTile(tileX + px, tileY + py, TILE_ZOOM);
|
x = tileBox.getPixXFromTile(tileX + px, tileY + py, TILE_ZOOM);
|
||||||
y = tileBox.getPixYFromTile(tileX + px, tileY + py, TILE_ZOOM);
|
y = tileBox.getPixYFromTile(tileX + px, tileY + py, TILE_ZOOM);
|
||||||
|
@ -193,9 +193,12 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean skipPoint(Point p) {
|
private boolean filtered(Object data) {
|
||||||
|
if (data == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
String userKey = settings.MAPILLARY_FILTER_USER_KEY.get();
|
String userKey = settings.MAPILLARY_FILTER_USER_KEY.get();
|
||||||
HashMap<String, Object> userData = (HashMap<String, Object>) p.getUserData();
|
HashMap<String, Object> userData = (HashMap<String, Object>) data;
|
||||||
long capturedAt = (long) userData.get("captured_at");
|
long capturedAt = (long) userData.get("captured_at");
|
||||||
long from = settings.MAPILLARY_FILTER_FROM_DATE.get();
|
long from = settings.MAPILLARY_FILTER_FROM_DATE.get();
|
||||||
long to = settings.MAPILLARY_FILTER_TO_DATE.get();
|
long to = settings.MAPILLARY_FILTER_TO_DATE.get();
|
||||||
|
@ -221,18 +224,22 @@ class MapillaryVectorLayer extends MapTileLayer implements MapillaryLayer, ICont
|
||||||
if (g instanceof LineString && !g.isEmpty()) {
|
if (g instanceof LineString && !g.isEmpty()) {
|
||||||
LineString l = (LineString) g;
|
LineString l = (LineString) g;
|
||||||
if (l.getCoordinateSequence() != null && !l.isEmpty()) {
|
if (l.getCoordinateSequence() != null && !l.isEmpty()) {
|
||||||
draw(l.getCoordinateSequence().toCoordinateArray(), canvas, tileBox, tileX, tileY);
|
if (!filtered(l.getUserData())) {
|
||||||
|
draw(l.getCoordinateSequence().toCoordinateArray(), canvas, tileBox, tileX, tileY);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (g instanceof MultiLineString && !g.isEmpty()) {
|
} else if (g instanceof MultiLineString && !g.isEmpty()) {
|
||||||
MultiLineString ml = (MultiLineString) g;
|
MultiLineString ml = (MultiLineString) g;
|
||||||
for (int i = 0; i < ml.getNumGeometries(); i++) {
|
if (!filtered(ml.getUserData())) {
|
||||||
Geometry gm = ml.getGeometryN(i);
|
for (int i = 0; i < ml.getNumGeometries(); i++) {
|
||||||
if (gm instanceof LineString && !gm.isEmpty()) {
|
Geometry gm = ml.getGeometryN(i);
|
||||||
LineString l = (LineString) gm;
|
if (gm instanceof LineString && !gm.isEmpty()) {
|
||||||
if (l.getCoordinateSequence() != null && !l.isEmpty()) {
|
LineString l = (LineString) gm;
|
||||||
draw(l.getCoordinateSequence().toCoordinateArray(), canvas, tileBox, tileX, tileY);
|
if (l.getCoordinateSequence() != null && !l.isEmpty()) {
|
||||||
}
|
draw(l.getCoordinateSequence().toCoordinateArray(), canvas, tileBox, tileX, tileY);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue