address field added

This commit is contained in:
simon 2020-08-18 11:34:55 +03:00
parent 64390ae596
commit 39b97a110e
12 changed files with 61 additions and 30 deletions

View file

@ -11,6 +11,7 @@ public class AFavorite extends AidlParams {
private double lon;
private String name;
private String description;
private String address;
private String category;
private String color;
private boolean visible;
@ -58,6 +59,8 @@ public class AFavorite extends AidlParams {
return description;
}
public String getAddress() { return description; }
public String getCategory() {
return category;
}
@ -76,6 +79,7 @@ public class AFavorite extends AidlParams {
bundle.putDouble("lon", lon);
bundle.putString("name", name);
bundle.putString("description", description);
bundle.putString("address", address);
bundle.putString("category", category);
bundle.putString("color", color);
bundle.putBoolean("visible", visible);
@ -87,6 +91,7 @@ public class AFavorite extends AidlParams {
lon = bundle.getDouble("lon");
name = bundle.getString("name");
description = bundle.getString("description");
address = bundle.getString("address");
category = bundle.getString("category");
color = bundle.getString("color");
visible = bundle.getBoolean("visible");

View file

@ -967,7 +967,7 @@ public class OsmandAidlApi {
return false;
}
boolean updateFavorite(String prevName, String prevCategory, double prevLat, double prevLon, String newName, String newCategory, String newDescription, double newLat, double newLon) {
boolean updateFavorite(String prevName, String prevCategory, double prevLat, double prevLon, String newName, String newCategory, String newDescription, String newAddress, double newLat, double newLon) {
FavouritesDbHelper favoritesHelper = app.getFavorites();
List<FavouritePoint> favorites = favoritesHelper.getFavouritePoints();
for (FavouritePoint f : favorites) {
@ -977,8 +977,8 @@ public class OsmandAidlApi {
favoritesHelper.editFavourite(f, newLat, newLon);
}
if (!newName.equals(f.getName()) || !newDescription.equals(f.getDescription()) ||
!newCategory.equals(f.getCategory())) {
favoritesHelper.editFavouriteName(f, newName, newCategory, newDescription);
!newCategory.equals(f.getCategory()) || !newAddress.equals(f.getAddress())) {
favoritesHelper.editFavouriteName(f, newName, newCategory, newDescription,newAddress);
}
refreshMap();
return true;

View file

@ -311,7 +311,7 @@ public class OsmandAidlService extends Service implements AidlCallbackListener {
AFavorite newFav = params.getFavoriteNew();
if (prevFav != null && newFav != null) {
return api.updateFavorite(prevFav.getName(), prevFav.getCategory(), prevFav.getLat(), prevFav.getLon(),
newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getLat(), newFav.getLon());
newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getAddress(), newFav.getLat(), newFav.getLon());
}
}
return false;

View file

@ -314,7 +314,7 @@ public class OsmandAidlServiceV2 extends Service implements AidlCallbackListener
AFavorite newFav = params.getFavoriteNew();
if (prevFav != null && newFav != null) {
return api.updateFavorite(prevFav.getName(), prevFav.getCategory(), prevFav.getLat(), prevFav.getLon(),
newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getLat(), newFav.getLon());
newFav.getName(), newFav.getCategory(), newFav.getDescription(), newFav.getAddress(), newFav.getLat(), newFav.getLon());
}
}
return false;

View file

@ -9,16 +9,18 @@ public class AFavorite implements Parcelable {
private double lon;
private String name;
private String description;
private String address;
private String category;
private String color;
private boolean visible;
public AFavorite(double lat, double lon, String name, String description,
public AFavorite(double lat, double lon, String name, String description, String address,
String category, String color, boolean visible) {
this.lat = lat;
this.lon = lon;
this.name = name;
this.description = description;
this.address = address;
this.category = category;
this.color = color;
this.visible = visible;
@ -56,6 +58,8 @@ public class AFavorite implements Parcelable {
return description;
}
public String getAddress() { return address; }
public String getCategory() {
return category;
}
@ -74,6 +78,7 @@ public class AFavorite implements Parcelable {
out.writeDouble(lon);
out.writeString(name);
out.writeString(description);
out.writeString(address);
out.writeString(category);
out.writeString(color);
out.writeByte((byte) (visible ? 1 : 0));
@ -84,6 +89,7 @@ public class AFavorite implements Parcelable {
lon = in.readDouble();
name = in.readString();
description = in.readString();
address = in.readString();
category = in.readString();
color = in.readString();
visible = in.readByte() != 0;

View file

@ -487,11 +487,12 @@ public class FavouritesDbHelper {
return builder.toString();
}
public boolean editFavouriteName(FavouritePoint p, String newName, String category, String descr) {
public boolean editFavouriteName(FavouritePoint p, String newName, String category, String descr, String address) {
String oldCategory = p.getCategory();
p.setName(newName);
p.setCategory(category);
p.setDescription(descr);
p.setAddress(address);
if (!oldCategory.equals(category)) {
FavoriteGroup old = flatGroups.get(oldCategory);
if (old != null) {

View file

@ -1042,7 +1042,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
}
FavoritePointEditor favoritePointEditor = getFavoritePointEditor();
if (favoritePointEditor != null) {
favoritePointEditor.add(getLatLon(), title, originObjectName);
favoritePointEditor.add(getLatLon(), title, getStreetStr(), originObjectName);
}
}
});

View file

@ -27,7 +27,7 @@ public class FavoritePointEditor extends PointEditor {
return favorite;
}
public void add(LatLon latLon, String title, String originObjectName) {
public void add(LatLon latLon, String title, String address, String originObjectName) {
MapActivity mapActivity = getMapActivity();
if (latLon == null || mapActivity == null) {
return;
@ -39,6 +39,7 @@ public class FavoritePointEditor extends PointEditor {
}
favorite = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), title, lastCategory);
favorite.setDescription("");
favorite.setAddress(address);
favorite.setOriginObjectName(originObjectName);
FavoritePointEditorFragmentNew.showInstance(mapActivity);
}
@ -61,6 +62,7 @@ public class FavoritePointEditor extends PointEditor {
favorite = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), title, categoryName);
favorite.setDescription("");
favorite.setAddress(title);
favorite.setOriginObjectName(originObjectName);
FavoritePointEditorFragmentNew.showAutoFillInstance(mapActivity, autoFill);

View file

@ -192,12 +192,13 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
final FavouritePoint point = new FavouritePoint(favorite.getLatitude(), favorite.getLongitude(),
getNameTextValue(), getCategoryTextValue());
point.setDescription(getDescriptionTextValue());
point.setAddress(getAddressTextValue());
AlertDialog.Builder builder = FavouritesDbHelper.checkDuplicates(point, helper, getMapActivity());
if (favorite.getName().equals(point.getName()) &&
favorite.getCategory().equals(point.getCategory()) &&
Algorithms.stringsEqual(favorite.getDescription(), point.getDescription())) {
Algorithms.stringsEqual(favorite.getDescription(), point.getDescription()) &&
Algorithms.stringsEqual(favorite.getAddress(),point.getAddress())) {
if (needDismiss) {
dismiss(false);
}
@ -208,25 +209,25 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), needDismiss);
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(),point.getAddress(), needDismiss);
}
});
builder.create().show();
} else {
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), needDismiss);
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), point.getAddress(), needDismiss);
}
saved = true;
}
}
private void doSave(FavouritePoint favorite, String name, String category, String description, boolean needDismiss) {
private void doSave(FavouritePoint favorite, String name, String category, String description, String address, boolean needDismiss) {
FavouritesDbHelper helper = getHelper();
FavoritePointEditor editor = getFavoritePointEditor();
if (editor != null && helper != null) {
if (editor.isNew()) {
doAddFavorite(name, category, description);
doAddFavorite(name, category, description,address);
} else {
helper.editFavouriteName(favorite, name, category, description);
helper.editFavouriteName(favorite, name, category, description,address);
}
}
MapActivity mapActivity = getMapActivity();
@ -245,7 +246,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
}
}
private void doAddFavorite(String name, String category, String description) {
private void doAddFavorite(String name, String category, String description, String address) {
OsmandApplication app = getMyApplication();
FavouritesDbHelper helper = getHelper();
FavouritePoint favorite = getFavorite();
@ -253,6 +254,7 @@ public class FavoritePointEditorFragment extends PointEditorFragment {
favorite.setName(name);
favorite.setCategory(category);
favorite.setDescription(description);
favorite.setAddress(address);
app.getSettings().LAST_FAV_CATEGORY_ENTERED.set(category);
helper.addFavourite(favorite);
}

View file

@ -244,6 +244,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
final FavouritePoint point = new FavouritePoint(favorite.getLatitude(), favorite.getLongitude(),
getNameTextValue(), getCategoryTextValue());
point.setDescription(getDescriptionTextValue());
point.setAddress(getAddressTextValue());
point.setColor(color);
point.setBackgroundType(backgroundType);
point.setIconId(iconId);
@ -259,6 +260,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
final FavouritePoint point = new FavouritePoint(favorite.getLatitude(), favorite.getLongitude(),
getNameTextValue(), getCategoryTextValue());
point.setDescription(getDescriptionTextValue());
point.setAddress(getAddressTextValue());
point.setColor(color);
point.setBackgroundType(backgroundType);
point.setIconId(iconId);
@ -276,13 +278,13 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
builder.setPositiveButton(R.string.shared_string_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(),
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), point.getAddress(),
point.getColor(), point.getBackgroundType(), point.getIconId(), needDismiss);
}
});
builder.create().show();
} else {
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(),
doSave(favorite, point.getName(), point.getCategory(), point.getDescription(), point.getAddress(),
point.getColor(), point.getBackgroundType(), point.getIconId(), needDismiss);
}
saved = true;
@ -295,10 +297,11 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
favorite.getName().equals(point.getName()) &&
favorite.getCategory().equals(point.getCategory()) &&
favorite.getBackgroundType().equals(point.getBackgroundType()) &&
Algorithms.stringsEqual(favorite.getDescription(), point.getDescription());
Algorithms.stringsEqual(favorite.getDescription(), point.getDescription()) &&
Algorithms.stringsEqual(favorite.getAddress(), point.getAddress());
}
private void doSave(FavouritePoint favorite, String name, String category, String description,
private void doSave(FavouritePoint favorite, String name, String category, String description, String address,
@ColorInt int color, BackgroundType backgroundType, @DrawableRes int iconId, boolean needDismiss) {
FavouritesDbHelper helper = getHelper();
FavoritePointEditor editor = getFavoritePointEditor();
@ -306,7 +309,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
if (editor.isNew()) {
doAddFavorite(name, category, description, color, backgroundType, iconId);
} else {
doEditFavorite(favorite, name, category, description, color, backgroundType, iconId, helper);
doEditFavorite(favorite, name, category, description, address, color, backgroundType, iconId, helper);
}
}
MapActivity mapActivity = getMapActivity();
@ -325,7 +328,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
}
}
private void doEditFavorite(FavouritePoint favorite, String name, String category, String description,
private void doEditFavorite(FavouritePoint favorite, String name, String category, String description, String address,
@ColorInt int color, BackgroundType backgroundType, @DrawableRes int iconId,
FavouritesDbHelper helper) {
OsmandApplication app = getMyApplication();
@ -334,7 +337,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
favorite.setColor(color);
favorite.setBackgroundType(backgroundType);
favorite.setIconId(iconId);
helper.editFavouriteName(favorite, name, category, description);
helper.editFavouriteName(favorite, name, category, description, address);
}
}
@ -408,7 +411,7 @@ public class FavoritePointEditorFragmentNew extends PointEditorFragmentNew {
@Override
public String getAddressInitValue() {
FavouritePoint favourite = getFavorite();
return favorite != null ? favorite.getAddress() : "";
return favourite != null ? favourite.getAddress() : "";
}
@Override

View file

@ -373,6 +373,12 @@ public abstract class PointEditorFragment extends BaseOsmAndFragment {
return Algorithms.isEmpty(res) ? null : res;
}
public String getAddressTextValue() {
EditText addressEdit = (EditText) view.findViewById(R.id.address_edit);
String res = addressEdit.getText().toString().trim();
return Algorithms.isEmpty(res) ? null : res;
}
protected Drawable getPaintedIcon(int iconId, int color) {
return getPaintedContentIcon(iconId, color);
}

View file

@ -241,9 +241,9 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
addDelDescription.setTextColor(getResources().getColor(activeColorResId));
addAddressBtn.setTextColor(getResources().getColor(activeColorResId));
addAddressBtn.setCompoundDrawablesWithIntrinsicBounds(
app.getUIUtilities().getIcon(R.drawable.ic_action_location_off, activeColorResId),null,null,null);
app.getUIUtilities().getIcon(R.drawable.ic_action_location_16, activeColorResId),null,null,null);
addDelDescription.setCompoundDrawablesWithIntrinsicBounds(
app.getUIUtilities().getIcon(R.drawable.ic_action_description, activeColorResId),null,null,null);
app.getUIUtilities().getIcon(R.drawable.ic_action_description_16, activeColorResId),null,null,null);
addDelDescription.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -251,7 +251,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
descriptionCaption.setVisibility(View.VISIBLE);
addDelDescription.setText(view.getResources().getString(R.string.delete_description));
addDelDescription.setCompoundDrawablesWithIntrinsicBounds(
app.getUIUtilities().getIcon(R.drawable.ic_action_delete_item,
app.getUIUtilities().getIcon(R.drawable.ic_action_trash_basket_16,
activeColorResId),null,null,null);
View descriptionEdit = view.findViewById(R.id.description_edit);
descriptionEdit.requestFocus();
@ -260,7 +260,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
descriptionCaption.setVisibility(View.GONE);
addDelDescription.setText(view.getResources().getString(R.string.add_description));
addDelDescription.setCompoundDrawablesWithIntrinsicBounds(
app.getUIUtilities().getIcon(R.drawable.ic_action_location_off,
app.getUIUtilities().getIcon(R.drawable.ic_action_description_16,
activeColorResId),null,null,null);
AndroidUtils.hideSoftKeyboard(requireActivity(), descriptionEdit);
descriptionEdit.clearFocus();
@ -275,7 +275,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
addAddressBtn.setText(view.getResources().getString(R.string.delete_address));
View addressEdit = view.findViewById(R.id.address_edit);
addressEdit.requestFocus();
AndroidUtils.softKeyboardDelayed(addressEdit);
AndroidUtils.softKeyboardDelayed(requireActivity(),addressEdit);
} else {
addressCaption.setVisibility(View.GONE);
addAddressBtn.setText(view.getResources().getString(R.string.add_address));
@ -848,6 +848,12 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment {
return Algorithms.isEmpty(res) ? null : res;
}
String getAddressTextValue() {
EditText addressEdit = view.findViewById(R.id.address_edit);
String res = addressEdit.getText().toString().trim();
return Algorithms.isEmpty(res) ? null : res;
}
protected Drawable getPaintedIcon(int iconId, int color) {
return getPaintedContentIcon(iconId, color);
}