예제 #1
0
  private static void parseCoreCache(final JSONObject response, final Geocache cache)
      throws JSONException {
    cache.setGeocode(response.getString(CACHE_CODE));
    cache.setName(response.getString(CACHE_NAME));
    // not used: names
    setLocation(cache, response.getString(CACHE_LOCATION));
    cache.setType(getCacheType(response.getString(CACHE_TYPE)));

    final String status = response.getString(CACHE_STATUS);
    cache.setDisabled(status.equalsIgnoreCase(CACHE_STATUS_DISABLED));
    cache.setArchived(status.equalsIgnoreCase(CACHE_STATUS_ARCHIVED));

    cache.setSize(getCacheSize(response));
    cache.setDifficulty((float) response.getDouble(CACHE_DIFFICULTY));
    cache.setTerrain((float) response.getDouble(CACHE_TERRAIN));

    if (!response.isNull(CACHE_IS_FOUND)) {
      cache.setFound(response.getBoolean(CACHE_IS_FOUND));
    }
  }
예제 #2
0
파일: OkapiClient.java 프로젝트: 9cat/cgeo
  private static void parseCoreCache(final ObjectNode response, final Geocache cache) {
    cache.setGeocode(response.get(CACHE_CODE).asText());
    cache.setName(response.get(CACHE_NAME).asText());
    // not used: names
    setLocation(cache, response.get(CACHE_LOCATION).asText());
    cache.setType(getCacheType(response.get(CACHE_TYPE).asText()));

    final String status = response.get(CACHE_STATUS).asText();
    cache.setDisabled(status.equalsIgnoreCase(CACHE_STATUS_DISABLED));
    cache.setArchived(status.equalsIgnoreCase(CACHE_STATUS_ARCHIVED));

    cache.setSize(getCacheSize(response));
    cache.setDifficulty((float) response.get(CACHE_DIFFICULTY).asDouble());
    cache.setTerrain((float) response.get(CACHE_TERRAIN).asDouble());

    cache.setInventoryItems(response.get(CACHE_TRACKABLES_COUNT).asInt());

    if (response.has(CACHE_IS_FOUND)) {
      cache.setFound(response.get(CACHE_IS_FOUND).asBoolean());
    }
    cache.setHidden(parseDate(response.get(CACHE_HIDDEN).asText()));
  }
예제 #3
0
  private static cgCache parseCache(final JSONObject response) {
    final cgCache cache = new cgCache();
    cache.setReliableLatLon(true);
    try {
      cache.setGeocode(response.getString(CACHE_CODE));
      cache.setName(response.getString(CACHE_NAME));
      // not used: names
      setLocation(cache, response.getString(CACHE_LOCATION));
      cache.setType(getCacheType(response.getString(CACHE_TYPE)));

      final String status = response.getString(CACHE_STATUS);
      cache.setDisabled(status.equalsIgnoreCase("Temporarily unavailable"));
      cache.setArchived(status.equalsIgnoreCase("Archived"));

      // not used: url
      final JSONObject owner = response.getJSONObject(CACHE_OWNER);
      cache.setOwner(parseUser(owner));

      cache.getLogCounts().put(LogType.FOUND_IT, response.getInt(CACHE_FOUNDS));
      cache.getLogCounts().put(LogType.DIDNT_FIND_IT, response.getInt(CACHE_NOTFOUNDS));
      cache.setSize(getCacheSize(response));
      cache.setDifficulty((float) response.getDouble(CACHE_DIFFICULTY));
      cache.setTerrain((float) response.getDouble(CACHE_TERRAIN));
      if (!response.isNull(CACHE_RATING)) {
        cache.setRating((float) response.getDouble(CACHE_RATING));
      }
      cache.setVotes(response.getInt(CACHE_VOTES));

      cache.setFavoritePoints(response.getInt(CACHE_RECOMMENDATIONS));
      // not used: req_password
      cache.setDescription(response.getString(CACHE_DESCRIPTION));
      cache.setHint(Html.fromHtml(response.getString(CACHE_HINT)).toString());
      // not used: hints

      final JSONArray images = response.getJSONArray(CACHE_IMAGES);
      if (images != null) {
        JSONObject imageResponse;
        for (int i = 0; i < images.length(); i++) {
          imageResponse = images.getJSONObject(i);
          if (imageResponse.getBoolean(CACHE_IMAGE_IS_SPOILER)) {
            final String title = imageResponse.getString(CACHE_IMAGE_CAPTION);
            final String url =
                absoluteUrl(imageResponse.getString(CACHE_IMAGE_URL), cache.getGeocode());
            final cgImage image = new cgImage(url, title);
            if (cache.getSpoilers() == null) {
              cache.setSpoilers(new ArrayList<cgImage>());
            }
            cache.getSpoilers().add(image);
          }
        }
      }

      // not used: attrnames
      cache.setLogs(parseLogs(response.getJSONArray(CACHE_LATEST_LOGS)));
      cache.setHidden(parseDate(response.getString(CACHE_HIDDEN)));

      cache.setUpdated(System.currentTimeMillis());
      cache.setDetailedUpdate(cache.getUpdated());
      cache.setDetailed(true);

      // save full detailed caches
      cgeoapplication.getInstance().saveCache(cache, EnumSet.of(SaveFlag.SAVE_DB));
    } catch (JSONException e) {
      Log.e("OkapiClient.parseCache", e);
    }
    return cache;
  }