/*
Swisscom Safe Connect
Copyright (C) 2014 Swisscom
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.swisscom.safeconnect.json;
import android.content.Context;
import android.text.Html;
import android.util.Log;
import com.swisscom.safeconnect.BuildConfig;
import com.swisscom.safeconnect.utils.Config;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.InputStream;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
public class ResourceJsonParser extends JsonParser<ResourceJsonParser.Elem> {
public static class Elem implements Serializable {
private static final long serialVersionUID = -8003667116915415687L;
public CharSequence title;
public CharSequence content;
}
private List<Elem> result;
public ResourceJsonParser(Context c, int resId) {
result = new LinkedList<Elem>();
InputStream is = c.getResources().openRawResource(resId);
parseJson(toJsonString(is));
}
@Override
protected void parseJson(String json) {
try {
JSONArray jsonArr = new JSONArray(json);
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject jsonElem = jsonArr.getJSONObject(i);
Elem elem = new Elem();
elem.content = Html.fromHtml(jsonElem.getString("content"));
elem.title = jsonElem.getString("title");
result.add(elem);
}
} catch (JSONException e) {
if (BuildConfig.DEBUG) Log.e(Config.TAG, "Json error: " + e.getMessage(), e);
}
}
@Override
public Elem getResult() {
return null;
}
@Override
public List<Elem> getListResult() {
return result;
}
}