diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-02-05 02:02:54 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-02-05 02:02:54 +0000 |
commit | 6f60cd7b3c380556509737f833b2198d7cb29596 (patch) | |
tree | 4fbd389adc6633bd42c3c3e574119d138fd8dfea | |
parent | 2e0cd3caf771b92f787762ae0ed9b544e81854a3 (diff) | |
parent | 0212c52622ab05822e5864b366dd91201e411e77 (diff) | |
download | doclava-6f60cd7b3c380556509737f833b2198d7cb29596.tar.gz |
Snap for 7125381 from 0212c52622ab05822e5864b366dd91201e411e77 to sc-v2-release
Change-Id: I97232c2f02953c1ae90f49957192e61fb766c1a0
-rw-r--r-- | res/assets/templates-sdk/compatchanges.cs | 6 | ||||
-rw-r--r-- | src/com/google/doclava/CompatInfo.java | 37 |
2 files changed, 32 insertions, 11 deletions
diff --git a/res/assets/templates-sdk/compatchanges.cs b/res/assets/templates-sdk/compatchanges.cs index 001b937..fba233a 100644 --- a/res/assets/templates-sdk/compatchanges.cs +++ b/res/assets/templates-sdk/compatchanges.cs @@ -24,9 +24,9 @@ Disabled for all apps. <?cs else ?> Enabled for - <?cs if:change.enableAfterTargetSdk ?> - apps with a <code>targetSdkVersion</code> of greater than - <?cs var:change.enableAfterTargetSdk ?>. + <?cs if:change.enableSinceTargetSdk ?> + apps with a <code>targetSdkVersion</code> of greater than or equal to + <?cs var:change.enableSinceTargetSdk ?>. <?cs else ?> all apps. <?cs /if ?> diff --git a/src/com/google/doclava/CompatInfo.java b/src/com/google/doclava/CompatInfo.java index 167f6ab..1999818 100644 --- a/src/com/google/doclava/CompatInfo.java +++ b/src/com/google/doclava/CompatInfo.java @@ -44,12 +44,12 @@ public class CompatInfo { public final int sourceLine; public final boolean disabled; public final boolean loggingOnly; - public final int enableAfterTargetSdk; + public final int enableSinceTargetSdk; CompatChange(String name, long id, String description, String definedInClass, String sourceFile, int sourceLine, boolean disabled, boolean loggingOnly, - int enableAfterTargetSdk) { + int enableAfterTargetSdk, int enableSinceTargetSdk) { this.name = name; this.id = id; this.description = description; @@ -58,7 +58,14 @@ public class CompatInfo { this.sourceLine = sourceLine; this.disabled = disabled; this.loggingOnly = loggingOnly; - this.enableAfterTargetSdk = enableAfterTargetSdk; + if (enableSinceTargetSdk > 0) { + this.enableSinceTargetSdk = enableSinceTargetSdk; + } else if (enableAfterTargetSdk > 0) { + this.enableSinceTargetSdk = enableAfterTargetSdk + 1; + } else { + this.enableSinceTargetSdk = 0; + } + } static class Builder { @@ -71,11 +78,12 @@ public class CompatInfo { private boolean mDisabled; private boolean mLoggingOnly; private int mEnableAfterTargetSdk; + private int mEnableSinceTargetSdk; CompatChange build() { return new CompatChange( mName, mId, mDescription, mDefinedInClass, mSourceFile, mSourceLine, - mDisabled, mLoggingOnly, mEnableAfterTargetSdk); + mDisabled, mLoggingOnly, mEnableAfterTargetSdk, mEnableSinceTargetSdk); } Builder name(String name) { @@ -144,6 +152,18 @@ public class CompatInfo { } return this; } + Builder enableSinceTargetSdk(String enableSince) throws SAXException { + if (enableSince == null) { + mEnableSinceTargetSdk = 0; + } else { + try { + mEnableSinceTargetSdk = Integer.parseInt(enableSince); + } catch (NumberFormatException nfe) { + throw new SAXException("Invalid SDK version int: " + enableSince, nfe); + } + } + return this; + } } } @@ -166,6 +186,7 @@ public class CompatInfo { mCurrentChange.name(attributes.getValue("name")) .description(attributes.getValue("description")) .enableAfterTargetSdk(attributes.getValue("enableAfterTargetSdk")) + .enableSinceTargetSdk(attributes.getValue("enableSinceTargetSdk")) .disabled(attributes.getValue("disabled")) .loggingOnly(attributes.getValue("loggingOnly")); @@ -232,16 +253,16 @@ public class CompatInfo { definedInContainer = Converter.obtainPackage("android"); } if (change.description == null) { - throw new RuntimeException("No desriprion found for @ChangeId " + change.name); + throw new RuntimeException("No description found for @ChangeId " + change.name); } Comment comment = new Comment(change.description, definedInContainer, new SourcePositionInfo( change.sourceFile, change.sourceLine, 1)); String path = "change." + i; hdf.setValue(path + ".id", Long.toString(change.id)); hdf.setValue(path + ".name", change.name); - if (change.enableAfterTargetSdk != 0) { - hdf.setValue(path + ".enableAfterTargetSdk", - Integer.toString(change.enableAfterTargetSdk)); + if (change.enableSinceTargetSdk != 0) { + hdf.setValue(path + ".enableSinceTargetSdk", + Integer.toString(change.enableSinceTargetSdk)); } if (change.loggingOnly) { hdf.setValue(path + ".loggingOnly", Boolean.toString(true)); |