Hello friends I have a question, I'm using a rest service using the Volley library in android studio. Someone who can advise me to store the results in cache.
Annex My classes:
REST service consumption
public void LoadOrdenesAsignadasResumen() {
builder = new AlertDialog.Builder(thiscontext);
View mView = getActivity().getLayoutInflater().inflate(R.layout.alertdialog_loading, null);
builder.setView(mView);
alertDialog = builder.create();
alertDialog.setCancelable(false);
alertDialog.show();
String urlBASE = "https://" + UrlRemote.baseDebug + UrlRemote.EndPointAsignadas2;
// Metodo de deprecated
ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("driver_id", driver_id));
NameValuePair Dato = SecurityUtils.getSignature(urlBASE, params);
try {
url2 = new URL(urlBASE + UrlRemote.getQuery(params));
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String Firma = String.valueOf(Dato);
String URLFINAL = url2 + "&" + Firma;
Log.e("WEB", URLFINAL);
jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URLFINAL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
alertDialog.dismiss();
Ordenes ordenes = null;
JSONArray json = response.optJSONArray("tripsAssings");
try {
for (int i = 0; i < json.length(); i++) {
ordenes = new Ordenes();
JSONObject jsonObject;
jsonObject = json.getJSONObject(i);
ordenes.setDelivery_Type(jsonObject.getString("Delivery_Type"));
ordenes.setStreet_destino(jsonObject.getString("street_destino"));
ordenes.setCompany(jsonObject.getString("Company"));
ordenes.setStreet_recolect(jsonObject.getString("street_recolect"));
ordenes.setLatitud(jsonObject.getString("Latitud"));
ordenes.setCreated(jsonObject.getString("Created"));
ordenes.setState(jsonObject.getString("state"));
ordenes.setAmount(jsonObject.getString("Amount"));
ordenes.setName_client(jsonObject.getString("Name_client"));
ordenes.setTraking_id(jsonObject.getString("traking_id"));
ordenes.setLongitud(jsonObject.getString("Longitud"));
ordenes.setCounter(jsonObject.getString("Counter"));
ordenes.setCustom_id(jsonObject.getString("custom_id"));
ordenes.setTelephono(jsonObject.getString("Telephono"));
ordenes.setNotas(jsonObject.getString("Notas"));
ordenes.setTrip(jsonObject.getString("IdTrip"));
if(ordenes.getDelivery_Type().equals("Programado"))
{
ordenes.setColorCard("#f8e893");
}
if(ordenes.getDelivery_Type().equals("99minutos"))
{
ordenes.setColorCard("#66bb6a");
}
listaOrdenes.add(ordenes);
// ordenesList.add(ordenes);
EXTRA_STATE = ordenes.getState();
}
adapter = new OrdenesAdapter(listaOrdenes);
adapter.notifyDataSetChanged();
recyclerOrdenes.setAdapter(adapter);
adapter.setOnItemClickListener(new OrdenesAdapter.OnItemClickListener() {
@Override
public void onItemClick(int position) {
Intent i = new Intent(thiscontext, ConfirmarAsignadaActivity.class);
Ordenes clickedItem = listaOrdenes.get(position);
i.putExtra(EXTRA_DELIVERY_TYPE, clickedItem.getDelivery_Type());
i.putExtra(EXTRA_DESTINATION, clickedItem.getStreet_destino());
i.putExtra(EXTRA_COMPANY, clickedItem.getCompany());
i.putExtra(EXTRA_STREET, clickedItem.getStreet_recolect());
i.putExtra(EXTRA_LATITUD, clickedItem.getLatitud());
i.putExtra(EXTRA_CREATED, clickedItem.getCreated());
i.putExtra(EXTRA_STATE, clickedItem.getState());
i.putExtra(EXTRA_AMOUNT, clickedItem.getAmount());
i.putExtra(EXTRA_CLIENT, clickedItem.getName_client());
i.putExtra(EXTRA_TRACKING_ID, clickedItem.getTraking_id());
i.putExtra(EXTRA_LONGITUD, clickedItem.getLongitud());
i.putExtra(EXTRA_COUNTER, clickedItem.getCounter());
i.putExtra(EXTRA_CUSTOM_ID, clickedItem.getCustom_id());
i.putExtra(EXTRA_NOTAS, clickedItem.getNotas());
i.putExtra(EXTRA_PHONE, clickedItem.getTelephono());
i.putExtra(EXTRA_TRIP, clickedItem.getTrip());
startActivity(i);
}
});
if (listaOrdenes.isEmpty()) {
Titletextterror.setVisibility(View.VISIBLE);
texterror.setVisibility(View.VISIBLE);
btnRefrenshInfo.setVisibility(View.INVISIBLE);
Titletextterror.setText(R.string.textTileisEmptyOrdenes);
texterror.setText(R.string.textEmptyOrdenes);
} else {
Titletextterror.setVisibility(View.INVISIBLE);
texterror.setVisibility(View.INVISIBLE);
btnRefrenshInfo.setVisibility(View.INVISIBLE);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
alertDialog.dismiss();
if (error instanceof NetworkError) {
Titletextterror.setVisibility(View.VISIBLE);
texterror.setVisibility(View.VISIBLE);
btnRefrenshInfo.setVisibility(View.VISIBLE);
Titletextterror.setText(R.string.textTitleErrorNetwork);
texterror.setText(R.string.textErrorNetwork);
} else
if (error instanceof ClientError) {
Titletextterror.setVisibility(View.VISIBLE);
texterror.setVisibility(View.VISIBLE);
btnRefrenshInfo.setVisibility(View.VISIBLE);
Titletextterror.setText(R.string.texttitleClientError);
texterror.setText(R.string.textCLientError);
} else if (error instanceof ServerError) {
Titletextterror.setVisibility(View.VISIBLE);
texterror.setVisibility(View.VISIBLE);
btnRefrenshInfo.setVisibility(View.VISIBLE);
Titletextterror.setText(R.string.texttitleClientError);
texterror.setText(R.string.textServerError);
} else if (error instanceof TimeoutError) {
Titletextterror.setVisibility(View.VISIBLE);
texterror.setVisibility(View.VISIBLE);
btnRefrenshInfo.setVisibility(View.VISIBLE);
Titletextterror.setText(R.string.texttitleClientError);
texterror.setText(R.string.textTimeoutError);
}
}
});
VolleySingleton.getInstance(thiscontext).addToRequestQueue(jsonObjectRequest);
}
Singleton Volley
public class VolleySingleton {
private static VolleySingleton mInstance;
private RequestQueue mRequestQueue;
private static Context mCtx;
private VolleySingleton(Context context) {
mCtx = context;
mRequestQueue = getRequestQueue();
}
public static synchronized VolleySingleton getInstance(Context context) {
if (mInstance == null) {
mInstance = new VolleySingleton(context);
}
return mInstance;
}
public RequestQueue getRequestQueue() {
if (mRequestQueue == null) {
mRequestQueue = Volley.newRequestQueue(mCtx.getApplicationContext());
}
return mRequestQueue;
}
public <T> void addToRequestQueue(Request<T> req) {
req.setRetryPolicy(new DefaultRetryPolicy(60000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
getRequestQueue().add(req);
}
public Map<String, String> getRequestHeader() {
Map<String, String> headerMap = new HashMap<>();
return headerMap;
}
public void clearCache() {
mRequestQueue.getCache().clear();
}
public void removeCache(String key) {
mRequestQueue.getCache().remove(key);
}
public void cancelPendignRequest (Object tag){
if(mRequestQueue != null){
mRequestQueue.cancelAll(tag);
}
}
}
Thank you friends