コード例 #1
0
  @Override
  public boolean onMarkerClick(Marker marker) {
    long startTime = Long.MAX_VALUE, endTime = Long.MAX_VALUE;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
      startTime = SystemClock.elapsedRealtimeNanos();
    }

    ObaStop stop = mMarkerData.getStopFromMarker(marker);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
      endTime = SystemClock.elapsedRealtimeNanos();
      Log.d(
          TAG,
          "Stop HashMap read time: "
              + TimeUnit.MILLISECONDS.convert(endTime - startTime, TimeUnit.NANOSECONDS)
              + "ms");
    }

    if (stop == null) {
      // The marker isn't a stop that is contained in this StopOverlay - return unhandled
      return false;
    }

    if (BuildConfig.DEBUG) {
      // Show the stop_id in a toast for debug purposes
      Toast.makeText(mActivity, stop.getId(), Toast.LENGTH_SHORT).show();
    }

    doFocusChange(stop);

    // Report Stop distance metric
    Location stopLocation = stop.getLocation();
    Location myLocation = Application.getLastKnownLocation(mActivity, null);
    // Track the users distance to bus stop
    ObaAnalytics.trackBusStopDistance(stop.getId(), myLocation, stopLocation);
    return true;
  }