diff options
author | Raphael Moll <ralf@android.com> | 2011-07-26 10:21:00 -0700 |
---|---|---|
committer | Raphael Moll <ralf@android.com> | 2011-07-26 10:21:00 -0700 |
commit | d6e24bcd244afd7052a4b087187bb6077117678b (patch) | |
tree | 9c5f571ee8e3bafa1c97b6eaca0f2b2dcc237cc0 | |
parent | 4931897bff3de077a5641d316b29b0281b5c221e (diff) | |
download | sdk-d6e24bcd244afd7052a4b087187bb6077117678b.zip sdk-d6e24bcd244afd7052a4b087187bb6077117678b.tar.gz sdk-d6e24bcd244afd7052a4b087187bb6077117678b.tar.bz2 |
SDK Man2: Clear local source caches when reloading.
Change-Id: I984ae397ada014ff8869d5775be1bc779ef22319
-rwxr-xr-x | sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSources.java | 16 | ||||
-rwxr-xr-x | sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/PackagesPage.java | 3 |
2 files changed, 19 insertions, 0 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSources.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSources.java index d4622ad..0b57eb1 100755 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSources.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSources.java @@ -157,6 +157,22 @@ public class SdkSources { }
/**
+ * Each source keeps a local cache of whatever it loaded recently.
+ * This calls {@link SdkSource#clearPackages()} on all the available sources,
+ * and the next call to {@link SdkSource#getPackages()} will actually reload
+ * the remote package list.
+ */
+ public void clearAllPackages() {
+ synchronized(mSources) {
+ for (ArrayList<SdkSource> list : mSources.values()) {
+ for (SdkSource source : list) {
+ source.clearPackages();
+ }
+ }
+ }
+ }
+
+ /**
* Returns the category of a given source, or null if the source is unknown.
* <p/>
* Note that this method uses object identity to find a given source, and does
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/PackagesPage.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/PackagesPage.java index 9b0788d..0d6dd7a 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/PackagesPage.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/PackagesPage.java @@ -382,6 +382,9 @@ public class PackagesPage extends UpdaterPage switch (action) { case RELOAD: + // Clear all source caches, otherwise loading will use the cached data + mDiffLogic.mUpdaterData.getLocalSdkParser().clearPackages(); + mDiffLogic.mUpdaterData.getSources().clearAllPackages(); loadPackages(); break; case SHOW_ADDON_SITES: |