From 41977d7cd2f0676a1b135a0991545721d6dce3ef Mon Sep 17 00:00:00 2001
From: The Android Open Source Project <initial-contribution@android.com>
Date: Thu, 19 Feb 2009 10:57:29 -0800
Subject: [PATCH] auto import from //branches/cupcake/...@132276

---
 cleanspec.mk                                  |   2 +
 core/Makefile                                 |  15 +-
 core/main.mk                                  |  17 +-
 core/tasks/apicheck.mk                        |   3 +
 tools/droiddoc/templates-sdk/customization.cs | 199 +++---
 .../assets/android-developer-docs.css         |   3 +-
 tools/droiddoc/templates/assets/carousel.js   |   6 +-
 tools/droiddoc/templates/class.cs             |  41 +-
 tools/droiddoc/templates/customization.cs     |  28 +-
 tools/droiddoc/templates/footer.cs            |   4 +-
 tools/droiddoc/templates/head_tag.cs          |  47 +-
 tools/droiddoc/templates/macros.cs            | 609 +++++++++---------
 tools/droiddoc/templates/nosidenavpage.cs     |   2 +-
 tools/droiddoc/templates/sample.cs            |  10 +-
 tools/droiddoc/templates/sampleindex.cs       |  14 +-
 15 files changed, 522 insertions(+), 478 deletions(-)

