/*
DroidBeard - a free, open-source Android app for managing SickBeard
Copyright (C) 2014-2015 Robert Carr
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
*/
package com.rastating.droidbeard.net;
import android.content.Context;
import com.rastating.droidbeard.entities.HistoricalEvent;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class FetchHistoryTask extends SickbeardAsyncTask<Void, Void, HistoricalEvent[]> {
public FetchHistoryTask(Context context) {
super(context);
}
@Override
protected HistoricalEvent[] doInBackground(Void... voids) {
List<HistoricalEvent> events = new ArrayList<HistoricalEvent>();
String json = getJson("history", null);
try {
if (json != null) {
JSONObject jsonObject = new JSONObject(json);
JSONArray results = jsonObject.optJSONArray("data");
if (results != null) {
for (int i = 0; i < results.length(); i++) {
JSONObject data = results.getJSONObject(i);
HistoricalEvent event = new HistoricalEvent();
event.setDate(data.getString("date"));
event.setEpisodeNumber(data.getInt("episode"));
event.setProvider(data.getString("provider"));
event.setQuality(data.getString("quality"));
event.setSeason(data.getInt("season"));
event.setShowName(data.getString("show_name"));
event.setStatus(data.getString("status"));
events.add(event);
}
}
}
else {
return null;
}
}
catch (Exception e) {
setLastException(json, e);
e.printStackTrace();
return null;
}
return events.toArray(new HistoricalEvent[events.size()]);
}
}