diff --git a/tools/droiddoc/src/DocFile.java b/tools/droiddoc/src/DocFile.java
index 9901330..51072df 100644
--- a/tools/droiddoc/src/DocFile.java
+++ b/tools/droiddoc/src/DocFile.java
@@ -137,6 +137,9 @@
             } else if (outfile.indexOf("guide/") != -1) {
                 hdf.setValue("guide", "true");
                 ClearPage.write(hdf, "docpage.cs", outfile);
+            } else if (outfile.indexOf("resources/") != -1) {
+                hdf.setValue("resources", "true");
+                ClearPage.write(hdf, "resourcespage.cs", outfile);
             } else {
                 ClearPage.write(hdf, "nosidenavpage.cs", outfile);
             }
diff --git a/tools/droiddoc/src/SampleCode.java b/tools/droiddoc/src/SampleCode.java
index 1f00be2..bf54445 100644
--- a/tools/droiddoc/src/SampleCode.java
+++ b/tools/droiddoc/src/SampleCode.java
@@ -44,7 +44,7 @@
             System.out.println("-samplecode not a directory: " + mSource);
             return;
         }
-        if (offlineMode) writeIndexOnly(f, mDest);
+        if (offlineMode) writeIndexOnly(f, mDest, offlineMode);
         else writeDirectory(f, mDest);
     }
 
@@ -118,9 +118,10 @@
         ClearPage.write(hdf, "sampleindex.cs", relative + "/index" + DroidDoc.htmlExtension);
     }
 
