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 3c7b8c68e..b28019fab 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 @@ public class AddonPackage extends Package { /** 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 3bd731b0a..75879b84d 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 @@ public class DocPackage extends Package { /** 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 f11523de6..74e1c5933 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 @@ public class ExtraPackage extends Package { 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 ca78b0b32..23ec8920b 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 @@ public class LocalSdkParser { } /** - * 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)}. + *
+ * 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 5afe73cd1..69d526b1d 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 @@ public abstract class Package implements IDescription { 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 1c5790d35..e95656a21 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 @@ public class PlatformPackage extends Package { /** 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 bb178747f..ee133793e 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 @@ public class ToolPackage extends Package { /** 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 636b9abe9..8f5c4d2b5 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 @@ public class RemotePackagesPage extends Composite implements ISdkListener { 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 @@ public class RemotePackagesPage extends Composite implements ISdkListener { }); 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 @@ public class RemotePackagesPage extends Composite implements ISdkListener { } private void onShowUpdateOnly() { - mUpdaterData.getSettingsController().setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection()); + SettingsController controller = mUpdaterData.getSettingsController(); + controller.setShowUpdateOnly(mUpdateOnlyCheckBox.getSelection()); + controller.saveSettings(); mTreeViewerSources.refresh(); } @@ -405,6 +415,9 @@ public class RemotePackagesPage extends Composite implements ISdkListener { 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 94f68fb10..d7d3a9024 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 @@ -28,6 +28,8 @@ import org.eclipse.jface.viewers.TableViewer; import org.eclipse.jface.viewers.Viewer; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; +import org.eclipse.swt.custom.StyleRange; +import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.events.ControlAdapter; import org.eclipse.swt.events.ControlEvent; import org.eclipse.swt.events.SelectionAdapter; @@ -48,7 +50,6 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.Text; import java.util.ArrayList; import java.util.Collection; @@ -88,7 +89,7 @@ final class UpdateChooserDialog extends Dialog { private TableViewer mTableViewPackage; private Table mTablePackage; private TableColumn mTableColum; - private Text mPackageText; + private StyledText mPackageText; private Button mLicenseRadioAccept; private Button mLicenseRadioReject; private Button mLicenseRadioAcceptAll; @@ -99,11 +100,15 @@ final class UpdateChooserDialog extends Dialog { /** * Create the dialog. + * @param parentShell The shell to use, typically updaterData.getWindowShell() * @param updaterData The updater data * @param newToOldUpdates The map [new archive => old archive] of potential updates */ - public UpdateChooserDialog(UpdaterData updaterData, Map