aboutsummaryrefslogtreecommitdiffstats
path: root/sdkmanager/libs
diff options
context:
space:
mode:
authorRaphael <raphael@google.com>2012-03-06 19:18:37 -0800
committerRaphael <raphael@google.com>2012-03-06 19:48:31 -0800
commit09d4a9a0b4d3e20c30b08fee46d1c03ff45fdc0b (patch)
tree61d32a940078d2210e292673ce09ffcdc68012db /sdkmanager/libs
parent53965f3f406f5a142b71753a4623a4d363795527 (diff)
downloadsdk-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')
-rwxr-xr-xsdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java11
-rwxr-xr-xsdkmanager/libs/sdkuilib/src/com/android/sdkuilib/internal/repository/sdkman2/PackagesPage.java65
2 files changed, 50 insertions, 26 deletions
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
index a784b34..56bf492 100755
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/internal/repository/AddonPackage.java
@@ -577,6 +577,17 @@ public class AddonPackage extends Package
String name = displayName.toLowerCase(Locale.US);
name = name.replaceAll("[^a-z0-9_-]+", "_"); //$NON-NLS-1$ //$NON-NLS-2$
name = name.replaceAll("_+", "_"); //$NON-NLS-1$ //$NON-NLS-2$
+
+ // NOTE: ideally we would want to trim leading and trailing _ but in fact
+ // this MUST NOT be done, otherwise it will break <vendor-id> tags that were
+ // auto converted from the old <vendor> tag when switching from the addon
+ // schema v3 to v4.
+ // if (name.length() > 1) {
+ // name = name.replaceAll("^_+", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ // if (name.length() > 1) {
+ // name = name.replaceAll("_+$", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
return name;
}
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