diff --git a/cleanspec.mk b/cleanspec.mk
index 4ef0c4d2d..794c9cd50 100644
--- a/cleanspec.mk
+++ b/cleanspec.mk
@@ -66,6 +66,8 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Browser_intermed
 $(call add-clean-step, rm -f vendor/google/apps/Talk/res/drawable/%*)
 $(call add-clean-step, rm -rf $(OUT_DIR)/product/*/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/android_os_NetStat.o)
 $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libjni_andpyime_intermediates)
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/share)
 
 # ************************************************
 # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
diff --git a/core/Makefile b/core/Makefile
index ca2b1437e..bb18c4bdc 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -618,7 +618,14 @@ recovery_kernel := $(INSTALLED_KERNEL_TARGET) # same as a non-recovery system
 recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img
 recovery_build_prop := $(INSTALLED_BUILD_PROP_TARGET)
 recovery_binary := $(call intermediates-dir-for,EXECUTABLES,recovery)/recovery
-recovery_resources := $(call include-path-for, recovery)/res
+recovery_resources_common := $(call include-path-for, recovery)/res
+recovery_resources_private := $(strip $(wildcard $(TARGET_DEVICE_DIR)/recovery/res))
+recovery_resource_deps := $(shell find $(recovery_resources_common) \
+  $(recovery_resources_private) -type f)
+
+ifeq ($(recovery_resources_private),)
+  $(info No private recovery resources for TARGET_DEVICE $(TARGET_DEVICE))
+endif
 
 INTERNAL_RECOVERYIMAGE_ARGS := \
 	$(addprefix --second ,$(INSTALLED_2NDBOOTLOADER_TARGET)) \
@@ -636,7 +643,7 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) \
 		$(recovery_binary) \
 		$(recovery_initrc) $(recovery_kernel) \
 		$(INSTALLED_2NDBOOTLOADER_TARGET) \
-		$(recovery_build_prop)
+		$(recovery_build_prop) $(recovery_resource_deps)
 	@echo ----- Making recovery image ------
 	rm -rf $(TARGET_RECOVERY_OUT)
 	mkdir -p $(TARGET_RECOVERY_OUT)
@@ -648,7 +655,9 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) \
 	echo Modifying ramdisk contents...
 	cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/
 	cp -f $(recovery_binary) $(TARGET_RECOVERY_ROOT_OUT)/sbin/
-	cp -rf $(recovery_resources) $(TARGET_RECOVERY_ROOT_OUT)/
+	cp -rf $(recovery_resources_common) $(TARGET_RECOVERY_ROOT_OUT)/
+	$(foreach item,$(recovery_resources_private), \
+	  cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/)
 	cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) \
 	        > $(TARGET_RECOVERY_ROOT_OUT)/default.prop
 	$(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | gzip > $(recovery_ramdisk)
diff --git a/core/main.mk b/core/main.mk
index a1374a23e..1ea13acdb 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -313,11 +313,18 @@ ifeq ($(BUILD_TINY_ANDROID), true)
 INTERNAL_DEFAULT_DOCS_TARGETS := 
 
 subdirs := \
+	bionic \
 	system/core \
-	external/zlib \
-	build/tools \
-	tools/kcm \
-	external/yaffs2
+	build/libs \
+	build/target \
+	build/tools/acp \
+	build/tools/apriori \
+	build/tools/kcm \
+	build/tools/soslim \
+	external/elfcopy \
+	external/elfutils \
+	external/yaffs2 \
+	external/zlib
 else	# !BUILD_TINY_ANDROID
 
 #
@@ -489,7 +496,7 @@ overridden_packages := $(call get-package-overrides,$(modules_to_build))
 ifdef overridden_packages
 #  old_modules_to_build := $(modules_to_build)
   modules_to_build := \
-      $(filter-out $(foreach p,$(overridden_packages),%/$(p) %/$(p).apk), \
+      $(filter-out $(foreach p,$(overridden_packages),$(p) %/$(p).apk), \
           $(modules_to_build))
 endif
 #$(error filtered out $(filter-out $(modules_to_build),$(old_modules_to_build)))
diff --git a/core/tasks/apicheck.mk b/core/tasks/apicheck.mk
index c4e51c1af..044e4af7f 100644
--- a/core/tasks/apicheck.mk
+++ b/core/tasks/apicheck.mk
@@ -17,6 +17,8 @@
 # api compatibility or added apis illegally.
 #
 
+ifneq ($(BUILD_TINY_ANDROID), true)
+
 .PHONY: checkapi
 
 # eval this to define a rule that runs apicheck.
@@ -71,3 +73,4 @@ update-api: $(INTERNAL_PLATFORM_API_FILE) | $(ACP)
 	@echo Copying current.xml
 	$(hide) $(ACP) $(INTERNAL_PLATFORM_API_FILE) $(SRC_API_DIR)/current.xml
 
+endif
diff --git a/tools/droiddoc/templates-sdk/customization.cs b/tools/droiddoc/templates-sdk/customization.cs
index 64a87c067..4a1dde6fe 100644
--- a/tools/droiddoc/templates-sdk/customization.cs
+++ b/tools/droiddoc/templates-sdk/customization.cs
@@ -1,104 +1,121 @@
 <?cs # This default template file is meant to be replaced. ?>
 <?cs # Use the -tempatedir arg to javadoc to set your own directory with a replacement for this file in it. ?>
 
-<?cs def:custom_masthead() ?>
-<div id="header">
-    <div id="headerLeft">
-        <a href="<?cs var:toroot ?>index.html" tabindex="-1"><img
-            src="<?cs var:toroot ?>assets/images/bg_logo.png" alt="Android Developers" /></a>
+<?cs 
+def:custom_masthead() ?>
+  <div id="header">
+      <div id="headerLeft">
+          <a href="<?cs var:toroot ?>index.html" tabindex="-1"><img
+              src="<?cs var:toroot ?>assets/images/bg_logo.png" alt="Android Developers" /></a>
+          <ul class="<?cs 
+                  if:reference ?>reference<?cs
+                  elif:guide ?>guide<?cs
+                  elif:sdk ?>sdk<?cs
+                  elif:home ?>home<?cs
+                  elif:community ?>community<?cs
+                  elif:publish ?>publish<?cs
+                  elif:about ?>about<?cs /if ?>">
+              <li id="home-link"><a href="<?cs var:toroot ?><?cs 
+                  if:android.whichdoc != "online" ?>offline.html<?cs 
+                  else ?>index.html<?cs /if ?>">
+                  <span>Home</span></a></li>
+              <li id="sdk-link"><a href="<?cs var:toroot ?>sdk/1.1_r1/index.html"><span>SDK</span></a></li>
+              <li id="guide-link"><a href="<?cs var:toroot ?>guide/index.html"
+                                  onClick="return loadLast('guide')"><span>Dev Guide</span></a></li>
+              <li id="reference-link"><a href="<?cs var:toroot ?>reference/packages.html" 
+                                  onClick="return loadLast('reference')"><span>Reference</span></a></li>
+              <li><a href="http://android-developers.blogspot.com"><span>Blog</span></a></li>
+              <li id="community-link"><a href="<?cs var:toroot ?>community/index.html"><span>Community</span></a></li>
+          </ul>
+      </div>
+      <div id="headerRight">
+          <div id="headerLinks">
+            <!-- <img src="<?cs var:toroot ?>assets/images/icon_world.jpg" alt="" /> -->
+            <span class="text">
+              <!-- &nbsp;<a href="#">English</a> | -->
+              <a href="http://www.android.com">Android.com</a>
+            </span>
+          </div><?cs 
+          call:default_search_box() ?>
+      </div><!-- headerRight -->
+  </div><!-- header --><?cs 
+/def ?><?cs # custom_masthead ?>
 
-        <ul class="<?cs 
-                if:reference ?>reference<?cs
-                elif:guide ?>guide<?cs
-                elif:sdk ?>sdk<?cs
-                elif:home ?>home<?cs
-                elif:community ?>community<?cs
-                elif:publish ?>publish<?cs
-                elif:about ?>about<?cs /if ?>">
-            <li id="home-link"><a href="<?cs var:toroot ?><?cs 
-                if:android.whichdoc != "online" ?>offline.html<?cs 
-                else ?>index.html<?cs /if ?>">
-                <span>Home</span></a></li>
-            
-            <li id="sdk-link"><a href="<?cs var:toroot ?>sdk/1.1_r1/index.html"><span>SDK</span></a></li>
-            <li id="guide-link"><a href="<?cs var:toroot ?>guide/index.html"
-                                onClick="return loadLast('guide')"><span>Dev Guide</span></a></li>
-            <li id="reference-link"><a href="<?cs var:toroot ?>reference/packages.html" 
-                                onClick="return loadLast('reference')"><span>Reference</span></a></li>
-            <li><a href="http://android-developers.blogspot.com"><span>Blog</span></a></li>
-            <li id="community-link"><a href="<?cs var:toroot ?>community/index.html"><span>Community</span></a></li>
-        </ul>
-
-    </div>
-    <div id="headerRight">
-        <div id="headerLinks">
-           <!-- <img src="<?cs var:toroot ?>assets/images/icon_world.jpg" alt="" /> -->
-           <span class="text">
-             <!-- &nbsp;<a href="#">English</a> | -->
-             <a href="http://www.android.com">Android.com</a>
-           </span>
-        </div>
-
-        <?cs call:default_search_box() ?>
-
-    </div><!-- headerRight -->
-</div><!-- header -->
-
-<?cs /def ?><?cs # custom_masthead ?>
-
-<?cs def:sdk_nav() ?>
-<div class="g-section g-tpl-240" id="body-content">
-  <div class="g-unit g-first not-resizable" id="side-nav">
-    <div id="devdoc-nav">
-      <?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
-    </div>
-  </div> <!-- end side-nav -->
+<?cs 
+def:sdk_nav() ?>
+  <div class="g-section g-tpl-240" id="body-content">
+    <div class="g-unit g-first not-resizable" id="side-nav">
+      <div id="devdoc-nav"><?cs 
+        include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+      </div>
+    </div> <!-- end side-nav -->
 <?cs /def ?>
 
-<?cs def:guide_nav() ?>
-<div class="g-section g-tpl-240" id="body-content">
-  <div class="g-unit g-first side-nav-resizable" id="side-nav">
-    <div id="devdoc-nav">
-      <?cs include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
-    </div>
-  </div> <!-- end side-nav -->
-  <script>
-    addLoadEvent(function() {
-      scrollIntoView("devdoc-nav");
-      });
-  </script>
+<?cs 
+def:guide_nav() ?>
+  <div class="g-section g-tpl-240" id="body-content">
+    <div class="g-unit g-first side-nav-resizable" id="side-nav">
+      <div id="devdoc-nav"><?cs 
+        include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+      </div>
+    </div> <!-- end side-nav -->
+    <script>
+      addLoadEvent(function() {
+        scrollIntoView("devdoc-nav");
+        });
+    </script>
 <?cs /def ?>
 
-<?cs def:custom_left_nav() ?>
-  <?cs if:guide ?>
-    <?cs call:guide_nav() ?>
-  <?cs elif:sdk ?>
-    <?cs call:sdk_nav() ?>
-  <?cs else ?>
-    <?cs call:default_left_nav() ?> 
-  <?cs /if ?>
+<?cs 
+def:publish_nav() ?>
+  <div class="g-section g-tpl-180" id="body-content">
+    <div class="g-unit g-first" id="side-nav">
+      <div id="devdoc-nav"><?cs 
+        include:"../../../../frameworks/base/docs/html/publish/publish_toc.cs" ?>
+      </div>
+    </div> <!-- end side-nav -->
 <?cs /def ?>
 
-<?cs # appears on the left side of the blue bar at the bottom of every page ?>
-<?cs def:custom_cc_copyright() ?>Except as noted, this content is 
-licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
-Creative Commons Attribution 2.5</a>. For details and 
-restrictions, see the <a href="<?cs var:toroot ?>license.html">Content 
-License</a>.<?cs /def ?>
+<?cs 
+def:custom_left_nav() ?><?cs 
+  if:guide ?><?cs 
+    call:guide_nav() ?><?cs 
+  elif:publish ?><?cs 
+    call:publish_nav() ?><?cs 
+  elif:sdk ?><?cs 
+    call:sdk_nav() ?><?cs 
+  else ?><?cs 
+    call:default_left_nav() ?><?cs 
+  /if ?><?cs 
+/def ?>
 
-<?cs def:custom_copyright() ?>Except as noted, this content is 
-licensed under <a
-href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
-For details and restrictions, see the <a href="<?cs var:toroot ?>license.html">
-Content License</a>.<?cs /def ?>
+<?cs # appears at the bottom of every page ?><?cs 
+def:custom_cc_copyright() ?>
+  Except as noted, this content is 
+  licensed under <a href="http://creativecommons.org/licenses/by/2.5/">
+  Creative Commons Attribution 2.5</a>. For details and 
+  restrictions, see the <a href="<?cs var:toroot ?>license.html">Content 
+  License</a>.<?cs 
+/def ?>
 
-<?cs def:custom_footerlinks() ?>
-<p>
-	<a href="http://www.android.com/terms.html">Site Terms of Service</a> -
-	<a href="http://www.android.com/privacy.html">Privacy Policy</a> -
-	<a href="http://www.android.com/branding.html">Brand Guidelines</a>
-</p>
-<?cs /def ?>
+<?cs 
+def:custom_copyright() ?>
+  Except as noted, this content is licensed under <a
+  href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. 
+  For details and restrictions, see the <a href="<?cs var:toroot ?>license.html">
+  Content License</a>.<?cs 
+/def ?>
+
+<?cs 
+def:custom_footerlinks() ?>
+  <p>
+    <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
+    <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
+    <a href="http://www.android.com/branding.html">Brand Guidelines</a>
+  </p><?cs 
+/def ?>
 
-<?cs # appears on the right side of the blue bar at the bottom of every page ?>
-<?cs def:custom_buildinfo() ?>Android 1.1 r1 - <?cs var:page.now ?><?cs /def ?>
+<?cs # appears on the right side of the blue bar at the bottom of every page ?><?cs 
+def:custom_buildinfo() ?>
+  Android 1.1 r1 - <?cs var:page.now ?><?cs 
+/def ?>
diff --git a/tools/droiddoc/templates/assets/android-developer-docs.css b/tools/droiddoc/templates/assets/android-developer-docs.css
index da4b755a8..daa839fb8 100644
--- a/tools/droiddoc/templates/assets/android-developer-docs.css
+++ b/tools/droiddoc/templates/assets/android-developer-docs.css
@@ -30,6 +30,7 @@
 
 #side-nav {
   padding:0 6px 0 0;
+  background-color: #fff;
   font-size:12px;
 }
 
@@ -660,7 +661,7 @@ pre.classic {
   float: right;
   width:310px;
   background-color:#fff;
-  margin:-48px 0 0 0;
+  margin:-48px 0 2px 0;
   padding:0 0 20px 35px;
 }
 
diff --git a/tools/droiddoc/templates/assets/carousel.js b/tools/droiddoc/templates/assets/carousel.js
index 09c19f9f5..4eebd8911 100644
--- a/tools/droiddoc/templates/assets/carousel.js
+++ b/tools/droiddoc/templates/assets/carousel.js
@@ -9,7 +9,7 @@
 
 var oldVid = "multi"; // set the default video
 var nowPlayingString = "Now playing:";
-var assetsRoot = "/assets/";
+var assetsRoot = "assets/";
 
 
 /* -- app thumbnail switcher -- */
@@ -60,7 +60,7 @@ function droid(appName){
     descDiv.className = "desc-left";
   }
 
-  imgDiv.innerHTML = "<img src='" + assetsRoot + "images/home/" + droid.img + "'>";
+  imgDiv.innerHTML = "<img src='" + toRoot + assetsRoot + "images/home/" + droid.img + "'>";
   descDiv.innerHTML = (droid.title != "") ? "<h3>" + droid.title + "</h3>" + droid.desc : droid.desc;
 
   if(oldDroid)
@@ -87,7 +87,7 @@ function buildCarousel() {
     a.className = x;
     a.setAttribute("href", "#");
     a.onclick = function() { showPreview(this.className); return false; }
-    img.setAttribute("src", assetsRoot + "images/home/" + droid.icon);
+    img.setAttribute("src", toRoot + assetsRoot + "images/home/" + droid.icon);
     img.setAttribute("alt", "");
 
     span.appendChild(text);
diff --git a/tools/droiddoc/templates/class.cs b/tools/droiddoc/templates/class.cs
index 0fccd379e..10778860c 100644
--- a/tools/droiddoc/templates/class.cs
+++ b/tools/droiddoc/templates/class.cs
@@ -157,7 +157,7 @@ Summary:
 </table>
 
 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ======== NESTED CLASS SUMMARY ======== -->
+
 <?cs if:subcount(class.subclasses.direct) ?>
 <table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
 <?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
@@ -295,6 +295,8 @@ Summary:
 
 <?cs # if there are inherited attrs, write the table ?>
 <?cs if:inhattrs ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- =========== FIELD SUMMARY =========== -->
 <table id="inhattrs" class="jd-sumtable"><tr><th>
   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
   <div style="clear:left;">Inherited XML Attributes</div></th></tr>
@@ -335,7 +337,7 @@ Summary:
 
 <?cs if:subcount(class.constants) ?>
 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- =========== FIELD SUMMARY =========== -->
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
 <table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
 <?cs call:write_constant_summary(class.constants) ?>
 </table>
@@ -343,6 +345,8 @@ Summary:
 
 <?cs # if there are inherited constants, write the table ?>
 <?cs if:inhconstants ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
 <table id="inhconstants" class="jd-sumtable"><tr><th>
   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
   <div style="clear:left;">Inherited Constants</div></th></tr>
@@ -376,6 +380,8 @@ Summary:
 
 <?cs # if there are inherited fields, write the table ?>
 <?cs if:inhfields ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- =========== FIELD SUMMARY =========== -->
 <table id="inhfields" class="jd-sumtable"><tr><th>
   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
   <div style="clear:left;">Inherited Fields</div></th></tr>
@@ -433,6 +439,8 @@ Summary:
 
 <?cs # if there are inherited methods, write the table ?>
 <?cs if:inhmethods ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ========== METHOD SUMMARY =========== -->
 <table id="inhmethods" class="jd-sumtable"><tr><th>
   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
   <div style="clear:left;">Inherited Methods</div></th></tr>
@@ -462,7 +470,9 @@ From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs va
 <?cs def:write_field_details(fields) ?>
 <?cs each:field=fields ?>
 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<div class="jd-details" id="<?cs var:field.anchor ?>"> 
+<?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>
+<div class="jd-details"> 
     <h4 class="jd-details-title">
       <span class="normal">
         <?cs var:field.scope ?> 
@@ -493,8 +503,9 @@ From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs va
 
 <?cs def:write_method_details(methods) ?>
 <?cs each:method=methods ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<div class="jd-details" id="<?cs var:method.anchor ?>"> 
+<?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>
+<div class="jd-details"> 
     <h4 class="jd-details-title">
       <span class="normal">
         <?cs var:method.scope ?> 
@@ -514,8 +525,9 @@ From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs va
 
 <?cs def:write_attr_details(attrs) ?>
 <?cs each:attr=attrs ?>
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<div class="jd-details" id="<?cs var:attr.anchor ?>"> 
+<?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>
+<div class="jd-details">
     <h4 class="jd-details-title"><?cs var:attr.name ?></h4>
     <div class="jd-details-descr">
         <?cs call:description(attr) ?>
@@ -536,30 +548,40 @@ From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs va
 
 <!-- XML Attributes -->
 <?cs if:subcount(class.attrs) ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ========= FIELD DETAIL ======== -->
 <h2>XML Attributes</h2>
 <?cs call:write_attr_details(class.attrs) ?>
 <?cs /if ?>
 
 <!-- Enum Values -->
 <?cs if:subcount(class.enumConstants) ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
 <h2>Enum Values</h2>
 <?cs call:write_field_details(class.enumConstants) ?>
 <?cs /if ?>
 
 <!-- Constants -->
 <?cs if:subcount(class.constants) ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
 <h2>Constants</h2>
 <?cs call:write_field_details(class.constants) ?>
 <?cs /if ?>
 
 <!-- Fields -->
 <?cs if:subcount(class.fields) ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ========= FIELD DETAIL ======== -->
 <h2>Fields</h2>
 <?cs call:write_field_details(class.fields) ?>
 <?cs /if ?>
 
 <!-- Public ctors -->
 <?cs if:subcount(class.ctors.public) ?>
+<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
 <h2>Public Constructors</h2>
 <?cs call:write_method_details(class.ctors.public) ?>
 <?cs /if ?>
@@ -573,7 +595,7 @@ From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs va
 <?cs /if ?>
 
 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- ========= METHOD DETAIL ======== -->
 <!-- Public methdos -->
 <?cs if:subcount(class.methods.public) ?>
 <h2>Public Methods</h2>
@@ -587,8 +609,9 @@ From <?cs var:cl.kind ?> <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs va
 <?cs call:write_method_details(class.methods.protected) ?>
 <?cs /if ?>
 
-<?cs # this next line must be exactly like this to be parsed by eclipse ?>
+<?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
 <!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
 
 <?cs include:"footer.cs" ?>
 </div> <!-- jd-content -->
diff --git a/tools/droiddoc/templates/customization.cs b/tools/droiddoc/templates/customization.cs
index 800c9c14b..3646495a6 100644
--- a/tools/droiddoc/templates/customization.cs
+++ b/tools/droiddoc/templates/customization.cs
@@ -2,25 +2,23 @@
 <?cs # Use the -templatedir arg to javadoc to set your own directory with a     ?>
 <?cs # replacement for this file in it. ?>
 
-<?cs def:custom_masthead() ?>
-<div id="header">
-    <div id="headerLeft">
-        <a href="<?cs var:toroot ?>index.html" tabindex="-1"><?cs var:page.title ?></a>
-    </div>
-    <div id="headerRight">
-        <?cs call:default_search_box() ?>
-    </div><!-- headerRight -->
-</div><!-- header -->
+<?cs # appears at the top of every page ?><?cs 
+def:custom_masthead() ?>
+  <div id="header">
+      <div id="headerLeft">
+          <a href="<?cs var:toroot ?>index.html" tabindex="-1"><?cs var:page.title ?></a>
+      </div>
+      <div id="headerRight">
+          <?cs call:default_search_box() ?>
+      </div><!-- headerRight -->
+  </div><!-- header --><?cs 
+/def ?>
 
-<?cs /def ?><?cs # custom_masthead ?>
-
-
-<?cs # appears on the left side of the blue bar at the bottom of every page ?>
+<?cs # appear at the bottom of every page ?>
 <?cs def:custom_copyright() ?><?cs /def ?>
 <?cs def:custom_cc_copyright() ?><?cs /def ?>
 <?cs def:custom_footerlinks() ?><?cs /def ?>
-
-<?cs # appears on the right side of the blue bar at the bottom of every page ?>
 <?cs def:custom_buildinfo() ?>Build <?cs var:page.build ?> - <?cs var:page.now ?><?cs /def ?>
 
+<?cs # appears on the side of the page ?>
 <?cs def:custom_left_nav() ?><?cs call:default_left_nav() ?><?cs /def ?>
diff --git a/tools/droiddoc/templates/footer.cs b/tools/droiddoc/templates/footer.cs
index 86b13eadd..bb82c8d26 100644
--- a/tools/droiddoc/templates/footer.cs
+++ b/tools/droiddoc/templates/footer.cs
@@ -7,7 +7,7 @@
   <div id="build_info">
     <?cs call:custom_buildinfo() ?>
   </div>
-<?cs else ?>
+<?cs elif:!hide_license_footer ?>
   <div id="copyright">
     <?cs call:custom_cc_copyright() ?>
   </div>
@@ -16,4 +16,4 @@
     <?cs call:custom_footerlinks() ?>
   </div>
 
-</div> <!-- end footer -->
\ No newline at end of file
+</div> <!-- end footer -->
diff --git a/tools/droiddoc/templates/head_tag.cs b/tools/droiddoc/templates/head_tag.cs
index bfd0eae50..55d022512 100644
--- a/tools/droiddoc/templates/head_tag.cs
+++ b/tools/droiddoc/templates/head_tag.cs
@@ -1,32 +1,31 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <link rel="shortcut icon" type="image/x-icon" href="<?cs var:toroot ?>favicon.ico" />
-<title><?cs var:page.title ?> | <?cs 
-        if:guide ?>Guide | <?cs 
-        elif:reference ?>Reference | <?cs 
-        elif:sdk ?>SDK | <?cs 
-        elif:sample ?>Samples | <?cs 
-        /if ?>Android Developers</title>
-
-<?cs if:guide||sdk ?>
-<link href="<?cs var:toroot ?>assets/android-developer-docs-devguide.css" rel="stylesheet" type="text/css" />
-<?cs else ?>
-<link href="<?cs var:toroot ?>assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
-<?cs /if ?>
-<script src="<?cs var:toroot ?>assets/search_autocomplete.js"></script>
-<script src="<?cs var:toroot ?>reference/lists.js"></script>
-<script src="<?cs var:toroot ?>assets/jquery-resizable.min.js"></script>
-<script src="<?cs var:toroot ?>assets/android-developer-docs.js"></script>
-<script>
+<title><?cs 
+  if:page.title ?><?cs 
+    var:page.title ?><?cs
+    if:sdk.version ?> (<?cs
+      var:sdk.version ?>)<?cs
+    /if ?> | <?cs
+  /if ?>Android Developers</title><?cs 
+if:guide||sdk ?>
+<link href="<?cs var:toroot ?>assets/android-developer-docs-devguide.css" rel="stylesheet" type="text/css" /><?cs 
+else ?>
+<link href="<?cs var:toroot ?>assets/android-developer-docs.css" rel="stylesheet" type="text/css" /><?cs 
+/if ?>
+<script src="<?cs var:toroot ?>assets/search_autocomplete.js" type="text/javascript"></script>
+<script src="<?cs var:toroot ?>reference/lists.js" type="text/javascript"></script>
+<script src="<?cs var:toroot ?>assets/jquery-resizable.min.js" type="text/javascript"></script>
+<script src="<?cs var:toroot ?>assets/android-developer-docs.js" type="text/javascript"></script>
+<script type="text/javascript">
   setToRoot("<?cs var:toroot ?>");
-</script>
-
-<script src="<?cs var:toroot ?>navtree_data.js"></script>
-<script src="<?cs var:toroot ?>assets/navtree.js"></script>
-
-
+</script><?cs 
+if:reference ?>
+<script src="<?cs var:toroot ?>navtree_data.js" type="text/javascript"></script>
+<script src="<?cs var:toroot ?>assets/navtree.js" type="text/javascript"></script><?cs 
+/if ?>
 <noscript>
-  <style>
+  <style type="text/css">
     body{overflow:auto;}
     #body-content{position:relative; top:0;}
     #doc-content{overflow:visible;border-left:3px solid #666;}
diff --git a/tools/droiddoc/templates/macros.cs b/tools/droiddoc/templates/macros.cs
index ecbec2f8d..fe890453d 100644
--- a/tools/droiddoc/templates/macros.cs
+++ b/tools/droiddoc/templates/macros.cs
@@ -1,8 +1,7 @@
-<?cs # A link to a package ?>
-<?cs def:package_link(pkg)) ?>
-<a href="<?cs var:toroot ?><?cs var:pkg.link ?>"><?cs var:pkg.name ?></a>
-<?cs /def ?>
-
+<?cs # A link to a package ?><?cs 
+def:package_link(pkg)) ?>
+  <a href="<?cs var:toroot ?><?cs var:pkg.link ?>"><?cs var:pkg.name ?></a><?cs 
+/def ?>
 
 <?cs # A link to a type, or not if it's a primitive type
         link: whether to create a link at the top level, always creates links in
