@Override public boolean equals(Object o) { if (!(o instanceof SystemImage)) { return false; } return compareTo((SystemImage) o) == 0; }
public int hashCode() { int hashCode = Objects.hashCode(getTag(), getAbiType(), getAddonVendor(), getLocation()); for (File f : getSkins()) { hashCode *= 37; hashCode += f.hashCode(); } return hashCode; }
private void init() { Multimap<LocalPackage, SystemImage> images = buildImageMap(); Table<IdDisplay, AndroidVersion, Multimap<IdDisplay, SystemImage>> valuesToImage = HashBasedTable.create(); Map<File, SystemImage> pathToImages = Maps.newHashMap(); for (SystemImage img : images.values()) { IdDisplay vendor = img.getAddonVendor(); IdDisplay tag = img.getTag(); AndroidVersion version = img.getAndroidVersion(); Multimap<IdDisplay, SystemImage> vendorImageMap = valuesToImage.get(tag, version); if (vendorImageMap == null) { vendorImageMap = HashMultimap.create(); valuesToImage.put(tag, version, vendorImageMap); } vendorImageMap.put(vendor, img); pathToImages.put(img.getLocation(), img); } mValuesToImage = valuesToImage; mPackageToImage = images; mPathToImage = pathToImages; }
(DetailsTypes.ApiDetailsType) img.getPackage().getTypeDetails(); String versionWithCodename = SdkVersionInfo .getVersionWithCodename(details.getAndroidVersion()); vendorStr = " (" + vendor.getDisplay() + ")"; mSdkLog.info(" Target: %s%s\n", img.getTag().getDisplay(), vendorStr); mSdkLog.info(" Based on: %s", versionWithCodename); } else if (details instanceof DetailsTypes.AddonDetailsType) { mSdkLog.info(" Target: %s (%s)\n", img.getPackage().getDisplayName(), ((DetailsTypes.AddonDetailsType) details).getVendor().getDisplay()); mSdkLog.info(" Based on: %s\n", versionWithCodename);
private String getValidImagePaths() { return mSdkHandler.getSystemImageManager(new ProgressIndicatorAdapter() { // don't log anything }).getImages().stream() .map(image -> image.getPackage().getPath()) .collect(Collectors.joining("\n")); }
skins = new File[0]; return new SystemImage(dir, tag, vendor, abi, skins, p);
if (sysImgs.size() == 1) { abiType = sysImgs.iterator().next().getAbiType(); img = sysImgs.iterator().next(); mSdkLog.info("Auto-selecting single ABI %1$s\n", abiType); if (systemImage.getAbiType().equals(abiType)) { img = systemImage; break;
@Override public int compareTo(ISystemImage o) { int res = getTag().compareTo(o.getTag()); if (res != 0) { return res; res = getAbiType().compareTo(o.getAbiType()); if (res != 0) { return res; if (getAddonVendor() == null ^ o.getAddonVendor() != null) { return getAddonVendor() == null ? -1 : 1; if (getAddonVendor() != null && o.getAddonVendor() != null) { res = getAddonVendor().compareTo(o.getAddonVendor()); if (res != 0) { return res; res = getLocation().compareTo(o.getLocation()); if (res != 0) { return res; File[] skins = getSkins(); File[] otherSkins = o.getSkins(); for (int i = 0; i < skins.length && i < otherSkins.length; i++) {