+++ /dev/null
-package adullact.publicrowdfunding.controller.project.all;
-
-import android.app.ProgressDialog;
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentTransaction;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-
-import com.google.android.gms.maps.CameraUpdateFactory;
-import com.google.android.gms.maps.GoogleMap;
-import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
-import com.google.android.gms.maps.SupportMapFragment;
-import com.google.android.gms.maps.model.CameraPosition;
-import com.google.android.gms.maps.model.LatLng;
-import com.google.android.gms.maps.model.Marker;
-import com.google.android.gms.maps.model.MarkerOptions;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import adullact.publicrowdfunding.R;
-import adullact.publicrowdfunding.controller.adaptor.MarkerWindowAdaptor;
-import adullact.publicrowdfunding.model.local.callback.HoldAllToDo;
-import adullact.publicrowdfunding.model.local.ressource.Project;
-import adullact.publicrowdfunding.model.local.utilities.SyncServerToLocal;
-
-/**
- * @author Ferrand and Nelaupe
- */
-public class MapFragment extends Fragment implements OnInfoWindowClickListener {
-
- private SupportMapFragment fragment;
- private FragmentManager fm;
- private ProgressDialog mprogressDialog;
- private View rootView;
- private GoogleMap googleMap;
- private final HashMap<Marker, Project> markers = new HashMap<Marker, Project>();
-
- private ArrayList<Project> projets;
-
- private MapFragment _this;
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- try {
- rootView = inflater.inflate(R.layout.activity_maps, container,
- false);
-
- } catch (Exception e) {
- TextView text = new TextView(getActivity());
- text.setText(this.getResources().getString(R.string.error));
- return text;
- }
-
- projets = new ArrayList<Project>();
-
- _this = this;
-
- mprogressDialog = new ProgressDialog(getActivity());
- CharSequence message = this.getResources().getString(R.string.loading);
- mprogressDialog.setMessage(message);
- mprogressDialog.setTitle("Google Map");
- mprogressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
- mprogressDialog.show();
-
- fragment = new SupportMapFragment();
- fm = getFragmentManager();
-
- final SyncServerToLocal sync = SyncServerToLocal.getInstance();
- sync.sync(new HoldAllToDo<Project>() {
- @Override
- public void holdAll(ArrayList<Project> projects) {
-
- projets = new ArrayList<Project>(sync
- .restrictToValidatedProjects());
-
- initMaps();
-
- }
- });
-
- return rootView;
- }
-
- @Override
- public void onInfoWindowClick(Marker marker) {
-
- String id = markers.get(marker).getResourceId();
- FragmentTransaction ft = getFragmentManager().beginTransaction();
- Fragment fragment = new adullact.publicrowdfunding.controller.project.details.ProjectPagerFragment();
- Bundle bundle = new Bundle();
- bundle.putString("idProject", id);
- fragment.setArguments(bundle);
- fragment.setHasOptionsMenu(true);
- ft.replace(R.id.content_frame, fragment);
- ft.commit();
-
- }
-
- public void initMaps() {
-
- try {
-
- FragmentTransaction ft = fm.beginTransaction();
- ft.replace(R.id.mapView, fragment, "mapAllFragment").commit();
- fm.executePendingTransactions();
-
- googleMap = ((SupportMapFragment) fm
- .findFragmentByTag("mapAllFragment")).getMap();
-
- for (Project proj : projets) {
- MarkerOptions marker = new MarkerOptions();
- marker.position(proj.getPosition());
- marker.title(proj.getName());
- Marker m = googleMap.addMarker(marker);
-
- markers.put(m, proj);
- }
-
- googleMap.setOnInfoWindowClickListener(_this);
- googleMap
- .setInfoWindowAdapter(new MarkerWindowAdaptor(this.getActivity().getBaseContext(),
- getLayoutInflater(null), markers));
-
- googleMap.setMyLocationEnabled(true);
-
- LatLng localisation = new LatLng(46.937199, 2.429674);
-
- CameraPosition currentPlace = new CameraPosition.Builder()
- .target(localisation).zoom(6f).build();
-
- googleMap.moveCamera(CameraUpdateFactory
- .newCameraPosition(currentPlace));
-
-
- mprogressDialog.dismiss();
-
- } catch (Exception e) {
- this.getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
- }
- }
-
-}