package com.arman.osmdroidmapsforge.map.overlays; import java.util.ArrayList; import java.util.List; import org.osmdroid.bonuspack.overlays.InfoWindow; import org.osmdroid.bonuspack.overlays.Marker; import android.content.Context; import android.view.MotionEvent; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import com.arman.osmdroidmapsforge.R; import com.arman.osmdroidmapsforge.map.MFMapView; public class NewPoiInfoWindow extends InfoWindow{ private Marker marker; private boolean isNewPoiSaved = false; public NewPoiInfoWindow(int layoutResId, final MFMapView mapView, Marker marker) { super(layoutResId, mapView); this.marker = marker; mView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent e) { //default behavior: close it when clicking on the bubble: //if (e.getAction() == MotionEvent.ACTION_UP) // close(); mView.findViewById(R.id.title_textedit).clearFocus(); EditText desc_textedit = (EditText)mView.findViewById(R.id.desc_textedit); InputMethodManager imm = (InputMethodManager)mapView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(desc_textedit.getWindowToken(), 0); return true; } }); } @Override public void onOpen(Object item) { // OverlayWithIW overlay = (OverlayWithIW)item; // String title = overlay.getTitle(); // if (title == null) // title = ""; // ((TextView)mView.findViewById(mTitleId /*R.id.title*/)).setText(title); // // String snippet = overlay.getSnippet(); // if (snippet == null) // snippet = ""; // Spanned snippetHtml = Html.fromHtml(snippet); // ((TextView)mView.findViewById(mDescriptionId /*R.id.description*/)).setText(snippetHtml); // //handle sub-description, hidding or showing the text view: // TextView subDescText = (TextView)mView.findViewById(mSubDescriptionId); // String subDesc = overlay.getSubDescription(); // if (subDesc != null && !("".equals(subDesc))){ // subDescText.setText(Html.fromHtml(subDesc)); // subDescText.setVisibility(View.VISIBLE); // } else { // subDescText.setVisibility(View.GONE); // } } @Override public void onClose() { if (!isNewPoiSaved) mMapView.getOverlays().remove(marker); } }