diff options
Diffstat (limited to 'sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackageLoader.java')
-rwxr-xr-x | sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackageLoader.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackageLoader.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackageLoader.java index af7ce2c..ad9a2a2 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackageLoader.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackageLoader.java @@ -17,6 +17,7 @@ package com.android.sdkuilib.internal.repository.sdkman2; import com.android.sdklib.internal.repository.Archive; +import com.android.sdklib.internal.repository.DownloadCache; import com.android.sdklib.internal.repository.ITask; import com.android.sdklib.internal.repository.ITaskMonitor; import com.android.sdklib.internal.repository.NullTaskMonitor; @@ -44,7 +45,7 @@ class PackageLoader { /** * Interface for the callback called by - * {@link PackageLoader#loadPackages(ISourceLoadedCallback)}. + * {@link PackageLoader#loadPackages(DownloadCache, ISourceLoadedCallback)}. * <p/> * After processing each source, the package loader calls {@link #onUpdateSource} * with the list of packages found in that source. @@ -144,12 +145,20 @@ class PackageLoader { * after each source is finished loaded. In return the callback tells the loader * whether to continue loading sources. */ - public void loadPackages(final ISourceLoadedCallback sourceLoadedCallback) { + public void loadPackages( + DownloadCache downloadCache, + final ISourceLoadedCallback sourceLoadedCallback) { try { if (mUpdaterData == null) { return; } + if (downloadCache == null) { + downloadCache = mUpdaterData.getDownloadCache(); + } + + final DownloadCache downloadCache2 = downloadCache; + mUpdaterData.getTaskFactory().start("Loading Sources", new ITask() { @Override public void run(ITaskMonitor monitor) { @@ -177,7 +186,9 @@ class PackageLoader { for (SdkSource source : sources) { Package[] pkgs = source.getPackages(); if (pkgs == null) { - source.load(subMonitor.createSubMonitor(1), forceHttp); + source.load(downloadCache2, + subMonitor.createSubMonitor(1), + forceHttp); pkgs = source.getPackages(); } if (pkgs == null) { @@ -204,7 +215,8 @@ class PackageLoader { } /** - * Load packages, source by source using {@link #loadPackages(ISourceLoadedCallback)}, + * Load packages, source by source using + * {@link #loadPackages(DownloadCache, ISourceLoadedCallback)}, * and executes the given {@link IAutoInstallTask} on the current package list. * That is for each package known, the install task is queried to find if * the package is the one to be installed or updated. @@ -236,7 +248,8 @@ class PackageLoader { final int installFlags, final IAutoInstallTask installTask) { - loadPackages(new ISourceLoadedCallback() { + loadPackages(mUpdaterData.getDownloadCache(), + new ISourceLoadedCallback() { List<Archive> mArchivesToInstall = new ArrayList<Archive>(); Map<Package, File> mInstallPaths = new HashMap<Package, File>(); |