Fix opening hours UI

This commit is contained in:
Alexey Kulish 2018-02-02 14:46:49 +03:00
parent 9e4335498c
commit fa515e97bc
8 changed files with 32 additions and 10 deletions

View file

@ -1016,7 +1016,7 @@ public class OpeningHoursParser {
if (b.charAt(b.length() - 1) != ' ') { if (b.charAt(b.length() - 1) != ' ') {
b.append(" "); b.append(" ");
} }
b.append("(").append(comment).append(")"); b.append("- ").append(comment);
} else { } else {
b.append(comment); b.append(comment);
} }
@ -1136,7 +1136,7 @@ public class OpeningHoursParser {
} }
String res = sb.toString(); String res = sb.toString();
if (res.length() > 0 && !Algorithms.isEmpty(comment)) { if (res.length() > 0 && !Algorithms.isEmpty(comment)) {
res += " (" + comment + ")"; res += " - " + comment;
} }
return res; return res;
} }

View file

@ -108,6 +108,15 @@
osmand:typeface="@string/font_roboto_medium" osmand:typeface="@string/font_roboto_medium"
tools:text="Museum"/> tools:text="Museum"/>
<ImageView
android:id="@+id/additional_info_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingTop="1dp"
android:paddingRight="@dimen/context_menu_padding_margin_small"
tools:src="@drawable/ic_action_opening_hour_16"/>
<TextView <TextView
android:id="@+id/additional_info_text_view" android:id="@+id/additional_info_text_view"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -1182,7 +1182,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
public int getAdditionalInfoColor() { public int getAdditionalInfoColor() {
if (menuController != null) { if (menuController != null) {
return menuController.getAdditionalInfoColor(); return menuController.getAdditionalInfoColorId();
} }
return 0; return 0;
} }

View file

@ -1360,8 +1360,10 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
line3.setCompoundDrawablePadding(dpToPx(5f)); line3.setCompoundDrawablePadding(dpToPx(5f));
} }
ImageView additionalInfoImageView = (ImageView) view.findViewById(R.id.additional_info_image_view);
TextView additionalInfoTextView = (TextView) view.findViewById(R.id.additional_info_text_view); TextView additionalInfoTextView = (TextView) view.findViewById(R.id.additional_info_text_view);
CharSequence additionalInfoStr = menu.getAdditionalInfo(); CharSequence additionalInfoStr = menu.getAdditionalInfo();
boolean showAdditionalImage = false;
if (!TextUtils.isEmpty(additionalInfoStr)) { if (!TextUtils.isEmpty(additionalInfoStr)) {
int colorId = menu.getAdditionalInfoColor(); int colorId = menu.getAdditionalInfoColor();
int additionalInfoIconRes = menu.getAdditionalInfoIconRes(); int additionalInfoIconRes = menu.getAdditionalInfoIconRes();
@ -1369,8 +1371,8 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
additionalInfoTextView.setTextColor(ContextCompat.getColor(getContext(), colorId)); additionalInfoTextView.setTextColor(ContextCompat.getColor(getContext(), colorId));
if (additionalInfoIconRes != 0) { if (additionalInfoIconRes != 0) {
Drawable additionalIcon = getIcon(additionalInfoIconRes, colorId); Drawable additionalIcon = getIcon(additionalInfoIconRes, colorId);
additionalInfoTextView.setCompoundDrawablesWithIntrinsicBounds(additionalIcon, null, null, null); additionalInfoImageView.setImageDrawable(additionalIcon);
additionalInfoTextView.setCompoundDrawablePadding(dpToPx(8)); showAdditionalImage = true;
} }
} }
additionalInfoTextView.setText(additionalInfoStr); additionalInfoTextView.setText(additionalInfoStr);
@ -1378,6 +1380,7 @@ public class MapContextMenuFragment extends BaseOsmAndFragment implements Downlo
} else { } else {
additionalInfoTextView.setVisibility(View.GONE); additionalInfoTextView.setVisibility(View.GONE);
} }
additionalInfoImageView.setVisibility(showAdditionalImage ? View.VISIBLE : View.GONE);
} }
updateCompassVisibility(); updateCompassVisibility();
} }

View file

@ -4,6 +4,7 @@ import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable; import android.graphics.drawable.StateListDrawable;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.support.annotation.ColorRes;
import android.support.annotation.DrawableRes; import android.support.annotation.DrawableRes;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
@ -478,9 +479,17 @@ public abstract class MenuController extends BaseMenuController implements Colla
return ""; return "";
} }
public int getAdditionalInfoColor() { @ColorRes
public int getAdditionalInfoColorId() {
if (openingHoursInfo != null) { if (openingHoursInfo != null) {
return 0; boolean open = false;
for (OpeningHours.Info info : openingHoursInfo) {
if (info.isOpened() || info.isOpened24_7()) {
open = true;
break;
}
}
return open ? R.color.ctx_menu_amenity_opened_text_color : R.color.ctx_menu_amenity_closed_text_color;
} else if (indexItem != null) { } else if (indexItem != null) {
return R.color.icon_color; return R.color.icon_color;
} }
@ -516,6 +525,7 @@ public abstract class MenuController extends BaseMenuController implements Colla
return ""; return "";
} }
@DrawableRes
public int getAdditionalInfoIconRes() { public int getAdditionalInfoIconRes() {
if (openingHoursInfo != null) { if (openingHoursInfo != null) {
return R.drawable.ic_action_opening_hour_16; return R.drawable.ic_action_opening_hour_16;

View file

@ -191,7 +191,7 @@ public class MapDataMenuController extends MenuController {
} }
@Override @Override
public int getAdditionalInfoColor() { public int getAdditionalInfoColorId() {
return R.color.icon_color; return R.color.icon_color;
} }

View file

@ -136,7 +136,7 @@ public class EditPOIMenuController extends MenuController {
} }
@Override @Override
public int getAdditionalInfoColor() { public int getAdditionalInfoColorId() {
if (osmPoint.getAction() == Action.DELETE) { if (osmPoint.getAction() == Action.DELETE) {
return R.color.color_osm_edit_delete; return R.color.color_osm_edit_delete;
} else if (osmPoint.getAction() == Action.MODIFY || osmPoint.getAction() == Action.REOPEN) { } else if (osmPoint.getAction() == Action.MODIFY || osmPoint.getAction() == Action.REOPEN) {

View file

@ -73,7 +73,7 @@ public class ParkingPositionMenuController extends MenuController {
} }
@Override @Override
public int getAdditionalInfoColor() { public int getAdditionalInfoColorId() {
return plugin.getParkingType() ? R.color.ctx_menu_amenity_closed_text_color : R.color.icon_color; return plugin.getParkingType() ? R.color.ctx_menu_amenity_closed_text_color : R.color.icon_color;
} }