@Override
 protected Place doInBackground(PlaceSearchData... params) {
   return DataManager.getSingleton().getPlaceDetails(params[0].id, params[0].source);
 }
 @Override
 protected void setUp() {
   setActivityInitialTouchMode(false);
   mPlaceActivity = getActivity();
   mDataManager = DataManager.getSingleton();
 } // end setUp
  public void showPlace(Place place) {

    if (place != null) {
      this.currentPlace = place;
      // create place name.
      TextView name = (TextView) findViewById(R.id.place_name);
      if (name != null) {
        name.setText(place.getName());
      }

      // create PLACE description.
      TextView description = (TextView) findViewById(R.id.place_description);
      if (description != null) {
        String descStr = place.getDescription();

        if (descStr != null && !descStr.isEmpty() && !descStr.equals("null")) {
          description.setText(descStr);
        } else {
          description.setVisibility(View.GONE);
        }
      }

      if (place.getImage() != null && !place.getImage().isEmpty()) {
        // place image
        ImageView image = (ImageView) findViewById(R.id.place_image);
        if (image != null) {
          DataManager.getSingleton().downloadBitmap(place.getImage(), image);
        }
      }

      // place location
      Location location = place.getLocation();
      if (location != null) {
        TextView placeLocation = (TextView) findViewById(R.id.place_location);
        if (placeLocation != null) {
          placeLocation.setText(location.getAddress());
        }

        // place distance.
        TextView distance = (TextView) findViewById(R.id.place_distance);
        if (distance != null) {
          float[] distanceResults = new float[1];
          android.location.Location currentLocation = AppLocationManager.getCurrentLocation();
          DecimalFormat df = new DecimalFormat("#.#");

          if (currentLocation != null) {
            android.location.Location.distanceBetween(
                currentLocation.getLatitude(),
                currentLocation.getLongitude(),
                Double.valueOf(location.getLatitude()),
                Double.valueOf(location.getLongitude()),
                distanceResults);
            double miles = distanceResults[0] / 1609.34; // i mile =
            // 1.60934km
            distance.setText(df.format(miles) + "mi");
          } else {
            distance.setText("--");
          }
        }

        MapView map = (MapView) findViewById(R.id.mapview);
        if (map != null) {
          MapController mc = map.getController();
          if (mc != null) {

            List<Overlay> mapOverlaysList = map.getOverlays();
            Drawable drawable = this.getResources().getDrawable(R.drawable.red_pointer_icon);

            // creating an ItemizedOverlayActivity object so we can
            // have multiple overlays
            // added to a list to show them in a map
            ItemizedOverlayActivity itemizedoverlay = new ItemizedOverlayActivity(drawable, this);

            GeoPoint geoPoint =
                new GeoPoint(
                    (int) (Double.valueOf(location.getLatitude()) * 1E6),
                    (int) (Double.valueOf(location.getLongitude()) * 1E6));

            // Creates an overlay item with a geopoint to show in
            // the map
            OverlayItem overlayitem = new OverlayItem(geoPoint, "Place", place.getName());

            itemizedoverlay.addOverlay(overlayitem);
            mapOverlaysList.add(itemizedoverlay);

            mc.setCenter(geoPoint);
            mc.setZoom(17);
          }
        }

        showEventList(place.getEventsAtPlace());
      }
    }
  } // end showPlace