String hashString = AndroidTargetHash.getPlatformHashString( version ); IAndroidTarget target = sdkManager.getAndroidTargetManager( progressIndicator ) .getTargetFromHashString( hashString, progressIndicator );
/** * Calls the sdklib machinery to construct the {@link IAndroidTarget} for the given hash string. * * @return appropriate {@link IAndroidTarget} or null if the matching platform package is not * installed. */ @Nullable private static IAndroidTarget getAndroidTarget( @NonNull SdkHandler sdkHandler, @NonNull String targetHash) { File sdkLocation = sdkHandler.getSdkFolder(); ProgressIndicator progressIndicator = new LoggerProgressIndicatorWrapper(LOGGER); IAndroidTarget target = AndroidSdkHandler.getInstance(sdkLocation) .getAndroidTargetManager(progressIndicator) .getTargetFromHashString(targetHash, progressIndicator); if (target != null) { return target; } // reset the cached AndroidSdkHandler, next time a target is looked up, // this will force the re-parsing of the SDK. AndroidSdkHandler.resetInstance(sdkLocation); // and let's try immediately, it's possible the platform was installed since the SDK // handler was initialized in the this VM, since we reset the instance just above, it's // possible we find it. return AndroidSdkHandler.getInstance(sdkLocation) .getAndroidTargetManager(progressIndicator) .getTargetFromHashString(targetHash, progressIndicator); }
ProgressIndicator stdOutputProgress = getNewDownloadProgress(); IAndroidTarget target = mSdkHandler.getAndroidTargetManager(progress) .getTargetFromHashString(targetHash, progress); .getTargetFromHashString(targetHash, progress);
@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); } } } }