Merge change 21463 into donut
* changes:
BUG 1922588: SDK Updater, Needs better license display
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
index 3c7b8c6..b28019f 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
@@ -196,9 +196,9 @@
/** Returns a long description for an {@link IDescription}. */
@Override
public String getLongDescription() {
- return String.format("%1$s.\n%2$s",
+ return String.format("%1$s,\nRevision %2$d.",
getShortDescription(),
- super.getLongDescription());
+ getRevision());
}
/**
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java
index 3bd731b..75879b8 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/DocPackage.java
@@ -113,9 +113,9 @@
/** Returns a long description for an {@link IDescription}. */
@Override
public String getLongDescription() {
- return String.format("%1$s.\n%2$s",
+ return String.format("%1$s,\nRevision %2$d.",
getShortDescription(),
- super.getLongDescription());
+ getRevision());
}
/**
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ExtraPackage.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ExtraPackage.java
index f11523d..74e1c59 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ExtraPackage.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ExtraPackage.java
@@ -192,8 +192,7 @@
s += String.format(" (min tools rev.: %1$d)", mMinToolsRevision);
}
- s += ".\n";
- s += super.getLongDescription();
+ s += ".";
return s;
}
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/LocalSdkParser.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/LocalSdkParser.java
index ca78b0b..23ec892 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/LocalSdkParser.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/LocalSdkParser.java
@@ -44,7 +44,11 @@
}
/**
- * Returns the packages found by the last call to {@link #parseSdk(String, SdkManager, ISdkLog)}.
+ * Returns the packages found by the last call to
+ * {@link #parseSdk(String, SdkManager, ISdkLog)}.
+ * <p/>
+ * This returns initially returns null.
+ * Once the parseSdk() method has been called, this returns a possibly empty but non-null array.
*/
public Package[] getPackages() {
return mPackages;
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java
index 5afe73c..69d526b 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/Package.java
@@ -336,8 +336,11 @@
if (s != null) {
sb.append(s);
}
+ if (sb.length() > 0) {
+ sb.append("\n");
+ }
- sb.append(String.format("\nRevision %1$d", getRevision()));
+ sb.append(String.format("Revision %1$d", getRevision()));
s = getDescUrl();
if (s != null && s.length() > 0) {
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java
index 1c5790d..e95656a 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/PlatformPackage.java
@@ -160,9 +160,7 @@
/** Returns a long description for an {@link IDescription}. */
@Override
public String getLongDescription() {
- return String.format("%1$s.\n%2$s",
- getShortDescription(),
- super.getLongDescription());
+ return getShortDescription() + ".";
}
/**
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ToolPackage.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ToolPackage.java
index bb17874..ee13379 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ToolPackage.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/ToolPackage.java
@@ -76,9 +76,7 @@
/** Returns a long description for an {@link IDescription}. */
@Override
public String getLongDescription() {
- return String.format("Android SDK Tools, revision %1$d.\n%2$s",
- getRevision(),
- super.getLongDescription());
+ return getShortDescription() + ".";
}
/**
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 636b9ab..8f5c4d2 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
@@ -117,26 +117,31 @@
mDescriptionLabel.setText("Line1\nLine2\nLine3");
mAddSiteButton = new Button(parent, SWT.NONE);
+ mAddSiteButton.setText("Add Site...");
+ mAddSiteButton.setToolTipText("Allows you to enter a new user external site. " +
+ "Such site can only contribute add-ons and extra packages.");
mAddSiteButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
onAddSiteSelected(); //$hide$
}
});
- mAddSiteButton.setText("Add Site...");
mDeleteSiteButton = new Button(parent, SWT.NONE);
+ mDeleteSiteButton.setText("Delete Site...");
+ mDeleteSiteButton.setToolTipText("Allows you to remove an external site. " +
+ "Built-in sites cannot be removed.");
mDeleteSiteButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
onRemoveSiteSelected(); //$hide$
}
});
- mDeleteSiteButton.setText("Delete Site...");
mUpdateOnlyCheckBox = new Button(parent, SWT.CHECK);
mUpdateOnlyCheckBox.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1));
mUpdateOnlyCheckBox.setText("Display updates only");
+ mUpdateOnlyCheckBox.setToolTipText("When selected, only compatible update packages are shown in the list above.");
mUpdateOnlyCheckBox.setSelection(mUpdaterData.getSettingsController().getShowUpdateOnly());
mUpdateOnlyCheckBox.addSelectionListener(new SelectionAdapter() {
@Override
@@ -146,22 +151,25 @@
});
mRefreshButton = new Button(parent, SWT.NONE);
+ mRefreshButton.setText("Refresh");
+ mRefreshButton.setToolTipText("Refreshes the list of packages from open sites.");
mRefreshButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
onRefreshSelected(); //$hide$
}
});
- mRefreshButton.setText("Refresh");
mInstallSelectedButton = new Button(parent, SWT.NONE);
+ mInstallSelectedButton.setText("Install Selected");
+ mInstallSelectedButton.setToolTipText("Allows you to review all selected packages " +
+ "and install them.");
mInstallSelectedButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
onInstallSelectedArchives(); //$hide$
}
});
- mInstallSelectedButton.setText("Install Selected");
}
@Override
@@ -275,7 +283,9 @@
}
private void onShowUpdateOnly() {
- mUpdaterData.getSettingsController().setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection());
+ SettingsController controller = mUpdaterData.getSettingsController();
+ controller.setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection());
+ controller.saveSettings();
mTreeViewerSources.refresh();
}
@@ -405,6 +415,9 @@
mDeleteSiteButton.setEnabled(hasSelectedUserSource);
mRefreshButton.setEnabled(true);
mInstallSelectedButton.setEnabled(hasCheckedArchive);
+
+ // set value on the show only update checkbox
+ mUpdateOnlyCheckBox.setSelection(mUpdaterData.getSettingsController().getShowUpdateOnly());
}
// End of hiding from SWT Designer
diff --git a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java
index 94f68fb..d7d3a90 100755
--- a/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java
+++ b/tools/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/UpdateChooserDialog.java
Binary files differ
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 486095c..a605e3d 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
@@ -366,7 +366,7 @@
/**
* Tries to update all the *existing* local packages.
- * This first refreshes all sources, then compares the available remote packages when
+ * This first refreshes all sources, then compares the available remote packages with
* the current local ones and suggest updates to be done to the user. Finally all
* selected updates are installed.
*
@@ -386,13 +386,13 @@
// 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)) {
+ if (!updates.containsKey(a)) {
updates.put(a, null);
}
}
}
- UpdateChooserDialog dialog = new UpdateChooserDialog(this, updates);
+ UpdateChooserDialog dialog = new UpdateChooserDialog(getWindowShell(), this, updates);
dialog.open();
Collection<Archive> result = dialog.getResult();
@@ -444,9 +444,9 @@
// Map [remote archive => local archive] of suitable update candidates
Map<Archive, Archive> result = new HashMap<Archive, Archive>();
- // First go thru all sources and make a local list of all available archives
+ // First go thru all sources and make a list of all available remote archives
// sorted by package class.
- HashMap<Class<? extends Package>, ArrayList<Archive>> availPkgs =
+ HashMap<Class<? extends Package>, ArrayList<Archive>> availablePkgs =
new HashMap<Class<? extends Package>, ArrayList<Archive>>();
if (selectedArchives != null) {
@@ -457,9 +457,9 @@
if (a.isCompatible()) {
Class<? extends Package> clazz = a.getParentPackage().getClass();
- ArrayList<Archive> list = availPkgs.get(clazz);
+ ArrayList<Archive> list = availablePkgs.get(clazz);
if (list == null) {
- availPkgs.put(clazz, list = new ArrayList<Archive>());
+ availablePkgs.put(clazz, list = new ArrayList<Archive>());
}
list.add(a);
@@ -476,9 +476,9 @@
for (Package remotePkg : remotePkgs) {
Class<? extends Package> clazz = remotePkg.getClass();
- ArrayList<Archive> list = availPkgs.get(clazz);
+ ArrayList<Archive> list = availablePkgs.get(clazz);
if (list == null) {
- availPkgs.put(clazz, list = new ArrayList<Archive>());
+ availablePkgs.put(clazz, list = new ArrayList<Archive>());
}
for (Archive a : remotePkg.getArchives()) {
@@ -500,7 +500,7 @@
for (Package localPkg : localPkgs) {
// get the available archive list for this package type
- ArrayList<Archive> list = availPkgs.get(localPkg.getClass());
+ ArrayList<Archive> list = availablePkgs.get(localPkg.getClass());
// if this list is empty, we'll never find anything that matches
if (list == null || list.size() == 0) {
@@ -511,7 +511,7 @@
Archive[] localArchives = localPkg.getArchives();
if (localArchives != null && localArchives.length > 0) {
Archive localArchive = localArchives[0];
- // only consider archive compatible with the current platform
+ // only consider archives compatible with the current platform
if (localArchive != null && localArchive.isCompatible()) {
// We checked all this archive stuff because that's what eventually gets