summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Li <delphij@google.com>2018-08-06 16:50:34 -0700
committerXin Li <delphij@google.com>2018-08-06 16:50:34 -0700
commit909173e4a5ac9fca92357c16a1b599484ddb4112 (patch)
treefe9b644c3b27bb7a5c4d61f244a8cab9c56d23e8
parent86de7f03745a4d9ce2cb3b8e1dd096449f063ef7 (diff)
parentc247876c1edd4481451afd0db76d75cd40a3e283 (diff)
downloaddoclava-909173e4a5ac9fca92357c16a1b599484ddb4112.tar.gz
Merge Android Pie into master
Bug: 112104996 Change-Id: I1d6cad31ae4947c0b87fe6d3c9cfa3daecc56b5b
-rw-r--r--res/assets/templates-sdk/body_tag.cs18
-rw-r--r--res/assets/templates-sdk/class.cs119
-rw-r--r--res/assets/templates-sdk/classes.cs13
-rw-r--r--res/assets/templates-sdk/head_tag.cs3
-rw-r--r--res/assets/templates-sdk/macros_override.cs6
-rw-r--r--res/assets/templates-sdk/package.cs6
-rw-r--r--res/assets/templates-sdk/packages.cs8
-rw-r--r--res/assets/templates/macros.cs14
-rw-r--r--src/com/google/doclava/AndroidAuxSource.java5
-rw-r--r--src/com/google/doclava/Doclava.java45
-rw-r--r--src/com/google/doclava/MemberInfo.java2
-rw-r--r--src/com/google/doclava/NavTree.java1
-rw-r--r--src/com/google/doclava/Stubs.java49
13 files changed, 148 insertions, 141 deletions
diff --git a/res/assets/templates-sdk/body_tag.cs b/res/assets/templates-sdk/body_tag.cs
index 335eec5..1649ffa 100644
--- a/res/assets/templates-sdk/body_tag.cs
+++ b/res/assets/templates-sdk/body_tag.cs
@@ -1 +1,17 @@
-<body>
+<body class="gc-documentation <?cs
+ if:(reference.gms || reference.gcm)
+ ?>google<?cs
+ /if ?><?cs
+ if:(guide||develop||training||reference||tools||sdk)
+ ?>develop<?cs
+ if:reference
+ ?> reference api apilevel-<?cs var:class.since ?><?cs var:package.since ?><?cs
+ /if ?><?cs
+ elif:design
+ ?>design<?cs
+ elif:distribute
+ ?>distribute<?cs
+ /if ?>"><?cs
+if:dac && !page.not-api
+ ?><div id="doc-api-level" class="<?cs var:class.since ?><?cs var:package.since ?>" style="display:none"></div><?cs
+/if ?>
diff --git a/res/assets/templates-sdk/class.cs b/res/assets/templates-sdk/class.cs
index 5fb2a9d..d014edd 100644
--- a/res/assets/templates-sdk/class.cs
+++ b/res/assets/templates-sdk/class.cs
@@ -13,9 +13,10 @@
?><?cs def:write_method_summary(methods, included) ?>
<?cs set:count = #1 ?>
<?cs each:method = methods ?>
- <tr <?cs
- if:method.since
- ?>data-version-added="<?cs var:method.since ?>"<?cs
+ <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
+ <tr class="api apilevel-<?cs var:method.since ?>"<?cs
+ if:method.since ?>
+ data-version-added="<?cs var:method.since ?>"<?cs
/if ?><?cs
if:method.deprecatedsince
?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs
@@ -50,9 +51,9 @@
?><?cs def:write_field_summary(fields, included) ?>
<?cs set:count = #1 ?>
<?cs each:field=fields ?>
- <tr <?cs
- if:field.since
- ?>data-version-added="<?cs var:field.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:field.since ?>"<?cs
+ if:field.since ?>
+ data-version-added="<?cs var:field.since ?>"<?cs
/if ?><?cs
if:field.deprecatedsince
?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
@@ -77,9 +78,9 @@
?><?cs def:write_constant_summary(fields, included) ?>
<?cs set:count = #1 ?>
<?cs each:field=fields ?>
- <tr <?cs
- if:field.since
- ?>data-version-added="<?cs var:field.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:field.since ?>"<?cs
+ if:field.since ?>
+ data-version-added="<?cs var:field.since ?>"<?cs
/if ?><?cs
if:field.deprecatedsince
?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
@@ -100,9 +101,9 @@
?><?cs def:write_attr_summary(attrs, included) ?>
<?cs set:count = #1 ?>
<?cs each:attr=attrs ?>
- <tr <?cs
- if:attr.since
- ?>data-version-added="<?cs var:attr.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:attr.since ?>"<?cs
+ if:attr.since ?>
+ data-version-added="<?cs var:attr.since ?>"<?cs
/if ?><?cs
if:attr.deprecatedsince
?> data-version-deprecated="<?cs var:attr.deprecatedsince ?>"<?cs
@@ -123,9 +124,9 @@
?><?cs def:write_inners_summary(classes) ?>
<?cs set:count = #1 ?>
<?cs each:cl=class.inners ?>
- <tr <?cs
- if:cl.since
- ?>data-version-added="<?cs var:cl.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+ if:cl.since ?>
+ data-version-added="<?cs var:cl.since ?>"<?cs
/if ?><?cs
if:cl.deprecatedsince
?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
@@ -156,14 +157,18 @@
?>
<?cs def:write_field_details(fields) ?>
<?cs each:field=fields ?>
-<div <?cs
- if:field.since
- ?>data-version-added="<?cs var:field.since ?>"<?cs
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
+<A NAME="<?cs var:field.anchor ?>"></A>
+<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
+<div class="api apilevel-<?cs var:field.since ?>"<?cs
+ if:field.since ?>
+ data-version-added="<?cs var:field.since ?>"<?cs
/if ?><?cs
if:field.deprecatedsince
?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
/if ?> >
- <h3 class="api-name" id="<?cs var:field.anchor ?>"><?cs var:field.name ?></h3>
+ <h3 class="api-name"><?cs var:field.name ?></h3>
<div class="api-level">
<?cs call:since_tags(field) ?>
<?cs call:federated_refs(field) ?>
@@ -191,14 +196,17 @@
<?cs def:write_method_details(methods) ?>
<?cs each:method=methods ?>
-<div <?cs
- if:method.since
- ?>data-version-added="<?cs var:method.since ?>"<?cs
+<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
+<A NAME="<?cs var:method.anchor ?>"></A>
+<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
+<div class="api apilevel-<?cs var:method.since ?>"<?cs
+ if:method.since ?>
+ data-version-added="<?cs var:method.since ?>"<?cs
/if ?><?cs
if:method.deprecatedsince
?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs
/if ?>>
- <h3 class="api-name" id="<?cs var:method.anchor ?>"><?cs var:method.name ?></h3>
+ <h3 class="api-name"><?cs var:method.name ?></h3>
<div class="api-level">
<div><?cs call:since_tags(method) ?></div>
<?cs call:federated_refs(method) ?>
@@ -218,7 +226,9 @@
<?cs def:write_attr_details(attrs) ?>
<?cs each:attr=attrs ?>
-<h3 class="api-name" id="<?cs var:attr.anchor ?>"><?cs var:attr.name ?></h3>
+<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
+<A NAME="<?cs var:attr.anchor ?>"></A>
+<h3 class="api-name"><?cs var:attr.name ?></h3>
<?cs call:show_annotations_list(attr) ?>
<?cs call:description(attr) ?>
<?cs if:subcount(attr.methods) ?>
@@ -257,9 +267,9 @@
<?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?>
<?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?>
<?cs # This DIV spans the entire document to provide scope for some scripts ?>
-<div id="jd-content" <?cs
- if:class.since
- ?>data-version-added="<?cs var:class.since ?>"<?cs
+<div class="api apilevel-<?cs var:class.since ?>" id="jd-content"<?cs
+ if:class.since ?>
+ data-version-added="<?cs var:class.since ?>"<?cs
/if ?><?cs
if:class.deprecatedsince
?> data-version-deprecated="<?cs var:class.deprecatedsince ?>"<?cs
@@ -413,9 +423,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
<tr><th><h3>Inherited XML attributes</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.attrs) ?>
-<tr <?cs
- if:cl.since
- ?>data-version-added="<?cs var:cl.since ?>"<?cs
+<tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+ if:cl.since ?>
+ data-version-added="<?cs var:cl.since ?>"<?cs
/if ?><?cs
if:cl.deprecatedsince
?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
@@ -442,9 +452,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
<tr><th colspan="2"><h3>Enum values</h3></th></tr>
<?cs set:count = #1 ?>
<?cs each:field=class.enumConstants ?>
- <tr <?cs
- if:field.since
- ?>data-version-added="<?cs var:field.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:field.since ?>"<?cs
+ if:field.since ?>
+ data-version-added="<?cs var:field.since ?>"<?cs
/if ?><?cs
if:field.deprecatedsince
?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
@@ -477,9 +487,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
<tr><th><h3>Inherited constants</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.constants) ?>
- <tr <?cs
- if:cl.since
- ?>data-version-added="<?cs var:cl.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+ if:cl.since ?>
+ data-version-added="<?cs var:cl.since ?>"<?cs
/if ?><?cs
if:cl.deprecatedsince
?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
@@ -516,9 +526,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
<tr><th><h3>Inherited fields</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.fields) ?>
- <tr <?cs
- if:cl.since
- ?>data-version-added="<?cs var:cl.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+ if:cl.since ?>
+ data-version-added="<?cs var:cl.since ?>"<?cs
/if ?><?cs
if:cl.deprecatedsince
?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
@@ -582,9 +592,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
<tr><th><h3>Inherited methods</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.methods) ?>
-<tr <?cs
- if:cl.since
- ?>data-version-added="<?cs var:cl.since ?>"<?cs
+<tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+ if:cl.since ?>
+ data-version-added="<?cs var:cl.since ?>"<?cs
/if ?><?cs
if:cl.deprecatedsince
?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
@@ -685,6 +695,31 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
</div><!-- end jd-content -->
+<?cs if:devsite ?>
+
+<div class="data-reference-resources-wrapper">
+ <?cs if:subcount(class.package) ?>
+ <ul data-reference-resources>
+ <?cs call:list("Annotations", class.package.annotations) ?>
+ <?cs call:list("Interfaces", class.package.interfaces) ?>
+ <?cs call:list("Classes", class.package.classes) ?>
+ <?cs call:list("Enums", class.package.enums) ?>
+ <?cs call:list("Exceptions", class.package.exceptions) ?>
+ <?cs call:list("Errors", class.package.errors) ?>
+ </ul>
+ <?cs elif:subcount(package) ?>
+ <ul data-reference-resources>
+ <?cs call:class_link_list("Annotations", package.annotations) ?>
+ <?cs call:class_link_list("Interfaces", package.interfaces) ?>
+ <?cs call:class_link_list("Classes", package.classes) ?>
+ <?cs call:class_link_list("Enums", package.enums) ?>
+ <?cs call:class_link_list("Exceptions", package.exceptions) ?>
+ <?cs call:class_link_list("Errors", package.errors) ?>
+ </ul>
+ <?cs /if ?>
+</div>
+<?cs /if ?>
+
<?cs if:!devsite ?>
<?cs include:"footer.cs" ?>
<?cs include:"trailer.cs" ?>
diff --git a/res/assets/templates-sdk/classes.cs b/res/assets/templates-sdk/classes.cs
index f10eb71..bc6b98d 100644
--- a/res/assets/templates-sdk/classes.cs
+++ b/res/assets/templates-sdk/classes.cs
@@ -11,15 +11,22 @@
<p>These are the API classes. See all
<a href="packages.html">API packages</a>.</p>
+<div class="jd-letterlist"><?cs
+ each:letter=docs.classes ?>
+ <a href="#letter_<?cs name:letter ?>"><?cs
+ name:letter ?></a>&nbsp;&nbsp;<?cs
+ /each?>
+</div>
+
<?cs each:letter=docs.classes ?>
<?cs set:count = #1 ?>
<h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2>
<table>
<?cs set:cur_row = #0 ?>
<?cs each:cl = letter ?>
- <tr <?cs
- if:cl.since
- ?>data-version-added="<?cs var:cl.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
+ if:cl.since ?>
+ data-version-added="<?cs var:cl.since ?>"<?cs
/if ?><?cs
if:cl.deprecatedsince
?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
diff --git a/res/assets/templates-sdk/head_tag.cs b/res/assets/templates-sdk/head_tag.cs
index 374218b..bb698b9 100644
--- a/res/assets/templates-sdk/head_tag.cs
+++ b/res/assets/templates-sdk/head_tag.cs
@@ -20,7 +20,8 @@ if:devsite ?><?cs
if:library.root ?>
{% setvar book_path %}/reference/<?cs var:library.root ?>/_book.yaml{% endsetvar %}<?cs
/if ?>
- {% include "_shared/_reference-head-tags.html" %}<?cs
+ {% include "_shared/_reference-head-tags.html" %}
+ <meta name="body_class" value="api apilevel-<?cs var:class.since ?><?cs var:package.since ?>" /><?cs
else ?><?cs # If NOT dac... ?>
<meta name="hide_page_heading" value="true" />
<meta name="book_path" value="<?cs
diff --git a/res/assets/templates-sdk/macros_override.cs b/res/assets/templates-sdk/macros_override.cs
index 8ef81cf..b475798 100644
--- a/res/assets/templates-sdk/macros_override.cs
+++ b/res/assets/templates-sdk/macros_override.cs
@@ -23,9 +23,9 @@
<?cs set:count = #1 ?>
<table class="jd-sumtable-expando">
<?cs each:cl=classes ?>
- <tr <?cs
- if:cl.type.since
- ?>data-version-added="<?cs var:cl.type.since ?>"<?cs
+ <tr class="api apilevel-<?cs var:cl.type.since ?>"<?cs
+ if:cl.type.since ?>
+ data-version-added="<?cs var:cl.type.since ?>"<?cs
/if ?><?cs
if:cl.type.deprecatedsince
?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs
diff --git a/res/assets/templates-sdk/package.cs b/res/assets/templates-sdk/package.cs
index 7595e40..ab66449 100644
--- a/res/assets/templates-sdk/package.cs
+++ b/res/assets/templates-sdk/package.cs
@@ -15,9 +15,9 @@
<?cs include:"header.cs" ?>
<?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?>
<?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?>
-<div id="jd-content" <?cs
- if:package.since
- ?>data-version-added="<?cs var:package.since ?>"<?cs
+<div class="api apilevel-<?cs var:package.since ?>" id="jd-content"<?cs
+ if:package.since ?>
+ data-version-added="<?cs var:package.since ?>"<?cs
/if ?><?cs
if:package.deprecatedsince
?> data-version-deprecated="<?cs var:package.deprecatedsince ?>"<?cs
diff --git a/res/assets/templates-sdk/packages.cs b/res/assets/templates-sdk/packages.cs
index caf8fba..3fcfb81 100644
--- a/res/assets/templates-sdk/packages.cs
+++ b/res/assets/templates-sdk/packages.cs
@@ -13,13 +13,7 @@ See all <a href="classes.html">API classes</a>.</p>
<?cs set:count = #1 ?>
<table>
<?cs each:pkg = docs.packages ?>
- <tr <?cs
- if:pkg.since
- ?>data-version-added="<?cs var:pkg.since ?>"<?cs
- /if ?><?cs
- if:pkg.deprecatedsince
- ?> data-version-deprecated="<?cs var:pkg.deprecatedsince ?>"<?cs
- /if ?> >
+ <tr class="api apilevel-<?cs var:pkg.since ?>" >
<td class="jd-linkcol"><?cs call:package_link(pkg) ?></td>
<td class="jd-descrcol" width="100%"><?cs call:tag_list(pkg.shortDescr) ?></td>
</tr>
diff --git a/res/assets/templates/macros.cs b/res/assets/templates/macros.cs
index 13a884f..6590b51 100644
--- a/res/assets/templates/macros.cs
+++ b/res/assets/templates/macros.cs
@@ -393,13 +393,7 @@ def:class_link_table(classes) ?><?cs
set:count = #1 ?>
<table class="jd-sumtable-expando"><?cs
each:cl=classes ?>
- <tr <?cs
- if:cl.type.since
- ?>data-version-added="<?cs var:cl.type.since ?>"<?cs
- /if ?><?cs
- if:cl.type.deprecatedsince
- ?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs
- /if ?> >
+ <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.type.since ?>" >
<td><?cs call:type_link(cl.type) ?></td>
<td width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
</tr><?cs set:count = count + #1 ?><?cs
@@ -413,7 +407,7 @@ def:class_link_list(label, classes) ?><?cs
<li><h2 class="hide-from-toc"><?cs var:label ?></h2>
<ul><?cs
each:cl=classes ?>
- <li><?cs call:type_link2(cl.type,"true") ?></li><?cs
+ <li class="api apilevel-<?cs var:cl.type.since ?>"><?cs call:type_link2(cl.type,"true") ?></li><?cs
/each ?>
</ul>
</li><?cs
@@ -426,7 +420,7 @@ def:list(label, classes) ?><?cs
<li><h2 class="hide-from-toc"><?cs var:label ?></h2>
<ul><?cs
each:cl=classes ?>
- <li<?cs if:class.name == cl.label?> class="selected"<?cs /if ?>><?cs call:type_link2(cl,"true") ?></li><?cs
+ <li class="<?cs if:class.name == cl.label?>selected <?cs /if ?>api apilevel-<?cs var:cl.since ?>"><?cs call:type_link2(cl,"true") ?></li><?cs
/each ?>
</ul>
</li><?cs
@@ -436,7 +430,7 @@ def:list(label, classes) ?><?cs
# A list of links to packages, for use in the side navigation of packages (panel nav) ?><?cs
def:package_link_list(packages) ?><?cs
each:pkg=packages ?>
- <li<?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?> class="selected"<?cs /if ?>><?cs call:package_link(pkg) ?></li><?cs
+ <li class="<?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?>selected <?cs /if ?>api apilevel-<?cs var:pkg.since ?>"><?cs call:package_link(pkg) ?></li><?cs
/each ?><?cs
/def ?>
diff --git a/src/com/google/doclava/AndroidAuxSource.java b/src/com/google/doclava/AndroidAuxSource.java
index cfcc0ac..1c97b18 100644
--- a/src/com/google/doclava/AndroidAuxSource.java
+++ b/src/com/google/doclava/AndroidAuxSource.java
@@ -146,12 +146,11 @@ public class AndroidAuxSource implements AuxSource {
// Document required permissions
if ((type == TYPE_CLASS || type == TYPE_METHOD || type == TYPE_FIELD)
&& annotation.type().qualifiedNameMatches("android", "annotation.RequiresPermission")) {
- ArrayList<AnnotationValueInfo> values = null;
+ ArrayList<AnnotationValueInfo> values = new ArrayList<>();
boolean any = false;
for (AnnotationValueInfo val : annotation.elementValues()) {
switch (val.element().name()) {
case "value":
- values = new ArrayList<AnnotationValueInfo>();
values.add(val);
break;
case "allOf":
@@ -163,7 +162,7 @@ public class AndroidAuxSource implements AuxSource {
break;
}
}
- if (values == null || values.isEmpty()) continue;
+ if (values.isEmpty()) continue;
ClassInfo permClass = annotation.type().findClass("android.Manifest.permission");
ArrayList<TagInfo> valueTags = new ArrayList<>();
diff --git a/src/com/google/doclava/Doclava.java b/src/com/google/doclava/Doclava.java
index fe63038..fbde7d8 100644
--- a/src/com/google/doclava/Doclava.java
+++ b/src/com/google/doclava/Doclava.java
@@ -121,7 +121,6 @@ public class Doclava {
public static boolean referenceOnly = false;
public static boolean staticOnly = false;
public static boolean yamlV2 = false; /* whether to build the new version of the yaml file */
- public static boolean devsite = false; /* whether to build docs for devsite */
public static AuxSource auxSource = new EmptyAuxSource();
public static Linter linter = new EmptyLinter();
public static boolean android = false;
@@ -195,7 +194,6 @@ public class Doclava {
HashSet<String> stubPackages = null;
HashSet<String> stubImportPackages = null;
boolean stubSourceOnly = false;
- boolean keepStubComments = false;
ArrayList<String> knownTagsFiles = new ArrayList<String>();
root = r;
@@ -304,8 +302,6 @@ public class Doclava {
}
} else if (a[0].equals("-stubsourceonly")) {
stubSourceOnly = true;
- } else if (a[0].equals("-keepstubcomments")) {
- keepStubComments = true;
} else if (a[0].equals("-sdkvalues")) {
sdkValuePath = a[1];
} else if (a[0].equals("-api")) {
@@ -382,7 +378,6 @@ public class Doclava {
} else if (a[0].equals("-yamlV2")) {
yamlV2 = true;
} else if (a[0].equals("-devsite")) {
- devsite = true;
// Don't copy any assets to devsite output
includeAssets = false;
USE_DEVSITE_LOCALE_OUTPUT_PATHS = true;
@@ -392,8 +387,7 @@ public class Doclava {
System.out.println(" ... Generating static html only for devsite");
}
if (yamlNavFile == null) {
- // Use _toc.yaml as default to avoid clobbering possible manual _book.yaml files
- yamlNavFile = "_toc.yaml";
+ yamlNavFile = "_book.yaml";
}
} else if (a[0].equals("-android")) {
auxSource = new AndroidAuxSource();
@@ -431,8 +425,9 @@ public class Doclava {
}
// If no custom template path is provided, and this is a devsite build,
// then use the bundled templates-sdk/ files by default
- if (templates.isEmpty() && devsite) {
+ if (templates.isEmpty() && USE_DEVSITE_LOCALE_OUTPUT_PATHS) {
resourceLoaders.add(new ClassResourceLoader(Doclava.class, "/assets/templates-sdk"));
+ System.out.println("\n######### OK, Using templates-sdk ############\n");
}
templates = ClearPage.getBundledTemplateDirs();
@@ -453,11 +448,7 @@ public class Doclava {
if (NAVTREE_ONLY) {
if (AT_LINKS_NAVTREE) {
AtLinksNavTree.writeAtLinksNavTree(javadocDir);
- } else if (yamlV2) {
- // Generate DAC-formatted left-nav for devsite
- NavTree.writeYamlTree2(javadocDir, yamlNavFile);
} else {
- // This shouldn't happen; this is the legacy DAC left nav file
NavTree.writeNavTree(javadocDir, "");
}
return true;
@@ -528,19 +519,17 @@ public class Doclava {
} else if(gcmRef){
refPrefix = "gcm-";
}
+ NavTree.writeNavTree(javadocDir, refPrefix);
// Write yaml tree.
- if (yamlNavFile != null) {
+ if (yamlNavFile != null){
+ NavTree.writeYamlTree(javadocDir, yamlNavFile);
if (yamlV2) {
- // Generate DAC-formatted left-nav for devsite
+ // Generate both for good measure, to make transitions easier, but change the filename
+ // for the new one so there's yet another explicit opt-in required by fixing the name.
+ yamlNavFile = "_NEW" + yamlNavFile;
NavTree.writeYamlTree2(javadocDir, yamlNavFile);
- } else {
- // Generate legacy devsite left-nav (shows sub-classes nested under parent class)
- NavTree.writeYamlTree(javadocDir, yamlNavFile);
}
- } else {
- // This shouldn't happen; this is the legacy DAC left nav file
- NavTree.writeNavTree(javadocDir, refPrefix);
}
// Packages Pages
@@ -568,7 +557,7 @@ public class Doclava {
if (!sTaglist.isEmpty()) {
PageMetadata.WriteListByLang(sTaglist);
// For devsite (ds) reference only, write samples_metadata to out dir
- if ((devsite) && (!DEVSITE_STATIC_ONLY)) {
+ if ((USE_DEVSITE_LOCALE_OUTPUT_PATHS) && (!DEVSITE_STATIC_ONLY)) {
PageMetadata.WriteSamplesListByLang(sTaglist);
}
}
@@ -580,7 +569,7 @@ public class Doclava {
|| privateApiFile != null || privateDexApiFile != null || apiMappingFile != null) {
Stubs.writeStubsAndApi(stubsDir, apiFile, dexApiFile, proguardFile, removedApiFile,
removedDexApiFile, exactApiFile, privateApiFile, privateDexApiFile, apiMappingFile,
- stubPackages, stubImportPackages, stubSourceOnly, keepStubComments);
+ stubPackages, stubImportPackages, stubSourceOnly);
}
Errors.printErrors();
@@ -869,9 +858,6 @@ public class Doclava {
if (option.equals("-stubsourceonly")) {
return 1;
}
- if (option.equals("-keepstubcomments")) {
- return 1;
- }
if (option.equals("-sdkvalues")) {
return 2;
}
@@ -1220,7 +1206,7 @@ public class Doclava {
// Write the lists for JD documents (if there are HTML directories to process)
// Skip this for devsite builds
- if ((inputPathHtmlDirs.size() > 0) && (!devsite)) {
+ if ((inputPathHtmlDirs.size() > 0) && (!USE_DEVSITE_LOCALE_OUTPUT_PATHS)) {
Data jddata = makeHDF();
Iterator counter = new Iterator();
for (String htmlDir : inputPathHtmlDirs) {
@@ -1582,11 +1568,8 @@ public class Doclava {
setPageTitle(data, "Class Index");
ClearPage.write(data, "classes.cs", packageDir + "classes" + htmlExtension);
- if (!devsite) {
- // Index page redirects to the classes.html page, so use the same directory
- // This page is not needed for devsite builds, which should instead use _redirects.yaml
- writeIndex(packageDir);
- }
+ // Index page redirects to the classes.html page, so use the same directory
+ writeIndex(packageDir);
}
// we use the word keywords because "index" means something else in html land
diff --git a/src/com/google/doclava/MemberInfo.java b/src/com/google/doclava/MemberInfo.java
index 2854ab5..797b1b9 100644
--- a/src/com/google/doclava/MemberInfo.java
+++ b/src/com/google/doclava/MemberInfo.java
@@ -59,7 +59,7 @@ public abstract class MemberInfo extends DocInfo implements Comparable, Scoped {
public String anchor() {
if (mSignature != null) {
- return mName + mSignature.replace(" ", "%20");
+ return mName + mSignature;
} else {
return mName;
}
diff --git a/src/com/google/doclava/NavTree.java b/src/com/google/doclava/NavTree.java
index 3375df5..b4861c8 100644
--- a/src/com/google/doclava/NavTree.java
+++ b/src/com/google/doclava/NavTree.java
@@ -26,7 +26,6 @@ import java.util.TreeMap;
public class NavTree {
- /* @deprecated This method was used for an older version of DAC, circa 2012, retired May 2018 */
public static void writeNavTree(String dir, String refPrefix) {
List<Node> children = new ArrayList<Node>();
for (PackageInfo pkg : Doclava.choosePackages()) {
diff --git a/src/com/google/doclava/Stubs.java b/src/com/google/doclava/Stubs.java
index 930d52c..0ef3749 100644
--- a/src/com/google/doclava/Stubs.java
+++ b/src/com/google/doclava/Stubs.java
@@ -49,8 +49,7 @@ public class Stubs {
public static void writeStubsAndApi(String stubsDir, String apiFile, String dexApiFile,
String keepListFile, String removedApiFile, String removedDexApiFile, String exactApiFile,
String privateApiFile, String privateDexApiFile, String apiMappingFile,
- HashSet<String> stubPackages, HashSet<String> stubImportPackages, boolean stubSourceOnly,
- boolean keepStubComments) {
+ HashSet<String> stubPackages, HashSet<String> stubImportPackages, boolean stubSourceOnly) {
// figure out which classes we need
final HashSet<ClassInfo> notStrippable = new HashSet<ClassInfo>();
Collection<ClassInfo> all = Converter.allClasses();
@@ -260,7 +259,7 @@ public class Stubs {
if (shouldWriteStub(cl.containingPackage().name(), stubPackages, stubPackageWildcards)) {
// write out the stubs
if (stubsDir != null) {
- writeClassFile(stubsDir, notStrippable, cl, keepStubComments);
+ writeClassFile(stubsDir, notStrippable, cl);
}
// build class list for api file or keep list file
if (apiWriter != null || dexApiWriter != null || keepListWriter != null) {
@@ -589,7 +588,7 @@ public class Stubs {
return dir + cl.name() + ".java";
}
- static void writeClassFile(String stubsDir, HashSet<ClassInfo> notStrippable, ClassInfo cl, boolean keepStubComments) {
+ static void writeClassFile(String stubsDir, HashSet<ClassInfo> notStrippable, ClassInfo cl) {
// inner classes are written by their containing class
if (cl.containingClass() != null) {
return;
@@ -609,7 +608,7 @@ public class Stubs {
PrintStream stream = null;
try {
stream = new PrintStream(new BufferedOutputStream(new FileOutputStream(file)));
- writeClassFile(stream, notStrippable, cl, keepStubComments);
+ writeClassFile(stream, notStrippable, cl);
} catch (FileNotFoundException e) {
System.err.println("error writing file: " + filename);
} finally {
@@ -619,7 +618,7 @@ public class Stubs {
}
}
- static void writeClassFile(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl, boolean keepStubComments) {
+ static void writeClassFile(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl) {
PackageInfo pkg = cl.containingPackage();
if (cl.containingClass() == null) {
stream.print(parseLicenseHeader(cl.position()));
@@ -627,7 +626,7 @@ public class Stubs {
if (pkg != null) {
stream.println("package " + pkg.name() + ";");
}
- writeClass(stream, notStrippable, cl, keepStubComments);
+ writeClass(stream, notStrippable, cl);
}
private static String parseLicenseHeader(/* @Nonnull */ SourcePositionInfo positionInfo) {
@@ -678,11 +677,7 @@ public class Stubs {
return builder.toString();
}
- static void writeClass(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl, boolean keepStubComments) {
- if (keepStubComments) {
- writeComment(stream, cl);
- }
-
+ static void writeClass(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl) {
writeAnnotations(stream, cl.annotations(), cl.isDeprecated());
stream.print(cl.scope() + " ");
@@ -757,14 +752,14 @@ public class Stubs {
for (ClassInfo inner : cl.getRealInnerClasses()) {
if (notStrippable.contains(inner) && !inner.isDocOnly()) {
- writeClass(stream, notStrippable, inner, keepStubComments);
+ writeClass(stream, notStrippable, inner);
}
}
for (MethodInfo method : cl.constructors()) {
if (!method.isDocOnly()) {
- writeMethod(stream, method, true, keepStubComments);
+ writeMethod(stream, method, true);
}
}
@@ -811,7 +806,7 @@ public class Stubs {
}
}
if (!method.isDocOnly()) {
- writeMethod(stream, method, false, keepStubComments);
+ writeMethod(stream, method, false);
}
}
// Write all methods that are hidden or removed, but override abstract methods or interface methods.
@@ -828,7 +823,7 @@ public class Stubs {
(overriddenMethod.isAbstract() || overriddenMethod.containingClass().isInterface())) {
method.setReason("1:" + classContainingMethod.qualifiedName());
cl.addMethod(method);
- writeMethod(stream, method, false, keepStubComments);
+ writeMethod(stream, method, false);
}
}
@@ -840,7 +835,7 @@ public class Stubs {
for (FieldInfo field : cl.selfFields()) {
if (!field.isDocOnly()) {
- writeField(stream, field, keepStubComments);
+ writeField(stream, field);
}
}
@@ -858,10 +853,7 @@ public class Stubs {
stream.println("}");
}
- static void writeMethod(PrintStream stream, MethodInfo method, boolean isConstructor, boolean keepStubComments) {
- if (keepStubComments) {
- writeComment(stream, method);
- }
+ static void writeMethod(PrintStream stream, MethodInfo method, boolean isConstructor) {
String comma;
writeAnnotations(stream, method.annotations(), method.isDeprecated());
@@ -932,10 +924,7 @@ public class Stubs {
}
}
- static void writeField(PrintStream stream, FieldInfo field, boolean keepStubComments) {
- if (keepStubComments) {
- writeComment(stream, field);
- }
+ static void writeField(PrintStream stream, FieldInfo field) {
writeAnnotations(stream, field.annotations(), field.isDeprecated());
stream.print(field.scope() + " ");
@@ -1101,16 +1090,6 @@ public class Stubs {
stream.println(";");
}
- static void writeComment(PrintStream stream, DocInfo doc) {
- if (!doc.isHiddenOrRemoved() && !doc.comment().isDocOnly() && !"".equals(doc.getRawCommentText())) {
- String newLineSeparator = System.getProperty("line.separator");
- stream.println("/**");
- stream.print(" * ");
- stream.println(doc.getRawCommentText().replace(newLineSeparator, newLineSeparator + " *"));
- stream.println(" */");
- }
- }
-
public static void writeXml(PrintStream xmlWriter, Collection<PackageInfo> pkgs, boolean strip) {
if (strip) {
Stubs.writeXml(xmlWriter, pkgs);