package be.digitalia.fosdem.fragments;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.customtabs.CustomTabsIntent;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import java.util.Locale;
import be.digitalia.fosdem.R;
import be.digitalia.fosdem.api.FosdemUrls;
public class MapFragment extends Fragment {
private static final double DESTINATION_LATITUDE = 50.812375;
private static final double DESTINATION_LONGITUDE = 4.380734;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_map, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.map, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.directions:
launchDirections();
return true;
case R.id.navigation:
launchLocalNavigation();
return true;
}
return false;
}
private void launchDirections() {
// Build intent to start Google Maps directions
String uri = String.format(Locale.US,
"https://maps.google.com/maps?f=d&daddr=%1$f,%2$f&dirflg=r",
DESTINATION_LATITUDE, DESTINATION_LONGITUDE);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
try {
startActivity(intent);
} catch (ActivityNotFoundException ignore) {
}
}
private void launchLocalNavigation() {
try {
Activity context = getActivity();
new CustomTabsIntent.Builder()
.setToolbarColor(ContextCompat.getColor(context, R.color.color_primary))
.setShowTitle(true)
.build()
.launchUrl(context, Uri.parse(FosdemUrls.getLocalNavigation()));
} catch (ActivityNotFoundException ignore) {
}
}
}