Android Open Source - android-weather-demo-application Volley Request






From Project

Back to project page android-weather-demo-application.

License

The source code is released under:

GNU General Public License

If you think the Android project android-weather-demo-application listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.openweathermap.volley.provider;
//w  ww.  j av a2  s  .  c om
import org.json.JSONException;
import org.json.JSONObject;
import org.openweathermap.WeatherApplication;
import org.openweathermap.dto.base.IDTO;
import org.openweathermap.utils.ReflectionHelper;
import org.openweathermap.volley.callback.VolleyResponseCallback;

import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;

/**
 * 
 * @author samkirton
 */
public class VolleyRequest {
  private VolleyResponseCallback mVolleyResponseCallback;
  
  public void setVollyResponseCallback(VolleyResponseCallback volleyResponseCallback) {
    mVolleyResponseCallback = volleyResponseCallback;
  }
  
  /**
   * Create a new instance of a IDTO object based on the classRef provided.
   * With the new object the fromJson() method is executed to create an 
   * friendly object representation of the JSONObject.
   * @param  jsonObject  The JSONObject to convert into a DTO
   * @param  classRef  The class to create the new object instance from
   * @return  The JSONObject as a friendly DTO 
   */
  public IDTO buildResponseDTO(JSONObject jsonObject, Class<?> classRef) {
    IDTO responseDTO = null;
    
    if (jsonObject != null) {
      responseDTO = (IDTO)ReflectionHelper.newInstance(classRef);
      
      try {
        responseDTO.fromJson(jsonObject);
      } catch (JSONException e) { }
    }
    
    return responseDTO;
  }
  
  /**
   * Executes a Volley request and returns the response back to the consuming activity
   * via the VolleyResponseCallback. When a successful request occurs a new instance of the 
   * dtoClassDef is created, this instance is then populated with the JSONObject.
   * @param  method  Request.Method.*
   * @param   url  
   * @param  dtoClassDef  
   */
  public void execute(int method, String url, JSONObject requestJSONObject, final Class<?> dtoResponseClassDef) {  
    JsonObjectRequest request = new JsonObjectRequest(
      method, 
      url, 
      requestJSONObject, 
      new Response.Listener<JSONObject>() {
        @Override
                public void onResponse(JSONObject response) {
          mVolleyResponseCallback.onVolleyResponse(buildResponseDTO(response,dtoResponseClassDef));
                }
      }, 
      new ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
          mVolleyResponseCallback.onVolleyError(error);
        }
      }
    );
    
    WeatherApplication.getInstance().getRequestQueue().add(request);
  }
}




Java Source Code List

org.openweathermap.WeatherApplication.java
org.openweathermap.activity.MainActivity.java
org.openweathermap.activity.base.BaseActivity.java
org.openweathermap.adapter.CityAdapter.java
org.openweathermap.adapter.ForecastAdapter.java
org.openweathermap.asynctask.GetCitiesAsyncTask.java
org.openweathermap.asynctask.GetLastCityAsyncTask.java
org.openweathermap.asynctask.SaveForecastAsyncTask.java
org.openweathermap.asynctask.SearchCitiesAsyncTask.java
org.openweathermap.asynctask.base.BaseAsyncTask.java
org.openweathermap.asynctask.base.BaseResponse.java
org.openweathermap.asynctask.base.IParam.java
org.openweathermap.asynctask.param.SaveForecastParam.java
org.openweathermap.asynctask.param.SearchCitiesParam.java
org.openweathermap.asynctask.response.GetCitiesResponse.java
org.openweathermap.asynctask.response.GetLastCityResponse.java
org.openweathermap.asynctask.response.SaveForecastResponse.java
org.openweathermap.dto.CityDTO.java
org.openweathermap.dto.CoordDTO.java
org.openweathermap.dto.DayDTO.java
org.openweathermap.dto.ResultDTO.java
org.openweathermap.dto.TempDTO.java
org.openweathermap.dto.WeatherDTO.java
org.openweathermap.dto.base.IDTO.java
org.openweathermap.fragment.ForecastFragment.java
org.openweathermap.fragment.ModalDialogFragment.java
org.openweathermap.fragment.SelectCountryFragment.java
org.openweathermap.sql.SQLInitProvider.java
org.openweathermap.sql.model.CityModel.java
org.openweathermap.sql.model.IconModel.java
org.openweathermap.sql.model.WeatherModel.java
org.openweathermap.utils.DateHelper.java
org.openweathermap.utils.RESTProvider.java
org.openweathermap.utils.ReflectionHelper.java
org.openweathermap.utils.ResourceHelper.java
org.openweathermap.utils.StringHelper.java
org.openweathermap.view.CityListItemView.java
org.openweathermap.view.DateDisplayView.java
org.openweathermap.view.ViewPagerFade.java
org.openweathermap.view.ViewPagerIndicatorView.java
org.openweathermap.view.WeatherDataRowView.java
org.openweathermap.volley.callback.VolleyResponseCallback.java
org.openweathermap.volley.provider.VolleyImageLoader.java
org.openweathermap.volley.provider.VolleyRequest.java