aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaphael Moll <ralf@android.com>2011-07-26 10:21:00 -0700
committerRaphael Moll <ralf@android.com>2011-07-26 10:21:00 -0700
commitd6e24bcd244afd7052a4b087187bb6077117678b (patch)
tree9c5f571ee8e3bafa1c97b6eaca0f2b2dcc237cc0
parent4931897bff3de077a5641d316b29b0281b5c221e (diff)
downloadsdk-d6e24bcd244afd7052a4b087187bb6077117678b.zip
sdk-d6e24bcd244afd7052a4b087187bb6077117678b.tar.gz
sdk-d6e24bcd244afd7052a4b087187bb6077117678b.tar.bz2
SDK Man2: Clear local source caches when reloading.
Change-Id: I984ae397ada014ff8869d5775be1bc779ef22319
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/SdkSources.java16
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/PackagesPage.java3
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: