/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.vinidsl.googleioextended.ui.fragment;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.TextView;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.GroundOverlay;
import com.google.android.gms.maps.model.GroundOverlayOptions;
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 com.vinidsl.googleioextended.R;
import com.vinidsl.googleioextended.helper.PreferencesHelper;
/**
* Created by Vinicius on 11-06-15.
*/
public class MapFragment extends Fragment {
private GoogleMap googlemap;
private TextView piso1;
private TextView piso2;
private GroundOverlay overlay;
private int type;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_map, container, false);
piso1 = (TextView) rootView.findViewById(R.id.textViewFloorOne);
piso2 = (TextView) rootView.findViewById(R.id.textViewFloorTwo);
MapsInitializer.initialize(getActivity());
switch (GooglePlayServicesUtil.isGooglePlayServicesAvailable(getActivity()) )
{
case ConnectionResult.SUCCESS:
android.support.v4.app.FragmentManager myFM = getChildFragmentManager();
final SupportMapFragment myMAPF = (SupportMapFragment) myFM.findFragmentById(R.id.map);
googlemap = myMAPF.getMap();
googlemap.setMyLocationEnabled(true);
final View mapView = myFM
.findFragmentById(R.id.map).getView();
if (mapView.getViewTreeObserver().isAlive()) {
mapView.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// TODO now can work with the map
mapView.getViewTreeObserver()
.removeGlobalOnLayoutListener(this);
googlemap.moveCamera(CameraUpdateFactory.newLatLngZoom(
new LatLng(-16.500484, -68.134246), 25));
piso1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
piso1.setBackgroundColor(getResources().getColor(R.color.accent));
piso2.setBackgroundColor(getResources().getColor(R.color.white));
showFloorOne();
}
});
piso2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
piso2.setBackgroundColor(getResources().getColor(R.color.accent));
piso1.setBackgroundColor(getResources().getColor(R.color.white));
showFloorTwo();
}
});
type = PreferencesHelper.getInt(PreferencesHelper.MAP,getActivity());
PreferencesHelper.putInt(PreferencesHelper.MAP,0,getActivity());
switch (type){
case 1:
piso1.setBackgroundColor(getResources().getColor(R.color.accent));
piso2.setBackgroundColor(getResources().getColor(R.color.white));
showFloorOne();
break;
case 2:
piso2.setBackgroundColor(getResources().getColor(R.color.accent));
piso1.setBackgroundColor(getResources().getColor(R.color.white));
showFloorTwo();
break;
case 3:
piso2.setBackgroundColor(getResources().getColor(R.color.accent));
piso1.setBackgroundColor(getResources().getColor(R.color.white));
showFloorTwo();
break;
}
}
});
}
break;
case ConnectionResult.SERVICE_MISSING:
// Todo install google play services
break;
case ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED:
// Todo go to playstore to upload google play services
break;
default:
// Todo some error happends try again later
}
return rootView;
}
private void showFloorOne(){
googlemap.clear();
if(overlay!=null) {
overlay.remove();
}
LatLng NEWARK = new LatLng(-16.500461, -68.134270);
GroundOverlayOptions newarkMap = new GroundOverlayOptions()
.image(BitmapDescriptorFactory.fromResource(R.drawable.cncp1))
.position(NEWARK, 30f, 30f);
overlay = googlemap.addGroundOverlay(newarkMap);
Marker marker = googlemap.addMarker(new MarkerOptions()
.position(new LatLng(-16.500495, -68.134284))
.title("Auditorio Principal")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_map)));
if(type!=0){
if(type==1){
marker.showInfoWindow();
type =0;
}
}
}
private void showFloorTwo(){
googlemap.clear();
if(overlay!=null) {
overlay.remove();
}
LatLng NEWARK = new LatLng(-16.500461, -68.134270);
GroundOverlayOptions newarkMap = new GroundOverlayOptions()
.image(BitmapDescriptorFactory.fromResource(R.drawable.cncp2))
.position(NEWARK, 30f, 30f);
overlay = googlemap.addGroundOverlay(newarkMap);
Marker marker = googlemap.addMarker(new MarkerOptions()
.position(new LatLng(-16.500425, -68.134262))
.title("Auditorio 2")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_map)));
if(type!=0){
if(type==2){
marker.showInfoWindow();
type =0;
}
}
marker = googlemap.addMarker(new MarkerOptions()
.position(new LatLng(-16.500501, -68.134340))
.title("Ambiente 1")
.icon(BitmapDescriptorFactory.fromResource(R.drawable.marker_map)));
if(type!=0){
if(type==3){
marker.showInfoWindow();
type =0;
}
}
}
}