package net.osmand.plus.views;
import android.content.Context;
import android.graphics.PointF;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import net.osmand.data.RotatedTileBox;
import net.osmand.data.PointDescription;
import net.osmand.plus.IconsCache;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
public class MoveMarkerBottomSheetHelper {
private final View mView;
private final TextView mDescription;
private final Context mContext;
private final ContextMenuLayer mContextMenuLayer;
private boolean applyingPositionMode;
public MoveMarkerBottomSheetHelper(MapActivity activity, ContextMenuLayer contextMenuLayer) {
mContextMenuLayer = contextMenuLayer;
this.mView = activity.findViewById(R.id.move_marker_bottom_sheet);
ImageView icon = (ImageView) mView.findViewById(R.id.icon);
this.mDescription = (TextView) mView.findViewById(R.id.description);
this.mContext = activity;
IconsCache iconsCache = activity.getMyApplication().getIconsCache();
icon.setImageDrawable(iconsCache.getIcon(R.drawable.ic_action_photo_dark, R.color.marker_green));
mView.findViewById(R.id.apply_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mContextMenuLayer.applyNewMarkerPosition();
}
});
mView.findViewById(R.id.cancel_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
hide();
mContextMenuLayer.cancelMovingMarker();
}
});
}
public void onDraw(RotatedTileBox rt) {
PointF point = mContextMenuLayer.getMovableCenterPoint(rt);
double lat = rt.getLatFromPixel(point.x, point.y);
double lon = rt.getLonFromPixel(point.x, point.y);
//mDescription.setText(mContext.getString(R.string.lat_lon_pattern, lat, lon));
mDescription.setText(PointDescription.getLocationName(mContext, lat, lon, true));
}
public boolean isVisible() {
return mView.getVisibility() == View.VISIBLE;
}
public void show(Drawable drawable) {
exitApplyPositionMode();
mView.setVisibility(View.VISIBLE);
((ImageView) mView.findViewById(R.id.icon)).setImageDrawable(drawable);
}
public void hide() {
exitApplyPositionMode();
mView.setVisibility(View.GONE);
}
public void enterApplyPositionMode() {
if (!applyingPositionMode) {
applyingPositionMode = true;
mView.findViewById(R.id.apply_button).setEnabled(false);
}
}
public void exitApplyPositionMode() {
if (applyingPositionMode) {
applyingPositionMode = false;
mView.findViewById(R.id.apply_button).setEnabled(true);
}
}
}