/** * */ package com.gmail.charleszq.picorner.ui; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.gmail.charleszq.picorner.model.GeoLocation; import com.gmail.charleszq.picorner.model.MediaObject; import com.gmail.charleszq.picorner.utils.IConstants; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; /** * @author charles(charleszq@gmail.com) * */ public class PhotoDetailMapFragment extends SupportMapFragment { private MediaObject mCurrentPhoto; /** * */ public PhotoDetailMapFragment() { super(); } public static PhotoDetailMapFragment newMyInstance(MediaObject photo) { PhotoDetailMapFragment f = new PhotoDetailMapFragment(); final Bundle bundle = new Bundle(); bundle.putSerializable(IConstants.DETAIL_PAGE_PHOTO_ARG_KEY, photo); f.setArguments(bundle); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = this.getArguments(); mCurrentPhoto = (MediaObject) bundle .getSerializable(IConstants.DETAIL_PAGE_PHOTO_ARG_KEY); this.setRetainInstance(true); } @Override public void onResume() { super.onResume(); if (mCurrentPhoto != null) { goLocation(mCurrentPhoto.getLocation()); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = super.onCreateView(inflater, container, savedInstanceState); GeoLocation loc = mCurrentPhoto.getLocation(); goLocation(loc); return v; } private void goLocation(GeoLocation loc) { GoogleMap map = getMap(); if (map != null) { if (loc != null) { LatLng pos = new LatLng(loc.getLatitude(), loc.getLongitude()); map.addMarker(new MarkerOptions().position(pos)); map.moveCamera(CameraUpdateFactory.newLatLngZoom(pos, 8)); } else { } } } }