-    public void writeIndexOnly(File dir, String relative) {
+    public void writeIndexOnly(File dir, String relative, Boolean offline) {
         HDF hdf = writeIndex(dir);
-        ClearPage.write(hdf, "sampleindex.cs", relative + "/index" +
+        if (!offline) relative = "/" + relative;
+        ClearPage.write(hdf, "sampleindex.cs", relative + "index" +
                         DroidDoc.htmlExtension);
     }
 
diff --git a/tools/droiddoc/templates-sdk/customization.cs b/tools/droiddoc/templates-sdk/customization.cs
index 6ae8446..34f5595 100644
--- a/tools/droiddoc/templates-sdk/customization.cs
+++ b/tools/droiddoc/templates-sdk/customization.cs
@@ -109,6 +109,21 @@
 <?cs /def ?>
 
 <?cs 
+def:resources_tab_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/resources/resources_toc.cs" ?>
+      </div>
+    </div> <!-- end side-nav -->
+    <script>
+      addLoadEvent(function() {
+        scrollIntoView("devdoc-nav");
+        });
+    </script>
+<?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">
@@ -196,6 +211,8 @@
 def:custom_left_nav() ?><?cs 
   if:guide ?><?cs 
     call:guide_nav() ?><?cs 
+  elif:resources ?><?cs 
+    call:resources_tab_nav() ?><?cs 
   elif:sdk ?><?cs 
     call:sdk_nav() ?><?cs 
   else ?><?cs 
diff --git a/tools/droiddoc/templates-sdk/header_tabs.cs b/tools/droiddoc/templates-sdk/header_tabs.cs
index 97d9048..496f276 100644
--- a/tools/droiddoc/templates-sdk/header_tabs.cs
+++ b/tools/droiddoc/templates-sdk/header_tabs.cs
@@ -3,7 +3,7 @@
 	elif:guide ?>guide<?cs
 	elif:sdk ?>sdk<?cs
 	elif:home ?>home<?cs
-	elif:community ?>community<?cs
+	elif:resources ?>resources<?cs
 	elif:videos ?>videos<?cs /if ?>">
     
 	<li id="home-link"><a href="<?cs var:toroot ?><?cs 
@@ -15,7 +15,7 @@
 		<span style="display:none" class="es"></span>
 		<span style="display:none" class="fr"></span>
 		<span style="display:none" class="it"></span>
-    <span style="display:none" class="ja">ホーム</span>
+		<span style="display:none" class="ja">ホーム</span>
 		<span style="display:none" class="zh-CN">主页</span>
 		<span style="display:none" class="zh-TW">首頁</span>
 	<?cs /if ?>
@@ -30,7 +30,7 @@
 		<span style="display:none" class="es">Guía</span>
 		<span style="display:none" class="fr">Guide</span>
 		<span style="display:none" class="it">Guida</span>
-    <span style="display:none" class="ja">開発ガイド</span>
+		<span style="display:none" class="ja">開発ガイド</span>
 		<span style="display:none" class="zh-CN">开发人员指南</span>
 		<span style="display:none" class="zh-TW">開發指南</span>
 	<?cs /if ?>
@@ -42,21 +42,21 @@
 		<span style="display:none" class="es">Referencia</span>
 		<span style="display:none" class="fr">Référence</span>
 		<span style="display:none" class="it">Riferimento</span>
-    <span style="display:none" class="ja">リファレンス</span>
+		<span style="display:none" class="ja">リファレンス</span>
 		<span style="display:none" class="zh-CN">参考</span>
 		<span style="display:none" class="zh-TW">參考資料</span>
 	<?cs /if ?>
 	</a></li>
-	<li><a href="http://android-developers.blogspot.com" onClick="return requestAppendHL(this.href)">
+	<li id="resources-link"><a href="<?cs var:toroot ?>resources/index.html" onClick="return loadLast('resources')">
 	<?cs if:!sdk.redirect ?>
-		<span class="en">Blog</span>
+		<span class="en">Resources</span>
 		<span style="display:none" class="de"></span>
 		<span style="display:none" class="es"></span>
 		<span style="display:none" class="fr"></span>
 		<span style="display:none" class="it"></span>
-    <span style="display:none" class="ja">ブログ</span>
-		<span style="display:none" class="zh-CN">博客</span>
-		<span style="display:none" class="zh-TW">網誌</span>
+    		<span style="display:none" class="ja"></span>
+		<span style="display:none" class="zh-CN"></span>
+		<span style="display:none" class="zh-TW"></span>
 	<?cs /if ?>
 	</a></li>
 	<li id="videos-link"><a href="<?cs var:toroot ?>videos/index.html" onClick="return loadLast('videos')">
@@ -66,22 +66,24 @@
 		<span style="display:none" class="es"></span>
 		<span style="display:none" class="fr"></span>
 		<span style="display:none" class="it"></span>
-    <span style="display:none" class="ja">ビデオ</span>
+		<span style="display:none" class="ja">ビデオ</span>
 		<span style="display:none" class="zh-CN"></span>
 		<span style="display:none" class="zh-TW"></span>
 	<?cs /if ?>
 	</a></li>
-	<li id="community-link"><a href="<?cs var:toroot ?>community/index.html">
+	<li><a href="http://android-developers.blogspot.com" onClick="return requestAppendHL(this.href)">
 	<?cs if:!sdk.redirect ?>
-		<span class="en">Community</span>
+		<span class="en">Blog</span>
 		<span style="display:none" class="de"></span>
-		<span style="display:none" class="es">Comunidad</span>
-		<span style="display:none" class="fr">Communauté</span>
+		<span style="display:none" class="es"></span>
+		<span style="display:none" class="fr"></span>
 		<span style="display:none" class="it"></span>
-    <span style="display:none" class="ja">コミュニティ</span>
-		<span style="display:none" class="zh-CN">社区</span>
-		<span style="display:none" class="zh-TW">社群</span>
+		<span style="display:none" class="ja">ブログ</span>
+		<span style="display:none" class="zh-CN">博客</span>
+		<span style="display:none" class="zh-TW">網誌</span>
 	<?cs /if ?>
 	</a></li>
+
+
      
 </ul>
diff --git a/tools/droiddoc/templates-sdk/resourcespage.cs b/tools/droiddoc/templates-sdk/resourcespage.cs
new file mode 100644
index 0000000..526d7da
--- /dev/null
+++ b/tools/droiddoc/templates-sdk/resourcespage.cs
@@ -0,0 +1,31 @@
+<?cs include:"doctype.cs" ?>
+<?cs include:"macros.cs" ?>
+
+<html>
+<?cs include:"head_tag.cs" ?>
+
+<body class="gc-documentation">
+<?cs call:custom_masthead() ?>
+<?cs call:resources_tab_nav() ?>
+<a name="top"></a>
+<div class="g-unit" id="doc-content" >
+  <div id="jd-header" class="guide-header">
+    <span class="crumb">&nbsp;</span>
+    <h1><?cs var:page.title ?></h1>
+  </div>
+
+  <div id="jd-content">
+
+    <?cs call:tag_list(root.descr) ?>
+
+<?cs include:"footer.cs" ?>
+
+</div><!-- end doc-content -->
+
+<?cs include:"trailer.cs" ?>
+
+</body>
+</html>
+
+
+
diff --git a/tools/droiddoc/templates/assets/android-developer-core.css b/tools/droiddoc/templates/assets/android-developer-core.css
index daa705b..1fc819c 100644
--- a/tools/droiddoc/templates/assets/android-developer-core.css
+++ b/tools/droiddoc/templates/assets/android-developer-core.css
@@ -268,7 +268,7 @@
 .guide #guide-link a,
 .reference #reference-link a,
 .sdk #sdk-link a,
-.community #community-link a,
+.resources #resources-link a,
 .videos #videos-link a {
   background-image: url(images/bg_images_sprite.png);
   background-position: 0 0;
@@ -282,7 +282,7 @@
 .guide #guide-link a:hover,
 .reference #reference-link a:hover,
 .sdk #sdk-link a:hover,
-.community #community-link a:hover,
+.resources #resources-link a:hover,
 .videos #videos-link  a:hover {
   background-image: url(images/bg_images_sprite.png);
   background-position: 0 0;
diff --git a/tools/droiddoc/templates/assets/android-developer-docs.js b/tools/droiddoc/templates/assets/android-developer-docs.js
index 7b26efd..95099a3 100644
--- a/tools/droiddoc/templates/assets/android-developer-docs.js
+++ b/tools/droiddoc/templates/assets/android-developer-docs.js
@@ -140,6 +140,8 @@
     var cookiePath = "reference_";
   } else if (location.href.indexOf("/guide/") != -1) {
     var cookiePath = "guide_";
+  } else if (location.href.indexOf("/resources/") != -1) {
+    var cookiePath = "resources_";
   }
 
   if (!isMobile) {
@@ -166,9 +168,14 @@
 
 function highlightNav(fullPageName) {
   var lastSlashPos = fullPageName.lastIndexOf("/");
-  var firstSlashPos = (fullPageName.indexOf("/guide/") != -1) ?
-                       fullPageName.indexOf("/guide/") : 
-                       fullPageName.indexOf("/sdk/"); // first slash after /guide or /sdk
+  var firstSlashPos;
+  if (fullPageName.indexOf("/guide/") != -1) {
+      firstSlashPos = fullPageName.indexOf("/guide/");
+    } else if (fullPageName.indexOf("/sdk/") != -1) {
+      firstSlashPos = fullPageName.indexOf("/sdk/");
+    } else {
+      firstSlashPos = fullPageName.indexOf("/resources/");
+    }
   if (lastSlashPos == (fullPageName.length - 1)) { // if the url ends in slash (add 'index.html')
     fullPageName = fullPageName + "index.html";
   }
@@ -228,6 +235,8 @@
   // If in the dev guide docs, also resize the "devdoc-nav" div
   } else if (href.indexOf("/guide/") != -1) {
     $("#devdoc-nav").css({height:sidenav.css("height")});
+  } else if (href.indexOf("/resources/") != -1) {
+    $("#devdoc-nav").css({height:sidenav.css("height")});
   }
 }
 
@@ -308,6 +317,8 @@
     writeCookie("lastpage", path, "reference", null);
   } else if (path.indexOf("/guide/") != -1) {
     writeCookie("lastpage", path, "guide", null);
+  } else if (path.indexOf("/resources/") != -1) {
+    writeCookie("lastpage", path, "resources", null);
   }
 });
 
