Merge jb-mr1-dev into aosp/master - do not merge

Change-Id: Icf16741de4c0d248e5ffe3ef3b31ce6ce51c4c9f
This commit is contained in:
The Android Open Source Project 2012-11-27 08:05:13 -08:00
commit a2314e433e
6 changed files with 595 additions and 129 deletions

View File

@ -41,7 +41,7 @@ ifeq "" "$(PLATFORM_VERSION)"
# which is the version that we reveal to the end user.
# Update this value when the platform version changes (rather
# than overriding it somewhere else). Can be an arbitrary string.
PLATFORM_VERSION := 4.2.42.42.42
PLATFORM_VERSION := 4.2.1.2.4.8.16.32.64
endif
ifeq "" "$(PLATFORM_SDK_VERSION)"

View File

@ -129,11 +129,14 @@ strong {
em {
font-style: italic; }
acronym {
acronym,
.tooltip-link {
border-bottom: 1px dotted #555555;
cursor: help; }
acronym:hover {
acronym:hover,
.tooltip-link:hover {
color: #7aa1b0;
border-bottom-color: #7aa1b0; }
img.with-shadow,
@ -445,21 +448,23 @@ video.with-shadow {
border:1px solid #DADADA;
border-bottom:0;
}
.training-nav-top a.next-page-link {
border-left:0;
width:123px;
}
.paging-links a.disabled,
.training-nav-top a.disabled,
.content-footer a.disabled {
color:#999;
color:#bbb;
}
.paging-links a.disabled:hover,
.training-nav-top a.disabled:hover,
.content-footer a.disabled:hover {
cursor:default;
color:#999 !important;
color:#bbb !important;
}
.training-nav-top a.start-class-link,
@ -467,6 +472,78 @@ video.with-shadow {
width:262px;
}
/* list of classes on course landing page */
ol.class-list {
list-style:none;
margin-left:0;
}
ol.class-list>li {
margin:0 0 15px;
padding:5px 0 0;
overflow:hidden;
border-top:1px solid #ccc;
}
ol.class-list li a.title {
font-size:16px;
margin:0;
clear:left;
display:block;
height:32px;
padding:0 4px;
}
ol.class-list li a.title h2 {
color:inherit;
margin:0 0 10px;
display:block;
float:left;
width:675px;
}
ol.class-list li a.title span {
display:none;
float:left;
font-size:18px;
font-weight:bold;
background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
width: 10px;
height: 32px;
}
ol.class-list li a.title:hover {
background:#ddd;
color:#258AAF !important;
}
ol.class-list li a.title:hover span {
display:block;
}
#jd-content
ol.class-list li img {
float:left;
clear:left;
width:64px;
margin:0 20px 0 0;
}
ol.class-list li p.description {
float:left;
display:block;
width:250px;
margin:0;
}
ol.class-list li p.description.article {
width: 550px;
}
ol.class-list ol {
float:left;
width:320px;
margin:0 0 0 30px;
list-style:none;
margin:0 0 0 20px;
}
ol.class-list div.lessons li {
margin:0 0 6px;
line-height:16px;
}
.hide {
display:none !important;
}
@ -483,6 +560,49 @@ video.with-shadow {
float:right;
text-transform:uppercase;
}
/* inner-doc tabs w/ title */
div#title-tabs-wrapper {
border-bottom:1px solid #ccc;
margin:20px 0 30px;
}
h1.with-title-tabs {
display:inline-block;
margin:0 0 -1px 0;
padding:0 60px 0 0;
border-bottom:1px solid #F9F9F9;
}
ul#title-tabs {
list-style:none;
padding:0;
height:29px;
margin:0;
font-size:16px;
line-height:26px;
display:inline-block;
vertical-align:bottom;
}
ul#title-tabs li {
display:block;
float:left;
margin-right:40px;
border-bottom: 3px solid transparent;
}
ul#title-tabs li.selected {
border-bottom: 3px solid #93C;
}
ul#title-tabs li a {
color:#333;
}
ul#title-tabs li a:hover,
ul#title-tabs li a:active {
color:#93C !important;
}
/* content body */
@-webkit-keyframes glowheader {
@ -938,9 +1058,12 @@ dd {
dd p {
margin:10px 0 0;
}
ul p,
ol p {
margin:5px 0 0;
li p,
li pre,
li ul,
li ol {
margin-top:5px;
margin-bottom:5px;
}
pre strong, pre b, a strong, a b, a code {
color: inherit;
@ -1418,18 +1541,14 @@ Buttons
color: #444;
}
a.button, a.button:visited, a.button-secondary, a.button-secondary:visited {
height: 28px;
line-height: 28px;
margin-right: 16px;
font-weight: 400;
font-weight: 400;
min-width: 54px;
outline: 0;
padding: 8px 15px;
text-align: center;
}
.button, .button-secondary {
height: 34px;
line-height: 34px;
margin-right: 16px;
font-weight: 400;
min-width: 54px;
@ -1455,6 +1574,9 @@ EndColorStr='#4cadcb',GradientType=0);
background-image: none;
border-color: #30b7e6;
}
a.button.big.subtitle {
line-height:18px;
}
.button-secondary:hover, a.button-secondary:hover {
border-color: #dbdbdb;
background-color: #f3f3f3;
@ -1469,7 +1591,7 @@ EndColorStr='#ececec');
color: #33B5E5 !important;
}
.button-secondary:active, a.button-secondary:active {
border-color: #dadada;
border-color: #dadada;
background: #ebebeb; /* Old browsers */
/* IE9 SVG, needs conditional override of 'filter' to 'none' */
background:
@ -1510,12 +1632,20 @@ endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */
font-size:20px;
display:inline-block;
}
.button.big span.small {
font-size:14px;
}
.button-caption {
margin-top:10px;
font-size:12px;
font-style:italic;
}
.button.disabled,
.button.disabled:hover,
.button.disabled:active {
background:#ebebeb;
color:#999;
color:#999 !important;
border-color:#999;
cursor:default;
}
@ -1832,15 +1962,54 @@ form .form-error input[type='text'], form .form-error textarea {
border-color: #eff2f9;
}
*/
/* SDK TOS styles */
div.sdk-terms {
white-space: pre-wrap;
word-wrap: break-word;
font-family: inherit;
font-size: inherit;
padding: 10px;
height: 370px;
width: 738px;
border: 1px solid #444;
background: transparent;
overflow:auto;
margin:0 0 10px;
}
div.sdk-terms.fullsize {
padding: 0;
height: auto;
width: auto;
border:none;
}
div.sdk-terms h3,
div.sdk-terms h2 {
margin:0;
}
div#sdk-terms-form {
padding:0 0 0 10px;
}
div#sdk-terms-form input {
display:inline;
margin:4px 4px 4px 0;
}
/* --------------------------------------------------------------------------
Code Style
*/
pre {
margin:0 0 1em 0;
padding: 1em;
overflow: auto;
border: solid 1px #ddd;
background: #f7f7f7;
margin:0 0 1em 0;
padding: 1em;
overflow: auto;
border: solid 1px #ddd;
background: #f7f7f7;
}
.str { color: #080; }
.kwd { color: #008; }
@ -2332,6 +2501,29 @@ div.design-announce p {
line-height:30px;
}
.expandable {
height:34px;
padding-left:20px;
position:relative;
}
.expandable:before {
content: '';
background-image: url(../images/styles/disclosure_down.png);
background-repeat:no-repeat;
background-position: -12px -9px;
width: 20px;
height: 20px;
display: inline-block;
position: absolute;
top: 0;
left: 0; }
}
.expandable.expanded:before {
background-image: url(../images/styles/disclosure_up.png);
}
/* -----------------------------------------------
Dialog box for popup messages
*/

View File

@ -28,7 +28,7 @@ $(document).ready(function() {
$('.scroll-pane').jScrollPane( {verticalGutter:0} );
// add HRs below all H2s (except for a few other h2 variants)
$('h2').not('#qv h2').not('#tb h2').not('.sidebox h2').not('#devdoc-nav h2').css({marginBottom:0}).after('<hr/>');
$('h2').not('#qv h2').not('#tb h2').not('.sidebox h2').not('#devdoc-nav h2').not('h2.norule').css({marginBottom:0}).after('<hr/>');
// set search's onkeyup handler here so we can show suggestions
// even while search results are visible
@ -135,6 +135,7 @@ $(document).ready(function() {
// select current page in sidenav and set up prev/next links if they exist
var $selNavLink = $('#nav').find('a[href="' + pagePath + '"]');
var $selListItem;
if ($selNavLink.length) {
$selListItem = $selNavLink.closest('li');
@ -156,11 +157,9 @@ $(document).ready(function() {
false; // navigate across topic boundaries only in design docs
if ($prevListItem.length) {
if ($prevListItem.hasClass('nav-section')) {
if (crossBoundaries) {
// jump to last topic of previous section
$prevLink = $prevListItem.find('a:last');
}
} else {
// jump to last topic of previous section
$prevLink = $prevListItem.find('a:last');
} else if (!$selListItem.hasClass('nav-section')) {
// jump to previous topic in this section
$prevLink = $prevListItem.find('a:eq(0)');
}
@ -177,18 +176,8 @@ false; // navigate across topic boundaries only in design docs
}
}
if ($prevLink.length) {
var prevHref = $prevLink.attr('href');
if (prevHref == SITE_ROOT + 'index.html') {
// Don't show Previous when it leads to the homepage
} else {
$('.prev-page-link').attr('href', $prevLink.attr('href')).removeClass("hide");
}
}
// set up next links
var $nextLink = [];
var startCourse = false;
var startClass = false;
var training = $(".next-class-link").length; // decides whether to provide "next class" link
var isCrossingBoundary = false;
@ -206,53 +195,103 @@ false; // navigate across topic boundaries only in design docs
$('.topic-start-link').text($nextLink.text().toUpperCase());
}
// Handle some Training specialties
if ($selListItem.parent().is("#nav") && $(".start-course-link").length) {
// this means we're at the very top of the TOC hierarchy
startCourse = true;
} else if ($(".start-class-link").length) {
// this means this page has children but is not at the top (it's a class, not a course)
// If the selected page has a description, then it's a class or article homepage
if ($selListItem.find('a[description]').length) {
// this means we're on a class landing page
startClass = true;
}
} else {
// jump to the next topic in this section (if it exists)
$nextLink = $selListItem.next('li').find('a:eq(0)');
if (!$nextLink.length) {
if (crossBoundaries || training) {
// no more topics in this section, jump to the first topic in the next section
$nextLink = $selListItem.parents('li:eq(0)').next('li.nav-section').find('a:eq(0)');
isCrossingBoundary = true;
isCrossingBoundary = true;
// no more topics in this section, jump to the first topic in the next section
$nextLink = $selListItem.parents('li:eq(0)').next('li.nav-section').find('a:eq(0)');
if (!$nextLink.length) { // Go up another layer to look for next page (lesson > class > course)
$nextLink = $selListItem.parents('li:eq(1)').next('li.nav-section').find('a:eq(0)');
}
}
}
if ($nextLink.length) {
if (startCourse || startClass) {
if (startCourse) {
$('.start-course-link').attr('href', $nextLink.attr('href')).removeClass("hide");
} else {
$('.start-class-link').attr('href', $nextLink.attr('href')).removeClass("hide");
}
// if there's no training bar (below the start button),
// then we need to add a bottom border to button
if (!$("#tb").length) {
$('.start-course-link').css({'border-bottom':'1px solid #DADADA'});
$('.start-class-link').css({'border-bottom':'1px solid #DADADA'});
}
} else if (training && isCrossingBoundary) {
$('.content-footer.next-class').show();
$('.next-page-link').attr('href','')
.removeClass("hide").addClass("disabled")
.click(function() { return false; });
$('.next-class-link').attr('href',$nextLink.attr('href'))
.removeClass("hide").append($nextLink.html());
$('.next-class-link').find('.new').empty();
} else {
$('.next-page-link').attr('href', $nextLink.attr('href')).removeClass("hide");
if (startClass) {
$('.start-class-link').attr('href', $nextLink.attr('href')).removeClass("hide");
// if there's no training bar (below the start button),
// then we need to add a bottom border to button
if (!$("#tb").length) {
$('.start-class-link').css({'border-bottom':'1px solid #DADADA'});
}
} else if (isCrossingBoundary && !$('body.design').length) { // Design always crosses boundaries
$('.content-footer.next-class').show();
$('.next-page-link').attr('href','')
.removeClass("hide").addClass("disabled")
.click(function() { return false; });
$('.next-class-link').attr('href',$nextLink.attr('href'))
.removeClass("hide").append($nextLink.html());
$('.next-class-link').find('.new').empty();
} else {
$('.next-page-link').attr('href', $nextLink.attr('href')).removeClass("hide");
}
if (!startClass && $prevLink.length) {
var prevHref = $prevLink.attr('href');
if (prevHref == SITE_ROOT + 'index.html') {
// Don't show Previous when it leads to the homepage
} else {
$('.prev-page-link').attr('href', $prevLink.attr('href')).removeClass("hide");
}
}
// If this is a training 'article', there should be no prev/next nav
// ... if the grandparent is the "nav" ... and it has no child list items...
if (training && $selListItem.parents('ul').eq(1).is('[id="nav"]') &&
!$selListItem.find('li').length) {
$('.next-page-link,.prev-page-link').attr('href','').addClass("disabled")
.click(function() { return false; });
}
}
// Set up the course landing pages for Training with class names and descriptions
if ($('body.trainingcourse').length) {
var $classLinks = $selListItem.find('ul li a').not('#nav .nav-section .nav-section ul a');
var $classDescriptions = $classLinks.attr('description');
var $olClasses = $('<ol class="class-list"></ol>');
var $liClass;
var $imgIcon;
var $h2Title;
var $pSummary;
var $olLessons;
var $liLesson;
$classLinks.each(function(index) {
$liClass = $('<li></li>');
$h2Title = $('<a class="title" href="'+$(this).attr('href')+'"><h2>' + $(this).html()+'</h2><span></span></a>');
$pSummary = $('<p class="description">' + $(this).attr('description') + '</p>');
$olLessons = $('<ol class="lesson-list"></ol>');
$lessons = $(this).closest('li').find('ul li a');
if ($lessons.length) {
$imgIcon = $('<img src="'+toRoot+'assets/images/resource-tutorial.png" alt=""/>');
$lessons.each(function(index) {
$olLessons.append('<li><a href="'+$(this).attr('href')+'">' + $(this).html()+'</a></li>');
});
} else {
$imgIcon = $('<img src="'+toRoot+'assets/images/resource-article.png" alt=""/>');
$pSummary.addClass('article');
}
$liClass.append($h2Title).append($imgIcon).append($pSummary).append($olLessons);
$olClasses.append($liClass);
});
$('.jd-descr').append($olClasses);
}
@ -384,11 +423,11 @@ false; // navigate across topic boundaries only in design docs
// Set up tooltips
var TOOLTIP_MARGIN = 10;
$('acronym').each(function() {
$('acronym,.tooltip-link').each(function() {
var $target = $(this);
var $tooltip = $('<div>')
.addClass('tooltip-box')
.text($target.attr('title'))
.append($target.attr('title'))
.hide()
.appendTo('body');
$target.removeAttr('title');
@ -1052,6 +1091,22 @@ function toggleContent(obj) {
}
/* New version of expandable content */
function toggleExpandable(link,id) {
if($(id).is(':visible')) {
$(id).slideUp();
$(link).removeClass('expanded');
} else {
$(id).slideDown();
$(link).addClass('expanded');
}
}
function hideExpandable(ids) {
$(ids).slideUp();
$(ids).prev('h4').find('a.expandable').removeClass('expanded');
}
@ -1883,11 +1938,18 @@ function changeApiLevel() {
if (selectedLevel < minLevel) {
var thing = ($("#jd-header").html().indexOf("package") != -1) ? "package" : "class";
$("#naMessage").show().html("<div><p><strong>This " + thing + " is not available with API level " + selectedLevel + ".</strong></p>"
+ "<p>To use this " + thing + ", you must develop your app using a build target "
+ "that supports API level " + $("#doc-api-level").attr("class") + " or higher. To read these "
+ "APIs, change the value of the API level filter above.</p>"
+ "<p><a href='" +toRoot+ "guide/appendix/api-levels.html'>What is the API level?</a></p></div>");
$("#naMessage").show().html("<div><p><strong>This " + thing
+ " requires API level " + minLevel + " or higher.</strong></p>"
+ "<p>This document is hidden because your selected API level for the documentation is "
+ selectedLevel + ". You can change the documentation API level with the selector "
+ "above the left navigation.</p>"
+ "<p>For more information about specifying the API level your app requires, "
+ "read <a href='" + toRoot + "training/basics/supporting-devices/platforms.html'"
+ ">Supporting Different Platform Versions</a>.</p>"
+ "<input type='button' value='OK, make this page visible' "
+ "title='Change the API level to " + minLevel + "' "
+ "onclick='$(\"#apiLevelSelector\").val(\"" + minLevel + "\");changeApiLevel();' />"
+ "</div>");
} else {
$("#naMessage").hide();
}

View File

@ -7,7 +7,8 @@
elif:about ?>about<?cs
elif:design ?>design<?cs
elif:distribute ?>distribute<?cs
/if ?>" itemscope itemtype="http://schema.org/Article">
/if ?><?cs
if:page.trainingcourse ?> trainingcourse<?cs /if ?>" itemscope itemtype="http://schema.org/Article">
<a name="top"></a>
<?cs include:"header.cs" ?>
@ -16,7 +17,7 @@
?>class="col-13" id="doc-col"<?cs else
?>class="col-12" id="doc-col"<?cs /if ?> >
<?cs if:(design||training||walkthru) ?><?cs # header logic for docs that provide previous/next buttons ?>
<?cs if:(design||training||walkthru) && !page.trainingcourse ?><?cs # header logic for docs that provide previous/next buttons ?>
<?cs if:header.hide ?>
<?cs else ?>
<div class="layout-content-row content-header <?cs if:header.justLinks ?>just-links<?cs /if ?>">
@ -51,16 +52,8 @@
ja-lang="開始する"
es-lang="Empezar"
>Get started</a>
<a href="#" class="start-course-link hide"
zh-TW-lang="第一堂課"
zh-CN-lang="第一课"
ru-lang="Первый урок"
ko-lang="첫 번째 강의"
ja-lang="最初のクラス"
es-lang="Primera clase"
>First class</a>
</div>
<?cs else ?>
<?cs elif:!page.trainingcourse ?>
<div class="paging-links layout-content-col span-4" itemscope itemtype="http://schema.org/SiteNavigationElement">
<a href="#" class="prev-page-link hide"
zh-TW-lang="上一堂課"
@ -101,7 +94,17 @@
<?cs /if ?>
</div>
<?cs else ?>
<h1 itemprop="name"><?cs var:page.title ?></h1>
<?cs if:tab1 ?><div id="title-tabs-wrapper"><?cs /if ?>
<h1 itemprop="name" <?cs if:tab1 ?>class="with-title-tabs"<?cs /if ?>><?cs var:page.title ?></h1><?cs
if:tab1 ?><ul id="title-tabs">
<li class="selected"><a href="<?cs var:tab1.link ?>"><?cs var:tab1 ?></a></li>
<?cs if:tab2 ?>
<li><a href="<?cs var:tab2.link ?>"><?cs var:tab2 ?></a></li><?cs /if ?>
<?cs if:tab3 ?>
<li><a href="<?cs var:tab3.link ?>"><?cs var:tab3 ?></a></li><?cs /if ?>
</ul>
<?cs /if ?>
<?cs if:tab1 ?></div><!-- end tab-wrapper --><?cs /if ?>
<?cs /if ?>
<?cs /if ?>
<?cs /if ?><?cs # end if design ?>
@ -128,7 +131,7 @@
</div>
<?cs if:!fullscreen ?>
<div class="paging-links layout-content-col col-4">
<?cs if:(design||training||guide||walkthru) && !page.landing && !footer.hide ?>
<?cs if:(design||training||guide||walkthru) && !page.landing && !page.trainingcourse && !footer.hide ?>
<a href="#" class="prev-page-link hide"
zh-TW-lang="上一堂課"
zh-CN-lang="上一课"

View File

@ -8,7 +8,7 @@
elif:design ?>design<?cs
elif:distribute ?>distribute<?cs
/if ?>">
<div id="doc-api-level" class="<?cs var:class.since ?>" style="display:none"></div>
<div id="doc-api-level" class="<?cs var:package.since ?>" style="display:none"></div>
<a name="top"></a>
<?cs include:"header.cs" ?>

View File

@ -76,7 +76,6 @@
#
?>
<table class="download" id="download-table">
<tr>
<th>Platform</th>
@ -87,16 +86,16 @@
<tr>
<td>Windows</td>
<td>
<a onClick="_gaq.push(['_trackEvent', 'Tools', 'Download NDK', 'Link <' + <?cs var:ndk.win_download ?> + '>']);"
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.win_download ?>"><?cs var:ndk.win_download ?></a>
</td>
<td><?cs var:ndk.win_bytes ?> bytes</td>
<td><?cs var:ndk.win_checksum ?></td>
</tr>
<tr class="alt-color">
<tr>
<td>Mac OS X (intel)</td>
<td>
<a onClick="_gaq.push(['_trackEvent', 'Tools', 'Download NDK', 'Link <' + <?cs var:ndk.mac_download ?> + '>']);"
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.mac_download ?>"><?cs var:ndk.mac_download ?></a>
</td>
<td><?cs var:ndk.mac_bytes ?> bytes</td>
@ -105,7 +104,7 @@
<tr>
<td>Linux 32/64-bit (x86)</td>
<td>
<a onClick="_gaq.push(['_trackEvent', 'Tools', 'Download NDK', 'Link <' + <?cs var:ndk.linux_download ?> + '>']);"
<a onClick="return onDownload(this)"
href="http://dl.google.com/android/ndk/<?cs var:ndk.linux_download ?>"><?cs var:ndk.linux_download ?></a>
</td>
<td><?cs var:ndk.linux_bytes ?> bytes</td>
@ -116,6 +115,56 @@
<?cs ######## HERE IS THE JD DOC CONTENT ######### ?>
<?cs call:tag_list(root.descr) ?>
<script>
function onDownload(link) {
$("#downloadForRealz").html("Download " + $(link).text());
$("#downloadForRealz").attr('href',$(link).attr('href'));
$("#tos").fadeIn('slow');
location.hash = "download";
return false;
}
function onAgreeChecked() {
if ($("input#agree").is(":checked")) {
$("a#downloadForRealz").removeClass('disabled');
} else {
$("a#downloadForRealz").addClass('disabled');
}
}
function onDownloadNdkForRealz(link) {
if ($("input#agree").is(':checked')) {
$("#tos").fadeOut('slow');
$('html, body').animate({
scrollTop: $("#Installing").offset().top
}, 800, function() {
$("#Installing").click();
});
return true;
} else {
$("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200,
function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)}
);
return false;
}
}
$(window).hashchange( function(){
if (location.hash == "") {
location.reload();
}
});
</script>
<?cs else ?>
<?cs # end if NDK ...
#
@ -138,8 +187,74 @@
<?cs ######## HERE IS THE JD DOC CONTENT FOR ONLINE ######### ?>
<?cs call:tag_list(root.descr) ?>
<div class="wrap">
<div class="pax col-13 online" style="display:none">
<h4><a href='' class="expandable"
onclick="toggleExpandable(this,'.pax');hideExpandable('.myide,.reqs');return false;"
>DOWNLOAD FOR OTHER PLATFORMS</a></h4>
<div class="pax col-13 online" style="display:none;margin:0;">
<p class="table-caption"><strong>ADT Bundle</strong></p>
<table class="download">
<tr>
<th>Platform</th>
<th>Package</th>
<th>Size</th>
<th>MD5 Checksum</th>
</tr>
<tr>
<td>Windows 32-bit</td>
<td>
<a onClick="return onDownload(this)" id="win-bundle32"
href="http://dl.google.com/android/adt/<?cs var:sdk.win32_bundle_download ?>"><?cs var:sdk.win32_bundle_download ?></a>
</td>
<td><?cs var:sdk.win32_bundle_bytes ?> bytes</td>
<td><?cs var:sdk.win32_bundle_checksum ?></td>
</tr>
<tr>
<td>Windows 64-bit</td>
<td>
<a onClick="return onDownload(this)" id="win-bundle64"
href="http://dl.google.com/android/adt/<?cs var:sdk.win64_bundle_download ?>"><?cs var:sdk.win64_bundle_download ?></a>
</td>
<td><?cs var:sdk.win64_bundle_bytes ?> bytes</td>
<td><?cs var:sdk.win64_bundle_checksum ?></td>
</tr>
<tr>
<td><nobr>Mac OS X 64-bit</nobr></td>
<td>
<a onClick="return onDownload(this)" id="mac-bundle64"
href="http://dl.google.com/android/adt/<?cs var:sdk.mac64_bundle_download ?>"><?cs var:sdk.mac64_bundle_download ?></a>
</td>
<td><?cs var:sdk.mac64_bundle_bytes ?> bytes</td>
<td><?cs var:sdk.mac64_bundle_checksum ?></td>
</tr>
<tr>
<td>Linux 32-bit</td>
<td>
<a onClick="return onDownload(this)" id="linux-bundle32"
href="http://dl.google.com/android/adt/<?cs var:sdk.linux32_bundle_download ?>"><?cs var:sdk.linux32_bundle_download ?></a>
</td>
<td><?cs var:sdk.linux32_bundle_bytes ?> bytes</td>
<td><?cs var:sdk.linux32_bundle_checksum ?></td>
</tr>
<tr>
<td>Linux 64-bit</td>
<td>
<a onClick="return onDownload(this)" id="linux-bundle64"
href="http://dl.google.com/android/adt/<?cs var:sdk.linux64_bundle_download ?>"><?cs var:sdk.linux64_bundle_download ?></a>
</td>
<td><?cs var:sdk.linux64_bundle_bytes ?> bytes</td>
<td><?cs var:sdk.linux64_bundle_checksum ?></td>
</tr>
</table>
<p class="table-caption"><strong>SDK Tools Only</strong></p>
<table class="download">
<tr>
<th>Platform</th>
@ -150,7 +265,7 @@
<tr>
<td rowspan="2">Windows</td>
<td>
<a onclick="onDownload(this,false)" href="http://dl.google.com/android/<?cs var:sdk.win_download
<a onclick="return onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_download
?>"><?cs var:sdk.win_download ?></a>
</td>
<td><?cs var:sdk.win_bytes ?> bytes</td>
@ -159,17 +274,17 @@
<tr>
<!-- blank TD from Windows rowspan -->
<td>
<a onclick="onDownload(this,false)" id="win-sdk" href="http://dl.google.com/android/<?cs
<a onclick="return onDownload(this)" id="win-tools" href="http://dl.google.com/android/<?cs
var:sdk.win_installer
?>"><?cs var:sdk.win_installer ?></a> (Recommended)
</td>
<td><?cs var:sdk.win_installer_bytes ?> bytes</td>
<td><?cs var:sdk.win_installer_checksum ?></td>
</tr>
<tr class="alt-color">
<td>Mac OS X (intel)</td>
<tr>
<td>Mac OS X</td>
<td>
<a onclick="onDownload(this,false)" id="mac-sdk" href="http://dl.google.com/android/<?cs
<a onclick="return onDownload(this)" id="mac-tools" href="http://dl.google.com/android/<?cs
var:sdk.mac_download
?>"><?cs var:sdk.mac_download ?></a>
</td>
@ -177,9 +292,9 @@ var:sdk.mac_download
<td><?cs var:sdk.mac_checksum ?></td>
</tr>
<tr>
<td>Linux (i386)</td>
<td>Linux</td>
<td>
<a onclick="onDownload(this,false)" id="linux-sdk" href="http://dl.google.com/android/<?cs
<a onclick="return onDownload(this)" id="linux-tools" href="http://dl.google.com/android/<?cs
var:sdk.linux_download
?>"><?cs var:sdk.linux_download ?></a>
</td>
@ -187,50 +302,144 @@ var:sdk.linux_download
<td><?cs var:sdk.linux_checksum ?></td>
</tr>
</table>
</div><!-- end pax -->
</div><!-- end col-13 for lower-half content -->
<script>
function onDownload(link,fromButton) {
$("#filename").text($(link).html());
$("#next-steps").fadeIn('slow');
$("#intro").fadeOut('slow');
$('.pax').slideUp();
$('.reqs').slideUp();
// Deliver Analytics event
if (fromButton) {
_gaq.push(['_trackEvent', 'Tools', 'Download SDK', 'Button <' + text($(link).html()) + '>']);
} else {
_gaq.push(['_trackEvent', 'Tools', 'Download SDK', 'Link <' + text($(link).html()) + '>']);
}
if (location.hash == "#Requirements") {
$('.reqs').show();
} else if (location.hash == "#ExistingIDE") {
$('.ide').show();
}
var os;
var $link;
var bundlename;
var $toolslink;
if (navigator.appVersion.indexOf("Win")!=-1) {
os = "Windows";
$link = $('#win-sdk');
bundlename = '#win-bundle';
$toolslink = $('#win-tools');
} else if (navigator.appVersion.indexOf("Mac")!=-1) {
os = "Mac";
$link = $('#mac-sdk');
bundlename = '#mac-bundle';
$toolslink = $('#mac-tools');
} else if (navigator.appVersion.indexOf("Linux")!=-1) {
os = "Linux";
$link = $('#linux-sdk');
bundlename = '#linux-bundle';
$toolslink = $('#linux-tools');
}
if (os) {
$('#not-supported').hide();
$('#download-button').show();
$('#download-button').text("Download the SDK for " + os);
$('#download-button').click(function() {onDownload($link.get());}).attr('href', $link.attr('href'),true);
/* set up primary adt download button */
$('#download-bundle-button').show();
$('#download-bundle-button').append("Download the SDK <br/><span class='small'>ADT Bundle for " + os + "</span>");
$('#download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename);
/* set up sdk tools only button */
$('#download-tools-button').show();
$('#download-tools-button').append("Download the SDK Tools for " + os);
$('#download-tools-button').click(function() {return onDownload(this,true);}).attr('href', $toolslink.attr('href'));
} else {
$('.pax').show();
}
function onDownload(link, button, bundle) {
/* set text for download button */
if (button) {
$("#downloadForRealz").html($(link).text());
} else {
$("#downloadForRealz").html("Download " + $(link).text());
}
/* if it's a bundle, show the 32/64-bit picker */
if (bundle) {
$("#downloadForRealz").attr('bundle','true');
if ($("#downloadForRealz").text().indexOf("Mac") == -1) {
$("p#bitpicker").show();
} else {
/* mac is always 64 bit, so set it checked */
$("p#bitpicker input[value=64]").attr('checked', true);
}
/* save link name until the bit version is chosen */
$("#downloadForRealz").attr('name',$(link).attr('href'));
} else {
/* if not using bundle, set download button to ignore bitpicker and set url */
$("#downloadForRealz").attr('bundle','false');
$("#downloadForRealz").attr('href',$(link).attr('href'));
/* set picker checked as a fake default */
$("p#bitpicker input[value=64]").attr('checked', true);
$("a#next-link").html("Setting Up an Existing IDE").attr('href',toRoot + 'sdk/installing/index.html');
}
$("#tos").fadeIn('fast');
$("#landing").fadeOut('fast');
location.hash = "download";
return false;
}
function onAgreeChecked() {
/* verify that the TOS is agreed and a bit version is chosen */
if ($("input#agree").is(":checked") && $("#bitpicker input:checked").length) {
/* if downloading the bundle */
if ($("#downloadForRealz").attr('bundle')) {
/* construct the name of the link we want based on the bit version */
linkId = $("a#downloadForRealz").attr("name") + $("#bitpicker input:checked").val();
/* set the real url for download */
$("a#downloadForRealz").attr("href", $(linkId).attr("href"));
}
/* reveal the download button */
$("a#downloadForRealz").removeClass('disabled');
} else {
$("a#downloadForRealz").addClass('disabled');
}
}
function onDownloadForRealz(link) {
if ($("input#agree").is(':checked') && $("#bitpicker input:checked").length) {
$("div.sdk-terms").slideUp();
$("#sdk-terms-form,.sdk-terms-intro").fadeOut('slow');
$("#next-steps").fadeIn('slow');
$("h1#tos-header").text('Get Ready to Code!');
return true;
} else {
$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
function() {$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#222"}, 200)}
);
return false;
}
}
$(window).hashchange( function(){
if (location.hash == "") {
location.reload();
}
});
</script>
</div><!-- end pax -->
</div><!-- end wrap -->
</div><!-- end the wrapper used for relative/absolute positions -->
<?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
<?cs else ?> <?cs # end if online ?>