Ctx menu in progress, IconCache fix

This commit is contained in:
Alexey Kulish 2015-09-09 19:35:38 +03:00
parent 9b9f9c9c04
commit 0ba3f9072b
7 changed files with 33 additions and 33 deletions

View file

@ -37,11 +37,11 @@
<ImageView <ImageView
android:id="@+id/context_menu_icon_view" android:id="@+id/context_menu_icon_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:scaleType="center" android:scaleType="center"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginLeft="12dp" android:layout_marginLeft="12dp"
android:layout_marginTop="18dp"
android:src="@drawable/ic_action_building_number"/> android:src="@drawable/ic_action_building_number"/>
</LinearLayout> </LinearLayout>
@ -50,7 +50,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:layout_marginTop="16dp" android:layout_marginTop="15dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:orientation="vertical"> android:orientation="vertical">
@ -71,7 +71,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="12dp" android:layout_marginLeft="12dp"
android:layout_marginRight="12dp" android:layout_marginRight="12dp"
android:layout_marginTop="3dp" android:layout_marginTop="4dp"
android:text="@string/other_location" android:text="@string/other_location"
android:textColor="?android:textColorSecondary" android:textColor="?android:textColorSecondary"
android:textSize="@dimen/default_desc_text_size"/> android:textSize="@dimen/default_desc_text_size"/>
@ -170,7 +170,8 @@
android:id="@+id/context_menu_bottom_view" android:id="@+id/context_menu_bottom_view"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical"
android:background="?attr/ctx_menu_info_view_bg">
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
@ -186,7 +187,7 @@
android:id="@+id/context_menu_bottom_border" android:id="@+id/context_menu_bottom_border"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:background="?attr/bg_map_context_menu" android:background="?attr/ctx_menu_info_view_bg"
android:orientation="vertical"> android:orientation="vertical">
</LinearLayout> </LinearLayout>

View file

@ -12,6 +12,7 @@
<attr name="bg_color" format="reference" /> <attr name="bg_color" format="reference" />
<attr name="bg_card" format="reference" /> <attr name="bg_card" format="reference" />
<attr name="bg_map_context_menu" format="reference" /> <attr name="bg_map_context_menu" format="reference" />
<attr name="ctx_menu_info_view_bg" format="reference" />
<attr name="dashboard_divider" format="reference" /> <attr name="dashboard_divider" format="reference" />
<attr name="dashboard_button" format="reference" /> <attr name="dashboard_button" format="reference" />

View file

@ -58,6 +58,13 @@
<color name="icon_color">#727272</color> <color name="icon_color">#727272</color>
<color name="icon_color_light">#ccc</color> <color name="icon_color_light">#ccc</color>
<color name="ctx_menu_info_view_bg_light">#eaeaea</color>
<color name="ctx_menu_info_view_bg_dark">#292f33</color>
<color name="ctx_menu_info_text_light">#212121</color>
<color name="ctx_menu_info_text_dark">#b4c3cc</color>
<color name="ctx_menu_info_divider_light">#d9d9d9</color>
<color name="ctx_menu_info_divider_dark">#333b40</color>
<color name="dashboard_gpx_on_map">#448AFF</color> <color name="dashboard_gpx_on_map">#448AFF</color>
<color name="dashboard_background">#eaeaea</color> <color name="dashboard_background">#eaeaea</color>
<color name="dashboard_divider_light">#F0F0F0</color> <color name="dashboard_divider_light">#F0F0F0</color>

View file

@ -69,6 +69,7 @@
<item name="bg_map_context_menu">@drawable/bg_map_context_menu_light</item> <item name="bg_map_context_menu">@drawable/bg_map_context_menu_light</item>
<item name="dashboard_divider">@color/dashboard_divider_light</item> <item name="dashboard_divider">@color/dashboard_divider_light</item>
<item name="dashboard_button">@drawable/dashboard_button_light</item> <item name="dashboard_button">@drawable/dashboard_button_light</item>
<item name="ctx_menu_info_view_bg">@color/ctx_menu_info_view_bg_light</item>
<item name="search_background">@color/search_background_dark</item> <item name="search_background">@color/search_background_dark</item>
<item name="actionModeCloseDrawable">@drawable/ic_action_mode_back</item> <item name="actionModeCloseDrawable">@drawable/ic_action_mode_back</item>
<item name="actionModeStyle">@style/WhiteActionMode</item> <item name="actionModeStyle">@style/WhiteActionMode</item>
@ -164,6 +165,7 @@
<item name="bg_map_context_menu">@drawable/bg_map_context_menu_dark</item> <item name="bg_map_context_menu">@drawable/bg_map_context_menu_dark</item>
<item name="dashboard_divider">@color/dashboard_divider_dark</item> <item name="dashboard_divider">@color/dashboard_divider_dark</item>
<item name="dashboard_button">@drawable/dashboard_button_dark</item> <item name="dashboard_button">@drawable/dashboard_button_dark</item>
<item name="ctx_menu_info_view_bg">@color/ctx_menu_info_view_bg_dark</item>
<item name="search_background">@color/color_white</item> <item name="search_background">@color/color_white</item>
<item name="switch_ex_background">@drawable/switch_ex_background_dark</item> <item name="switch_ex_background">@drawable/switch_ex_background_dark</item>
<item name="switch_ex_text_color">@color/switch_ex_button_text_dark</item> <item name="switch_ex_text_color">@color/switch_ex_button_text_dark</item>

