package com.gorillalogic.monkeyconsole.editors.utils.devicematrixtable.tree; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.gorillalogic.monkeyconsole.editors.utils.CloudServiceException; import com.gorillalogic.monkeyconsole.editors.utils.CloudServices; public class DeviceMatrixTreeViewModel { private JSONObject jsonPhoneVersions = null; public List<AndroidVersion> getCategories() throws JSONException, CloudServiceException { List<AndroidVersion> versions = new ArrayList<AndroidVersion>(); // Call up ole cloud services and get the devices if (jsonPhoneVersions == null) { jsonPhoneVersions = CloudServices.getDeviceTypes(); } JSONArray ja = jsonPhoneVersions.getJSONArray("params"); for (int i = 0; i < ja.length(); i++) { AndroidVersion ver = new AndroidVersion(); ver.setName(ja.getJSONObject(i).getString("os")); versions.add(ver); for (int j = 0; j < ja.getJSONObject(i).getJSONArray("values").length(); j++) { JSONObject entry = ja.getJSONObject(i).getJSONArray("values").getJSONObject(j); String value = entry.getString("value"); String examples = entry.getString("examples"); String param = entry.getString("param"); String summary = value; if (value.indexOf(':') > -1) { summary = value.substring(value.indexOf(":") + 1); } else if (value.indexOf("==") > -1) { // Android Devices String[] parts = value.split("=="); if (parts.length > 0) { // manufacturer summary = parts[0]; } if (parts.length > 1) { // deviceName summary += " " + parts[1]; } } Resolution res = new Resolution(summary, examples, param); res.setAndroidVersion(ver.getName()); ver.getTodos().add(res); } } return versions; } }