summaryrefslogtreecommitdiffstats
path: root/tools/droiddoc/templates
diff options
context:
space:
mode:
authorDirk Dougherty <nobody@android.com>2009-07-07 17:43:27 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-07-07 17:43:27 -0700
commit4405a23258d3e4df8f5970e8eb781203a5c94f7a (patch)
tree370450888d83df98b833c107960ea514d1804491 /tools/droiddoc/templates
parentf9f41d0dfdac6deb819f0cc0cb0270f504dbd4ed (diff)
downloadbuild-4405a23258d3e4df8f5970e8eb781203a5c94f7a.tar.gz
build-4405a23258d3e4df8f5970e8eb781203a5c94f7a.tar.bz2
build-4405a23258d3e4df8f5970e8eb781203a5c94f7a.zip
AI 150370: Add localized content infrastructure in droiddoc templates, javascript, and css. DocFile.java - instead of FileReader, use InputStreamReader with UTF-8 encoding. ClearPage.java - add UTF-8 output encoding to FileOutputStreamWriter. Note: this change also up-integrates gerrit 2146 (smain).
BUG=1910893 Automated import of CL 150370
Diffstat (limited to 'tools/droiddoc/templates')
-rw-r--r--tools/droiddoc/templates/assets/android-developer-core.css20
-rw-r--r--tools/droiddoc/templates/assets/android-developer-docs.css8
-rw-r--r--tools/droiddoc/templates/assets/android-developer-docs.js123
-rw-r--r--tools/droiddoc/templates/macros.cs103
4 files changed, 114 insertions, 140 deletions
diff --git a/tools/droiddoc/templates/assets/android-developer-core.css b/tools/droiddoc/templates/assets/android-developer-core.css
index 79e40b2d9..dee006fea 100644
--- a/tools/droiddoc/templates/assets/android-developer-core.css
+++ b/tools/droiddoc/templates/assets/android-developer-core.css
@@ -238,6 +238,10 @@ hr.blue {
top:7px;
}
+#header li a span+span {
+ display:none;
+}
+
/* TAB HIGHLIGHTING */
.home #home-link a,
.publish #publish-link a,
@@ -268,20 +272,20 @@ hr.blue {
#headerLinks {
margin:10px 10px 0 0;
height:13px;
-}
-
-#headerLinks .text {
- text-decoration: none;
- color: #7FA9B5;
font-size: 11px;
vertical-align: top;
}
#headerLinks a {
- text-decoration: underline;
color: #7FA9B5;
- font-size: 11px;
- vertical-align: top;
+}
+
+#headerLinks img {
+ vertical-align:middle;
+}
+
+#language {
+ margin:0 10px 0 4px;
}
#search {
diff --git a/tools/droiddoc/templates/assets/android-developer-docs.css b/tools/droiddoc/templates/assets/android-developer-docs.css
index f4aa5ef75..cf44b261f 100644
--- a/tools/droiddoc/templates/assets/android-developer-docs.css
+++ b/tools/droiddoc/templates/assets/android-developer-docs.css
@@ -89,6 +89,10 @@
zoom:1;
}
+#side-nav li a span+span {
+ display:none;
+}
+
#side-nav li a:hover {
text-decoration:underline;
}
@@ -1130,9 +1134,9 @@ body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body
page-break-inside: avoid;
}
- #qv,
+/* #qv,
#qv-wrapper {
display:none;
}
-
+*/
}
diff --git a/tools/droiddoc/templates/assets/android-developer-docs.js b/tools/droiddoc/templates/assets/android-developer-docs.js
index 2a8c3bf51..964191bf7 100644
--- a/tools/droiddoc/templates/assets/android-developer-docs.js
+++ b/tools/droiddoc/templates/assets/android-developer-docs.js
@@ -4,7 +4,7 @@ var devdocNav;
var sidenav;
var content;
var HEADER_HEIGHT = 117;
-var cookie_style = 'android_developer';
+var cookie_namespace = 'android_developer';
var NAV_PREF_TREE = "tree";
var NAV_PREF_PANELS = "panels";
var nav_pref;
@@ -70,8 +70,8 @@ function restoreHeight(packageHeight) {
$("#nav-tree").css({height:swapperHeight + "px"});
}
-function getCookie(cookie) {
- var myCookie = cookie_style+"_"+cookie+"=";
+function readCookie(cookie) {
+ var myCookie = cookie_namespace+"_"+cookie+"=";
if (document.cookie) {
var index = document.cookie.indexOf(myCookie);
if (index != -1) {
@@ -87,16 +87,15 @@ function getCookie(cookie) {
return 0;
}
-function writeCookie(cookie, val, path, expiration) {
+function writeCookie(cookie, val, section, expiration) {
if (!val) return;
- var date = new Date();
- date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
- expiration = expiration ? expiration : date.toGMTString();
- if (location.href.indexOf("/reference/") != -1) {
- document.cookie = cookie_style+'_reference_'+cookie+'='+val+'; expires='+expiration+'; path='+'/'+path;
- } else if (location.href.indexOf("/guide/") != -1) {
- document.cookie = cookie_style+'_guide_'+cookie+'='+val+'; expires='+expiration+'; path='+'/'+path;
+ section = section == null ? "_" : "_"+section+"_";
+ if (expiration == null) {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
}
+ document.cookie = cookie_namespace+section+cookie+"="+val+"; expires="+expiration+"; path=/";
}
function init() {
@@ -116,8 +115,8 @@ function init() {
if (!isMobile) {
$("#resize-packages-nav").resizable({handles: "s", resize: function(e, ui) { resizeHeight(); } });
$(".side-nav-resizable").resizable({handles: "e", resize: function(e, ui) { resizeWidth(); } });
- var cookieWidth = getCookie(cookiePath+'width');
- var cookieHeight = getCookie(cookiePath+'height');
+ var cookieWidth = readCookie(cookiePath+'width');
+ var cookieHeight = readCookie(cookiePath+'height');
if (cookieWidth) {
restoreWidth(cookieWidth);
} else if ($(".side-nav-resizable").length) {
@@ -175,7 +174,9 @@ function resizeHeight() {
$("#packages-nav").css({height:parseInt(resizePackagesNav.css("height")) - 6 + "px"}); //move 6px for handle
devdocNav.css({height:sidenav.css("height")});
$("#nav-tree").css({height:swapperHeight + "px"});
- writeCookie("height", resizePackagesNav.css("height"), "", null);
+
+ var section = location.pathname.substring(1,location.pathname.indexOf("/",1));
+ writeCookie("height", resizePackagesNav.css("height"), section, null);
}
function resizeWidth() {
@@ -190,7 +191,9 @@ function resizeWidth() {
resizePackagesNav.css({width:sidenavWidth});
classesNav.css({width:sidenavWidth});
$("#packages-nav").css({width:sidenavWidth});
- writeCookie("width", sidenavWidth, "", null);
+
+ var section = location.pathname.substring(1,location.pathname.indexOf("/",1));
+ writeCookie("width", sidenavWidth, section, null);
}
function resizeAll() {
@@ -202,12 +205,25 @@ function resizeAll() {
}
}
+function getBaseUri(uri) {
+ intlUrl = uri.substring(0,6) == "/intl/";
+ if (intlUrl) {
+ base = uri.substring(uri.indexOf('intl/')+5,uri.length);
+ base = base.substring(base.indexOf('/')+1, base.length);
+ //alert("intl, returning base url: /" + base);
+ return ("/" + base);
+ } else {
+ //alert("not intl, returning uri as found.");
+ return uri;
+ }
+}
+
function loadLast(cookiePath) {
var location = window.location.href;
if (location.indexOf("/"+cookiePath+"/") != -1) {
return true;
}
- var lastPage = getCookie(cookiePath + "_lastpage");
+ var lastPage = readCookie(cookiePath + "_lastpage");
if (lastPage) {
window.location = lastPage;
return false;
@@ -216,16 +232,14 @@ function loadLast(cookiePath) {
}
$(window).unload(function(){
- var href = location.href;
- if (href.indexOf("/reference/") != -1) {
- writeCookie("lastpage", href, "", null);
- } else if (href.indexOf("/guide/") != -1) {
- writeCookie("lastpage", href, "", null);
+ var path = getBaseUri(location.pathname);
+ if (path.indexOf("/reference/") != -1) {
+ writeCookie("lastpage", path, "reference", null);
+ } else if (path.indexOf("/guide/") != -1) {
+ writeCookie("lastpage", path, "guide", null);
}
});
-
-
function toggle(obj, slide) {
var ul = $("ul", obj);
var li = ul.parent();
@@ -246,8 +260,6 @@ function toggle(obj, slide) {
}
}
-
-
function buildToggleLists() {
$(".toggle-list").each(
function(i) {
@@ -257,7 +269,7 @@ function buildToggleLists() {
}
function getNavPref() {
- var v = getCookie('reference_nav');
+ var v = readCookie('reference_nav');
if (v != NAV_PREF_TREE) {
v = NAV_PREF_PANELS;
}
@@ -283,7 +295,7 @@ function swapNav() {
}
var date = new Date();
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // keep this for 10 years
- writeCookie("nav", nav_pref, "", date.toGMTString());
+ writeCookie("nav", nav_pref, "reference", date.toGMTString());
$("#nav-panels").toggle();
$("#panel-link").toggle();
@@ -349,3 +361,60 @@ function toggleAllSummaryInherited(linkObj) {
}
return false;
}
+
+
+function changeTabLang(lang) {
+ var nodes = $("#header-tabs").find("."+lang);
+ for (i=0; i < nodes.length; i++) { // for each node in this language
+ var node = $(nodes[i]);
+ node.siblings().css("display","none"); // hide all siblings
+ if (node.not(":empty").length != 0) { //if this languages node has a translation, show it
+ node.css("display","inline");
+ } else { //otherwise, show English instead
+ node.css("display","none");
+ node.siblings().filter(".en").css("display","inline");
+ }
+ }
+}
+
+function changeNavLang(lang) {
+ var nodes = $("#side-nav").find("."+lang);
+ for (i=0; i < nodes.length; i++) { // for each node in this language
+ var node = $(nodes[i]);
+ node.siblings().css("display","none"); // hide all siblings
+ if (node.not(":empty").length != 0) { // if this languages node has a translation, show it
+ node.css("display","inline");
+ } else { // otherwise, show English instead
+ node.css("display","none");
+ node.siblings().filter(".en").css("display","inline");
+ }
+ }
+}
+
+function changeDocLang(lang) {
+ changeTabLang(lang);
+ changeNavLang(lang);
+}
+
+function changeLangPref(lang, refresh) {
+ var date = new Date();
+ expires = date.toGMTString(date.setTime(date.getTime()+(10*365*24*60*60*1000))); // keep this for 50 years
+ //alert("expires: " + expires)
+ writeCookie("pref_lang", lang, null, expires);
+ //changeDocLang(lang);
+ if (refresh) {
+ l = getBaseUri(location.pathname);
+ window.location = l;
+ }
+}
+
+function loadLangPref() {
+ var lang = readCookie("pref_lang");
+ if (lang != 0) {
+ $("#language").find("option[value='"+lang+"']").attr("selected",true);
+ }
+}
+
+function getLangPref() {
+ return $("#language").find(":selected").attr("value");
+}
diff --git a/tools/droiddoc/templates/macros.cs b/tools/droiddoc/templates/macros.cs
index 3ba743bbf..a2306a089 100644
--- a/tools/droiddoc/templates/macros.cs
+++ b/tools/droiddoc/templates/macros.cs
@@ -233,108 +233,5 @@ def:expandable_class_list(id, classes, default) ?>
</div><?cs
/def ?>
-<?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 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>
- if (!isMobile) {
- $("<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"});
- } else {
- swapNav(); // tree view should be used on mobile
- }
- </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" ?>