@@ -14,343 +13,321 @@
             .superBounds.N.(more links)   (... super ... & ...)
             .extendsBounds.N.(more links) (... extends ... & ...)
             .typeArguments.N.(more links) (< ... >)
-?>
-<?cs def:type_link_impl(type, link) ?><?cs
-    if:type.link && link=="true" ?><a href="<?cs var:toroot ?><?cs var:type.link ?>"><?cs /if
-        ?><?cs var:type.label ?><?cs if:type.link && link=="true" ?></a><?cs /if ?><?cs
-    if:subcount(type.extendsBounds) ?><?cs
-        each:t=type.extendsBounds ?><?cs
-            if:first(t) ?>&nbsp;extends&nbsp;<?cs else ?>&nbsp;&amp;&nbsp;<?cs /if ?><?cs
-            call:type_link_impl(t, "true") ?><?cs
-        /each ?><?cs
-    /if ?><?cs
-    if:subcount(type.superBounds) ?><?cs
-        each:t=type.superBounds ?><?cs
-            if:first(t) ?>&nbsp;super&nbsp;<?cs else ?>&nbsp;&amp;&nbsp;<?cs /if ?><?cs
-            call:type_link_impl(t, "true") ?><?cs
-        /each ?><?cs
-    /if ?><?cs
-
-    if:subcount(type.typeArguments)
-        ?>&lt;<?cs each:t=type.typeArguments ?><?cs call:type_link_impl(t, "true") ?><?cs
-            if:!last(t) ?>,&nbsp;<?cs /if ?><?cs
-        /each ?>&gt;<?cs
-    /if ?><?cs
+?><?cs 
+def:type_link_impl(type, link) ?><?cs
+  if:type.link && link=="true" ?><a href="<?cs var:toroot ?><?cs var:type.link ?>"><?cs /if
+      ?><?cs var:type.label ?><?cs if:type.link && link=="true" ?></a><?cs /if ?><?cs
+  if:subcount(type.extendsBounds) ?><?cs
+      each:t=type.extendsBounds ?><?cs
+          if:first(t) ?>&nbsp;extends&nbsp;<?cs else ?>&nbsp;&amp;&nbsp;<?cs /if ?><?cs
+          call:type_link_impl(t, "true") ?><?cs
+      /each ?><?cs
+  /if ?><?cs
+  if:subcount(type.superBounds) ?><?cs
+      each:t=type.superBounds ?><?cs
+          if:first(t) ?>&nbsp;super&nbsp;<?cs else ?>&nbsp;&amp;&nbsp;<?cs /if ?><?cs
+          call:type_link_impl(t, "true") ?><?cs
+      /each ?><?cs
+  /if ?><?cs
+  if:subcount(type.typeArguments)
+      ?>&lt;<?cs each:t=type.typeArguments ?><?cs call:type_link_impl(t, "true") ?><?cs
+          if:!last(t) ?>,&nbsp;<?cs /if ?><?cs
+      /each ?>&gt;<?cs
+  /if ?><?cs
 /def ?>
 
