String hashString = AndroidTargetHash.getPlatformHashString( version ); IAndroidTarget target = sdkManager.getAndroidTargetManager( progressIndicator ) .getTargetFromHashString( hashString, progressIndicator );
public void setCompileSdkVersion(@NonNull String compileSdkVersion) { // Ensure compileSdkVersion is in platform hash string format (e.g. "android-21"). AndroidVersion androidVersion = AndroidTargetHash.getVersionFromHash(compileSdkVersion); if (androidVersion == null) { this.compileSdkVersion = null; } else { this.compileSdkVersion = AndroidTargetHash.getPlatformHashString(androidVersion); } resolvedSdkVersion = false; }
/** * Gets the API level from a hash string, either a platform version or add-on version. * * @see #getAddOnVersion(String) * @see #getPlatformVersion(String) */ @Nullable public static AndroidVersion getVersionFromHash(@NonNull String hashString) { if (isPlatform(hashString)) { return getPlatformVersion(hashString); } else { return getAddOnVersion(hashString); } }
private boolean isPostN() { final AndroidVersion hash = AndroidTargetHash.getVersionFromHash(compileSdkVersion); return hash != null && hash.getApiLevel() >= 24; } }
@NonNull ProgressIndicator progress) { Map<RemotePackage, InstallResultType> installResults = new HashMap<>(); AndroidVersion targetVersion = AndroidTargetHash.getVersionFromHash(targetHash); String platformPath = DetailsTypes.getPlatformPath(targetVersion); if (!AndroidTargetHash.isPlatform(targetHash)) { RemotePackage addonPackage = null; for (RemotePackage p : repoManager.getPackages().getRemotePackages() DetailsTypes.AddonDetailsType addonDetails = (DetailsTypes.AddonDetailsType) p.getTypeDetails(); String addonHash = AndroidTargetHash.getAddonHashString( addonDetails.getVendor().getDisplay(), addonDetails.getTag().getDisplay(),
@Override public int getBuildSdk() { String compileTarget = mProject.getCompileTarget(); AndroidVersion version = AndroidTargetHash.getPlatformVersion(compileTarget); if (version != null) { return version.getFeatureLevel(); } return super.getBuildSdk(); }
/** * Returns the hash string for a given target (add-on or platform.) * * @param target A non-null target. * @return A non-null hash string uniquely representing this target. */ public static String getTargetHashString(@NonNull IAndroidTarget target) { if (target.isPlatform()) { return getPlatformHashString(target.getVersion()); } else { return getAddonHashString( target.getVendor(), target.getName(), target.getVersion()); } }
/** * Create a new add-on package descriptor. * <p> * The vendor id and the name id provided are used to compute the add-on's * target hash. * * @param version The android version of the add-on package. * @param revision The revision of the add-on package. * @param addonVendor The vendor id/display of the add-on package. * @param addonName The name id/display of the add-on package. * @return A {@link PkgDesc} describing this add-on package. */ @NonNull public static Builder newAddon(@NonNull AndroidVersion version, @NonNull Revision revision, @NonNull IdDisplay addonVendor, @NonNull IdDisplay addonName) { Builder p = new Builder(PkgType.PKG_ADDON); p.mAndroidVersion = version; p.mRevision = revision; p.mVendor = addonVendor; p.mNameIdDisplay = addonName; p.mPath = AndroidTargetHash.getAddonHashString(addonVendor.getDisplay(), addonName.getDisplay(), version); return p; }
/** * Returns a target from a hash that was generated by {@link IAndroidTarget#hashString()}. * * @param hash the {@link IAndroidTarget} hash string. * @return The matching {@link IAndroidTarget} or null. */ @Nullable public IAndroidTarget getTargetFromHashString(@Nullable String hash, @NonNull ProgressIndicator progress) { if (hash != null) { for (IAndroidTarget target : getTargets(progress)) { if (target != null && hash.equals(AndroidTargetHash.getTargetHashString(target))) { return target; } } } return null; }
/** * Retrieve the newest supported version if it is not the specified version is not supported. * * An older NDK may not support the specified compiledSdkVersion. In that case, determine what * is the newest supported version and modify compileSdkVersion. */ @Override @Nullable public String findLatestPlatformVersion(@NonNull String targetPlatformString) { AndroidVersion androidVersion = AndroidTargetHash.getVersionFromHash(targetPlatformString); int targetVersion; if (androidVersion == null) { Logging.getLogger(this.getClass()).warn( "Unable to parse NDK platform version. Try to find the latest instead."); targetVersion = Integer.MAX_VALUE; } else { targetVersion = androidVersion.getFeatureLevel(); } targetVersion = findTargetPlatformVersionOrLower(targetVersion); if (targetVersion == 0) { return null; } return "android-" + targetVersion; }
@Override public int getBuildSdk() { String compileTarget = mProject.getCompileTarget(); AndroidVersion version = AndroidTargetHash.getPlatformVersion(compileTarget); if (version != null) { return version.getApiLevel(); } return super.getBuildSdk(); }
@Override public String getPath(PkgDesc thisPkgDesc) { /** The "path" of a Platform is its Target Hash. */ return AndroidTargetHash.getPlatformHashString(thisPkgDesc.getAndroidVersion()); } };
!properties.containsKey(AVD_INI_ANDROID_CODENAME)) { String targetHash = map.get(AVD_INFO_TARGET); AndroidVersion version = AndroidTargetHash.getVersionFromHash(targetHash); if (version != null) { properties.put(AVD_INI_ANDROID_API, Integer.toString(version.getApiLevel()));
@Override public int getBuildSdk() { if (mocker != null) { String compileTarget = mocker.getProject().getCompileTarget(); //noinspection ConstantConditions if (compileTarget != null && !compileTarget.isEmpty()) { AndroidVersion version = AndroidTargetHash.getPlatformVersion(compileTarget); if (version != null) { return version.getApiLevel(); } } } return super.getBuildSdk(); }
@NonNull @Override public String hashString() { return AndroidTargetHash.getPlatformHashString(getVersion()); }
final CompileOptions compileOptions, String compileSdkVersion) { final AndroidVersion hash = AndroidTargetHash.getVersionFromHash(compileSdkVersion); Integer compileSdkLevel = (hash == null ? null : hash.getApiLevel());
values.put(AVD_INFO_TARGET, AndroidTargetHash.getPlatformHashString(version)); writeIniFile(iniFile, values, true);
@NonNull String currentJdkVersion, boolean jackEnabled) { final AndroidVersion hash = AndroidTargetHash.getVersionFromHash(compileSdkVersion); Integer compileSdkLevel = (hash == null ? null : hash.getFeatureLevel());
AndroidTargetHash.getPlatformHashString( new AndroidVersion(targetDeviceFeatureLevel, null))); AndroidTargetHash.getPlatformHashString(versionFromBuildCode));
@Override public void statusChanged(@NonNull PackageOperation op, @NonNull ProgressIndicator progress) throws StatusChangeListenerException { if (op.getInstallStatus() == COMPLETE) { // Update source path in PlatformTarget String targetHash = AndroidTargetHash.getPlatformHashString( ((DetailsTypes.ApiDetailsType) op.getPackage().getTypeDetails()) .getAndroidVersion()); IAndroidTarget target = mSdkHandler.getAndroidTargetManager(progress) .getTargetFromHashString(targetHash, progress); if (target instanceof PlatformTarget) { File sourcePath = null; if (op instanceof Installer) { sourcePath = op.getLocation(progress); } ((PlatformTarget) target).setSources(sourcePath); } } } }