package helpers;
import android.content.Context;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
/**
* Created by nissimpardo on 03/01/16.
*/
public class AssetsFetcher {
public static ArrayList<HashMap<String, Object>> loadJSONArrayFromAssets(Context context, String fileName) {
String json = null;
try {
InputStream is = context.getAssets().open(fileName);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
return convertToHashMap(buffer);
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
}
public static ArrayList<HashMap<String, Object>> loadConfigFromFile(Context context) {
String json = null;
File file = new File(context.getFilesDir() + "/videos/config.json");
try {
FileInputStream fileInputStream = new FileInputStream(file);
int size = fileInputStream.available();
byte[] buffer = new byte[size];
fileInputStream.read(buffer);
fileInputStream.close();
return convertToHashMap(buffer);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private static ArrayList<HashMap<String, Object>> convertToHashMap(byte[] data) {
JSONArray jsonArray = null;
try {
jsonArray = new JSONArray(new String(data, "UTF-8"));
} catch (Exception e) {
e.printStackTrace();
return null;
}
ArrayList<HashMap<String, Object>> params = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
try {
JSONObject obj = (JSONObject)jsonArray.get(i);
HashMap<String, Object> hash = new HashMap<>();
Iterator<String> keys = obj.keys();
while (keys.hasNext()) {
String key = keys.next();
hash.put(key, obj.get(key));
}
params.add(hash);
} catch (JSONException e) {
e.printStackTrace();
}
}
return params;
}
}