Hide parking point when ParkingPositionPlugin disabled

This commit is contained in:
Dima-1 2020-01-02 18:58:44 +02:00
parent c3637d72ca
commit ad748343d8
3 changed files with 34 additions and 8 deletions

View file

@ -44,6 +44,7 @@ import net.osmand.plus.FavouritesDbHelper.FavoritesListener;
import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper;
import net.osmand.plus.OsmAndFormatter; import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.base.FavoriteImageDrawable;
@ -52,6 +53,7 @@ import net.osmand.plus.helpers.AndroidUiHelper;
import net.osmand.plus.helpers.FontCache; import net.osmand.plus.helpers.FontCache;
import net.osmand.plus.myplaces.FavoritesActivity; import net.osmand.plus.myplaces.FavoritesActivity;
import net.osmand.plus.myplaces.FavoritesFragmentStateHolder; import net.osmand.plus.myplaces.FavoritesFragmentStateHolder;
import net.osmand.plus.parkingpoint.ParkingPositionPlugin;
import net.osmand.util.Algorithms; import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils; import net.osmand.util.MapUtils;
@ -749,6 +751,7 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
private Set<?> filter; private Set<?> filter;
void synchronizeGroups() { void synchronizeGroups() {
boolean isParkingPluginEnable = OsmandPlugin.getEnabledPlugin(ParkingPositionPlugin.class) != null;
favoriteGroups.clear(); favoriteGroups.clear();
groups.clear(); groups.clear();
List<FavoriteGroup> disablesGroups = new ArrayList<>(); List<FavoriteGroup> disablesGroups = new ArrayList<>();
@ -757,8 +760,31 @@ public class FavoritesTreeFragment extends OsmandExpandableListFragment implemen
for (FavoriteGroup key : gs) { for (FavoriteGroup key : gs) {
boolean empty = true; boolean empty = true;
if (flt == null || flt.contains(key)) { if (flt == null || flt.contains(key)) {
empty = false; if (key.personal) {
favoriteGroups.put(key, new ArrayList<>(key.points)); ArrayList<FavouritePoint> list = new ArrayList<>();
for (FavouritePoint p : key.points) {
if (p.getName().equals(FavouritePoint.PointType.PARKING.getName())) {
if (isParkingPluginEnable) {
list.add(p);
empty = false;
}
} else {
if (p.getName().equals(FavouritePoint.PointType.PARKING.getName())) {
if (isParkingPluginEnable) {
list.add(p);
empty = false;
}
} else {
list.add(p);
empty = false;
}
}
}
favoriteGroups.put(key, list);
} else {
empty = false;
favoriteGroups.put(key, new ArrayList<>(key.points));
}
} else { } else {
ArrayList<FavouritePoint> list = new ArrayList<>(); ArrayList<FavouritePoint> list = new ArrayList<>();
for (FavouritePoint p : key.points) { for (FavouritePoint p : key.points) {

View file

@ -119,12 +119,6 @@ public class ParkingPositionPlugin extends OsmandPlugin {
return parkingStartTime.get(); return parkingStartTime.get();
} }
@Override
public void disable(OsmandApplication app) {
super.disable(app);
app.getFavorites().deleteParkingPoint();
}
public boolean clearParkingPosition() { public boolean clearParkingPosition() {
parkingLat.resetToDefault(); parkingLat.resetToDefault();
parkingLon.resetToDefault(); parkingLon.resetToDefault();

View file

@ -24,9 +24,11 @@ import net.osmand.plus.FavouritesDbHelper;
import net.osmand.plus.FavouritesDbHelper.FavoriteGroup; import net.osmand.plus.FavouritesDbHelper.FavoriteGroup;
import net.osmand.plus.MapMarkersHelper; import net.osmand.plus.MapMarkersHelper;
import net.osmand.plus.MapMarkersHelper.MapMarker; import net.osmand.plus.MapMarkersHelper.MapMarker;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings; import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.base.FavoriteImageDrawable; import net.osmand.plus.base.FavoriteImageDrawable;
import net.osmand.plus.parkingpoint.ParkingPositionPlugin;
import net.osmand.plus.views.ContextMenuLayer.ApplyMovedObjectCallback; import net.osmand.plus.views.ContextMenuLayer.ApplyMovedObjectCallback;
import net.osmand.plus.views.MapTextLayer.MapTextProvider; import net.osmand.plus.views.MapTextLayer.MapTextProvider;
@ -133,6 +135,10 @@ public class FavouritesLayer extends OsmandMapLayer implements ContextMenuLayer.
continue; continue;
} }
} }
if (group.personal && o.getName().equals(FavouritePoint.PointType.PARKING.getName())
&& OsmandPlugin.getEnabledPlugin(ParkingPositionPlugin.class) == null) {
continue;
}
cache.add(o); cache.add(o);
float x = tileBox.getPixXFromLatLon(lat, lon); float x = tileBox.getPixXFromLatLon(lat, lon);
float y = tileBox.getPixYFromLatLon(lat, lon); float y = tileBox.getPixYFromLatLon(lat, lon);