-
 <?cs def:class_name(type) ?><?cs call:type_link_impl(type, "false") ?><?cs /def ?>
 <?cs def:type_link(type) ?><?cs call:type_link_impl(type, "true") ?><?cs /def ?>
 
-<?cs # A comma separated parameter list ?>
-<?cs def:parameter_list(params) ?><?cs
-    each:param = params ?><?cs
-        call:type_link(param.type)?> <?cs
-        var:param.name ?><?cs
-        if: name(param)!=subcount(params)-1?>, <?cs /if ?><?cs
-    /each ?><?cs
+<?cs # A comma separated parameter list ?><?cs 
+def:parameter_list(params) ?><?cs
+  each:param = params ?><?cs
+      call:type_link(param.type)?> <?cs
+      var:param.name ?><?cs
+      if: name(param)!=subcount(params)-1?>, <?cs /if ?><?cs
+  /each ?><?cs
 /def ?>
 
-
-<?cs # Print a list of tags (e.g. description text ?>
-<?cs def:tag_list(tags) ?><?cs
-    each:tag = tags ?><?cs
-        if:tag.name == "Text" ?><?cs var:tag.text?><?cs
-        elif:tag.kind == "@more" ?><p><?cs
-        elif:tag.kind == "@see" ?><a href="<?cs var:toroot ?><?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
-        elif:tag.kind == "@seeHref" ?><a href="<?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
-        elif:tag.kind == "@seeJustLabel" ?><?cs var:tag.label ?><?cs
-        elif:tag.kind == "@code" ?><code class="Code prettyprint"><?cs var:tag.text ?></code><?cs
-        elif:tag.kind == "@samplecode" ?><pre class="Code prettyprint"><?cs var:tag.text ?></pre><?cs
-        elif:tag.name == "@sample" ?><pre class="Code prettyprint"><?cs var:tag.text ?></pre><?cs
-        elif:tag.name == "@include" ?><?cs var:tag.text ?><?cs
-        elif:tag.kind == "@docRoot" ?><?cs var:toroot ?><?cs
-        elif:tag.kind == "@inheritDoc" ?><?cs # This is the case when @inheritDoc is in something
-                                                that doesn't inherit from anything?><?cs
-        elif:tag.kind == "@attr" ?><?cs
-        else ?>{<?cs var:tag.name?> <?cs var:tag.text ?>}<?cs
-        /if ?><?cs
-    /each ?><?cs
+<?cs # Print a list of tags (e.g. description text ?><?cs 
+def:tag_list(tags) ?><?cs
+  each:tag = tags ?><?cs
+      if:tag.name == "Text" ?><?cs var:tag.text?><?cs
+      elif:tag.kind == "@more" ?><p><?cs
+      elif:tag.kind == "@see" ?><a href="<?cs var:toroot ?><?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
+      elif:tag.kind == "@seeHref" ?><a href="<?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
+      elif:tag.kind == "@seeJustLabel" ?><?cs var:tag.label ?><?cs
+      elif:tag.kind == "@code" ?><code class="Code prettyprint"><?cs var:tag.text ?></code><?cs
+      elif:tag.kind == "@samplecode" ?><pre class="Code prettyprint"><?cs var:tag.text ?></pre><?cs
+      elif:tag.name == "@sample" ?><pre class="Code prettyprint"><?cs var:tag.text ?></pre><?cs
+      elif:tag.name == "@include" ?><?cs var:tag.text ?><?cs
+      elif:tag.kind == "@docRoot" ?><?cs var:toroot ?><?cs
+      elif:tag.kind == "@inheritDoc" ?><?cs # This is the case when @inheritDoc is in something
+                                              that doesn't inherit from anything?><?cs
+      elif:tag.kind == "@attr" ?><?cs
+      else ?>{<?cs var:tag.name?> <?cs var:tag.text ?>}<?cs
+      /if ?><?cs
+  /each ?><?cs
 /def ?>
 
