Refactor MapMarkerMenuController
This commit is contained in:
parent
ebe41d69b1
commit
6764899fd4
4 changed files with 38 additions and 57 deletions
|
@ -1,7 +1,6 @@
|
||||||
package net.osmand.plus.mapcontextmenu;
|
package net.osmand.plus.mapcontextmenu;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
|
@ -24,7 +23,6 @@ import net.osmand.map.OsmandRegions;
|
||||||
import net.osmand.map.WorldRegion;
|
import net.osmand.map.WorldRegion;
|
||||||
import net.osmand.plus.GPXUtilities.WptPt;
|
import net.osmand.plus.GPXUtilities.WptPt;
|
||||||
import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem;
|
import net.osmand.plus.GpxSelectionHelper.GpxDisplayItem;
|
||||||
import net.osmand.plus.IconsCache;
|
|
||||||
import net.osmand.plus.MapMarkersHelper.MapMarker;
|
import net.osmand.plus.MapMarkersHelper.MapMarker;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandPlugin;
|
import net.osmand.plus.OsmandPlugin;
|
||||||
|
@ -97,7 +95,6 @@ public abstract class MenuController extends BaseMenuController {
|
||||||
private PointDescription pointDescription;
|
private PointDescription pointDescription;
|
||||||
private LatLon latLon;
|
private LatLon latLon;
|
||||||
private boolean active;
|
private boolean active;
|
||||||
private Drawable showOnTopBarIcon;
|
|
||||||
|
|
||||||
protected TitleButtonController leftTitleButtonController;
|
protected TitleButtonController leftTitleButtonController;
|
||||||
protected TitleButtonController rightTitleButtonController;
|
protected TitleButtonController rightTitleButtonController;
|
||||||
|
@ -314,10 +311,6 @@ public abstract class MenuController extends BaseMenuController {
|
||||||
this.currentMenuState = currentMenuState;
|
this.currentMenuState = currentMenuState;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLeftTitleButtonController(TitleButtonController leftDownloadButtonController) {
|
|
||||||
this.leftTitleButtonController = leftDownloadButtonController;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TitleButtonController getLeftTitleButtonController() {
|
public TitleButtonController getLeftTitleButtonController() {
|
||||||
return leftTitleButtonController;
|
return leftTitleButtonController;
|
||||||
}
|
}
|
||||||
|
@ -330,10 +323,6 @@ public abstract class MenuController extends BaseMenuController {
|
||||||
return topRightTitleButtonController;
|
return topRightTitleButtonController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setLeftSubtitleButtonController(TitleButtonController leftSubtitleButtonController) {
|
|
||||||
this.leftSubtitleButtonController = leftSubtitleButtonController;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TitleButtonController getLeftSubtitleButtonController() {
|
public TitleButtonController getLeftSubtitleButtonController() {
|
||||||
return leftSubtitleButtonController;
|
return leftSubtitleButtonController;
|
||||||
}
|
}
|
||||||
|
@ -436,17 +425,6 @@ public abstract class MenuController extends BaseMenuController {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Drawable getShowOnTopBarIcon() {
|
|
||||||
if (showOnTopBarIcon == null) {
|
|
||||||
IconsCache ic = getMapActivity().getMyApplication().getIconsCache();
|
|
||||||
Drawable background = ic.getIcon(R.drawable.ic_action_device_top,
|
|
||||||
isLight() ? R.color.on_map_icon_color : R.color.ctx_menu_info_text_dark);
|
|
||||||
Drawable topbar = ic.getIcon(R.drawable.ic_action_device_topbar, R.color.dashboard_blue);
|
|
||||||
showOnTopBarIcon = new LayerDrawable(new Drawable[]{background, topbar});
|
|
||||||
}
|
|
||||||
return showOnTopBarIcon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTypeStr() {
|
public String getTypeStr() {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package net.osmand.plus.mapcontextmenu.controllers;
|
package net.osmand.plus.mapcontextmenu.controllers;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
|
|
||||||
import net.osmand.data.Amenity;
|
import net.osmand.data.Amenity;
|
||||||
|
@ -9,7 +8,6 @@ import net.osmand.data.FavouritePoint;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
import net.osmand.data.TransportStop;
|
import net.osmand.data.TransportStop;
|
||||||
import net.osmand.plus.IconsCache;
|
|
||||||
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.R;
|
import net.osmand.plus.R;
|
||||||
|
@ -31,9 +29,11 @@ public class FavouritePointMenuController extends MenuController {
|
||||||
|
|
||||||
final MapMarkersHelper markersHelper = mapActivity.getMyApplication().getMapMarkersHelper();
|
final MapMarkersHelper markersHelper = mapActivity.getMyApplication().getMapMarkersHelper();
|
||||||
final MapMarker mapMarker = markersHelper.getMapMarker(fav);
|
final MapMarker mapMarker = markersHelper.getMapMarker(fav);
|
||||||
|
|
||||||
if (mapMarker != null) {
|
if (mapMarker != null) {
|
||||||
MapMarkerMenuController.createMarkerButtons(this, mapActivity, mapMarker);
|
MapMarkerMenuController markerMenuController =
|
||||||
|
new MapMarkerMenuController(mapActivity, mapMarker.getPointDescription(mapActivity), mapMarker);
|
||||||
|
leftTitleButtonController = markerMenuController.getLeftTitleButtonController();
|
||||||
|
leftSubtitleButtonController = markerMenuController.getLeftSubtitleButtonController();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,36 @@ public class MapMarkerMenuController extends MenuController {
|
||||||
super(new MenuBuilder(mapActivity), pointDescription, mapActivity);
|
super(new MenuBuilder(mapActivity), pointDescription, mapActivity);
|
||||||
this.mapMarker = mapMarker;
|
this.mapMarker = mapMarker;
|
||||||
builder.setShowNearestWiki(true);
|
builder.setShowNearestWiki(true);
|
||||||
createMarkerButtons(this, mapActivity, mapMarker);
|
|
||||||
|
final MapMarkersHelper markersHelper = mapActivity.getMyApplication().getMapMarkersHelper();
|
||||||
|
leftTitleButtonController = new TitleButtonController() {
|
||||||
|
@Override
|
||||||
|
public void buttonPressed() {
|
||||||
|
markersHelper.moveMapMarkerToHistory(getMapMarker());
|
||||||
|
getMapActivity().getContextMenu().close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
leftTitleButtonController.needColorizeIcon = false;
|
||||||
|
leftTitleButtonController.caption = getMapActivity().getString(R.string.mark_passed);
|
||||||
|
leftTitleButtonController.leftIconId = isLight() ? R.drawable.passed_icon_light : R.drawable.passed_icon_dark;
|
||||||
|
|
||||||
|
leftSubtitleButtonController = new TitleButtonController() {
|
||||||
|
@Override
|
||||||
|
public void buttonPressed() {
|
||||||
|
markersHelper.moveMarkerToTop(getMapMarker());
|
||||||
|
getMapActivity().getContextMenu().close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
leftSubtitleButtonController.caption = getMapActivity().getString(R.string.show_on_top_bar);
|
||||||
|
leftSubtitleButtonController.leftIcon = createShowOnTopbarIcon();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Drawable createShowOnTopbarIcon() {
|
||||||
|
IconsCache ic = getMapActivity().getMyApplication().getIconsCache();
|
||||||
|
Drawable background = ic.getIcon(R.drawable.ic_action_device_top,
|
||||||
|
isLight() ? R.color.on_map_icon_color : R.color.ctx_menu_info_text_dark);
|
||||||
|
Drawable topbar = ic.getIcon(R.drawable.ic_action_device_topbar, R.color.dashboard_blue);
|
||||||
|
return new LayerDrawable(new Drawable[]{background, topbar});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -75,31 +104,4 @@ public class MapMarkerMenuController extends MenuController {
|
||||||
public int getWaypointActionStringId() {
|
public int getWaypointActionStringId() {
|
||||||
return R.string.rename_marker;
|
return R.string.rename_marker;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void createMarkerButtons(MenuController menuController, final MapActivity mapActivity, final MapMarker mapMarker) {
|
|
||||||
final MapMarkersHelper markersHelper = mapActivity.getMyApplication().getMapMarkersHelper();
|
|
||||||
|
|
||||||
TitleButtonController leftTitleButtonController = menuController.new TitleButtonController() {
|
|
||||||
@Override
|
|
||||||
public void buttonPressed() {
|
|
||||||
markersHelper.moveMapMarkerToHistory(mapMarker);
|
|
||||||
mapActivity.getContextMenu().close();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
leftTitleButtonController.needColorizeIcon = false;
|
|
||||||
leftTitleButtonController.caption = mapActivity.getString(R.string.mark_passed);
|
|
||||||
leftTitleButtonController.leftIconId = menuController.isLight() ? R.drawable.passed_icon_light : R.drawable.passed_icon_dark;
|
|
||||||
menuController.setLeftTitleButtonController(leftTitleButtonController);
|
|
||||||
|
|
||||||
TitleButtonController leftSubtitleButtonController = menuController.new TitleButtonController() {
|
|
||||||
@Override
|
|
||||||
public void buttonPressed() {
|
|
||||||
markersHelper.moveMarkerToTop(mapMarker);
|
|
||||||
mapActivity.getContextMenu().close();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
leftSubtitleButtonController.caption = mapActivity.getString(R.string.show_on_top_bar);
|
|
||||||
leftSubtitleButtonController.leftIcon = menuController.getShowOnTopBarIcon();
|
|
||||||
menuController.setLeftSubtitleButtonController(leftSubtitleButtonController);
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,12 +1,10 @@
|
||||||
package net.osmand.plus.mapcontextmenu.controllers;
|
package net.osmand.plus.mapcontextmenu.controllers;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
|
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
import net.osmand.plus.GPXUtilities.WptPt;
|
import net.osmand.plus.GPXUtilities.WptPt;
|
||||||
import net.osmand.plus.IconsCache;
|
|
||||||
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.R;
|
import net.osmand.plus.R;
|
||||||
|
@ -28,7 +26,10 @@ public class WptPtMenuController extends MenuController {
|
||||||
final MapMarker mapMarker = markersHelper.getMapMarker(wpt);
|
final MapMarker mapMarker = markersHelper.getMapMarker(wpt);
|
||||||
|
|
||||||
if (mapMarker != null) {
|
if (mapMarker != null) {
|
||||||
MapMarkerMenuController.createMarkerButtons(this, mapActivity, mapMarker);
|
MapMarkerMenuController markerMenuController =
|
||||||
|
new MapMarkerMenuController(mapActivity, mapMarker.getPointDescription(mapActivity), mapMarker);
|
||||||
|
leftTitleButtonController = markerMenuController.getLeftTitleButtonController();
|
||||||
|
leftSubtitleButtonController = markerMenuController.getLeftSubtitleButtonController();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue