/** * Called when a button has been clicked (non-Javadoc) * * @see android.view.View.OnClickListener#onClick(android.view.View) */ @Override public void onClick(View v) { if (v.getId() == R.id.show_both) showBoth(); else if (v.getId() == R.id.mark_my_location) markMyLocation(); else if (v.getId() == R.id.my_location) myLocation(); else if (v.getId() == R.id.directions) directions(); else if (v.getId() == R.id.map_mode) changeMapMode(); else if (v.getId() == R.id.parking_timer) if (!Main.isFull) Main.featureInFullDialog(getActivity()); else getActivity().startActivity(new Intent(getActivity(), ParkignTimerActivity.class)); }
/** * Displays the walking directions on the map * * @author ricky barrette */ private void directions() { if (Main.isFull) { /* * if there is no car marked, then notify user else check to see if * there is directions */ if (mCarPoint == null) { Toast.makeText(getActivity(), R.string.mark_car_first, Toast.LENGTH_LONG).show(); } else { /* * Remove old directions if the exist */ if (mDirections != null) mDirections.removePath(); /* * if there is no location fix then notify user else download * directions and display them */ if (mMap.getUserLocation() == null) { Toast.makeText(getActivity(), R.string.no_gps_signal, Toast.LENGTH_LONG).show(); } else { mProgress = ProgressDialog.show( getActivity(), getText(R.string.directions), getText(R.string.calculating), true); new Thread( new Runnable() { /** * Notifys user about the error that occurred outside of the UI thread * * @param e * @author ricky barrette */ public void notify(final Exception e) { e.printStackTrace(); getActivity() .runOnUiThread( new Runnable() { @Override public void run() { Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_LONG) .show(); mProgress.dismiss(); } }); } @Override public void run() { try { mDirections = new DirectionsOverlay( mMap.getMap(), mMap.getUserLocation(), mCarPoint, MapFragment.this); } catch (IllegalStateException e) { notify(e); } catch (ClientProtocolException e) { notify(e); } catch (IOException e) { notify(e); } catch (JSONException e) { notify(e); } } }) .start(); } } } else Main.featureInFullDialog(getActivity()); }