am 4038aa8f: Enabled incrementals to patch + rename moved files
* commit '4038aa8fff8c68733bff8b55d8c8d1b59713ca37':
Enabled incrementals to patch + rename moved files
diff --git a/core/droiddoc.mk b/core/droiddoc.mk
index 0d3094d..fd7f338 100644
--- a/core/droiddoc.mk
+++ b/core/droiddoc.mk
@@ -231,6 +231,8 @@
@mkdir -p $(dir $@)
$(hide) ( F=$$(pwd)/$@ ; cd $(PRIVATE_DOCS_DIR) && zip -rq $$F * )
+$(LOCAL_MODULE)-docs.zip : $(out_zip)
+
$(call dist-for-goals,docs,$(out_zip))
endif
diff --git a/tools/droiddoc/templates-ds/jd_lists_unified.cs b/tools/droiddoc/templates-ds/jd_lists_unified.cs
new file mode 100644
index 0000000..417a5c1
--- /dev/null
+++ b/tools/droiddoc/templates-ds/jd_lists_unified.cs
@@ -0,0 +1 @@
+<?cs var:reference_tree ?>
diff --git a/tools/droiddoc/templates-pdk/jd_lists_unified.cs b/tools/droiddoc/templates-pdk/jd_lists_unified.cs
new file mode 100644
index 0000000..417a5c1
--- /dev/null
+++ b/tools/droiddoc/templates-pdk/jd_lists_unified.cs
@@ -0,0 +1 @@
+<?cs var:reference_tree ?>
diff --git a/tools/droiddoc/templates-sac/jd_lists_unified.cs b/tools/droiddoc/templates-sac/jd_lists_unified.cs
new file mode 100644
index 0000000..417a5c1
--- /dev/null
+++ b/tools/droiddoc/templates-sac/jd_lists_unified.cs
@@ -0,0 +1 @@
+<?cs var:reference_tree ?>
diff --git a/tools/droiddoc/templates-sdk/assets/css/default.css b/tools/droiddoc/templates-sdk/assets/css/default.css
index ba1cbac..0cecca6 100644
--- a/tools/droiddoc/templates-sdk/assets/css/default.css
+++ b/tools/droiddoc/templates-sdk/assets/css/default.css
@@ -428,6 +428,10 @@
border-bottom:0;
padding:0;
}
+.content-header > div:first-child {
+ height:55px; /* set fixed height for the header div to ensure the
+ next/prev links align with toc on training classes */
+}
.content-footer {
border-top: 1px solid #ccc;
@@ -1167,6 +1171,9 @@
margin-top:5px;
margin-bottom:5px;
}
+dl dd dl:first-child {
+ margin-top:0;
+}
pre strong, pre b, a strong, a b, a code {
color: inherit;
}
@@ -1821,7 +1828,7 @@
}
#tb-wrapper {
- margin:-27px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */
+ margin:-29px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */
}
#tb,
@@ -1894,6 +1901,10 @@
font-size:inherit;
}
+.sidebox > *:last-child {
+ margin-bottom:0;
+}
+
#tb ol,
#tb ul,
#qv ul {
@@ -2256,12 +2267,16 @@
/* nav tree */
-#side-nav, #devdoc-nav, #swapper,
+#side-nav, #swapper,
#nav-tree, #tree-list {
overflow:hidden;
margin-left:0;
}
+#devdoc-nav {
+ overflow:visible !important; /* To keep the "to top" button visible */
+}
+
#nav-tree ul {
list-style:none;
padding:0;
@@ -2494,7 +2509,7 @@
}
/* --------------------------------------------------------------------------
-Styles for samples project trees and code browsing in resources tab
+Styles for samples browser
*/
#codesample-wrapper {
@@ -2540,6 +2555,30 @@
display:inline-block;
}
+/*
+Styles for displaying image or video resources in samples browser.
+Resources are marked as no-display if they exceed the size limit.
+*/
+div#codesample-resource img, div#codesample-resource video {
+ border: 1px solid #ececec;
+}
+
+div#codesample-resource.noDisplay div {
+ border: 1px solid #ececec;
+ width:120px;
+ margin-bottom:4px;
+ padding:20px;
+}
+
+div#codesample-resource .noDisplay-message:after {
+ font-style:italic;
+ font-size:12px;
+ content: 'This resource is not available for browsing. To view it, please download the project.';
+}
+
+/*
+Styles for project structure (treeview) page
+*/
.structure-dir {
background-image:url(../../assets/images/folder.png);
background-repeat:no-repeat;
@@ -2868,7 +2907,9 @@
}
/* notice box for cross links between Design/Develop docs */
+a.notice-developers-video,
a.notice-developers,
+a.notice-designers-video,
a.notice-designers {
float:right;
clear:right;
@@ -2877,11 +2918,15 @@
margin:0 0 20px 20px;
border:1px solid #ddd;
}
+a.notice-developers-video.wide,
a.notice-developers.wide,
+a.notice-designers-video.wide,
a.notice-designers.wide {
width:278px;
}
+a.notice-developers-video div,
a.notice-developers div,
+a.notice-designers-video div,
a.notice-designers div {
min-height:40px;
background:url('../images/styles/notice-developers@2x.png') no-repeat 10px 10px;
@@ -2892,24 +2937,41 @@
background:url('../images/styles/notice-designers@2x.png') no-repeat 10px 10px;
background-size:40px 40px;
}
+a.notice-designers-video div {
+ background:url('../images/styles/notice-designers-video@2x.png') no-repeat 10px 10px;
+ background-size:40px 40px;
+}
+a.notice-developers-video div {
+ background:url('../images/styles/notice-developers-video@2x.png') no-repeat 10px 10px;
+ background-size:40px 40px;
+}
+a.notice-developers-video:hover,
a.notice-developers:hover,
+a.notice-designers-video:hover,
a.notice-designers:hover {
background:#eee;
}
+a.notice-developers-video h3,
a.notice-developers h3,
+a.notice-designers-video h3,
a.notice-designers h3 {
- font-size:14px;
- font-weight:normal;
+ font-size:13px;
+ line-height:18px;
+ font-weight:bold;
text-transform:uppercase;
color:#000 !important;
- margin:0;
+ margin:0 0 1px;
}
+a.notice-developers-video p,
a.notice-developers p,
+a.notice-designers-video p,
a.notice-designers p {
margin:0;
- line-height:16px;
+ line-height:14px;
}
+a.notice-developers-video.left,
a.notice-developers.left,
+a.notice-designers-video.left,
a.notice-designers.left {
margin-left:0;
float:left;
@@ -4765,25 +4827,32 @@
.landing-banner,
.landing-docs {
- margin:20px 0 0;
+ margin:20px 0;
}
-.landing-banner div:first-child,
-.landing-docs div:first-child,
-.landing-docs .col-12 {
+.landing-banner > div:first-child,
+.landing-docs > div:first-child,
+.landing-docs > .col-12 {
margin-left:0;
min-height:280px;
}
-.landing-banner div:last-child,
-.landing-docs div:last-child,
-.landing-docs .col-12 {
+.landing-banner.short > div {
+ min-height:50px;
+}
+.landing-banner > div:last-child,
+.landing-docs > div:last-child,
+.landing-docs > .col-12 {
margin-right:0;
}
+.landing-banner > div > *:last-child {
+ margin-bottom:0;
+}
.landing-banner h1 {
margin-top:0;
}
-.landing-docs {
- clear:left;
+.landing-docs,
+.landing-banner {
+ clear:both;
overflow:hidden;
}
.landing-docs h3 {
@@ -4813,6 +4882,32 @@
+.next-docs {
+ border-top:1px solid #ccc;
+ margin:40px 0 0;
+ padding:5px 0 0;
+ clear:left;
+ overflow:hidden;
+}
+.next-docs div:first-child {
+ margin-left:0;
+}
+.next-docs div:last-child {
+ margin-right:0;
+}
+
+.next-docs h2 {
+ font-size:14px;
+ line-height:21px;
+ color:#555;
+ text-transform:uppercase;
+ border-bottom:none;
+ margin:0;
+ padding:5px 0 0;
+}
+
+
+
/************* HOME/LANDING PAGE *****************/
.slideshow-home {
diff --git a/tools/droiddoc/templates-sdk/assets/images/styles/notice-designers-video.png b/tools/droiddoc/templates-sdk/assets/images/styles/notice-designers-video.png
new file mode 100644
index 0000000..eea3485
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/assets/images/styles/notice-designers-video.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/styles/notice-designers-video@2x.png b/tools/droiddoc/templates-sdk/assets/images/styles/notice-designers-video@2x.png
new file mode 100644
index 0000000..a5fdae3
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/assets/images/styles/notice-designers-video@2x.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/styles/notice-developers-video.png b/tools/droiddoc/templates-sdk/assets/images/styles/notice-developers-video.png
new file mode 100644
index 0000000..e9f8ed2
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/assets/images/styles/notice-developers-video.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/styles/notice-developers-video@2x.png b/tools/droiddoc/templates-sdk/assets/images/styles/notice-developers-video@2x.png
new file mode 100644
index 0000000..c067ac1
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/assets/images/styles/notice-developers-video@2x.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index 8c00da7..6630bf9 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -23,7 +23,7 @@
$(document).ready(function() {
// load json file for JD doc search suggestions
- $.getScript(toRoot + 'reference/jd_lists.js');
+ $.getScript(toRoot + 'jd_lists_unified.js');
// load json file for Android API search suggestions
$.getScript(toRoot + 'reference/lists.js');
// load json files for Google services API suggestions
@@ -1539,6 +1539,13 @@
$link.attr('href',toroot + match.link);
}
+function set_item_values_jd(toroot, $li, match)
+{
+ var $link = $('a',$li);
+ $link.html(match.title);
+ $link.attr('href',toroot + match.url);
+}
+
function new_suggestion($list) {
var $li = $("<li class='jd-autocomplete'></li>");
$list.append($li);
@@ -1615,6 +1622,9 @@
$(".search_filtered_wrapper.docs li").remove();
// determine google results to show
+ // NOTE: The order of the conditions below for the sugg.type MUST BE SPECIFIC:
+ // The order must match the reverse order that each section appears as a card in
+ // the suggestion UI... this may be only for the "develop" grouped items though.
gDocsListLength = gDocsMatches.length < ROW_COUNT_DOCS ? gDocsMatches.length : ROW_COUNT_DOCS;
for (i=0; i<gDocsListLength; i++) {
var sugg = gDocsMatches[i];
@@ -1625,16 +1635,19 @@
if (sugg.type == "distribute") {
$li = new_suggestion($(".suggest-card.distribute ul"));
} else
+ if (sugg.type == "samples") {
+ $li = new_suggestion($(".suggest-card.develop .child-card.samples"));
+ } else
if (sugg.type == "training") {
$li = new_suggestion($(".suggest-card.develop .child-card.training"));
} else
- if (sugg.type == "guide"||"google") {
+ if (sugg.type == "about"||"guide"||"tools"||"google") {
$li = new_suggestion($(".suggest-card.develop .child-card.guides"));
} else {
continue;
}
- set_item_values(toroot, $li, sugg);
+ set_item_values_jd(toroot, $li, sugg);
set_item_selected($li, i == gSelectedIndex);
}
@@ -1659,6 +1672,10 @@
$(".child-card.training").prepend("<li class='header'>Training:</li>");
$(".child-card.training li").appendTo(".suggest-card.develop ul");
}
+ if ($(".child-card.samples li").length > 0) {
+ $(".child-card.samples").prepend("<li class='header'>Samples:</li>");
+ $(".child-card.samples li").appendTo(".suggest-card.develop ul");
+ }
if ($(".suggest-card.develop li").length > 0) {
$(".suggest-card.develop").show(300);
@@ -1681,6 +1698,7 @@
*/
function search_changed(e, kd, toroot)
{
+ var currentLang = getLangPref();
var search = document.getElementById("search_autocomplete");
var text = search.value.replace(/(^ +)|( +$)/g, '');
// get the ul hosting the currently selected item
@@ -1794,8 +1812,8 @@
}
}
- // if key-up event and not arrow down/up,
- // read the search query and add suggestsions to gMatches
+ // if key-up event and not arrow down/up/left/right,
+ // read the search query and add suggestions to gMatches
else if (!kd && (e.keyCode != 40)
&& (e.keyCode != 38)
&& (e.keyCode != 37)
@@ -1841,31 +1859,35 @@
- // Search for JD docs
+ // Search for matching JD docs
if (text.length >= 3) {
- for (var i=0; i<JD_DATA.length; i++) {
- // Regex to match only the beginning of a word
- var textRegex = new RegExp("\\b" + text.toLowerCase(), "g");
+ // Regex to match only the beginning of a word
+ var textRegex = new RegExp("\\b" + text.toLowerCase(), "g");
+
+
+ // Search for Training classes
+ for (var i=0; i<TRAINING_RESOURCES.length; i++) {
// current search comparison, with counters for tag and title,
// used later to improve ranking
- var s = JD_DATA[i];
+ var s = TRAINING_RESOURCES[i];
s.matched_tag = 0;
s.matched_title = 0;
var matched = false;
// Check if query matches any tags; work backwards toward 1 to assist ranking
- for (var j = s.tags.length - 1; j >= 0; j--) {
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
// it matches a tag
- if (s.tags[j].toLowerCase().match(textRegex)) {
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
matched = true;
s.matched_tag = j + 1; // add 1 to index position
}
}
- // Don't consider doc title for lessons (only for class landing pages)
- // ...it is not a training lesson (or is but has matched a tag)
- if (!(s.type == "training" && s.link.indexOf("index.html") == -1) || matched) {
+ // Don't consider doc title for lessons (only for class landing pages),
+ // unless the lesson has a tag that already matches
+ if ((s.lang == currentLang) &&
+ (!(s.type == "training" && s.url.indexOf("index.html") == -1) || matched)) {
// it matches the doc title
- if (s.label.toLowerCase().match(textRegex)) {
+ if (s.title.toLowerCase().match(textRegex)) {
matched = true;
s.matched_title = 1;
}
@@ -1875,6 +1897,231 @@
matchedCountDocs++;
}
}
+
+
+ // Search for API Guides
+ for (var i=0; i<GUIDE_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = GUIDE_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+
+ // Search for Tools Guides
+ for (var i=0; i<TOOLS_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = TOOLS_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+
+ // Search for About docs
+ for (var i=0; i<ABOUT_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = ABOUT_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+
+ // Search for Design guides
+ for (var i=0; i<DESIGN_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = DESIGN_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+
+ // Search for Distribute guides
+ for (var i=0; i<DISTRIBUTE_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = DISTRIBUTE_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+
+ // Search for Google guides
+ for (var i=0; i<GOOGLE_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = GOOGLE_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+
+ // Search for Samples
+ for (var i=0; i<SAMPLES_RESOURCES.length; i++) {
+ // current search comparison, with counters for tag and title,
+ // used later to improve ranking
+ var s = SAMPLES_RESOURCES[i];
+ s.matched_tag = 0;
+ s.matched_title = 0;
+ var matched = false;
+ // Check if query matches any tags; work backwards toward 1 to assist ranking
+ for (var j = s.keywords.length - 1; j >= 0; j--) {
+ // it matches a tag
+ if (s.keywords[j].toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_tag = j + 1; // add 1 to index position
+ }
+ }
+ // Check if query matches the doc title, but only for current language
+ if (s.lang == currentLang) {
+ // if query matches the doc title.t
+ if (s.title.toLowerCase().match(textRegex)) {
+ matched = true;
+ s.matched_title = 1;
+ }
+ }
+ if (matched) {
+ gDocsMatches[matchedCountDocs] = s;
+ matchedCountDocs++;
+ }
+ }
+
+ // Rank/sort all the matched pages
rank_autocomplete_doc_results(text, gDocsMatches);
}
@@ -2382,7 +2629,8 @@
// Grey things out that aren't available and give a tooltip title
if (apiLevelNum > selectedLevelNum) {
obj.addClass("absent").attr("title","Requires API Level \""
- + apiLevel + "\" or higher");
+ + apiLevel + "\" or higher. To reveal, change the target API level "
+ + "above the left navigation.");
}
else obj.removeClass("absent").removeAttr("title");
});
diff --git a/tools/droiddoc/templates-sdk/components/masthead.cs b/tools/droiddoc/templates-sdk/components/masthead.cs
index f3eb401..47639bb 100644
--- a/tools/droiddoc/templates-sdk/components/masthead.cs
+++ b/tools/droiddoc/templates-sdk/components/masthead.cs
@@ -122,6 +122,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -160,7 +162,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="<?cs var:toroot ?>guide/components/index.html"
+ <li><a href="<?cs var:toroot ?>guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -231,7 +233,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="<?cs var:toroot ?>guide/components/index.html"
+ <li class="guide"><a href="<?cs var:toroot ?>guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
diff --git a/tools/droiddoc/templates-sdk/customizations.cs b/tools/droiddoc/templates-sdk/customizations.cs
index 985f059..ed57f1c 100644
--- a/tools/droiddoc/templates-sdk/customizations.cs
+++ b/tools/droiddoc/templates-sdk/customizations.cs
@@ -144,12 +144,8 @@
<?cs
include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
-
</div>
- <script type="text/javascript">
- showSamplesRefTree();
- </script>
</div> <!-- end side-nav -->
<script>
$(document).ready(function() {
@@ -214,7 +210,8 @@
<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
<div id="api-nav-header">
<div id="api-level-toggle">
- <label for="apiLevelCheckbox" class="disabled">API level: </label>
+ <label for="apiLevelCheckbox" class="disabled"
+ title="Select your target API level to dim unavailable APIs">API level: </label>
<div class="select-wrapper">
<select id="apiLevelSelector">
<!-- option elements added by buildApiLevelSelector() -->
@@ -239,7 +236,7 @@
<div id="packages-nav" class="scroll-pane">
<ul>
- <?cs call:package_link_list(docs.packages) ?>
+ <?cs call:package_link_list(docs.packages) ?>
</ul><br/>
</div> <!-- end packages-nav -->
diff --git a/tools/droiddoc/templates-sdk/designpage.cs b/tools/droiddoc/templates-sdk/designpage.cs
index c714a74..2be179d 100644
--- a/tools/droiddoc/templates-sdk/designpage.cs
+++ b/tools/droiddoc/templates-sdk/designpage.cs
@@ -95,5 +95,16 @@
var pageTracker = _gat._getTracker("UA-5831155-1");
pageTracker._trackPageview();
</script>
+
+<!-- Start of Tag -->
+<script type="text/javascript">
+var axel = Math.random() + "";
+var a = axel * 10000000000000;
+document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
+</script>
+<noscript>
+<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
+</noscript>
+<!-- End of Tag -->
</body>
</html>
diff --git a/tools/droiddoc/templates-sdk/docpage.cs b/tools/droiddoc/templates-sdk/docpage.cs
index 6faac04..ac40cd3 100644
--- a/tools/droiddoc/templates-sdk/docpage.cs
+++ b/tools/droiddoc/templates-sdk/docpage.cs
@@ -74,11 +74,20 @@
<?cs /if ?><?cs # end if training ?>
</div>
<?cs /if ?>
+<?cs elif:samplesProjectIndex ?>
+ <div id="api-info-block">
+ <div class="sum-details-links">
+ Overview
+ | <a href="<?cs var:toroot ?>samples/<?cs var:projectDir ?>/project.html">Project</a>
+ | <a href="<?cs var:toroot ?>downloads/samples/<?cs var:projectDir ?>.zip">Download</a>
+ </div><!-- end sum-details-links -->
+ </div><!-- end breadcurmb block -->
+ <h1 itemprop="name"><?cs var:projectDir ?></h1>
<?cs else ?>
<?cs if:(!fullpage && !header.hide) ?>
<?cs if:page.landing ?><?cs # header logic for docs that are landing pages ?>
<div class="landing-banner">
- <?cs if:page.landing.image ?><?cs # use two-column layout only if there's an image ?>
+ <?cs if:page.landing.image ?><?cs # use two-column layout only if there is an image ?>
<div class="col-6">
<img src="<?cs var:toroot ?><?cs var:page.landing.image ?>" alt="" />
</div>
@@ -166,6 +175,16 @@
<?cs include:"trailer.cs" ?>
+<!-- Start of Tag -->
+<script type="text/javascript">
+var axel = Math.random() + "";
+var a = axel * 10000000000000;
+document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
+</script>
+<noscript>
+<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
+</noscript>
+<!-- End of Tag -->
</body>
</html>
diff --git a/tools/droiddoc/templates-sdk/head_tag.cs b/tools/droiddoc/templates-sdk/head_tag.cs
index 379829c..54de169 100644
--- a/tools/droiddoc/templates-sdk/head_tag.cs
+++ b/tools/droiddoc/templates-sdk/head_tag.cs
@@ -50,6 +50,7 @@
/if ?>
<script type="text/javascript">
var toRoot = "<?cs var:toroot ?>";
+ var metaTags = [<?cs var:meta.tags ?>];
var devsite = <?cs if:devsite ?>true<?cs else ?>false<?cs /if ?>;
</script>
<script src="<?cs var:toroot ?>assets/js/docs.js" type="text/javascript"></script>
diff --git a/tools/droiddoc/templates-sdk/jd_lists_unified.cs b/tools/droiddoc/templates-sdk/jd_lists_unified.cs
new file mode 100644
index 0000000..417a5c1
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/jd_lists_unified.cs
@@ -0,0 +1 @@
+<?cs var:reference_tree ?>
diff --git a/tools/droiddoc/templates-sdk/sample.cs b/tools/droiddoc/templates-sdk/sample.cs
index 3fed799..43cda54 100644
--- a/tools/droiddoc/templates-sdk/sample.cs
+++ b/tools/droiddoc/templates-sdk/sample.cs
@@ -7,7 +7,7 @@
<div <?cs if:fullpage
?>class="fullpage"<?cs elif:design||tools||about||sdk||distribute
-?>class="col-13" id="doc-col"<?cs else
+?>class="col-13" id="doc-col"<?cs else
?>class="col-12" id="doc-col"<?cs /if ?> >
<!-- start breadcrumb block -->
@@ -17,7 +17,9 @@
<!-- related links -->
<a href="<?cs var:toroot ?>samples/<?cs var:projectDir ?>/index.html">Overview</a>
| <a href="<?cs var:toroot ?>samples/<?cs var:projectDir ?>/project.html">Project</a>
- | <a href="<?cs var:toroot ?>downloads/samples/<?cs var:projectDir ?>.zip">Download</a>
+ | <a href="<?cs var:toroot ?>downloads/samples/<?cs var:projectDir ?>.zip"
+ onclick="_gaq.push(['_trackEvent', 'Samples', 'Download', <?cs var:projectDir ?>]);"
+ >Download</a>
</div><!-- end sum-details-links -->
@@ -27,8 +29,8 @@
<div id="pathCrumb">
<?cs each:item = parentdirs ?>
- <?cs if:pathCrumbLinks
- ?><a href="<?cs var:toroot ?><?cs var:item.Link ?>"><?cs var:item.Name ?></a> /
+ <?cs if:LinkifyPathCrumb
+ ?><a href="<?cs var:toroot ?><?cs var:item.Link ?>"><?cs var:item.Name ?></a> /
<?cs else
?><?cs var:item.Name ?> / <?cs /if ?>
<?cs /each ?>
@@ -50,18 +52,37 @@
<?cs var:summary ?>
<!-- begin file contents -->
-<div id="codesample-wrapper">
-<pre id="codesample-line-numbers" class="no-pretty-print hidden"></pre>
-<pre id="codesample-block"><?cs var:fileContents ?></pre>
-</div>
+
+<?cs # embed image/videos if below maxsize (show message otherwise), else display source code ?>
+<?cs if:resType == "img" ?>
+ <div id="codesample-resource"
+ <?cs if:noDisplay ?>
+ class="noDisplay"><div class="noDisplay-message"></div>
+ <?cs else ?>
+ ><img src="<?cs var:realFile ?>" title="<?cs var:page.title ?>">
+ <?cs /if ?>
+ </div>
+<?cs elif:resType == "video" ?>
+ <div id="codesample-resource"
+ <?cs if:noDisplay ?>
+ class="noDisplay"><div class="noDisplay-message"></div>
+ <?cs else ?>
+ ><video class="play-on-hover" controls style="border:1px solid #ececec;background-color:#f9f9f9;" poster="">
+ <source src="<?cs var:page.title ?>">
+ </video>
+ <?cs /if ?>
+ </div>
+<?cs else ?>
+ <div id="codesample-wrapper">
+ <pre id="codesample-line-numbers" class="no-pretty-print hidden"></pre>
+ <pre id="codesample-block"><?cs var:fileContents ?></pre>
+ </div>
+ <script type="text/javascript">
+ initCodeLineNumbers();
+ </script>
+<?cs /if ?>
<!-- end file contents -->
-<script type="text/javascript">
- initCodeLineNumbers();
-</script>
-
-
-
<?cs else ?><?cs
# else, this means it's offline docs,
@@ -69,6 +90,49 @@
<?cs /if ?><?cs # end if/else online docs ?>
+ <div class="content-footer <?cs
+ if:fullpage ?>wrap<?cs
+ else ?>layout-content-row<?cs /if ?>"
+ itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div class="layout-content-col <?cs
+ if:fullpage ?>col-16<?cs
+ elif:training||guide ?>col-8<?cs
+ else ?>col-9<?cs /if ?>" style="padding-top:4px">
+ <?cs if:!page.noplus ?><?cs if:fullpage ?><style>#___plusone_0 {float:right !important;}</style><?cs /if ?>
+ <div class="g-plusone" data-size="medium"></div>
+ <?cs /if ?>
+ </div>
+ <?cs if:!fullscreen ?>
+ <div class="paging-links layout-content-col col-4">
+ <?cs if:(design||training||walkthru) && !page.landing && !page.trainingcourse && !footer.hide ?>
+ <a href="#" class="prev-page-link hide"
+ zh-tw-lang="上一堂課"
+ zh-cn-lang="上一课"
+ ru-lang="Предыдущий"
+ ko-lang="이전"
+ ja-lang="前へ"
+ es-lang="Anterior"
+ >Previous</a>
+ <a href="#" class="next-page-link hide"
+ zh-tw-lang="下一堂課"
+ zh-cn-lang="下一课"
+ ru-lang="Следующий"
+ ko-lang="다음"
+ ja-lang="次へ"
+ es-lang="Siguiente"
+ >Next</a>
+ <?cs /if ?>
+ </div>
+ <?cs /if ?>
+ </div>
+
+ <?cs # for training classes, provide a different kind of link when the next page is a different class ?>
+ <?cs if:training && !page.article ?>
+ <div class="layout-content-row content-footer next-class" style="display:none" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <a href="#" class="next-class-link hide">Next class: </a>
+ </div>
+ <?cs /if ?>
+
</div> <!-- end jd-content -->
<?cs include:"footer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk/sampleindex.cs b/tools/droiddoc/templates-sdk/sampleindex.cs
index 8db15c4..98767b1 100644
--- a/tools/droiddoc/templates-sdk/sampleindex.cs
+++ b/tools/droiddoc/templates-sdk/sampleindex.cs
@@ -20,7 +20,9 @@
| Project<?cs else ?>Overview
| <a href="<?cs var:toroot ?>samples/<?cs var:projectDir ?>/project.html">Project</a>
<?cs /if ?>
-| <a href="<?cs var:toroot ?>downloads/samples/<?cs var:projectDir ?>.zip">Download</a>
+| <a href="<?cs var:toroot ?>downloads/samples/<?cs var:projectDir ?>.zip"
+ onclick="_gaq.push(['_trackEvent', 'Samples', 'Download', <?cs var:projectDir ?>]);"
+ >Download</a>
</div><!-- end sum-details-links -->
@@ -78,6 +80,48 @@
so don't show src links (we dont have the pages!) ?>
<?cs /if ?><?cs # end if/else online docs ?>
+ <div class="content-footer <?cs
+ if:fullpage ?>wrap<?cs
+ else ?>layout-content-row<?cs /if ?>"
+ itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div class="layout-content-col <?cs
+ if:fullpage ?>col-16<?cs
+ elif:training||guide ?>col-8<?cs
+ else ?>col-9<?cs /if ?>" style="padding-top:4px">
+ <?cs if:!page.noplus ?><?cs if:fullpage ?><style>#___plusone_0 {float:right !important;}</style><?cs /if ?>
+ <div class="g-plusone" data-size="medium"></div>
+ <?cs /if ?>
+ </div>
+ <?cs if:!fullscreen ?>
+ <div class="paging-links layout-content-col col-4">
+ <?cs if:(design||training||walkthru) && !page.landing && !page.trainingcourse && !footer.hide ?>
+ <a href="#" class="prev-page-link hide"
+ zh-tw-lang="上一堂課"
+ zh-cn-lang="上一课"
+ ru-lang="Предыдущий"
+ ko-lang="이전"
+ ja-lang="前へ"
+ es-lang="Anterior"
+ >Previous</a>
+ <a href="#" class="next-page-link hide"
+ zh-tw-lang="下一堂課"
+ zh-cn-lang="下一课"
+ ru-lang="Следующий"
+ ko-lang="다음"
+ ja-lang="次へ"
+ es-lang="Siguiente"
+ >Next</a>
+ <?cs /if ?>
+ </div>
+ <?cs /if ?>
+ </div>
+
+ <?cs # for training classes, provide a different kind of link when the next page is a different class ?>
+ <?cs if:training && !page.article ?>
+ <div class="layout-content-row content-footer next-class" style="display:none" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <a href="#" class="next-class-link hide">Next class: </a>
+ </div>
+ <?cs /if ?>
</div> <!-- end jd-content -->
diff --git a/tools/droiddoc/templates-sdk/sdkpage.cs b/tools/droiddoc/templates-sdk/sdkpage.cs
index ecc26f5..d98146a 100644
--- a/tools/droiddoc/templates-sdk/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk/sdkpage.cs
@@ -83,7 +83,7 @@
<th>MD5 Checksum</th>
</tr>
<tr>
- <td rowspan="2" style="white-space:nowrap">Windows 32-bit</td>
+ <td>Windows 32-bit</td>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
@@ -91,33 +91,33 @@
<td><?cs var:ndk.win32_bytes ?></td>
<td><?cs var:ndk.win32_checksum ?></td>
</tr>
- <tr>
- <td>
+ <!-- <tr>
+ <td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.win32.legacy_download ?>"><?cs var:ndk.win32.legacy_download ?></a>
</td>
<td><?cs var:ndk.win32.legacy_bytes ?></td>
<td><?cs var:ndk.win32.legacy_checksum ?></td>
- </tr>
+ </tr> -->
<tr>
- <td rowspan="2" style="white-space:nowrap">Windows 64-bit</td>
+ <td>Windows 64-bit</td>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
</td>
<td><?cs var:ndk.win64_bytes ?></td>
<td><?cs var:ndk.win64_checksum ?></td>
- </tr>
- <tr>
+ </tr>
+ <!-- <tr>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
</td>
<td><?cs var:ndk.win64.legacy_bytes ?></td>
<td><?cs var:ndk.win64.legacy_checksum ?></td>
- </tr>
+ </tr> -->
<tr>
- <td rowspan="2" style="white-space:nowrap">Mac OS X 32-bit</td>
+ <td>Mac OS X 32-bit</td>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
@@ -125,16 +125,15 @@
<td><?cs var:ndk.mac32_bytes ?></td>
<td><?cs var:ndk.mac32_checksum ?></td>
</tr>
- <tr>
+ <!-- <tr>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
</td>
<td><?cs var:ndk.mac32.legacy_bytes ?></td>
<td><?cs var:ndk.mac32.legacy_checksum ?></td>
- </tr>
- <tr>
- <td rowspan="2" style="white-space:nowrap">Mac OS X 64-bit</td>
+ </tr> -->
+ <td>Mac OS X 64-bit</td>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
@@ -142,17 +141,16 @@
<td><?cs var:ndk.mac64_bytes ?></td>
<td><?cs var:ndk.mac64_checksum ?></td>
</tr>
- <tr>
+ <!-- <tr>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
</td>
<td><?cs var:ndk.mac64.legacy_bytes ?></td>
<td><?cs var:ndk.mac64.legacy_checksum ?></td>
- </tr>
-
+ </tr> -->
<tr>
- <td rowspan="2" style="white-space:nowrap">Linux 32-bit (x86)</td>
+ <td>Linux 32-bit (x86)</td>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.linux32_download ?>"><?cs var:ndk.linux32_download ?></a>
@@ -160,16 +158,16 @@
<td><?cs var:ndk.linux32_bytes ?></td>
<td><?cs var:ndk.linux32_checksum ?></td>
</tr>
- <tr>
+ <!-- <tr>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
</td>
<td><?cs var:ndk.linux32.legacy_bytes ?></td>
<td><?cs var:ndk.linux32.legacy_checksum ?></td>
- </tr>
+ </tr> -->
<tr>
- <td rowspan="2" style="white-space:nowrap">Linux 64-bit (x86)</td>
+ <td>Linux 64-bit (x86)</td>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
@@ -177,13 +175,28 @@
<td><?cs var:ndk.linux64_bytes ?></td>
<td><?cs var:ndk.linux64_checksum ?></td>
</tr>
- <tr>
+ <!-- <tr>
<td>
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
</td>
<td><?cs var:ndk.linux64.legacy_bytes ?></td>
<td><?cs var:ndk.linux64.legacy_checksum ?></td>
+ </tr> -->
+ <tr>
+ <th>Additional Download</th>
+ <th>Package</th>
+ <th style="white-space:nowrap">Size (Bytes)</th>
+ <th>MD5 Checksum</th>
+ </tr>
+ <tr>
+ <td>STL debug info</td>
+ <td>
+ <a onClick="return onDownload(this)"
+ href="http://dl.google.com/android/ndk/<?cs var:ndk.debug_info_download ?>"><?cs var:ndk.debug_info_download ?></a>
+ </td>
+ <td><?cs var:ndk.debug_info_bytes ?></td>
+ <td><?cs var:ndk.debug_info_checksum ?></td>
</tr>
</table>
@@ -491,6 +504,7 @@
$("#sdk-terms-form,.sdk-terms-intro").fadeOut('slow');
$("#next-steps").fadeIn('slow');
$("h1#tos-header").text('Get Ready to Code!');
+ _gaq.push(['_trackEvent', 'SDK', 'ADT and Tools', $("#downloadForRealz").html()]);
return true;
} else {
$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
@@ -560,6 +574,16 @@
<?cs include:"trailer.cs" ?>
+<!-- Start of Tag -->
+<script type="text/javascript">
+var axel = Math.random() + "";
+var a = axel * 10000000000000;
+document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>');
+</script>
+<noscript>
+<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe>
+</noscript>
+<!-- End of Tag -->
</body>
</html>