+<?cs # The message about This xxx is deprecated. ?><?cs 
+def:deprecated_text(kind) ?>
+  This <?cs var:kind ?> is deprecated.<?cs 
+/def ?>
 
-<?cs # The message about This xxx is deprecated. ?>
-<?cs def:deprecated_text(kind) ?>
-This <?cs var:kind ?> is deprecated.
-<?cs /def ?>
-
-
-<?cs # Show the short-form description of something.  These come from shortDescr and deprecated ?>
-<?cs def:short_descr(obj) ?><?cs
-    if:subcount(obj.deprecated) ?>
-        <em><?cs call:deprecated_text(obj.kind) ?>
-        <?cs call:tag_list(obj.deprecated) ?></em><?cs
-    else ?><?cs call:tag_list(obj.shortDescr) ?><?cs
-    /if ?><?cs
+<?cs # Show the short-form description of something.  These come from shortDescr and deprecated ?><?cs 
+def:short_descr(obj) ?><?cs
+  if:subcount(obj.deprecated) ?>
+      <em><?cs call:deprecated_text(obj.kind) ?>
+      <?cs call:tag_list(obj.deprecated) ?></em><?cs
+  else ?><?cs call:tag_list(obj.shortDescr) ?><?cs
+  /if ?><?cs
 /def ?>
 