View file

@ -22,7 +22,7 @@ public class IconsCache {
d = app.getResources().getDrawable(resId).mutate(); d = app.getResources().getDrawable(resId).mutate();
d.clearColorFilter(); d.clearColorFilter();
if (clrId != 0) { if (clrId != 0) {
d.setColorFilter(app.getResources().getColor(clrId), PorterDuff.Mode.MULTIPLY); d.setColorFilter(app.getResources().getColor(clrId), PorterDuff.Mode.SRC_IN);
} }
drawable.put(hash, d); drawable.put(hash, d);
} }
@ -35,7 +35,7 @@ public class IconsCache {
if(d == null) { if(d == null) {
d = app.getResources().getDrawable(resId).mutate(); d = app.getResources().getDrawable(resId).mutate();
d.clearColorFilter(); d.clearColorFilter();
d.setColorFilter(color, PorterDuff.Mode.MULTIPLY); d.setColorFilter(color, PorterDuff.Mode.SRC_IN);
drawable.put(hash, d); drawable.put(hash, d);
} }
return d; return d;

View file

@ -249,7 +249,7 @@ public class MapContextMenuFragment extends Fragment {
iconLayout.setVisibility(View.GONE); iconLayout.setVisibility(View.GONE);
} else { } else {
iconView.setImageDrawable(iconsCache.getIcon(iconId, iconView.setImageDrawable(iconsCache.getIcon(iconId,
light ? R.color.icon_color : R.color.icon_color_light)); light ? R.color.osmand_orange : R.color.osmand_orange_dark));
} }
// Text line 1 // Text line 1
@ -263,7 +263,7 @@ public class MapContextMenuFragment extends Fragment {
// Close button // Close button
final ImageView closeButtonView = (ImageView)view.findViewById(R.id.context_menu_close_btn_view); final ImageView closeButtonView = (ImageView)view.findViewById(R.id.context_menu_close_btn_view);
closeButtonView.setImageDrawable(iconsCache.getIcon(R.drawable.ic_action_remove_dark, closeButtonView.setImageDrawable(iconsCache.getIcon(R.drawable.ic_action_remove_dark,
light ? R.color.actionbar_dark_color : R.color.actionbar_light_color)); light ? R.color.icon_color_light : R.color.dash_search_icon_dark));
closeButtonView.setOnClickListener(new View.OnClickListener() { closeButtonView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -275,7 +275,7 @@ public class MapContextMenuFragment extends Fragment {
// Action buttons // Action buttons
final ImageButton buttonNavigate = (ImageButton) view.findViewById(R.id.context_menu_route_button); final ImageButton buttonNavigate = (ImageButton) view.findViewById(R.id.context_menu_route_button);
buttonNavigate.setImageDrawable(iconsCache.getIcon(R.drawable.map_directions, buttonNavigate.setImageDrawable(iconsCache.getIcon(R.drawable.map_directions,
light ? R.color.actionbar_dark_color : R.color.actionbar_light_color)); light ? R.color.icon_color : R.color.dash_search_icon_dark));
buttonNavigate.setOnClickListener(new View.OnClickListener() { buttonNavigate.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -285,7 +285,7 @@ public class MapContextMenuFragment extends Fragment {
final ImageButton buttonFavorite = (ImageButton) view.findViewById(R.id.context_menu_fav_button); final ImageButton buttonFavorite = (ImageButton) view.findViewById(R.id.context_menu_fav_button);
buttonFavorite.setImageDrawable(iconsCache.getIcon(R.drawable.ic_action_fav_dark, buttonFavorite.setImageDrawable(iconsCache.getIcon(R.drawable.ic_action_fav_dark,
light ? R.color.actionbar_dark_color : R.color.actionbar_light_color)); light ? R.color.icon_color : R.color.dash_search_icon_dark));
buttonFavorite.setOnClickListener(new View.OnClickListener() { buttonFavorite.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -295,7 +295,7 @@ public class MapContextMenuFragment extends Fragment {
final ImageButton buttonShare = (ImageButton) view.findViewById(R.id.context_menu_share_button); final ImageButton buttonShare = (ImageButton) view.findViewById(R.id.context_menu_share_button);
buttonShare.setImageDrawable(iconsCache.getIcon(R.drawable.abc_ic_menu_share_mtrl_alpha, buttonShare.setImageDrawable(iconsCache.getIcon(R.drawable.abc_ic_menu_share_mtrl_alpha,
light ? R.color.actionbar_dark_color : R.color.actionbar_light_color)); light ? R.color.icon_color : R.color.dash_search_icon_dark));
buttonShare.setOnClickListener(new View.OnClickListener() { buttonShare.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
@ -305,7 +305,7 @@ public class MapContextMenuFragment extends Fragment {
final ImageButton buttonMore = (ImageButton) view.findViewById(R.id.context_menu_more_button); final ImageButton buttonMore = (ImageButton) view.findViewById(R.id.context_menu_more_button);
buttonMore.setImageDrawable(iconsCache.getIcon(R.drawable.ic_overflow_menu_white, buttonMore.setImageDrawable(iconsCache.getIcon(R.drawable.ic_overflow_menu_white,
light ? R.color.actionbar_dark_color : R.color.actionbar_light_color)); light ? R.color.icon_color : R.color.dash_search_icon_dark));
buttonMore.setOnClickListener(new View.OnClickListener() { buttonMore.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {

View file

@ -1,7 +1,6 @@
package net.osmand.plus.mapcontextmenu.sections; package net.osmand.plus.mapcontextmenu.sections;
import android.content.res.Resources; import android.content.res.Resources;
import android.util.Log;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
@ -16,6 +15,7 @@ import net.osmand.osm.MapPoiTypes;
import net.osmand.osm.PoiType; import net.osmand.osm.PoiType;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.util.Algorithms;
import java.util.Map; import java.util.Map;
@ -31,7 +31,7 @@ public class AmenityInfoMenuBuilder extends MenuBuilder {
} }
private void buildRow(View view, int iconId, String text) { private void buildRow(View view, int iconId, String text) {
Resources.Theme theme = view.getContext().getTheme(); boolean light = app.getSettings().isLightContent();
LinearLayout ll = new LinearLayout(view.getContext()); LinearLayout ll = new LinearLayout(view.getContext());
ll.setOrientation(LinearLayout.HORIZONTAL); ll.setOrientation(LinearLayout.HORIZONTAL);
@ -64,16 +64,8 @@ public class AmenityInfoMenuBuilder extends MenuBuilder {
ll.addView(llText); ll.addView(llText);
TextView textView = new TextView(view.getContext()); TextView textView = new TextView(view.getContext());
textView.setTextSize(18); // todo: create constant
// TypedValue typedValueTextSize = new TypedValue(); textView.setTextColor(app.getResources().getColor(light ? R.color.ctx_menu_info_text_light : R.color.ctx_menu_info_text_dark));
// theme.resolveAttribute(R.dimen.default_desc_text_size, typedValueTextSize, true);
// int textSize = typedValueTextSize.data;
textView.setTextSize(14);
// TypedValue typedValueTextColor = new TypedValue();
// theme.resolveAttribute(android.R.attr.textColorSecondary, typedValueTextColor, true);
// int textColor = typedValueTextColor.data;
//textView.setTextColor(textColor);
textView.setText(text); textView.setText(text);
//textView.setText("sdf dsaf fsdasdfg adsf asdsfd asdf sdf adsfg asdf sdfa sdf dsf agsfdgd fgsfd sdf asdf adg adf sdf asdf dfgdfsg sdfg adsf asdf asdf sdf SDF ASDF ADSF ASDF ASDF DAF SDAF dfg dsfg dfg sdfg rg rth sfghs dfgs dfgsdfg adfg dfg sdfg dfs "); //textView.setText("sdf dsaf fsdasdfg adsf asdsfd asdf sdf adsfg asdf sdfa sdf dsf agsfdgd fgsfd sdf asdf adg adf sdf asdf dfgdfsg sdfg adsf asdf asdf sdf SDF ASDF ADSF ASDF ASDF DAF SDAF dfg dsfg dfg sdfg rg rth sfghs dfgs dfgsdfg adfg dfg sdfg dfs ");
@ -91,10 +83,7 @@ public class AmenityInfoMenuBuilder extends MenuBuilder {
llHorLineParams.gravity = Gravity.BOTTOM; llHorLineParams.gravity = Gravity.BOTTOM;
horizontalLine.setLayoutParams(llHorLineParams); horizontalLine.setLayoutParams(llHorLineParams);
TypedValue typedValueColor = new TypedValue(); horizontalLine.setBackgroundColor(app.getResources().getColor(light ? R.color.ctx_menu_info_divider_light : R.color.ctx_menu_info_divider_dark));
theme.resolveAttribute(R.attr.dashboard_divider, typedValueColor, true);
int color = typedValueColor.data;
horizontalLine.setBackgroundColor(color);
((LinearLayout)view).addView(horizontalLine); ((LinearLayout)view).addView(horizontalLine);
} }
@ -135,11 +124,11 @@ public class AmenityInfoMenuBuilder extends MenuBuilder {
if(pt instanceof PoiType && !((PoiType) pt).isText()) { if(pt instanceof PoiType && !((PoiType) pt).isText()) {
vl = pt.getTranslation(); vl = pt.getTranslation();
} else { } else {
vl = /*pt.getTranslation() + ": " + */amenity.unzipContent(e.getValue()); vl = pt.getTranslation() + ": " + amenity.unzipContent(e.getValue());
} }
} else { } else {
vl = /*Algorithms.capitalizeFirstLetterAndLowercase(e.getKey()) + vl = Algorithms.capitalizeFirstLetterAndLowercase(e.getKey()) +
": " + */amenity.unzipContent(e.getValue()); ": " + amenity.unzipContent(e.getValue());
} }
} }