package rhogenwizard.editors; import java.util.ArrayList; import java.util.List; import rhogenwizard.PlatformType; public class Capabilities { private static ArrayList<Capabilities> capabilityList = new ArrayList<Capabilities>(); public String publicId; public PlatformType platformId; private Capabilities(String publicName, PlatformType platform) { platformId = platform; publicId = publicName; } public static String[] getPublicIds() { return getPublicIdsList().toArray(new String[0]); } public static List<String> getPublicIdsList() { List<String> list = new ArrayList<String>(); for (Capabilities capability : capabilityList) { if (capability.publicId != null) { list.add(capability.publicId); } } return list; } public static List<String> getPublicIdsList(List<Capabilities> capabList) { List<String> list = new ArrayList<String>(); for (Capabilities pt : capabList) { if (pt.publicId != null) { list.add(pt.publicId); } } return list; } public static List<Capabilities> getCapabilitiesList(List<String> capabList) { List<Capabilities> list = new ArrayList<Capabilities>(); defaultCapabilityList(); if (capabList != null) { for (String pt : capabList) { Capabilities temp = Capabilities.fromId(pt); if(list.indexOf(temp) == -1) list.add(Capabilities.fromId(pt)); } } return list; } // Create default device capability list public static void defaultCapabilityList() { if (capabilityList.size() > 0) capabilityList.clear(); capabilityList.add(new Capabilities("gps", PlatformType.eUnknown)); capabilityList.add(new Capabilities("pim", PlatformType.eUnknown)); capabilityList.add(new Capabilities("camera", PlatformType.eUnknown)); capabilityList.add(new Capabilities("vibrate", PlatformType.eUnknown)); capabilityList.add(new Capabilities("phone", PlatformType.eUnknown)); capabilityList.add(new Capabilities("bluetooth", PlatformType.eUnknown)); capabilityList.add(new Capabilities("calendar", PlatformType.eUnknown)); capabilityList.add(new Capabilities("hardware_acceleration", PlatformType.eAndroid)); capabilityList.add(new Capabilities("push", PlatformType.eUnknown)); capabilityList.add(new Capabilities("network_state", PlatformType.eUnknown)); capabilityList.add(new Capabilities("sdcard", PlatformType.eUnknown)); } public static Capabilities fromId(String id) { for (Capabilities capability : capabilityList) { if (id.equals(capability.publicId)) { return capability; } } // this is new capability, add it to the list and show it in capability // dialog Capabilities UnknownCapability = new Capabilities(id, PlatformType.eUnknown); capabilityList.add(UnknownCapability); return UnknownCapability; } @Override public String toString() { return publicId; } }