package com.twistedequations.crossbow_wear_test;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Patrick on 26/07/2015.
*/
public class RepoNameRequest extends Request<List<String>> {
private Response.Listener<List<String>> listListener;
public RepoNameRequest(String url, Response.Listener<List<String>> listListener, Response.ErrorListener listener) {
super(Method.GET, url, listener);
this.listListener = listListener;
}
@Override
protected Response<List<String>> parseNetworkResponse(NetworkResponse response) {
Gson gson = new Gson();
String body = new String(response.data);
Type type = new TypeToken<List<Repo> >(){}.getType();
List<Repo> repos = gson.fromJson(body, type);
List<String> repoNames = new ArrayList<>(repos.size());
for(Repo repo : repos) {
repoNames.add(repo.name);
}
return Response.success(repoNames, HttpHeaderParser.parseCacheHeaders(response));
}
@Override
protected void deliverResponse(List<String> response) {
listListener.onResponse(response);
}
}