-<?cs # Show the red box with the deprecated warning ?>
-<?cs def:deprecated_warning(obj) ?>
-<?cs if:subcount(obj.deprecated) ?><p>
-<p class="warning jd-deprecated-warning">
-    <strong><?cs call:deprecated_text(obj.kind) ?></strong>
-    <?cs call:tag_list(obj.deprecated) ?>
-</p>
-<?cs /if ?>
-<?cs /def ?>
+<?cs # Show the red box with the deprecated warning ?><?cs 
+def:deprecated_warning(obj) ?><?cs 
+  if:subcount(obj.deprecated) ?><p>
+  <p class="warning jd-deprecated-warning">
+      <strong><?cs call:deprecated_text(obj.kind) ?></strong><?cs 
+      call:tag_list(obj.deprecated) ?>
+  </p><?cs 
+  /if ?><?cs 
+/def ?>
 
-<?cs # print the See Also: section ?>
-<?cs def:see_also_tags(also) ?>
-<?cs if:subcount(also) ?>
-<div class="jd-tagdata">
-    <h5 class="jd-tagtitle">See Also</h5>
-    <ul class="nolist">
-    <?cs each:tag=also
-    ?><li><?cs
-        if:tag.kind == "@see" ?><a href="<?cs var:toroot ?><?cs var:tag.href ?>"><?cs
-                var:tag.label ?></a><?cs
-        elif:tag.kind == "@seeHref" ?><a href="<?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
-        elif:tag.kind == "@seeJustLabel" ?><?cs var:tag.label ?><?cs
-        else ?>[ERROR: Unknown @see kind]<?cs
-        /if ?></li>
-    <?cs /each ?>
-    </ul>
-</div>
-<?cs /if ?>
+<?cs # print the See Also: section ?><?cs 
+def:see_also_tags(also) ?><?cs 
+  if:subcount(also) ?>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">See Also</h5>
+      <ul class="nolist"><?cs 
+        each:tag=also ?><li><?cs
+            if:tag.kind == "@see" ?><a href="<?cs var:toroot ?><?cs var:tag.href ?>"><?cs
+                    var:tag.label ?></a><?cs
+            elif:tag.kind == "@seeHref" ?><a href="<?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
+            elif:tag.kind == "@seeJustLabel" ?><?cs var:tag.label ?><?cs
+            else ?>[ERROR: Unknown @see kind]<?cs
+            /if ?></li><?cs 
+        /each ?>
+      </ul>
+  </div><?cs 
+  /if ?>
 <?cs /def ?>
 
 
 <?cs # Print the long-form description for something.
-        Uses the following fields: deprecated descr seeAlso
-    ?>
-<?cs def:description(obj) ?>
-
-<?cs call:deprecated_warning(obj) ?>
-<div class="jd-tagdata jd-tagdescr"><p><?cs call:tag_list(obj.descr) ?></p></div>
-
-
-<?cs if:subcount(obj.attrRefs) ?>
-<div class="jd-tagdata">
-    <h5 class="jd-tagtitle">Related XML Attributes</h5>
-    <ul class="nolist">
-    <?cs each:attr=obj.attrRefs ?>
-        <li><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></li>
-    <?cs /each ?>
-    </ul>
-</div>
-<?cs /if ?>
-
-<?cs if:subcount(obj.paramTags) ?>
-<div class="jd-tagdata">
-    <h5 class="jd-tagtitle">Parameters</h5>
-    <table class="jd-tagtable">
-    <?cs each:tag=obj.paramTags
-    ?><tr>
-        <th><?cs if:tag.isTypeParameter ?>&lt;<?cs /if ?><?cs var:tag.name
-                ?><?cs if:tag.isTypeParameter ?>&gt;<?cs /if ?></td>
-        <td><?cs call:tag_list(tag.comment) ?></td>
-      </tr>
-    <?cs /each ?>
-    </table>
-</div>
-<?cs /if ?>
-
-
-<?cs if:subcount(obj.returns) ?>
-<div class="jd-tagdata">
-    <h5 class="jd-tagtitle">Returns</h5>
-    <ul class="nolist"><li><?cs call:tag_list(obj.returns) ?></li></ul>
-</div>
-<?cs /if ?>
-
-<?cs if:subcount(obj.throws) ?>
-<div class="jd-tagdata">
-    <h5 class="jd-tagtitle">Throws</h5>
-    <table class="jd-tagtable">
-    <?cs each:tag=obj.throws
-    ?>  <tr>
+       Uses the following fields: deprecated descr seeAlso ?><?cs 
+def:description(obj) ?><?cs 
+  call:deprecated_warning(obj) ?>
+  <div class="jd-tagdata jd-tagdescr"><p><?cs call:tag_list(obj.descr) ?></p></div><?cs 
+  if:subcount(obj.attrRefs) ?>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Related XML Attributes</h5>
+      <ul class="nolist"><?cs 
+        each:attr=obj.attrRefs ?>
+            <li><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></li><?cs 
+        /each ?>
+      </ul>
+  </div><?cs 
+  /if ?><?cs 
+  if:subcount(obj.paramTags) ?>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Parameters</h5>
+      <table class="jd-tagtable"><?cs 
+      each:tag=obj.paramTags ?>
+        <tr>
+          <th><?cs if:tag.isTypeParameter ?>&lt;<?cs /if ?><?cs var:tag.name
+                  ?><?cs if:tag.isTypeParameter ?>&gt;<?cs /if ?></td>
+          <td><?cs call:tag_list(tag.comment) ?></td>
+        </tr><?cs 
+      /each ?>
+      </table>
+  </div><?cs 
+  /if ?><?cs 
+  if:subcount(obj.returns) ?>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Returns</h5>
+      <ul class="nolist"><li><?cs call:tag_list(obj.returns) ?></li></ul>
+  </div><?cs 
+  /if ?><?cs 
+  if:subcount(obj.throws) ?>
+  <div class="jd-tagdata">
+      <h5 class="jd-tagtitle">Throws</h5>
+      <table class="jd-tagtable"><?cs 
+      each:tag=obj.throws ?>  
+        <tr>
             <th><?cs call:type_link(tag.type) ?></td>
             <td><?cs call:tag_list(tag.comment) ?></td>
-        </tr>
-    <?cs /each ?>
-    </table>
-</div>
-<?cs /if ?>
-
-<?cs call:see_also_tags(obj.seeAlso) ?>
-
-<?cs /def ?>
-
-
-<?cs # A table of links to classes with descriptions, as in a package file or the nested classes ?>
-<?cs def:class_link_table(classes) ?>
-<?cs set:count = #1 ?>
-<table class="jd-sumtable-expando"><?cs
-    each:cl=classes ?>
-      <tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
-            <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
-            <td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
-        </tr><?cs set:count = count + #1 ?><?cs
-    /each ?>
-</table>
-<?cs /def ?>
-
-<?cs # A list of links to classes, for use in the side navigation of packages ?>
-<?cs def:class_link_list(label, classes) ?>
-<?cs if:subcount(classes) ?>
-  <li><h2><?cs var:label ?></h2>
-    <ul>
-    <?cs each:cl=classes ?>
-      <li><?cs call:type_link(cl.type) ?></li>
-    <?cs /each ?>
-    </ul>
-  </li>
-<?cs /if ?>
-<?cs /def ?>
+        </tr><?cs 
+      /each ?>
+      </table>
+  </div><?cs 
+  /if ?><?cs 
+  call:see_also_tags(obj.seeAlso) ?><?cs 
+/def ?>
 
