Change Device List to Device Collection.
sdklib now stores devices as LinkedHashSet. Change the List to a
Collection so that it's agnostic of the underlying representation.
Change-Id: I14a20d7fff6495c0d61c6f250a92cfe9210b50d9
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/Configuration.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/Configuration.java
index 44faf71..56479e7 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/Configuration.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/Configuration.java
@@ -747,7 +747,7 @@
boolean initialize(String data) {
String[] values = data.split(SEP);
if (values.length >= 6 && values.length <= 8) {
- for (Device d : mConfigChooser.getDeviceList()) {
+ for (Device d : mConfigChooser.getDevices()) {
if (d.getName().equals(values[0])) {
mDevice = d;
String stateName = null;
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationChooser.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationChooser.java
index 5b8e70b..5805390 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationChooser.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationChooser.java
@@ -133,7 +133,7 @@
private int mDisableUpdates = 0;
/** List of available devices */
- private List<Device> mDeviceList = Collections.emptyList();
+ private Collection<Device> mDevices = Collections.emptyList();
/** List of available targets */
private final List<IAndroidTarget> mTargetList = new ArrayList<IAndroidTarget>();
@@ -383,8 +383,8 @@
* @return a list of {@link Device} objects
*/
@NonNull
- public List<Device> getDeviceList() {
- return mDeviceList;
+ public Collection<Device> getDevices() {
+ return mDevices;
}
/**
@@ -873,9 +873,9 @@
// This method can be called more than once, so avoid duplicate entries
manager.unregisterListener(this);
manager.registerListener(this);
- mDeviceList = manager.getDevices(DeviceManager.ALL_DEVICES);
+ mDevices = manager.getDevices(DeviceManager.ALL_DEVICES);
} else {
- mDeviceList = new ArrayList<Device>();
+ mDevices = new ArrayList<Device>();
}
}
@@ -916,7 +916,7 @@
}
private void updateDevices() {
- if (mDeviceList.size() == 0) {
+ if (mDevices.size() == 0) {
initDevices();
}
}
@@ -1370,9 +1370,9 @@
public void onDevicesChanged() {
final Sdk sdk = Sdk.getCurrent();
if (sdk != null) {
- mDeviceList = sdk.getDeviceManager().getDevices(DeviceManager.ALL_DEVICES);
+ mDevices = sdk.getDeviceManager().getDevices(DeviceManager.ALL_DEVICES);
} else {
- mDeviceList = new ArrayList<Device>();
+ mDevices = new ArrayList<Device>();
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationDescription.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationDescription.java
index cc50398..f7be53d 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationDescription.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationDescription.java
@@ -50,6 +50,7 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import java.util.Collection;
import java.util.List;
/** A description of a configuration, used for persistence */
@@ -169,7 +170,7 @@
public static ConfigurationDescription fromXml(
@Nullable IProject project,
@NonNull Element element,
- @NonNull List<Device> deviceList) {
+ @NonNull Collection<Device> deviceList) {
ConfigurationDescription description = new ConfigurationDescription(project);
if (!TAG_PREVIEW.equals(element.getTagName())) {
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMatcher.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMatcher.java
index 89104ab..b868f14 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMatcher.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationMatcher.java
@@ -55,6 +55,7 @@
import org.eclipse.ui.IEditorPart;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -248,7 +249,7 @@
*/
void findAndSetCompatibleConfig(boolean favorCurrentConfig) {
List<Locale> localeList = mConfigChooser.getLocaleList();
- List<Device> deviceList = mConfigChooser.getDeviceList();
+ Collection<Device> devices = mConfigChooser.getDevices();
FolderConfiguration editedConfig = mConfiguration.getEditedConfig();
FolderConfiguration currentConfig = mConfiguration.getFullConfig();
@@ -301,7 +302,7 @@
addRenderTargetToBundles(configBundles);
- for (Device device : deviceList) {
+ for (Device device : devices) {
for (State state : device.getAllStates()) {
// loop on the list of config bundles to create full
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/DeviceMenuListener.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/DeviceMenuListener.java
index 4489b52..72910f9 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/DeviceMenuListener.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/DeviceMenuListener.java
@@ -41,6 +41,7 @@
import org.eclipse.swt.widgets.ToolItem;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -72,7 +73,7 @@
Device current = configuration.getDevice();
Menu menu = new Menu(chooser.getShell(), SWT.POP_UP);
- List<Device> deviceList = chooser.getDeviceList();
+ Collection<Device> deviceCollection = chooser.getDevices();
Sdk sdk = Sdk.getCurrent();
if (sdk != null) {
AvdManager avdManager = sdk.getAvdManager();
@@ -80,7 +81,7 @@
boolean separatorNeeded = false;
AvdInfo[] avds = avdManager.getValidAvds();
for (AvdInfo avd : avds) {
- for (Device device : deviceList) {
+ for (Device device : deviceCollection) {
if (device.getManufacturer().equals(avd.getDeviceManufacturer())
&& device.getName().equals(avd.getDeviceName())) {
separatorNeeded = true;
@@ -105,9 +106,9 @@
// make many manufacturer submenus.
boolean haveNexus = false;
boolean haveNonNexus = false;
- if (!deviceList.isEmpty()) {
+ if (!deviceCollection.isEmpty()) {
Map<String, List<Device>> manufacturers = new TreeMap<String, List<Device>>();
- for (Device device : deviceList) {
+ for (Device device : deviceCollection) {
List<Device> devices;
if (isNexus(device)) {
haveNexus = true;
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/VaryingConfiguration.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/VaryingConfiguration.java
index c6e6407..f472cd6 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/VaryingConfiguration.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/VaryingConfiguration.java
@@ -28,6 +28,7 @@
import com.android.sdklib.devices.Screen;
import com.android.sdklib.devices.State;
+import java.util.Collection;
import java.util.List;
/**
@@ -233,7 +234,7 @@
mPrevParentDevice = device;
// Pick a different device
- List<Device> devices = mConfigChooser.getDeviceList();
+ Collection<Device> devices = mConfigChooser.getDevices();
// Divide up the available devices into {@link #mVariationCount} + 1 buckets
// (the + 1 is for the bucket now taken up by the inherited value).
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewList.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewList.java
index f5d3290..2bcdba3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewList.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewList.java
@@ -36,6 +36,7 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
/** A list of render previews */
@@ -85,7 +86,7 @@
return new File(AdtUtils.getAbsolutePath(mProject).toFile(), PREVIEW_FILE_NAME);
}
- void load(List<Device> deviceList) throws IOException {
+ void load(Collection<Device> deviceList) throws IOException {
File file = getManualFile();
if (file.exists()) {
load(file, deviceList);
@@ -112,7 +113,7 @@
}
}
- void load(File file, List<Device> deviceList) throws IOException {
+ void load(File file, Collection<Device> deviceList) throws IOException {
mList.clear();
String xml = Files.toString(file, Charsets.UTF_8);
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewManager.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewManager.java
index 4b0f484..9f6c3a2 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewManager.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/gle2/RenderPreviewManager.java
@@ -72,6 +72,7 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
@@ -964,7 +965,7 @@
/** Similar to {@link #addDefaultPreviews()} but for screen sizes */
public void addScreenSizePreviews() {
ConfigurationChooser chooser = getChooser();
- List<Device> devices = chooser.getDeviceList();
+ Collection<Device> devices = chooser.getDevices();
Configuration configuration = chooser.getConfiguration();
boolean canScaleNinePatch = configuration.supports(Capability.FIXED_SCALABLE_NINE_PATCH);
@@ -1122,7 +1123,7 @@
}
try {
- mManualList.load(getChooser().getDeviceList());
+ mManualList.load(getChooser().getDevices());
mPreviews = mManualList.createPreviews(mCanvas);
} catch (IOException e) {
AdtPlugin.log(e, null);