diff --git a/OsmAnd/res/layout/map_hud_bottom.xml b/OsmAnd/res/layout/map_hud_bottom.xml index 3f858d0ad2..e6e65f2906 100644 --- a/OsmAnd/res/layout/map_hud_bottom.xml +++ b/OsmAnd/res/layout/map_hud_bottom.xml @@ -45,14 +45,6 @@ android:layout_marginLeft="@dimen/map_button_shadow_margin" android:background="@drawable/btn_round_trans"> - - + tools:src="@drawable/ic_action_test_light"/> + tools:src="@drawable/ic_action_test_light"/> + tools:src="@drawable/ic_action_test_light"/> @@ -363,7 +363,7 @@ android:layout_width="@dimen/map_small_button_size" android:layout_height="@dimen/map_small_button_size" android:background="@drawable/btn_inset_circle_trans" - android:src="@drawable/ic_action_test_light"/> + tools:src="@drawable/ic_action_test_light"/> + tools:src="@drawable/ic_action_test_light"/> @@ -431,7 +431,7 @@ android:layout_height="@dimen/map_small_button_size" android:layout_gravity="top|center_horizontal" android:background="@drawable/btn_inset_circle_trans" - android:src="@drawable/ic_action_test_light"/> + tools:src="@drawable/ic_action_test_light"/> diff --git a/OsmAnd/src/net/londatiga/android/ActionItem.java b/OsmAnd/src/net/londatiga/android/ActionItem.java deleted file mode 100644 index f7842cd095..0000000000 --- a/OsmAnd/src/net/londatiga/android/ActionItem.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Lorensius W. L. T - * - * http://www.londatiga.net - * - * lorenz@londatiga.net - */ - -package net.londatiga.android; - -import android.graphics.Bitmap; -import android.graphics.drawable.Drawable; -import android.view.View; -import android.view.View.OnClickListener; - -/** - * Action item, displayed as menu with icon and text. - * - * @author Lorensius. W. L. T - * - */ -public class ActionItem { - private Drawable icon; - private Bitmap thumb; - private String title; - private boolean selected; - private OnClickListener listener; - - /** - * Constructor - */ - public ActionItem() {} - - /** - * Constructor - * - * @param icon {@link Drawable} action icon - */ - public ActionItem(Drawable icon) { - this.icon = icon; - } - - /** - * Set action title - * - * @param title action title - */ - public void setTitle(String title) { - this.title = title; - } - - /** - * Get action title - * - * @return action title - */ - public String getTitle() { - return this.title; - } - - /** - * Set action icon - * - * @param icon {@link Drawable} action icon - */ - public void setIcon(Drawable icon) { - this.icon = icon; - } - - /** - * Get action icon - * @return {@link Drawable} action icon - */ - public Drawable getIcon() { - return this.icon; - } - - /** - * Set on click listener - * - * @param listener on click listener {@link View.OnClickListener} - */ - public void setOnClickListener(OnClickListener listener) { - this.listener = listener; - } - - /** - * Get on click listener - * - * @return on click listener {@link View.OnClickListener} - */ - public OnClickListener getListener() { - return this.listener; - } - - /** - * Set selected flag; - * - * @param selected Flag to indicate the item is selected - */ - public void setSelected(boolean selected) { - this.selected = selected; - } - - /** - * Check if item is selected - * - * @return true or false - */ - public boolean isSelected() { - return this.selected; - } - - /** - * Set thumb - * - * @param thumb Thumb image - */ - public void setThumb(Bitmap thumb) { - this.thumb = thumb; - } - - /** - * Get thumb image - * - * @return Thumb image - */ - public Bitmap getThumb() { - return this.thumb; - } -} \ No newline at end of file diff --git a/OsmAnd/src/net/londatiga/android/CustomPopupWindow.java b/OsmAnd/src/net/londatiga/android/CustomPopupWindow.java deleted file mode 100644 index 75ea81464d..0000000000 --- a/OsmAnd/src/net/londatiga/android/CustomPopupWindow.java +++ /dev/null @@ -1,219 +0,0 @@ -/** - * Lorensius W. L. T - * - * http://www.londatiga.net - * - * lorenz@londatiga.net - */ - - -package net.londatiga.android; - -import net.osmand.plus.R; -import android.content.Context; -import android.graphics.Rect; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnTouchListener; -import android.view.ViewGroup.LayoutParams; -import android.view.WindowManager; -import android.widget.PopupWindow; - -/** - * This class does most of the work of wrapping the {@link PopupWindow} so it's simpler to use. - * Edited by Lorensius. W. L. T - * - * @author qberticus - * - */ -public class CustomPopupWindow { - protected final View anchor; - protected final PopupWindow window; - private View root; - private Drawable background = null; - protected final WindowManager windowManager; - - /** - * Create a QuickAction - * - * @param anchor - * the view that the QuickAction will be displaying 'from' - */ - public CustomPopupWindow(View anchor) { - this.anchor = anchor; - this.window = new PopupWindow(anchor.getContext()); - - // when a touch even happens outside of the window - // make the window go away - window.setTouchInterceptor(new OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - if (event.getAction() == MotionEvent.ACTION_OUTSIDE) { - CustomPopupWindow.this.window.dismiss(); - - return true; - } - - return false; - } - }); - - windowManager = (WindowManager) anchor.getContext().getSystemService(Context.WINDOW_SERVICE); - - onCreate(); - } - - /** - * Anything you want to have happen when created. Probably should create a view and setup the event listeners on - * child views. - */ - protected void onCreate() {} - - /** - * In case there is stuff to do right before displaying. - */ - protected void onShow() {} - - protected void preShow() { - if (root == null) { - throw new IllegalStateException("setContentView was not called with a view to display."); - } - - onShow(); - - if (background == null) { - window.setBackgroundDrawable(new BitmapDrawable()); - } else { - window.setBackgroundDrawable(background); - } - - // if using PopupWindow#setBackgroundDrawable this is the only values of the width and hight that make it work - // otherwise you need to set the background of the root viewgroup - // and set the popupwindow background to an empty BitmapDrawable - - window.setWidth(WindowManager.LayoutParams.WRAP_CONTENT); - window.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); - window.setTouchable(true); - window.setFocusable(true); - window.setOutsideTouchable(true); - - window.setContentView(root); - } - - public void setBackgroundDrawable(Drawable background) { - this.background = background; - } - - /** - * Sets the content view. Probably should be called from {@link onCreate} - * - * @param root - * the view the popup will display - */ - public void setContentView(View root) { - this.root = root; - - window.setContentView(root); - } - - /** - * Will inflate and set the view from a resource id - * - * @param layoutResID - */ - public void setContentView(int layoutResID) { - LayoutInflater inflator = - (LayoutInflater) anchor.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); - - setContentView(inflator.inflate(layoutResID, null)); - } - - /** - * If you want to do anything when {@link dismiss} is called - * - * @param listener - */ - public void setOnDismissListener(PopupWindow.OnDismissListener listener) { - window.setOnDismissListener(listener); - } - - /** - * Displays like a popdown menu from the anchor view - */ - public void showDropDown() { - showDropDown(0, 0); - } - - /** - * Displays like a popdown menu from the anchor view. - * - * @param xOffset - * offset in X direction - * @param yOffset - * offset in Y direction - */ - public void showDropDown(int xOffset, int yOffset) { - preShow(); - - window.setAnimationStyle(R.style.Animations_PopDownMenu_Left); - - window.showAsDropDown(anchor, xOffset, yOffset); - } - - /** - * Displays like a QuickAction from the anchor view. - */ - public void showLikeQuickAction() { - showLikeQuickAction(0, 0); - } - - /** - * Displays like a QuickAction from the anchor view. - * - * @param xOffset - * offset in the X direction - * @param yOffset - * offset in the Y direction - */ - public void showLikeQuickAction(int xOffset, int yOffset) { - preShow(); - - window.setAnimationStyle(R.style.Animations_PopUpMenu_Center); - - int[] location = new int[2]; - anchor.getLocationOnScreen(location); - - Rect anchorRect = - new Rect(location[0], location[1], location[0] + anchor.getWidth(), location[1] - + anchor.getHeight()); - - root.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); - root.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - - int rootWidth = root.getMeasuredWidth(); - int rootHeight = root.getMeasuredHeight(); - - int screenWidth = windowManager.getDefaultDisplay().getWidth(); - //int screenHeight = windowManager.getDefaultDisplay().getHeight(); - - int xPos = ((screenWidth - rootWidth) / 2) + xOffset; - int yPos = anchorRect.top - rootHeight + yOffset; - - // display on bottom - if (rootHeight > anchor.getTop()) { - yPos = anchorRect.bottom + yOffset; - - window.setAnimationStyle(R.style.Animations_PopDownMenu_Center); - } - - window.showAtLocation(anchor, Gravity.NO_GRAVITY, xPos, yPos); - } - - public void dismiss() { - window.dismiss(); - } -} \ No newline at end of file diff --git a/OsmAnd/src/net/londatiga/android/QuickAction.java b/OsmAnd/src/net/londatiga/android/QuickAction.java deleted file mode 100644 index 0bd93123b5..0000000000 --- a/OsmAnd/src/net/londatiga/android/QuickAction.java +++ /dev/null @@ -1,290 +0,0 @@ -/** - * Lorensius W. L. T - * - * http://www.londatiga.net - * - * lorenz@londatiga.net - */ -package net.londatiga.android; - -import java.util.ArrayList; - -import net.osmand.plus.R; -import android.content.Context; -import android.graphics.Rect; -import android.graphics.drawable.Drawable; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.view.ViewGroup.LayoutParams; -import android.view.animation.Animation; -import android.view.animation.AnimationUtils; -import android.view.animation.Interpolator; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -/** - * Popup window, shows action list as icon and text (QuickContact / Twitter app). - * - * @author Lorensius. W. T - */ -public class QuickAction extends CustomPopupWindow { - private final View root; - private final ImageView mArrowUp; - private final ImageView mArrowDown; - private final Animation mTrackAnim; - private final LayoutInflater inflater; - private final Context context; - - public static final int ANIM_GROW_FROM_LEFT = 1; - public static final int ANIM_GROW_FROM_RIGHT = 2; - public static final int ANIM_GROW_FROM_CENTER = 3; - public static final int ANIM_AUTO = 4; - - private int animStyle; - private boolean animateTrack; - private ViewGroup mTrack; - private ArrayList actionList; - private boolean onTop; - - /** - * Constructor - * - * @param anchor {@link View} on where the popup should be displayed - */ - public QuickAction(View anchor) { - super(anchor); - - actionList = new ArrayList(); - context = anchor.getContext(); - inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - - root = (ViewGroup) inflater.inflate(R.layout.quickaction, null); - - mArrowDown = (ImageView) root.findViewById(R.id.arrow_down); - mArrowUp = (ImageView) root.findViewById(R.id.arrow_up); - - setContentView(root); - - mTrackAnim = AnimationUtils.loadAnimation(anchor.getContext(), R.anim.rail); - - mTrackAnim.setInterpolator(new Interpolator() { - @Override - public float getInterpolation(float t) { - // Pushes past the target area, then snaps back into place. - // Equation for graphing: 1.2-((x*1.6)-1.1)^2 - final float inner = (t * 1.55f) - 1.1f; - - return 1.2f - inner * inner; - } - }); - - mTrack = (ViewGroup) root.findViewById(R.id.tracks); - animStyle = ANIM_AUTO; - animateTrack = true; - } - - public void setOnAnchorOnTop(boolean top) { - this.onTop = top; - - } - - /** - * Animate track - * - * @param animateTrack flag to animate track - */ - public void animateTrack(boolean animateTrack) { - this.animateTrack = animateTrack; - } - - /** - * Set animation style - * - * @param animStyle animation style, default is set to ANIM_AUTO - */ - public void setAnimStyle(int animStyle) { - this.animStyle = animStyle; - } - - /** - * Add action item - * - * @param action {@link ActionItem} - */ - public void addActionItem(ActionItem action) { - actionList.add(action); - } - - /** - * Add action item - * - * @param action {@link ActionItem} - */ - public void addActionItem(ActionItem action, int pos) { - actionList.add(pos, action); - } - - /** - * Show popup window - */ - public void show () { - preShow(); - - int[] location = new int[2]; - - anchor.getLocationOnScreen(location); - - Rect anchorRect = new Rect(location[0], location[1], location[0] + anchor.getWidth(), location[1] - + anchor.getHeight()); - - root.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); - root.measure(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - - int rootWidth = root.getMeasuredWidth(); - int rootHeight = root.getMeasuredHeight(); - - int screenWidth = windowManager.getDefaultDisplay().getWidth(); - //int screenHeight = windowManager.getDefaultDisplay().getHeight(); - - int xPos = (screenWidth - rootWidth) / 2; - int yPos = anchorRect.top - rootHeight; - - boolean onTop = true; - - // display on bottom - if (rootHeight > anchor.getTop() && !this.onTop) { - yPos = anchorRect.bottom; - onTop = false; - } - - showArrow(((onTop) ? R.id.arrow_down : R.id.arrow_up), anchorRect.centerX()); - - setAnimationStyle(screenWidth, anchorRect.centerX(), onTop); - - createActionList(); - - window.showAtLocation(this.anchor, Gravity.NO_GRAVITY, xPos, yPos); - - if (animateTrack) mTrack.startAnimation(mTrackAnim); - } - - /** - * Set animation style - * - * @param screenWidth Screen width - * @param requestedX distance from left screen - * @param onTop flag to indicate where the popup should be displayed. Set TRUE if displayed on top of anchor and vice versa - */ - private void setAnimationStyle(int screenWidth, int requestedX, boolean onTop) { - int arrowPos = requestedX - mArrowUp.getMeasuredWidth()/2; - - switch (animStyle) { - case ANIM_GROW_FROM_LEFT: - window.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Left : R.style.Animations_PopDownMenu_Left); - break; - - case ANIM_GROW_FROM_RIGHT: - window.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Right : R.style.Animations_PopDownMenu_Right); - break; - - case ANIM_GROW_FROM_CENTER: - window.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Center : R.style.Animations_PopDownMenu_Center); - break; - - case ANIM_AUTO: - if (arrowPos <= screenWidth/4) { - window.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Left : R.style.Animations_PopDownMenu_Left); - } else if (arrowPos > screenWidth/4 && arrowPos < 3 * (screenWidth/4)) { - window.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Center : R.style.Animations_PopDownMenu_Center); - } else { - window.setAnimationStyle((onTop) ? R.style.Animations_PopUpMenu_Right : R.style.Animations_PopDownMenu_Right); - } - - break; - } - } - - /** - * Create action list - * - */ - private void createActionList() { - View view; - String title; - Drawable icon; - OnClickListener listener; - int index = 1; - - for (int i = 0; i < actionList.size(); i++) { - title = actionList.get(i).getTitle(); - icon = actionList.get(i).getIcon(); - listener = actionList.get(i).getListener(); - - view = getActionItem(title, icon, listener); - - view.setFocusable(true); - view.setClickable(true); - - mTrack.addView(view, index); - - index++; - } - } - - /** - * Get action item {@link View} - * - * @param title action item title - * @param icon {@link Drawable} action item icon - * @param listener {@link View.OnClickListener} action item listener - * @return action item {@link View} - */ - private View getActionItem(String title, Drawable icon, OnClickListener listener) { - LinearLayout container = (LinearLayout) inflater.inflate(R.layout.action_item, null); - ImageView img = (ImageView) container.findViewById(R.id.icon); - TextView text = (TextView) container.findViewById(R.id.title); - - if (icon != null) { - img.setImageDrawable(icon); - } else { - img.setVisibility(View.GONE); - } - - if (title != null) { - text.setText(title); - } else { - text.setVisibility(View.GONE); - } - - if (listener != null) { - container.setOnClickListener(listener); - } - - return container; - } - - /** - * Show arrow - * - * @param whichArrow arrow type resource id - * @param requestedX distance from left screen - */ - private void showArrow(int whichArrow, int requestedX) { - final View showArrow = (whichArrow == R.id.arrow_up) ? mArrowUp : mArrowDown; - final View hideArrow = (whichArrow == R.id.arrow_up) ? mArrowDown : mArrowUp; - - final int arrowWidth = mArrowUp.getMeasuredWidth(); - - showArrow.setVisibility(View.VISIBLE); - - ViewGroup.MarginLayoutParams param = (ViewGroup.MarginLayoutParams)showArrow.getLayoutParams(); - - param.leftMargin = requestedX - arrowWidth / 2; - - hideArrow.setVisibility(View.INVISIBLE); - } -} \ No newline at end of file diff --git a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java index 49d3594631..4db32cc0ea 100644 --- a/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java +++ b/OsmAnd/src/net/osmand/plus/ContextMenuAdapter.java @@ -71,16 +71,16 @@ public class ContextMenuAdapter { } - public ArrayAdapter createListAdapter(final Activity activity, final boolean holoLight) { + public ArrayAdapter createListAdapter(final Activity activity, final boolean lightTheme) { final int layoutId = DEFAULT_LAYOUT_ID; final OsmandApplication app = ((OsmandApplication) activity.getApplication()); return new ContextMenuArrayAdapter(activity, layoutId, R.id.title, - items.toArray(new ContextMenuItem[items.size()]), app, holoLight, changeAppModeListener); + items.toArray(new ContextMenuItem[items.size()]), app, lightTheme, changeAppModeListener); } public class ContextMenuArrayAdapter extends ArrayAdapter { private OsmandApplication app; - private boolean holoLight; + private boolean lightTheme; @LayoutRes private int layoutId; private final ConfigureMapMenu.OnClickListener changeAppModeListener; @@ -91,11 +91,11 @@ public class ContextMenuAdapter { @IdRes int textViewResourceId, ContextMenuItem[] objects, OsmandApplication app, - boolean holoLight, + boolean lightTheme, ConfigureMapMenu.OnClickListener changeAppModeListener) { super(context, layoutRes, textViewResourceId, objects); this.app = app; - this.holoLight = holoLight; + this.lightTheme = lightTheme; this.layoutId = layoutRes; this.changeAppModeListener = changeAppModeListener; mIconsCache = app.getIconsCache(); @@ -125,7 +125,7 @@ public class ContextMenuAdapter { } if (convertView == null || !(convertView.getTag() instanceof Integer) || (layoutId != (Integer) convertView.getTag())) { - int themeRes = holoLight ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme; + int themeRes = lightTheme ? R.style.OsmandLightTheme : R.style.OsmandDarkTheme; convertView = View.inflate(new ContextThemeWrapper(getContext(), themeRes), layoutId, null); convertView.setTag(layoutId); } @@ -134,7 +134,7 @@ public class ContextMenuAdapter { if (this.layoutId == R.layout.simple_list_menu_item) { @ColorRes - int color = holoLight ? R.color.icon_color : R.color.dashboard_subheader_text_dark; + int color = lightTheme ? R.color.icon_color : R.color.dashboard_subheader_text_dark; Drawable drawable = mIconsCache.getIcon(item.getIcon(), color); float density = getContext().getResources().getDisplayMetrics().density; int paddingInPixels = (int) (24 * density); @@ -144,8 +144,11 @@ public class ContextMenuAdapter { tv.setCompoundDrawablePadding(paddingInPixels); } else { if (item.getIcon() != ContextMenuItem.INVALID_ID) { - Drawable drawable = mIconsCache.getIcon(item.getIcon(), - item.getThemedColorRes(getContext())); + int colorRes = item.getColorRes(); + if (colorRes == ContextMenuItem.INVALID_ID) { + colorRes = lightTheme ? R.color.icon_color : R.color.color_white; + } + Drawable drawable = mIconsCache.getIcon(item.getIcon(), colorRes); ((AppCompatImageView) convertView.findViewById(R.id.icon)).setImageDrawable(drawable); convertView.findViewById(R.id.icon).setVisibility(View.VISIBLE); } else if (convertView.findViewById(R.id.icon) != null) { @@ -156,7 +159,7 @@ public class ContextMenuAdapter { int secondaryDrawable = item.getSecondaryIcon(); if (secondaryDrawable != ContextMenuItem.INVALID_ID) { @ColorRes - int colorRes = holoLight ? R.color.icon_color_light : R.color.dialog_inactive_text_color_dark; + int colorRes = lightTheme ? R.color.icon_color_light : R.color.dialog_inactive_text_color_dark; Drawable drawable = mIconsCache.getIcon(item.getSecondaryIcon(), colorRes); ImageView imageView = (ImageView) convertView.findViewById(R.id.secondary_icon); imageView.setImageDrawable(drawable); diff --git a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java index 16a2c7feb1..9ff0bad60b 100644 --- a/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java +++ b/OsmAnd/src/net/osmand/plus/audionotes/AudioVideoNotesPlugin.java @@ -48,7 +48,6 @@ import net.osmand.plus.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.ItemClickListener; import net.osmand.plus.ContextMenuItem; -import net.osmand.plus.IconsCache; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -582,14 +581,13 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { @Override public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) { - final int defaultColor = IconsCache.getDefaultColorRes(mapActivity); ItemClickListener listener = new ContextMenuAdapter.ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { if (itemId == R.string.layer_recordings) { SHOW_RECORDINGS.set(!SHOW_RECORDINGS.get()); adapter.getItem(pos).setColorRes(SHOW_RECORDINGS.get() ? - R.color.osmand_orange : defaultColor); + R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); updateLayers(mapView, mapActivity); } @@ -599,7 +597,7 @@ public class AudioVideoNotesPlugin extends OsmandPlugin { adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.layer_recordings, app) .setSelected(SHOW_RECORDINGS.get()) .setIcon(R.drawable.ic_action_micro_dark) - .setColor(SHOW_RECORDINGS.get() ? R.color.osmand_orange : defaultColor) + .setColor(SHOW_RECORDINGS.get() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setPosition(12) .setListener(listener).createItem()); } diff --git a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java index b76bc27494..a711480a90 100644 --- a/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java +++ b/OsmAnd/src/net/osmand/plus/dialogs/ConfigureMapMenu.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.content.Intent; -import android.support.annotation.ColorRes; import android.support.annotation.DrawableRes; import android.support.annotation.StringRes; import android.support.v7.app.AlertDialog; @@ -20,7 +19,6 @@ import net.osmand.plus.ContextMenuAdapter.ItemClickListener; import net.osmand.plus.ContextMenuAdapter.OnRowItemClick; import net.osmand.plus.ContextMenuItem; import net.osmand.plus.GpxSelectionHelper; -import net.osmand.plus.IconsCache; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -85,13 +83,10 @@ public class ConfigureMapMenu { private final class LayerMenuListener extends OnRowItemClick { private MapActivity ma; private ContextMenuAdapter cm; - @ColorRes - final int defaultColor; private LayerMenuListener(MapActivity ma, ContextMenuAdapter cm) { this.ma = ma; this.cm = cm; - defaultColor = IconsCache.getDefaultColorRes(ma); } private List getAlreadySelectedGpx() { @@ -117,7 +112,7 @@ public class ConfigureMapMenu { CompoundButton btn = (CompoundButton) view.findViewById(R.id.toggle_item); if (btn != null && btn.getVisibility() == View.VISIBLE) { btn.setChecked(!btn.isChecked()); - cm.getItem(pos).setColorRes(btn.isChecked() ? R.color.osmand_orange : defaultColor); + cm.getItem(pos).setColorRes(btn.isChecked() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); return false; } else { @@ -131,7 +126,7 @@ public class ConfigureMapMenu { final OsmandSettings settings = ma.getMyApplication().getSettings(); final ContextMenuItem item = cm.getItem(pos); if (item.getSelected() != null) { - item.setColorRes(isChecked ? R.color.osmand_orange : defaultColor); + item.setColorRes(isChecked ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); } if (itemId == R.string.layer_poi) { @@ -180,7 +175,7 @@ public class ConfigureMapMenu { boolean selected = app.getSelectedGpxHelper().isShowingAnyGpxFiles(); item.setSelected(app.getSelectedGpxHelper().isShowingAnyGpxFiles()); item.setDescription(app.getSelectedGpxHelper().getGpxDescription()); - item.setColorRes(selected ? R.color.osmand_orange : defaultColor); + item.setColorRes(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); } }); @@ -199,7 +194,7 @@ public class ConfigureMapMenu { .SELECTED_POI_FILTER_FOR_MAP.get() != null; item.setSelected(selected); item.setDescription(POIMapLayer.getSelectedPoiName(myApplication)); - item.setColorRes(selected ? R.color.osmand_orange : defaultColor); + item.setColorRes(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); } }); @@ -207,7 +202,6 @@ public class ConfigureMapMenu { } private void createLayersItems(ContextMenuAdapter adapter, MapActivity activity) { - @ColorRes final int defaultColor = IconsCache.getDefaultColorRes(activity); OsmandApplication app = activity.getMyApplication(); OsmandSettings settings = app.getSettings(); LayerMenuListener l = new LayerMenuListener(activity, adapter); @@ -219,7 +213,7 @@ public class ConfigureMapMenu { adapter.addItem(new ContextMenuItem.ItemBuilder() .setTitleId(R.string.shared_string_favorites, activity) .setSelected(settings.SHOW_FAVORITES.get()) - .setColor(selected ? R.color.osmand_orange : defaultColor) + .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_action_fav_dark) .setListener(l).createItem()); selected = settings.SELECTED_POI_FILTER_FOR_MAP.get() != null; @@ -227,7 +221,7 @@ public class ConfigureMapMenu { .setTitleId(R.string.layer_poi, activity) .setSelected(settings.SELECTED_POI_FILTER_FOR_MAP.get() != null) .setDescription(POIMapLayer.getSelectedPoiName(app)) - .setColor(selected ? R.color.osmand_orange : defaultColor) + .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_action_info_dark) .setSecondaryIcon(R.drawable.ic_action_additional_option) .setListener(l).createItem()); @@ -235,7 +229,7 @@ public class ConfigureMapMenu { adapter.addItem(new ContextMenuItem.ItemBuilder() .setTitleId(R.string.layer_amenity_label, activity) .setSelected(settings.SHOW_POI_LABEL.get()) - .setColor(selected ? R.color.osmand_orange : defaultColor) + .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_action_text_dark) .setListener(l).createItem()); selected = app.getSelectedGpxHelper().isShowingAnyGpxFiles(); @@ -243,7 +237,7 @@ public class ConfigureMapMenu { .setTitleId(R.string.layer_gpx_layer, activity) .setSelected(app.getSelectedGpxHelper().isShowingAnyGpxFiles()) .setDescription(app.getSelectedGpxHelper().getGpxDescription()) - .setColor(selected ? R.color.osmand_orange : defaultColor) + .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_action_polygom_dark) .setSecondaryIcon(R.drawable.ic_action_additional_option) .setListener(l).createItem()); diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java index 8fe7643452..e9c81c04ed 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmEditingPlugin.java @@ -21,7 +21,6 @@ import net.osmand.osm.edit.Node; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.ItemClickListener; import net.osmand.plus.ContextMenuItem; -import net.osmand.plus.IconsCache; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -257,11 +256,10 @@ public class OsmEditingPlugin extends OsmandPlugin { @Override public void registerLayerContextMenuActions(OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) { - final int defaultColor = IconsCache.getDefaultColorRes(mapActivity); adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.layer_osm_bugs, mapActivity) .setSelected(settings.SHOW_OSM_BUGS.get()) .setIcon(R.drawable.ic_action_bug_dark) - .setColor(settings.SHOW_OSM_BUGS.get() ? R.color.osmand_orange : defaultColor) + .setColor(settings.SHOW_OSM_BUGS.get() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setListener(new ContextMenuAdapter.ItemClickListener() { @Override @@ -270,7 +268,7 @@ public class OsmEditingPlugin extends OsmandPlugin { OsmandSettings.OsmandPreference showOsmBugs = settings.SHOW_OSM_BUGS; showOsmBugs.set(isChecked); adapter.getItem(pos).setColorRes(showOsmBugs.get() ? - R.color.osmand_orange : defaultColor); + R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); updateLayers(mapActivity.getMapView(), mapActivity); } diff --git a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java index 3c466b7e95..2edb3a8b53 100644 --- a/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java +++ b/OsmAnd/src/net/osmand/plus/rastermaps/OsmandRasterMapsPlugin.java @@ -24,7 +24,6 @@ import net.osmand.map.TileSourceManager.TileSourceTemplate; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.ItemClickListener; import net.osmand.plus.ContextMenuItem; -import net.osmand.plus.IconsCache; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -235,8 +234,6 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) { - final int defaultColor = IconsCache.getDefaultColorRes(mapActivity); - final MapActivityLayers layers = mapActivity.getMapLayers(); ContextMenuAdapter.ItemClickListener listener = new ContextMenuAdapter.OnRowItemClick() { @Override @@ -269,7 +266,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { item.setDescription(overlayMapDescr); item.setSelected(hasOverlayDescription); - item.setColorRes(hasOverlayDescription ? R.color.osmand_orange : defaultColor); + item.setColorRes(hasOverlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); } }); @@ -288,7 +285,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { item.setDescription(underlayMapDescr); item.setSelected(hasUnderlayDescription); - item.setColorRes(hasUnderlayDescription ? R.color.osmand_orange : defaultColor); + item.setColorRes(hasUnderlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); } @@ -305,7 +302,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.layer_overlay, mapActivity) .setDescription(overlayMapDescr) .setSelected(hasOverlayDescription) - .setColor(hasOverlayDescription ? R.color.osmand_orange : defaultColor) + .setColor(hasOverlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_layer_top_dark) .setSecondaryIcon(R.drawable.ic_action_additional_option) .setListener(listener) @@ -317,7 +314,7 @@ public class OsmandRasterMapsPlugin extends OsmandPlugin { adapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(R.string.layer_underlay, mapActivity) .setDescription(underlayMapDescr) .setSelected(hasUnderlayDescription) - .setColor(hasUnderlayDescription ? R.color.osmand_orange : defaultColor) + .setColor(hasUnderlayDescription ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_layer_bottom_dark) .setSecondaryIcon(R.drawable.ic_action_additional_option) .setListener(listener) diff --git a/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java b/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java index 22e302d78f..1278f30438 100644 --- a/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java +++ b/OsmAnd/src/net/osmand/plus/srtmplugin/SRTMPlugin.java @@ -7,7 +7,6 @@ import net.osmand.plus.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.ItemClickListener; import net.osmand.plus.ContextMenuItem; -import net.osmand.plus.IconsCache; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.OsmandSettings; @@ -106,14 +105,13 @@ public class SRTMPlugin extends OsmandPlugin { @Override public void registerLayerContextMenuActions(final OsmandMapTileView mapView, ContextMenuAdapter adapter, final MapActivity mapActivity) { - final int defaultColor = IconsCache.getDefaultColorRes(mapActivity); ItemClickListener listener = new ItemClickListener() { @Override public boolean onContextMenuClick(ArrayAdapter adapter, int itemId, int pos, boolean isChecked) { if (itemId == R.string.layer_hillshade) { HILLSHADE.set(!HILLSHADE.get()); adapter.getItem(pos).setColorRes(HILLSHADE.get() ? R.color.osmand_orange - : defaultColor); + : ContextMenuItem.INVALID_ID); adapter.notifyDataSetChanged(); updateLayers(mapView, mapActivity); } @@ -123,7 +121,7 @@ public class SRTMPlugin extends OsmandPlugin { adapter.addItem(new ContextMenuItem.ItemBuilder() .setTitleId(R.string.layer_hillshade, mapActivity) .setSelected(HILLSHADE.get()) - .setColor(HILLSHADE.get() ? R.color.osmand_orange : defaultColor) + .setColor(HILLSHADE.get() ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setIcon(R.drawable.ic_action_hillshade_dark) .setListener(listener) .setPosition(13) diff --git a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java index bc6f3a7440..606f152faa 100644 --- a/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/MapControlsLayer.java @@ -23,13 +23,10 @@ import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.TextView; -import net.londatiga.android.ActionItem; -import net.londatiga.android.QuickAction; import net.osmand.AndroidUtils; import net.osmand.core.android.MapRendererContext; import net.osmand.data.LatLon; import net.osmand.data.RotatedTileBox; -import net.osmand.plus.ApplicationMode; import net.osmand.plus.OsmAndLocationProvider; import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; @@ -348,14 +345,7 @@ public class MapControlsLayer extends OsmandMapLayer { } }); mapAppModeShadow = mapActivity.findViewById(R.id.map_app_mode_shadow); - mapAppModeShadow.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - onApplicationModePress(v); - } - }); - appModeIcon = (ImageView) mapActivity.findViewById(R.id.map_app_mode_icon); + appModeIcon = (ImageView) mapActivity.findViewById(R.id.map_layers_button); zoomText = (TextView) mapActivity.findViewById(R.id.map_app_mode_text); View routePlanButton = mapActivity.findViewById(R.id.map_route_info_button); @@ -548,12 +538,9 @@ public class MapControlsLayer extends OsmandMapLayer { //if (!mapView.isZooming() || !OsmandPlugin.isDevelopment()) { if ((System.currentTimeMillis() - lastZoom > 1000) || !OsmandPlugin.isDevelopment()) { zoomText.setVisibility(View.GONE); - appModeIcon.setVisibility(View.VISIBLE); - appModeIcon.setImageDrawable( - app.getIconsCache().getIcon( + appModeIcon.setImageDrawable(app.getIconsCache().getIcon( settings.getApplicationMode().getSmallIconDark(), !isNight)); } else { - appModeIcon.setVisibility(View.GONE); zoomText.setVisibility(View.VISIBLE); zoomText.setTextColor(textColor); zoomText.setText(getZoomLevel(tileBox)); @@ -840,35 +827,6 @@ public class MapControlsLayer extends OsmandMapLayer { } - private void onApplicationModePress(View v) { - final QuickAction mQuickAction = new QuickAction(v); - mQuickAction.setOnAnchorOnTop(true); - List vls = ApplicationMode.values(mapActivity.getMyApplication().getSettings()); - final ApplicationMode[] modes = vls.toArray(new ApplicationMode[vls.size()]); - Drawable[] icons = new Drawable[vls.size()]; - int[] values = new int[vls.size()]; - for (int k = 0; k < modes.length; k++) { - icons[k] = app.getIconsCache().getIcon(modes[k].getSmallIconDark(), R.color.icon_color); - values[k] = modes[k].getStringResource(); - } - for (int i = 0; i < modes.length; i++) { - final ActionItem action = new ActionItem(); - action.setTitle(mapActivity.getResources().getString(values[i])); - action.setIcon(icons[i]); - final int j = i; - action.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mapActivity.getMyApplication().getSettings().APPLICATION_MODE.set(modes[j]); - mQuickAction.dismiss(); - } - }); - mQuickAction.addActionItem(action); - } - mQuickAction.setAnimStyle(QuickAction.ANIM_AUTO); - mQuickAction.show(); - } - private String getZoomLevel(@NonNull RotatedTileBox tb) { String zoomText = tb.getZoom() + ""; double frac = tb.getMapDensity(); diff --git a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java index 79d896f2b8..69bb6dbb78 100644 --- a/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java +++ b/OsmAnd/src/net/osmand/plus/views/mapwidgets/MapWidgetRegistry.java @@ -2,7 +2,6 @@ package net.osmand.plus.views.mapwidgets; import android.content.Context; import android.content.DialogInterface; -import android.support.annotation.ColorRes; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.StringRes; @@ -357,7 +356,6 @@ public class MapWidgetRegistry { private void addControls(final MapActivity mapActivity, final ContextMenuAdapter contextMenuAdapter, Set groupTitle, final ApplicationMode mode) { - @ColorRes final int defaultColor = IconsCache.getDefaultColorRes(mapActivity); for (final MapWidgetRegInfo r : groupTitle) { if (mode == ApplicationMode.DEFAULT) { if ("intermediate_distance".equals(r.key) || "distance".equals(r.key) || "time".equals(r.key)) { @@ -373,7 +371,7 @@ public class MapWidgetRegistry { contextMenuAdapter.addItem(new ContextMenuItem.ItemBuilder().setTitleId(r.messageId, mapActivity) .setIcon(r.drawableMenu) .setSelected(selected) - .setColor(selected ? R.color.osmand_orange : defaultColor) + .setColor(selected ? R.color.osmand_orange : ContextMenuItem.INVALID_ID) .setSecondaryIcon(R.drawable.ic_action_additional_option) .setDescription(r.visibleCollapsed(mode) ? desc : null) .setListener(new ContextMenuAdapter.OnRowItemClick() { @@ -431,7 +429,7 @@ public class MapWidgetRegistry { } ContextMenuItem item = adapter.getItem(position); item.setSelected(visible); - item.setColorRes(visible ? R.color.osmand_orange : defaultColor); + item.setColorRes(visible ? R.color.osmand_orange : ContextMenuItem.INVALID_ID); item.setDescription(visible && collapsed ? desc : null); adapter.notifyDataSetChanged(); }