-<?cs # A list of links to classes, for use in the side navigation of classes ?>
-<?cs def:list(label, classes) ?>
-<?cs if:subcount(classes) ?>
-  <li><h2><?cs var:label ?></h2>
-    <ul>
-    <?cs each:cl=classes ?>
-        <li <?cs if:class.name == cl.label?>class="selected"<?cs /if ?>><?cs call:type_link(cl) ?></li>
-    <?cs /each ?>
-    </ul>
-  </li>
-<?cs /if ?>
-<?cs /def ?>
+<?cs # A table of links to classes with descriptions, as in a package file or the nested classes ?><?cs
+def:class_link_table(classes) ?><?cs 
+  set:count = #1 ?>
+  <table class="jd-sumtable-expando"><?cs
+      each:cl=classes ?>
+        <tr <?cs if:count % #2 ?>class="alt-color"<?cs /if ?> >
+              <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
+              <td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
+          </tr><?cs set:count = count + #1 ?><?cs
+      /each ?>
+  </table><?cs 
+/def ?>
 
-<?cs # An expando trigger ?>
-<?cs def:expando_trigger(id, default) ?>
-<a href="#" onclick="return toggleInherited(this, null)" id="<?cs var:id ?>" class="jd-expando-trigger closed"
-        ><img id="<?cs var:id ?>-trigger"
-        src="<?cs var:toroot ?>assets/images/triangle-<?cs var:default ?>.png"
-        class="jd-expando-trigger-img" /></a>
-<?cs /def ?>
+<?cs # A list of links to classes, for use in the side navigation of packages ?><?cs 
+def:class_link_list(label, classes) ?><?cs 
+  if:subcount(classes) ?>
+    <li><h2><?cs var:label ?></h2>
+      <ul><?cs 
+      each:cl=classes ?>
+        <li><?cs call:type_link(cl.type) ?></li><?cs 
+      /each ?>
+      </ul>
+    </li><?cs 
+  /if ?><?cs 
+/def ?>
 
-<?cs # An expandable list of classes ?>
-<?cs def:expandable_class_list(id, classes, default) ?>
-    <div id="<?cs var:id ?>">
-        <div id="<?cs var:id ?>-list"
-                class="jd-inheritedlinks"
-                <?cs if:default != "list" ?>style="display: none;"<?cs /if ?>
-                >
-            <?cs each:cl=classes ?>
-                <?cs call:type_link(cl.type) ?><?cs if:!last(cl) ?>,<?cs /if ?>
-            <?cs /each ?>
-        </div>
-        <div id="<?cs var:id ?>-summary"
-                <?cs if:default != "summary" ?>style="display: none;"<?cs /if ?>
-                >
+<?cs # A list of links to classes, for use in the side navigation of classes ?><?cs 
+def:list(label, classes) ?><?cs 
+  if:subcount(classes) ?>
+    <li><h2><?cs var:label ?></h2>
+      <ul><?cs 
+      each:cl=classes ?>
+          <li <?cs if:class.name == cl.label?>class="selected"<?cs /if ?>><?cs call:type_link(cl) ?></li><?cs 
+      /each ?>
+      </ul>
+    </li><?cs 
+  /if ?><?cs 
+/def ?>
 
-            <?cs call:class_link_table(classes) ?>
-        </div>
-    </div>
-<?cs /def ?>
+<?cs # An expando trigger ?><?cs 
+def:expando_trigger(id, default) ?>
+  <a href="#" onclick="return toggleInherited(this, null)" id="<?cs var:id ?>" class="jd-expando-trigger closed"
+          ><img id="<?cs var:id ?>-trigger"
+          src="<?cs var:toroot ?>assets/images/triangle-<?cs var:default ?>.png"
+          class="jd-expando-trigger-img" /></a><?cs 
+/def ?>
 
+<?cs # An expandable list of classes ?><?cs 
+def:expandable_class_list(id, classes, default) ?>
+  <div id="<?cs var:id ?>">
+      <div id="<?cs var:id ?>-list"
+              class="jd-inheritedlinks"
+              <?cs if:default != "list" ?>style="display: none;"<?cs /if ?>
+              ><?cs 
+          each:cl=classes ?>
+              <?cs call:type_link(cl.type) ?><?cs if:!last(cl) ?>,<?cs /if ?><?cs 
+          /each ?>
+      </div>
+      <div id="<?cs var:id ?>-summary"
+              <?cs if:default != "summary" ?>style="display: none;"<?cs /if ?>
+              ><?cs 
+          call:class_link_table(classes) ?>
+      </div>
+  </div><?cs 
+/def ?>
 
-<?cs def:default_left_nav() ?>
-<div class="g-section g-tpl-240" id="body-content">
-  <div class="g-unit g-first side-nav-resizable" id="side-nav">
-    <div id="swapper">
-      <div id="nav-panels">
-        <div id="resize-packages-nav">
-          <div id="packages-nav">
-            <div id="index-links"><nobr>
-              <a href="<?cs var:toroot ?>reference/packages.html" <?cs if:(page.title == "Package Index") ?>class="selected"<?cs /if ?> >Package Index</a> | 
-              <a href="<?cs var:toroot ?>reference/classes.html" <?cs if:(page.title == "Class Index") ?>class="selected"<?cs /if ?>>Class Index</a></nobr>
-            </div>
+<?cs # The default side navigation for the reference docs ?><?cs 
+def:default_left_nav() ?>
+  <div class="g-section g-tpl-240" id="body-content">
+    <div class="g-unit g-first side-nav-resizable" id="side-nav">
+      <div id="swapper">
+        <div id="nav-panels">
+          <div id="resize-packages-nav">
+            <div id="packages-nav">
+              <div id="index-links"><nobr>
+                <a href="<?cs var:toroot ?>reference/packages.html" <?cs if:(page.title == "Package Index") ?>class="selected"<?cs /if ?> >Package Index</a> | 
+                <a href="<?cs var:toroot ?>reference/classes.html" <?cs if:(page.title == "Class Index") ?>class="selected"<?cs /if ?>>Class Index</a></nobr>
+              </div>
+              <ul><?cs 
+              each:pkg=docs.packages ?>
+                <li <?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?>class="selected"<?cs /if ?>><?cs call:package_link(pkg) ?></li><?cs 
+              /each ?>
+              </ul><br/>
+            </div> <!-- end packages -->
+          </div> <!-- end resize-packages -->
+          <div id="classes-nav"><?cs 
+            if:subcount(class.package) ?>
             <ul>