diff --git a/tools/droiddoc/templates/docpage.cs b/tools/droiddoc/templates/docpage.cs
index 06b3f35..9d85c6f 100644
--- a/tools/droiddoc/templates/docpage.cs
+++ b/tools/droiddoc/templates/docpage.cs
@@ -19,7 +19,6 @@
 
   <div id="jd-content">
 
-
     <div class="jd-descr">
     <?cs call:tag_list(root.descr) ?>
     </div>
diff --git a/tools/droiddoc/templates/head_tag.cs b/tools/droiddoc/templates/head_tag.cs
index 3a5540d..5a7fd40 100644
--- a/tools/droiddoc/templates/head_tag.cs
+++ b/tools/droiddoc/templates/head_tag.cs
@@ -5,7 +5,7 @@
   if:page.title ?><?cs 
     var:page.title ?> | <?cs
   /if ?>Android Developers</title><?cs 
-if:guide||sdk ?>
+if:guide||sdk||resources ?>
 <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 
diff --git a/tools/droiddoc/templates/sample.cs b/tools/droiddoc/templates/sample.cs
index 51193f4..7979b2a 100644
--- a/tools/droiddoc/templates/sample.cs
+++ b/tools/droiddoc/templates/sample.cs
@@ -1,20 +1,18 @@
 <?cs include:"doctype.cs" ?>
 <?cs include:"macros.cs" ?>
-<?cs set:guide="true" ?>
+<?cs set:resources="true" ?>
 <html>
 <?cs include:"head_tag.cs" ?>
 <?cs include:"header.cs" ?>
+<body class="gc-documentation">
 
-<div class="g-unit" id="doc-content"><a name="top"></a>
 
-<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>
+<a name="top"></a>
+<div class="g-unit" id="doc-content">
+ <div id="jd-header" class="guide-header">
+  <span class="crumb">&nbsp;</span>
+  <h1><?cs var:page.title ?></h1>
+ </div>
 
 <div id="jd-content">
 
diff --git a/tools/droiddoc/templates/sampleindex.cs b/tools/droiddoc/templates/sampleindex.cs
index 9842384..8a75298 100644
--- a/tools/droiddoc/templates/sampleindex.cs
+++ b/tools/droiddoc/templates/sampleindex.cs
@@ -1,20 +1,18 @@
 <?cs include:"doctype.cs" ?>
 <?cs include:"macros.cs" ?>
-<?cs set:guide="true" ?>
+<?cs set:resources="true" ?>
 <html>
 <?cs include:"head_tag.cs" ?>
 <?cs include:"header.cs" ?>
+<body class="gc-documentation">
 
-<div class="g-unit" id="doc-content"><a name="top"></a>
 
-<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>
+<a name="top"></a>
+<div class="g-unit" id="doc-content">
+ <div id="jd-header" class="guide-header">
+  <span class="crumb">&nbsp;</span>
+  <h1><?cs var:page.title ?></h1>
+ </div>
 
 <div id="jd-content">
 
@@ -54,8 +52,10 @@
 
 <?cs /if ?><?cs # end if/else online docs ?>
 
-<?cs include:"footer.cs" ?>
 </div><!-- end jd-content -->
+
+<?cs include:"footer.cs" ?>
+
 </div><!-- end doc-content -->
 
 <?cs include:"trailer.cs" ?>
