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 bd76a4ce0..761c236d3 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
@@ -74,14 +74,15 @@ public class AddonPackage extends Package {
}
/**
- * Creates a new platform package based on an actual {@link IAndroidTarget} (with
+ * Creates a new platform package based on an actual {@link IAndroidTarget} (which
* {@link IAndroidTarget#isPlatform()} false) from the {@link SdkManager}.
* This is used to list local SDK folders.
*/
AddonPackage(IAndroidTarget target) {
super( null, //source
0, //revision
- target.getDescription(), //description
+ null, //license
+ target.getDescription(), //description
null, //descUrl
Os.getCurrentOs(), //archiveOs
Arch.getCurrentArch(), //archiveArch
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 8f072552e..e2c2cf5f9 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
@@ -49,6 +49,7 @@ public class DocPackage extends Package {
DocPackage(RepoSource source,
int apiLevel,
int revision,
+ String license,
String description,
String descUrl,
Os archiveOs,
@@ -58,6 +59,7 @@ public class DocPackage extends Package {
String archiveChecksum) {
super(source,
revision,
+ license,
description,
descUrl,
archiveOs,
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 f150510e0..8d067f267 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
@@ -167,6 +167,7 @@ public class LocalSdkParser {
pkg = new ToolPackage(
null, //source
0, //revision
+ null, //license
"Tools", //description
null, //descUrl
Os.getCurrentOs(), //archiveOs
@@ -229,6 +230,7 @@ public class LocalSdkParser {
null, //source
0, //apiLevel
0, //revision
+ null, //license
String.format("Documentation for %1$s", found), //description
null, //descUrl
Os.getCurrentOs(), //archiveOs
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 55ecaef05..4d28f0895 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
@@ -40,6 +40,7 @@ import java.util.ArrayList;
public abstract class Package implements IDescription {
private final int mRevision;
+ private final String mLicense;
private final String mDescription;
private final String mDescUrl;
private final Archive[] mArchives;
@@ -55,7 +56,7 @@ public abstract class Package implements IDescription {
mRevision = getXmlInt (packageNode, SdkRepository.NODE_REVISION, 0);
mDescription = getXmlString(packageNode, SdkRepository.NODE_DESCRIPTION);
mDescUrl = getXmlString(packageNode, SdkRepository.NODE_DESC_URL);
-
+ mLicense = getXmlString(packageNode, SdkRepository.NODE_LICENSE);
mArchives = parseArchives(getFirstChild(packageNode, SdkRepository.NODE_ARCHIVES));
}
@@ -65,6 +66,7 @@ public abstract class Package implements IDescription {
*/
public Package(RepoSource source,
int revision,
+ String license,
String description,
String descUrl,
Os archiveOs,
@@ -74,6 +76,7 @@ public abstract class Package implements IDescription {
String archiveChecksum) {
mSource = source;
mRevision = revision;
+ mLicense = license;
mDescription = description;
mDescUrl = descUrl;
mArchives = new Archive[1];
@@ -140,6 +143,14 @@ public abstract class Package implements IDescription {
return mRevision;
}
+ /**
+ * Returns the optional description for all packages (platform, add-on, tool, doc) or
+ * for a lib. It is null if the element has not been specified in the repository XML.
+ */
+ public String getLicense() {
+ return mLicense;
+ }
+
/**
* Returns the optional description for all packages (platform, add-on, tool, doc) or
* for a lib. Can be empty but not null.
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 0d51c58b4..ae6bc77ed 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
@@ -47,14 +47,15 @@ public class PlatformPackage extends Package {
}
/**
- * Creates a new platform package based on an actual {@link IAndroidTarget} (with
+ * Creates a new platform package based on an actual {@link IAndroidTarget} (which
* must have {@link IAndroidTarget#isPlatform()} true) from the {@link SdkManager}.
* This is used to list local SDK folders.
*/
PlatformPackage(IAndroidTarget target) {
super( null, //source
0, //revision
- target.getDescription(), //description
+ null, //license
+ target.getDescription(), //description
null, //descUrl
Os.getCurrentOs(), //archiveOs
Arch.getCurrentArch(), //archiveArch
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 71e35c4db..4cac70614 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
@@ -44,6 +44,7 @@ public class ToolPackage extends Package {
*/
ToolPackage(RepoSource source,
int revision,
+ String license,
String description,
String descUrl,
Os archiveOs,
@@ -53,6 +54,7 @@ public class ToolPackage extends Package {
String archiveChecksum) {
super(source,
revision,
+ license,
description,
descUrl,
archiveOs,
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepository.java b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepository.java
index 673e43fe3..4adcb4978 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepository.java
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/SdkRepository.java
@@ -46,6 +46,8 @@ public class SdkRepository {
/** The revision, an int > 0, for all packages (platform, add-on, tool, doc). */
public static final String NODE_REVISION = "revision"; //$NON-NLS-1$
+ /** The optional license for all packages (platform, add-on, tool, doc) or for a lib. */
+ public static final String NODE_LICENSE = "license"; //$NON-NLS-1$
/** The optional description for all packages (platform, add-on, tool, doc) or for a lib. */
public static final String NODE_DESCRIPTION = "description"; //$NON-NLS-1$
/** The optional description URL for all packages (platform, add-on, tool, doc). */
diff --git a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository.xsd b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository.xsd
index 6aff44495..1862ae87e 100755
--- a/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository.xsd
+++ b/tools/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository.xsd
@@ -56,6 +56,9 @@
+
+
@@ -84,6 +87,9 @@
+
+
@@ -124,6 +130,9 @@
+
+
@@ -148,6 +157,9 @@
+
+
diff --git a/tools/sdkmanager/libs/sdklib/tests/com/android/sdklib/repository/repository_sample.xml b/tools/sdkmanager/libs/sdklib/tests/com/android/sdklib/repository/repository_sample.xml
index fb6283d9b..a2d0cda20 100755
--- a/tools/sdkmanager/libs/sdklib/tests/com/android/sdklib/repository/repository_sample.xml
+++ b/tools/sdkmanager/libs/sdklib/tests/com/android/sdklib/repository/repository_sample.xml
@@ -26,6 +26,8 @@
1
3
Some optional description
+ This is the license
+ for this platform.
http://www.example.com/platform1.html
@@ -41,6 +43,7 @@
1
1
Some optional description
+
http://www.example.com/docs.html
@@ -56,6 +59,8 @@
1
John Doe
1
+
+
Some optional description
http://www.example.com/myfirstaddon
@@ -82,6 +87,7 @@
1.1
2
12
+ This is the license for this package.
@@ -139,12 +145,14 @@
com.android.mymaps
+ This is the license for this package.
1
Some optional description
http://www.example.com/tools.html
+ This is the license for this package.
65536
@@ -157,6 +165,7 @@
2
42
+ This is the license for this package.
65536
@@ -178,6 +187,7 @@
42
+ This is the license for this package.
65536
@@ -198,6 +208,7 @@
+ This is the license for this package.
This add-on has no libraries
4
Joe Bar