-            <?cs each:pkg=docs.packages ?>
-              <li <?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?>class="selected"<?cs /if ?>><?cs call:package_link(pkg) ?></li>
-            <?cs /each ?>
-            </ul><br/>
-          </div> <!-- end packages -->
-        </div> <!-- end resize-packages -->
-        <div id="classes-nav">
-          <?cs if:subcount(class.package) ?>
-          <ul>
-            <?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>
-            <?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 else ?>
-            <script>
-              /*addLoadEvent(maxPackageHeight);*/
-            </script>
-            <p style="padding:10px">Select a package to view its members</p>
-          <?cs /if ?><br/>
-        </div><!-- end classes -->
-      </div><!-- end nav-panels -->
-      <div id="nav-tree" style="display:none">
-        <div id="index-links"><nobr>
-          <a href="<?cs var:toroot ?>reference/packages.html" <?cs if:(page.title == "Package Index") ?>class="selected"<?cs /if ?> >Package Index</a> | 
-          <a href="<?cs var:toroot ?>reference/classes.html" <?cs if:(page.title == "Class Index") ?>class="selected"<?cs /if ?>>Class Index</a></nobr>
-        </div>
-      </div><!-- end nav-tree -->
-    </div><!-- end swapper -->
-  </div> <!-- end side-nav -->
-
-  <script>
-    $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
-    chooseDefaultNav();
-    if ($("#nav-tree").is(':visible')) init_navtree("nav-tree", "<?cs var:toroot ?>", NAVTREE_DATA);
-    else {
-      addLoadEvent(function() {
-        scrollIntoView("packages-nav");
-        scrollIntoView("classes-nav");
-      });
-    }
-    $("#swapper").css({borderBottom:"2px solid #aaa"});
-  </script>
-
-<?cs /def ?>
-
-<?cs def:default_search_box() ?>
-<div id="search" >
-    <div id="searchForm">
-        <form accept-charset="utf-8" class="gsc-search-box" 
-              onsubmit="return submit_search()">
-          <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
-              <tr>
-                <td class="gsc-input">
-                  <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off" 
-                    title="search developer docs" name="q"
-                    value="search developer docs" 
-                    onFocus="search_focus_changed(this, true)" 
-                    onBlur="search_focus_changed(this, false)" 
-                    onkeydown="return search_changed(event, true, '<?cs var:toroot?>')" 
-                    onkeyup="return search_changed(event, false, '<?cs var:toroot?>')" />
-                <div id="search_filtered_div" class="no-display">
-                    <table id="search_filtered" cellspacing=0>
-                    </table>
-                </div>
-                </td>
-                <td class="gsc-search-button">
-                  <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
-                </td>
-                <td class="gsc-clear-button">
-                  <div title="clear results" class="gsc-clear-button">&nbsp;</div>
-                </td>
-              </tr></tbody>
-            </table>
-        </form>
-    </div><!-- searchForm -->
-</div><!-- search -->
-<?cs /def ?>
-
+              <?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>
+              <?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 
+            else ?>
+              <script>
+                /*addLoadEvent(maxPackageHeight);*/
+              </script>
+              <p style="padding:10px">Select a package to view its members</p><?cs 
+            /if ?><br/>
+          </div><!-- end classes -->
+        </div><!-- end nav-panels -->
+        <div id="nav-tree" style="display:none">
+          <div id="index-links"><nobr>
+            <a href="<?cs var:toroot ?>reference/packages.html" <?cs if:(page.title == "Package Index") ?>class="selected"<?cs /if ?> >Package Index</a> | 
+            <a href="<?cs var:toroot ?>reference/classes.html" <?cs if:(page.title == "Class Index") ?>class="selected"<?cs /if ?>>Class Index</a></nobr>
+          </div>
+        </div><!-- end nav-tree -->
+      </div><!-- end swapper -->
+    </div> <!-- end side-nav -->
+    <script>
+      $("<a href='#' id='nav-swap' onclick='swapNav();return false;' style='font-size:10px;line-height:9px;margin-left:1em;text-decoration:none;'><span id='tree-link'>Use Tree Navigation</span><span id='panel-link' style='display:none'>Use Panel Navigation</span></a>").appendTo("#side-nav");
+      chooseDefaultNav();
+      if ($("#nav-tree").is(':visible')) init_navtree("nav-tree", "<?cs var:toroot ?>", NAVTREE_DATA);
+      else {
+        addLoadEvent(function() {
+          scrollIntoView("packages-nav");
+          scrollIntoView("classes-nav");
+        });
+      }
+      $("#swapper").css({borderBottom:"2px solid #aaa"});
+    </script><?cs 
+/def ?>
 
+<?cs # The default search box that goes in the header ?><?cs 
+def:default_search_box() ?>
+  <div id="search" >
+      <div id="searchForm">
+          <form accept-charset="utf-8" class="gsc-search-box" 
+                onsubmit="return submit_search()">
+            <table class="gsc-search-box" cellpadding="0" cellspacing="0"><tbody>
+                <tr>
+                  <td class="gsc-input">
+                    <input id="search_autocomplete" class="gsc-input" type="text" size="33" autocomplete="off" 
+                      title="search developer docs" name="q"
+                      value="search developer docs" 
+                      onFocus="search_focus_changed(this, true)" 
+                      onBlur="search_focus_changed(this, false)" 
+                      onkeydown="return search_changed(event, true, '<?cs var:toroot?>')" 
+                      onkeyup="return search_changed(event, false, '<?cs var:toroot?>')" />
+                  <div id="search_filtered_div" class="no-display">
+                      <table id="search_filtered" cellspacing=0>
+                      </table>
+                  </div>
+                  </td>
+                  <td class="gsc-search-button">
+                    <input type="submit" value="Search" title="search" id="search-button" class="gsc-search-button" />
+                  </td>
+                  <td class="gsc-clear-button">
+                    <div title="clear results" class="gsc-clear-button">&nbsp;</div>
+                  </td>
+                </tr></tbody>
+              </table>
+          </form>
+      </div><!-- searchForm -->
+  </div><!-- search --><?cs 
+/def ?>
 
 <?cs include:"customization.cs" ?>
-
diff --git a/tools/droiddoc/templates/nosidenavpage.cs b/tools/droiddoc/templates/nosidenavpage.cs
index 41c30e9a1..1dec41e79 100644
--- a/tools/droiddoc/templates/nosidenavpage.cs
+++ b/tools/droiddoc/templates/nosidenavpage.cs
@@ -7,7 +7,7 @@
 <?cs call:custom_masthead() ?>
 
 <div id="body-content">
-<div id="doc-content">
+<div id="doc-content" style="position:relative;">
 
 <?cs call:tag_list(root.descr) ?>
 
diff --git a/tools/droiddoc/templates/sample.cs b/tools/droiddoc/templates/sample.cs
index 27b04304b..7ab5dc9c2 100644
--- a/tools/droiddoc/templates/sample.cs
+++ b/tools/droiddoc/templates/sample.cs
@@ -5,11 +5,15 @@
 <?cs include:"head_tag.cs" ?>
 <?cs include:"header.cs" ?>
 
-<div class="g-unit" id="doc-content">
+<div class="g-unit" id="doc-content"><a name="top"></a>
 
-<div id="jd-header">
+<div id="jd-header" class="guide-header">
+
+  <span class="crumb">
+    <a href="<?cs var:toroot ?>guide/samples/index.html">Sample Code &gt;</a>
+    
+  </span>
 <h1><?cs var:page.title ?></h1>
-<?cs var:subdir ?>
 </div>
 
 <div id="jd-content">
diff --git a/tools/droiddoc/templates/sampleindex.cs b/tools/droiddoc/templates/sampleindex.cs
index 173ae70f6..6e57cfdf4 100644
--- a/tools/droiddoc/templates/sampleindex.cs
+++ b/tools/droiddoc/templates/sampleindex.cs
@@ -5,11 +5,15 @@
 <?cs include:"head_tag.cs" ?>
 <?cs include:"header.cs" ?>
 
-<div class="g-unit" id="doc-content">
+<div class="g-unit" id="doc-content"><a name="top"></a>
 
-<div id="jd-header">
-<h1><?cs var:projectTitle ?></h1>
-<?cs var:subdir ?>
+<div id="jd-header" class="guide-header">
+
+  <span class="crumb">
+    <a href="<?cs var:toroot ?>guide/samples/index.html">Sample Code &gt;</a>
+    
+  </span>
+<h1><?cs var:page.title ?></h1>
 </div>
 
 <div id="jd-content">
@@ -20,7 +24,7 @@
     <h2>Subdirectories</h2>
     <ul class="nolist">
     <?cs each:dir=subdirs ?>
-      <li><a href="<?cs var:dir.name ?>/"><?cs var:dir.name ?>/</a></li>
+      <li><a href="<?cs var:dir.name ?>/index.html"><?cs var:dir.name ?>/</a></li>
     <?cs /each ?>
     </ul>
 <?cs /if ?>
-- 
GitLab