Guest User

AsyncTask

a guest
Jun 20th, 2017
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. protected String doInBackground(LatLng... latlong) {
  2. try {
  3. GeoApiContext context = new GeoApiContext().setApiKey(mContext.getString(R.string.geocoding_api_key));
  4. GeocodingResult[] results = GeocodingApi.reverseGeocode(context, latlong[0]).await();
  5. Log.d("Address: ", results[0].formattedAddress);
  6. return results[0].formattedAddress;
  7. } catch (Exception e) {
  8. return null;
  9. }
  10. }
  11.  
  12. protected void onPostExecute(String address) {
  13. // TODO: check this.exception
  14. // TODO: do something with the feed
  15. if(address != null)
  16. {
  17. Log.d("Address", address);
  18. parseLatLngData(address);
  19. }
  20. }
  21.  
  22. private void parseLatLngData(String address) {
  23. //
  24. // GeoApiContext context = new GeoApiContext().setApiKey(getString(R.string.geocoding_api_key));
  25. // GeocodingApiRequest request = new GeocodingApiRequest(context);
  26. // request.latlng(new LatLng(latitude, longitude));
  27. OneViewApi apiService =
  28. MapsApiClient.getClient().create(OneViewApi.class);
  29. Call<ReverseGeocodingResponse> call = apiService.getGeoCodingDetails(mContext.getString(R.string.geocoding_api_key), address);
  30. Log.d("Called url is:", call.request().url().toString());
  31. call.enqueue(new Callback<ReverseGeocodingResponse>() {
  32. @Override
  33. public void onResponse(Call<ReverseGeocodingResponse> call, Response<ReverseGeocodingResponse> response) {
  34. if (response.isSuccessful()) {
  35. String placeId = response.body().getResults().get(0).getPlaceId();
  36. parsePlaceDetail(placeId);
  37. }
  38. }
  39.  
  40. @Override
  41. public void onFailure(Call<ReverseGeocodingResponse> call, Throwable t) {
  42. Log.e("Item list", " Load More Response Error " + t.getMessage());
  43. if(t instanceof SocketTimeoutException){
  44. }
  45. }
  46. });
  47. }
  48.  
  49. private void parsePlaceDetail(String placeId) {
  50. OneViewApi apiService =
  51. MapsApiClient.getClient().create(OneViewApi.class);
  52. Call<PlaceDetailResponse> call = apiService.getPlaceDetails(mContext.getString(R.string.geocoding_api_key), placeId);
  53. Log.d("Called url is:", call.request().url().toString());
  54. call.enqueue(new Callback<PlaceDetailResponse>() {
  55. @Override
  56. public void onResponse(Call<PlaceDetailResponse> call, Response<PlaceDetailResponse> response) {
  57. if (response.isSuccessful()) {
  58. PlaceDetailResult placeDetailResult = response.body().getResult();
  59. String placeName = placeDetailResult.getName();
  60. List<String> placeType = placeDetailResult.getTypes();
  61.  
  62. for (String placetype:placeType
  63. ) {
  64. if (PLACES_IDENTIFIER.contains(placetype))
  65. {
  66. sendNotification(placeName, placetype);
  67. }
  68. }
  69.  
  70. }
  71. }
  72.  
  73. @Override
  74. public void onFailure(Call<PlaceDetailResponse> call, Throwable t) {
  75. Log.e("Item list", " Load More Response Error " + t.getMessage());
  76. if(t instanceof SocketTimeoutException){
  77. }
  78. }
  79. });
  80.  
  81. }
Add Comment
Please, Sign In to add comment