Change button icon color on tap in map markers context menu
This commit is contained in:
parent
a7ee6cb942
commit
b8ec9b1dfd
4 changed files with 38 additions and 33 deletions
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item>
|
|
||||||
<shape
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shape="oval">
|
|
||||||
<solid android:color="@color/osmand_orange"/>
|
|
||||||
</shape>
|
|
||||||
</item>
|
|
||||||
<item android:drawable="@drawable/ic_action_marker_passed"/>
|
|
||||||
</layer-list>
|
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item>
|
|
||||||
<shape
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:shape="oval">
|
|
||||||
<solid android:color="@color/map_widget_blue"/>
|
|
||||||
</shape>
|
|
||||||
</item>
|
|
||||||
<item android:drawable="@drawable/ic_action_marker_passed"/>
|
|
||||||
</layer-list>
|
|
|
@ -325,11 +325,11 @@
|
||||||
<color name="ctx_menu_controller_button_outline_color_light_n">#e6e6e6</color>
|
<color name="ctx_menu_controller_button_outline_color_light_n">#e6e6e6</color>
|
||||||
<color name="ctx_menu_controller_button_outline_color_light_p">#4c63e6</color>
|
<color name="ctx_menu_controller_button_outline_color_light_p">#4c63e6</color>
|
||||||
<color name="ctx_menu_controller_button_outline_color_dark_n">#2d3133</color>
|
<color name="ctx_menu_controller_button_outline_color_dark_n">#2d3133</color>
|
||||||
<color name="ctx_menu_controller_button_outline_color_dark_p">#b36a0b</color>
|
<color name="ctx_menu_controller_button_outline_color_dark_p">#d28521</color>
|
||||||
<color name="ctx_menu_controller_button_bg_color_light_n">#fafafa</color>
|
<color name="ctx_menu_controller_button_bg_color_light_n">#fafafa</color>
|
||||||
<color name="ctx_menu_controller_button_bg_color_light_p">#6d82fc</color>
|
<color name="ctx_menu_controller_button_bg_color_light_p">#6d82fc</color>
|
||||||
<color name="ctx_menu_controller_button_bg_color_dark_n">#222526</color>
|
<color name="ctx_menu_controller_button_bg_color_dark_n">#222526</color>
|
||||||
<color name="ctx_menu_controller_button_bg_color_dark_p">#d28521</color>
|
<color name="ctx_menu_controller_button_bg_color_dark_p">#b36a0b</color>
|
||||||
<color name="ctx_menu_buttons_bg_light">#f2f2f2</color>
|
<color name="ctx_menu_buttons_bg_light">#f2f2f2</color>
|
||||||
<color name="ctx_menu_buttons_bg_dark">#222526</color>
|
<color name="ctx_menu_buttons_bg_dark">#222526</color>
|
||||||
<color name="ctx_menu_buttons_divider_light">#e6e6e6</color>
|
<color name="ctx_menu_buttons_divider_light">#e6e6e6</color>
|
||||||
|
|
|
@ -2,9 +2,13 @@ package net.osmand.plus.mapcontextmenu.controllers;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
|
import android.graphics.drawable.ShapeDrawable;
|
||||||
|
import android.graphics.drawable.StateListDrawable;
|
||||||
|
import android.graphics.drawable.shapes.OvalShape;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
|
|
||||||
|
import net.osmand.AndroidUtils;
|
||||||
import net.osmand.data.PointDescription;
|
import net.osmand.data.PointDescription;
|
||||||
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.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
@ -34,9 +38,8 @@ public class MapMarkerMenuController extends MenuController {
|
||||||
getMapActivity().getContextMenu().close();
|
getMapActivity().getContextMenu().close();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
leftTitleButtonController.needColorizeIcon = false;
|
|
||||||
leftTitleButtonController.caption = getMapActivity().getString(R.string.mark_passed);
|
leftTitleButtonController.caption = getMapActivity().getString(R.string.mark_passed);
|
||||||
leftTitleButtonController.leftIconId = isLight() ? R.drawable.passed_icon_light : R.drawable.passed_icon_dark;
|
leftTitleButtonController.leftIcon = createStateListPassedIcon();
|
||||||
|
|
||||||
rightTitleButtonController = new TitleButtonController() {
|
rightTitleButtonController = new TitleButtonController() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -51,14 +54,38 @@ public class MapMarkerMenuController extends MenuController {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
rightTitleButtonController.caption = getMapActivity().getString(R.string.make_active);
|
rightTitleButtonController.caption = getMapActivity().getString(R.string.make_active);
|
||||||
rightTitleButtonController.leftIcon = createShowOnTopbarIcon();
|
rightTitleButtonController.leftIcon = createStateListShowOnTopbarIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Drawable createShowOnTopbarIcon() {
|
private StateListDrawable createStateListPassedIcon() {
|
||||||
IconsCache ic = getMapActivity().getMyApplication().getIconsCache();
|
int bgNormal = isLight() ? R.color.map_widget_blue : R.color.osmand_orange;
|
||||||
Drawable background = ic.getIcon(R.drawable.ic_action_device_top,
|
int bgPressed = isLight() ? R.color.ctx_menu_controller_button_text_color_light_p
|
||||||
isLight() ? R.color.on_map_icon_color : R.color.ctx_menu_info_text_dark);
|
: R.color.ctx_menu_controller_button_text_color_dark_p;
|
||||||
Drawable topbar = ic.getIcon(R.drawable.ic_action_device_topbar, R.color.dashboard_blue);
|
int icPressed = isLight() ? R.color.ctx_menu_controller_button_text_color_light_n
|
||||||
|
: R.color.ctx_menu_controller_button_bg_color_dark_p;
|
||||||
|
return AndroidUtils.createStateListDrawable(createPassedIcon(bgNormal, 0),
|
||||||
|
createPassedIcon(bgPressed, icPressed));
|
||||||
|
}
|
||||||
|
|
||||||
|
private LayerDrawable createPassedIcon(int bgColorRes, int icColorRes) {
|
||||||
|
ShapeDrawable bg = new ShapeDrawable(new OvalShape());
|
||||||
|
bg.getPaint().setColor(ContextCompat.getColor(getMapActivity(), bgColorRes));
|
||||||
|
Drawable ic = getIcon(R.drawable.ic_action_marker_passed, icColorRes);
|
||||||
|
return new LayerDrawable(new Drawable[]{bg, ic});
|
||||||
|
}
|
||||||
|
|
||||||
|
private StateListDrawable createStateListShowOnTopbarIcon() {
|
||||||
|
int bgNormal = isLight() ? R.color.on_map_icon_color : R.color.ctx_menu_info_text_dark;
|
||||||
|
int bgPressed = isLight() ? R.color.ctx_menu_controller_button_text_color_light_p
|
||||||
|
: R.color.ctx_menu_controller_button_text_color_dark_p;
|
||||||
|
int icPressed = isLight() ? R.color.osmand_orange : R.color.route_info_go_btn_bg_dark_p;
|
||||||
|
return AndroidUtils.createStateListDrawable(createShowOnTopbarIcon(bgNormal, R.color.dashboard_blue),
|
||||||
|
createShowOnTopbarIcon(bgPressed, icPressed));
|
||||||
|
}
|
||||||
|
|
||||||
|
private LayerDrawable createShowOnTopbarIcon(int bgColorRes, int icColorRes) {
|
||||||
|
Drawable background = getIcon(R.drawable.ic_action_device_top, bgColorRes);
|
||||||
|
Drawable topbar = getIcon(R.drawable.ic_action_device_topbar, icColorRes);
|
||||||
return new LayerDrawable(new Drawable[]{background, topbar});
|
return new LayerDrawable(new Drawable[]{background, topbar});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue