From d05f6ef99b98f158636de8916bd51c6a2e564dcb Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 17 Jun 2009 11:26:10 -0700 Subject: [PATCH] SDK Updater: fix install of new packages from remote page. --- .../sdkuilib/internal/repository/LocalPackagesPage.java | 2 +- .../sdkuilib/internal/repository/RemotePackagesPage.java | 2 +- .../android/sdkuilib/internal/repository/UpdaterData.java | 13 ++++++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java index 804b0539..f87f30ab 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/LocalPackagesPage.java @@ -241,7 +241,7 @@ public class LocalPackagesPage extends Composite implements ISdkListener { } private void onUpdateInstalledPackage() { - mUpdaterData.updateAll(null /*selectedArchives*/); + mUpdaterData.updateOrInstallAll(null /*selectedArchives*/); } private void onDeleteSelected() { diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java index 88ad591f..e187de67 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/RemotePackagesPage.java @@ -292,7 +292,7 @@ public class RemotePackagesPage extends Composite implements ISdkListener { } if (mUpdaterData != null) { - mUpdaterData.updateAll(archives); + mUpdaterData.updateOrInstallAll(archives); } } diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java index 77760a38..f8373dd6 100755 --- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java +++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdaterData.java @@ -314,13 +314,24 @@ class UpdaterData { * This can be null, in which case a list of remote archive is fetched from all * available sources. */ - public void updateAll(Collection selectedArchives) { + public void updateOrInstallAll(Collection selectedArchives) { if (selectedArchives == null) { refreshSources(true); } final Map updates = findUpdates(selectedArchives); + if (selectedArchives != null) { + // Not only we want to perform updates but we also want to install the + // selected archives. If they do not match an update, list them anyway + // except they map themselves to null (no "old" archive) + for (Archive a : selectedArchives) { + if (!updates.containsValue(a)) { + updates.put(a, null); + } + } + } + UpdateChooserDialog dialog = new UpdateChooserDialog(this, updates); dialog.open(); -- 2.11.0