package com.openvehicles.OVMS.ui; import java.text.SimpleDateFormat; import java.util.List; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; import com.openvehicles.OVMS.R; import com.openvehicles.OVMS.entities.CarData; import com.openvehicles.OVMS.ui.utils.Ui; public class MapFragment extends BaseFragment { private View mMapViewContainer; // private MapView mMapView; // private MapController mMapController; // private GeoPoint mLastGeoPoint; // private CarMarkerOverlay mCarMarkerOverlay; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if (mMapViewContainer == null) { // mMapViewContainer = ((MainActivity)getActivity()).mapview_container; } return mMapViewContainer; } @Override public void onDestroyView() { super.onDestroyView(); ViewGroup parentViewGroup = (ViewGroup) mMapViewContainer.getParent(); if( null != parentViewGroup ) { parentViewGroup.removeView(mMapViewContainer); } } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // mMapView = (MapView) mMapViewContainer.findViewById(R.id.mapview); // mMapView.setBuiltInZoomControls(true); // mMapController = mMapView.getController(); // List<Overlay> overlays = mMapView.getOverlays(); // if (overlays.size() == 0) { // mCarMarkerOverlay = new CarMarkerOverlay(mMapView); // overlays.add(mCarMarkerOverlay); // } else { // mCarMarkerOverlay = (CarMarkerOverlay) overlays.get(0); // } // setHasOptionsMenu(true); // findViewById(R.id.btn_center_map).setOnClickListener(this); } // @Override // public void onClick(View v) { // if (mLastGeoPoint == null) return; // // mMapController.animateTo(mLastGeoPoint); // } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.center_map, menu); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.mi_center_map) { // if (mLastGeoPoint != null) mMapController.animateTo(mLastGeoPoint); return true; } return false; } @Override public void update(CarData pCarData) { // mLastGeoPoint = new GeoPoint((int) (pCarData.car_latitude * 1E6), // (int) (pCarData.car_longitude * 1E6)); // Log.d("MapFragment", "Car on map: " + mLastGeoPoint); String lastReportDate = pCarData.car_lastupdated == null ? "-" : new SimpleDateFormat("MMM d, k:mm:ss").format(pCarData.car_lastupdated); // OverlayItem overlayItem = new OverlayItem(mLastGeoPoint, pCarData.sel_vehicleid, // String.format("Last reported: %s", lastReportDate)); Context context = getActivity(); if (context != null) { Drawable drawable = getResources().getDrawable(Ui.getDrawableIdentifier(context, "map_" + pCarData.sel_vehicle_image)); // mCarMarkerOverlay.setOverlayItem(overlayItem, drawable); // mMapController.setZoom(18); // mMapController.animateTo(mLastGeoPoint); } } // private static class CarMarkerOverlay extends BalloonItemizedOverlay<OverlayItem> { // private OverlayItem mOverlayItem; // // public CarMarkerOverlay(MapView pMapView) { // super(boundCenter(pMapView.getContext().getResources().getDrawable( // R.drawable.map_car_default)), pMapView); // populate(); // } // // @Override // protected OverlayItem createItem(int i) { // return mOverlayItem; // } // // @Override // public int size() { // return mOverlayItem == null ? 0 : 1; // } // // public synchronized void setOverlayItem(OverlayItem pOverlayItem, Drawable pDrawableMarker) { // mOverlayItem = pOverlayItem; // mOverlayItem.setMarker(boundCenter(pDrawableMarker)); // populate(); // } // } }