diff options
author | Raphael <raphael@google.com> | 2012-03-06 19:18:37 -0800 |
---|---|---|
committer | Raphael <raphael@google.com> | 2012-03-06 19:48:31 -0800 |
commit | 09d4a9a0b4d3e20c30b08fee46d1c03ff45fdc0b (patch) | |
tree | 61d32a940078d2210e292673ce09ffcdc68012db /sdkmanager/libs/sdkuilib | |
parent | 53965f3f406f5a142b71753a4623a4d363795527 (diff) | |
download | sdk-09d4a9a0b4d3e20c30b08fee46d1c03ff45fdc0b.zip sdk-09d4a9a0b4d3e20c30b08fee46d1c03ff45fdc0b.tar.gz sdk-09d4a9a0b4d3e20c30b08fee46d1c03ff45fdc0b.tar.bz2 |
SDK Manager: display tooltip for update packages.
When an item is both installed AND has an update available,
this changes the SDK Manager tooltip to show info for both
packages. This becomes particularly helpful when an extra
or addon can suddenly change names after an update.
Change-Id: Id96f161c0c4b3ace39cb00b6910f26080e6c15a4
Diffstat (limited to 'sdkmanager/libs/sdkuilib')
-rwxr-xr-x | sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java | 65 |
1 files changed, 39 insertions, 26 deletions
diff --git a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java index d3dc7b6..d6eb73e 100755 --- a/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java +++ b/sdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java @@ -1560,42 +1560,55 @@ public class PackagesPage extends UpdaterPage @Override public String getToolTipText(Object element) { - if (element instanceof PkgItem) { - element = ((PkgItem) element).getMainPackage(); + PkgItem pi = element instanceof PkgItem ? (PkgItem) element : null; + if (pi != null) { + element = pi.getMainPackage(); } if (element instanceof IDescription) { - String s = ((IDescription) element).getLongDescription(); - if (element instanceof Package) { - Package p = (Package) element; + String s = getTooltipDescription((IDescription) element); - if (!p.isLocal()) { - // For non-installed item, try to find a download size - for (Archive a : p.getArchives()) { - if (!a.isLocal() && a.isCompatible()) { - s += '\n' + a.getSizeDescription(); - break; - } + if (pi != null && pi.hasUpdatePkg()) { + s += "\n-----------------" + //$NON-NLS-1$ + "\nUpdate Available:\n" + //$NON-NLS-1$ + getTooltipDescription(pi.getUpdatePkg()); + } + + return s; + } + return super.getToolTipText(element); + } + + private String getTooltipDescription(IDescription element) { + String s = element.getLongDescription(); + if (element instanceof Package) { + Package p = (Package) element; + + if (!p.isLocal()) { + // For non-installed item, try to find a download size + for (Archive a : p.getArchives()) { + if (!a.isLocal() && a.isCompatible()) { + s += '\n' + a.getSizeDescription(); + break; } } + } - // Display info about where this package comes/came from - SdkSource src = p.getParentSource(); - if (src != null) { - try { - URL url = new URL(src.getUrl()); - String host = url.getHost(); - if (p.isLocal()) { - s += String.format("\nInstalled from %1$s", host); - } else { - s += String.format("\nProvided by %1$s", host); - } - } catch (MalformedURLException ignore) { + // Display info about where this package comes/came from + SdkSource src = p.getParentSource(); + if (src != null) { + try { + URL url = new URL(src.getUrl()); + String host = url.getHost(); + if (p.isLocal()) { + s += String.format("\nInstalled from %1$s", host); + } else { + s += String.format("\nProvided by %1$s", host); } + } catch (MalformedURLException ignore) { } } - return s; } - return super.getToolTipText(element); + return s; } @Override |