Revert "Merge "Resolve merge conflicts of a5f0068 to nyc-dev" into nyc-dev"
This reverts commit 6edfbfabad1ddbda00e0fcc713672f6e63acdf44, reversing
changes made to e09b2c16e32cee89d6b5ac29fe5a905b76872179.
diff --git a/tools/droiddoc/templates-sdk/assets/css/default.css b/tools/droiddoc/templates-sdk/assets/css/default.css
index accf7bf..ccaa007 100644
--- a/tools/droiddoc/templates-sdk/assets/css/default.css
+++ b/tools/droiddoc/templates-sdk/assets/css/default.css
@@ -732,7 +732,7 @@
text-align:center;
width: 50%;
}
-
+
.training-nav-top a.prev-page-link {
padding-left: 15px;
text-align: left;
@@ -840,7 +840,7 @@
margin: 0 0 6px;
line-height: 16px;
}
-
+
/* Class colors */
ol.class-list li:nth-child(10n+1) .title {
background: #00bcd4;
@@ -872,7 +872,7 @@
ol.class-list li:nth-child(10n+10) .title {
background: #7e57c2;
}
-
+
@media (max-width: 719px) {
ol.class-list ol,
ol.class-list .description {
@@ -2628,20 +2628,6 @@
margin-bottom:0;
}
-.summary-table {
- background-color:#e1e4e6;
- padding:1em;
- margin-bottom:1.5em;
-}
-.summary-table p {
- font-size:.98em;
-}
-
-.summary-table h5 {
- line-height:1em;
- font-size:.98em;
-}
-
body.about blockquote {
display:block;
float:right;
@@ -3344,7 +3330,7 @@
h4.jd-details-title {
font-size:1.15em;
background-color: #E2E2E2;
- margin:4em 0 .6em;
+ margin:1.5em 0 .6em;
padding:3px 95px 3px 3px; /* room for api-level */
}
body.google h4.jd-details-title {
@@ -6376,13 +6362,9 @@
.dac-button.dac-raised.dac-primary, .landing-secondary, .button {
background-color: #039bef; }
.dac-button.dac-raised.dac-primary:hover, .landing-secondary:hover, .button:hover {
- background-color: #0288d1;
- color:#fff; }
+ background-color: #0288d1; color:#fff; }
.dac-button.dac-raised.dac-primary:active, .landing-secondary:active, .button:active {
- background-color: #0277bd;
- color:#fff; }
- .dac-button.dac-raised.dac-primary.disabled, .button.disabled {
- background-color: #bbb; }
+ background-color: #0277bd; }
.dac-button.dac-raised.dac-red, .landing-primary {
background-color: #bf3722; }
@@ -7787,20 +7769,6 @@
text-align: center;
}
-/* Android Studio download page */
-section#features {
- padding-top:0;
-}
-.wrap.feature {
- margin:80px auto;
-}
-.dac-section-links.feature-more {
- margin-top:-20px;
-}
-.dac-toggle-content .wrap.feature {
- margin-top:0;
-}
-
@media (max-width: 719px) {
.dac-hero-figure {
height: 150px;
@@ -7810,17 +7778,6 @@
.dac-hero-figure img {
max-height: 150px;
}
-
- /* Android Studio download page */
- .feature .dac-hero-figure,
- .feature .dac-hero-figure img {
- height:auto;
- max-height:none;
- }
- .feature .dac-hero-figure img {
- width:90%;
- margin:0 auto;
- }
}
.dac-hero-carousel {
@@ -8899,85 +8856,4 @@
.dac-hero-cta.mprev {
white-space:nowrap;
}
-}
-
-/** Custom search API styles */
-.dac-custom-search {
- background: #fff;
- margin: 0 -10px;
- padding: 20px 10px;
- z-index: 1;
-}
-
-.dac-custom-search-section-title {
- color: #505050;
-}
-
-.dac-custom-search-entry {
- margin-bottom: 36px;
- margin-top: 24px;
-}
-
-.dac-custom-search-image {
- background-size: cover;
- height: 112px;
-}
-
-@media (max-width: 719px) {
- .dac-custom-search-image {
- display: none;
- }
-}
-
-.dac-custom-search-title {
- color: #333;
- font-size: 14px;
- font-weight: 700;
- line-height: 24px;
- margin: 0;
- padding: 0;
-}
-
-.dac-custom-search-title a {
- color: inherit;
-}
-
-.dac-custom-search-section {
- color: #999;
- font-size: 16px;
- font-variant: small-caps;
- font-weight: 700;
- margin: -5px 0 0 0;
-}
-
-.dac-custom-search-snippet {
- color: #666;
- margin: 0;
-}
-
-.dac-custom-search-link {
- font-weight: 500;
- word-wrap: break-word;
- width: 100%;
-}
-
-.dac-custom-search-load-more {
- background: none;
- border: none;
- color: #333;
- cursor: pointer;
- display: block;
- font-size: 14px;
- font-weight: 700;
- margin: 75px auto;
- outline: none;
- padding: 10px;
-}
-
-.dac-custom-search-load-more:hover {
- opacity: 0.7;
-}
-
-.dac-custom-search-no-results {
- color: #999;
-}
+}
\ No newline at end of file
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index c4a8150..d88c0e6 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -985,7 +985,7 @@
}
// get the selected item's offset from its container nav by measuring the item's offset
// relative to the document then subtract the container nav's offset relative to the document
- var selectedOffset = $selected.offset().top - $nav.offset().top + 60;
+ var selectedOffset = $selected.offset().top - $nav.offset().top;
if (selectedOffset > $nav.height() * .8) { // multiply nav height by .8 so we move up the item
// if it's more than 80% down the nav
// scroll the item up by an amount equal to 80% the container nav's height
@@ -1328,7 +1328,7 @@
function changeNavLang(lang) {
if (lang === 'en') { return; }
- var $links = $("a[" + lang + "-lang],p[" + lang + "-lang]");
+ var $links = $('a[' + lang + '-lang]');
$links.each(function(){ // for each link with a translation
var $link = $(this);
// put the desired language from the attribute as the text
@@ -1386,7 +1386,7 @@
$(".toggle-content-text:eq(0)", obj).toggle();
div.removeClass("closed").addClass("open");
$(".toggle-content-img:eq(0)", div).attr("title", "hide").attr("src", toRoot
- + "assets/images/styles/disclosure_up.png");
+ + "assets/images/triangle-opened.png");
} else { // if it's open, close it
toggleMe.slideUp('fast', function() { // Wait until the animation is done before closing arrow
$(".toggle-content-text:eq(0)", obj).toggle();
@@ -1394,7 +1394,7 @@
div.find(".toggle-content").removeClass("open").addClass("closed")
.find(".toggle-content-toggleme").hide();
$(".toggle-content-img", div).attr("title", "show").attr("src", toRoot
- + "assets/images/styles/disclosure_down.png");
+ + "assets/images/triangle-closed.png");
});
}
return false;
@@ -2548,13 +2548,12 @@
function submit_search() {
var query = document.getElementById('search_autocomplete').value;
location.hash = 'q=' + query;
- searchControl.query = query;
- searchControl.init();
- searchControl.trackSearchRequest(query);
+ loadSearchResults();
$("#searchResults").slideDown('slow', setStickyTop);
return false;
}
+
function hideResults() {
$("#searchResults").slideUp('fast', setStickyTop);
$("#search-close").addClass("hide");
@@ -2563,248 +2562,119 @@
$("#search_autocomplete").val("").blur();
// reset the ajax search callback to nothing, so results don't appear unless ENTER
- searchControl.reset();
+ searchControl.setSearchStartingCallback(this, function(control, searcher, query) {});
+
+ // forcefully regain key-up event control (previously jacked by search api)
+ $("#search_autocomplete").keyup(function(event) {
+ return search_changed(event, false, toRoot);
+ });
return false;
}
+
+
/* ########################################################## */
/* ################ CUSTOM SEARCH ENGINE ################## */
/* ########################################################## */
-var searchControl = null;
-var dacsearch = dacsearch || {};
-/**
- * The custom search engine API.
- * @constructor
- */
-dacsearch.CustomSearchEngine = function() {
- /**
- * The last response from Google CSE.
- * @private {Object}
- */
- this.resultQuery_ = {};
+var searchControl;
+google.load('search', '1', {"callback" : function() {
+ searchControl = new google.search.SearchControl();
+ } });
- /** @private {?Element} */
- this.searchResultEl_ = null;
+function loadSearchResults() {
+ document.getElementById("search_autocomplete").style.color = "#000";
- /** @private {?Element} */
- this.searchInputEl_ = null;
+ searchControl = new google.search.SearchControl();
- /** @private {string} */
- this.query = '';
-};
+ // use our existing search form and use tabs when multiple searchers are used
+ drawOptions = new google.search.DrawOptions();
+ drawOptions.setDrawMode(google.search.SearchControl.DRAW_MODE_TABBED);
+ drawOptions.setInput(document.getElementById("search_autocomplete"));
-/**
- * Initializes DAC's Google custom search engine.
- * @export
- */
-dacsearch.CustomSearchEngine.prototype.init = function() {
- this.searchResultEl_ = $('#leftSearchControl');
- this.searchResultEl_.empty();
- this.searchInputEl_ = $('#search_autocomplete');
- this.searchInputEl_.focus().val(this.query);
- this.getResults_();
- this.bindEvents_();
-};
+ // configure search result options
+ searchOptions = new google.search.SearcherOptions();
+ searchOptions.setExpandMode(GSearchControl.EXPAND_MODE_OPEN);
+ // configure each of the searchers, for each tab
+ devSiteSearcher = new google.search.WebSearch();
+ devSiteSearcher.setUserDefinedLabel("All");
+ devSiteSearcher.setSiteRestriction("001482626316274216503:zu90b7s047u");
-/**
- * Binds the keyup event to the search input.
- * @private
- */
-dacsearch.CustomSearchEngine.prototype.bindEvents_ = function() {
- this.searchInputEl_.keyup(this.debounce_(function(e) {
- var code = e.which;
- if (code != 13) {
- this.query = this.searchInputEl_.val();
- location.hash = 'q=' + encodeURI(this.query);
- this.searchResultEl_.empty();
- this.getResults_();
- }
- }.bind(this), 250));
-};
+ designSearcher = new google.search.WebSearch();
+ designSearcher.setUserDefinedLabel("Design");
+ designSearcher.setSiteRestriction("http://developer.android.com/design/");
+ trainingSearcher = new google.search.WebSearch();
+ trainingSearcher.setUserDefinedLabel("Training");
+ trainingSearcher.setSiteRestriction("http://developer.android.com/training/");
-/**
- * Resets the search control.
- */
-dacsearch.CustomSearchEngine.prototype.reset = function() {
- this.query = '';
- this.searchInputEl_.off('keyup');
- this.searchResultEl_.empty();
- this.updateResultTitle_();
-};
+ guidesSearcher = new google.search.WebSearch();
+ guidesSearcher.setUserDefinedLabel("Guides");
+ guidesSearcher.setSiteRestriction("http://developer.android.com/guide/");
+ referenceSearcher = new google.search.WebSearch();
+ referenceSearcher.setUserDefinedLabel("Reference");
+ referenceSearcher.setSiteRestriction("http://developer.android.com/reference/");
-/**
- * Updates the search query text at the top of the results.
- * @private
- */
-dacsearch.CustomSearchEngine.prototype.updateResultTitle_ = function() {
- $("#searchTitle").html("Results for <em>" + this.query + "</em>");
-};
+ googleSearcher = new google.search.WebSearch();
+ googleSearcher.setUserDefinedLabel("Google Services");
+ googleSearcher.setSiteRestriction("http://developer.android.com/google/");
+ blogSearcher = new google.search.WebSearch();
+ blogSearcher.setUserDefinedLabel("Blog");
+ blogSearcher.setSiteRestriction("http://android-developers.blogspot.com");
-/**
- * Makes the CSE api call and gets the results.
- * @param {number=} opt_start The optional start index.
- * @private
- */
-dacsearch.CustomSearchEngine.prototype.getResults_ = function(opt_start) {
- var lang = getLangPref();
- // Fix zh-cn to be zh-CN.
- lang = lang.replace(/-\w+/, function(m) { return m.toUpperCase(); });
- var cseUrl = 'https://content.googleapis.com/customsearch/v1?';
- var searchParams = {
- cx: '000521750095050289010:zpcpi1ea4s8',
- key: 'AIzaSyCFhbGnjW06dYwvRCU8h_zjdpS4PYYbEe8',
- q: this.query,
- start: opt_start || 1,
- num: 6,
- hl: lang,
- fields: 'queries,items(pagemap,link,title,htmlSnippet,formattedUrl)'
- };
+ // add each searcher to the search control
+ searchControl.addSearcher(devSiteSearcher, searchOptions);
+ searchControl.addSearcher(designSearcher, searchOptions);
+ searchControl.addSearcher(trainingSearcher, searchOptions);
+ searchControl.addSearcher(guidesSearcher, searchOptions);
+ searchControl.addSearcher(referenceSearcher, searchOptions);
+ searchControl.addSearcher(googleSearcher, searchOptions);
+ searchControl.addSearcher(blogSearcher, searchOptions);
- $.get(cseUrl + $.param(searchParams), function(data) {
- this.resultQuery_ = data;
- this.renderResults_(data);
- this.updateResultTitle_(this.query);
- }.bind(this));
-};
+ // configure result options
+ searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
+ searchControl.setLinkTarget(google.search.Search.LINK_TARGET_SELF);
+ searchControl.setTimeoutInterval(google.search.SearchControl.TIMEOUT_SHORT);
+ searchControl.setNoResultsString(google.search.SearchControl.NO_RESULTS_DEFAULT_STRING);
+ // upon ajax search, refresh the url and search title
+ searchControl.setSearchStartingCallback(this, function(control, searcher, query) {
+ updateResultTitle(query);
+ var query = document.getElementById('search_autocomplete').value;
+ location.hash = 'q=' + query;
+ });
-/**
- * Renders the results.
- * @private
- */
-dacsearch.CustomSearchEngine.prototype.renderResults_ = function(results) {
- var el = this.searchResultEl_;
+ // once search results load, set up click listeners
+ searchControl.setSearchCompleteCallback(this, function(control, searcher, query) {
+ addResultClickListeners();
+ });
- if (!results.items) {
- el.append($('<div>').text('No results'));
- return;
- }
+ // draw the search results box
+ searchControl.draw(document.getElementById("leftSearchControl"), drawOptions);
- for (var i = 0; i < results.items.length; i++) {
- var item = results.items[i];
- var hasImage = item.pagemap && item.pagemap.cse_thumbnail;
- var sectionMatch = item.link.match(/developer\.android\.com\/(\w*)/);
- var section = (sectionMatch && sectionMatch[1]) || 'blog';
+ // get query and execute the search
+ searchControl.execute(decodeURI(getQuery(location.hash)));
- var entry = $('<div>').addClass('dac-custom-search-entry cols');
-
- if (hasImage) {
- var image = item.pagemap.cse_thumbnail[0];
- entry.append($('<div>').addClass('col-1of6')
- .append($('<div>').addClass('dac-custom-search-image').css(
- 'background-image', 'url(' + image.src + ')')));
- }
-
- var linkTitleEl = $('<a>').text(item.title).attr('href', item.link);
- linkTitleEl.click(function(e) {
- ga('send', 'event', 'Google Custom Search',
- 'clicked: ' + linkTitleEl.attr('href'),
- 'query: ' + $("#search_autocomplete").val().toLowerCase());
- });
-
- var linkUrlEl = $('<a>').addClass('dac-custom-search-link').text(
- item.formattedUrl).attr('href', item.link);
- linkUrlEl.click(function(e) {
- ga('send', 'event', 'Google Custom Search',
- 'clicked: ' + linkUrlEl.attr('href'),
- 'query: ' + $("#search_autocomplete").val().toLowerCase());
- });
-
-
- entry.append($('<div>').addClass(hasImage ? 'col-5of6' : 'col-6of6')
- .append($('<p>').addClass('dac-custom-search-section').text(section))
- .append(
- linkTitleEl.wrap('<h2>').parent().addClass('dac-custom-search-title'))
- .append($('<p>').addClass('dac-custom-search-snippet')
- .html(item.htmlSnippet.replace(/<br>/g, ''))).append(linkUrlEl));
-
- el.append(entry);
- }
-
- if ($('#dac-custom-search-load-more')) {
- $('#dac-custom-search-load-more').remove();
- }
-
- if (results.queries.nextPage) {
- var loadMoreButton = $('<button id="dac-custom-search-load-more">')
- .addClass('dac-custom-search-load-more')
- .text('Load more')
- .click(function() {
- this.loadMoreResults_();
- }.bind(this));
-
- el.append(loadMoreButton);
- }
-};
-
-
-/**
- * Loads more results.
- * @private
- */
-dacsearch.CustomSearchEngine.prototype.loadMoreResults_ = function() {
- this.query = this.resultQuery_.queries.request[0].searchTerms;
- var start = this.resultQuery_.queries.nextPage[0].startIndex;
- var loadMoreButton = this.searchResultEl_.find(
- '#dac-custom-search-load-more');
- loadMoreButton.text('Loading more...');
- this.getResults_(start);
- this.trackSearchRequest(this.query + ' startIndex = ' + start);
-};
-
-
-/**
- * Tracks a search request.
- * @param {string} query The query for the request,
- * includes start index if loading more results.
- */
-dacsearch.CustomSearchEngine.prototype.trackSearchRequest = function(query) {
- ga('send', 'event', 'Google Custom Search Submit', 'submit search query',
- 'query: ' + query);
-};
-
-
-/**
- * Returns a function, that, as long as it continues to be invoked, will not
- * be triggered. The function will be called after it stops being called for
- * N milliseconds.
- * @param {Function} func The function to debounce.
- * @param {number} wait The number of milliseconds to wait before calling the function.
- * @private
- */
-dacsearch.CustomSearchEngine.prototype.debounce_ = function(func, wait) {
- var timeout;
- return function() {
- var context = this, args = arguments;
- var later = function() {
- timeout = null;
- func.apply(context, args);
- };
- clearTimeout(timeout);
- timeout = setTimeout(later, wait);
- };
-};
+ document.getElementById("search_autocomplete").focus();
+ addTabListeners();
+}
+// End of loadSearchResults
google.setOnLoadCallback(function(){
- searchControl = new dacsearch.CustomSearchEngine();
if (location.hash.indexOf("q=") == -1) {
// if there's no query in the url, don't search and make sure results are hidden
$('#searchResults').hide();
return;
} else {
// first time loading search results for this page
- searchControl.query = decodeURI(location.hash.split('q=')[1]);
- searchControl.init();
- searchControl.trackSearchRequest(searchControl.query);
$('#searchResults').slideDown('slow', setStickyTop);
$("#search-close").removeClass("hide");
+ loadSearchResults();
}
}, true);
@@ -2833,7 +2703,7 @@
// If the hash isn't a search query or there's an error in the query,
// then adjust the scroll position to account for sticky header, then exit.
- if ((location.hash.indexOf("q=") == -1) || (searchControl.query == "undefined")) {
+ if ((location.hash.indexOf("q=") == -1) || (query == "undefined")) {
// If the results pane is open, close it.
if (!$("#searchResults").is(":hidden")) {
hideResults();
@@ -2842,11 +2712,65 @@
return;
}
+ // Otherwise, we have a search to do
+ var query = decodeURI(getQuery(location.hash));
+ searchControl.execute(query);
$('#searchResults').slideDown('slow', setStickyTop);
$("#search_autocomplete").focus();
$("#search-close").removeClass("hide");
+
+ updateResultTitle(query);
});
+function updateResultTitle(query) {
+ $("#searchTitle").html("Results for <em>" + escapeHTML(query) + "</em>");
+}
+
+// forcefully regain key-up event control (previously jacked by search api)
+$("#search_autocomplete").keyup(function(event) {
+ return search_changed(event, false, toRoot);
+});
+
+// add event listeners to each tab so we can track the browser history
+function addTabListeners() {
+ var tabHeaders = $(".gsc-tabHeader");
+ for (var i = 0; i < tabHeaders.length; i++) {
+ $(tabHeaders[i]).attr("id",i).click(function() {
+ /*
+ // make a copy of the page numbers for the search left pane
+ setTimeout(function() {
+ // remove any residual page numbers
+ $('#searchResults .gsc-tabsArea .gsc-cursor-box.gs-bidi-start-align').remove();
+ // move the page numbers to the left position; make a clone,
+ // because the element is drawn to the DOM only once
+ // and because we're going to remove it (previous line),
+ // we need it to be available to move again as the user navigates
+ $('#searchResults .gsc-webResult .gsc-cursor-box.gs-bidi-start-align:visible')
+ .clone().appendTo('#searchResults .gsc-tabsArea');
+ }, 200);
+ */
+ });
+ }
+ setTimeout(function(){$(tabHeaders[0]).click()},200);
+}
+
+// add analytics tracking events to each result link
+function addResultClickListeners() {
+ $("#searchResults a.gs-title").each(function(index, link) {
+ // When user clicks enter for Google search results, track it
+ $(link).click(function() {
+ ga('send', 'event', 'Google Click', 'clicked: ' + $(this).attr('href'),
+ 'query: ' + $("#search_autocomplete").val().toLowerCase());
+ });
+ });
+}
+
+
+function getQuery(hash) {
+ var queryParts = hash.split('=');
+ return queryParts[1];
+}
+
/* returns the given string with all HTML brackets converted to entities
TODO: move this to the site's JS library */
function escapeHTML(string) {
@@ -3447,13 +3371,13 @@
if ( (expand == null && a.hasClass("closed")) || expand ) {
list.style.display = "none";
summary.style.display = "block";
- trigger.src = toRoot + "assets/images/styles/disclosure_up.png";
+ trigger.src = toRoot + "assets/images/triangle-opened.png";
a.removeClass("closed");
a.addClass("opened");
} else if ( (expand == null && a.hasClass("opened")) || (expand == false) ) {
list.style.display = "block";
summary.style.display = "none";
- trigger.src = toRoot + "assets/images/styles/disclosure_down.png";
+ trigger.src = toRoot + "assets/images/triangle-closed.png";
a.removeClass("opened");
a.addClass("closed");
}
@@ -3823,7 +3747,7 @@
return $el;
}
-
+
function createResponsiveFlowColumn(cardSize) {
var cardWidth = parseInt(cardSize.match(/(\d+)/)[1], 10);
var column = $('<div>').addClass('col-' + (cardWidth / 3) + 'of6');
@@ -3864,7 +3788,7 @@
var cardSize = cardSizes[j++ % cardSizes.length];
cardSize = cardSize.replace(/^\s+|\s+$/,'');
-
+
var column = createResponsiveFlowColumn(cardSize).appendTo(cardParent);
// A stack has a third dimension which is the number of stacked items
@@ -4944,11 +4868,6 @@
this.el.removeClass('dac-active');
$('body').removeClass('dac-modal-open');
this.isOpen = false;
- // When closing the modal for Android Studio downloads, reload the page
- // because otherwise we might get stuck with post-download dialog state
- if ($("[data-modal='studio_tos']").length) {
- location.reload();
- }
};
Modal.prototype.open_ = function() {
diff --git a/tools/droiddoc/templates-sdk/components/masthead.cs b/tools/droiddoc/templates-sdk/components/masthead.cs
index e17612d..cc00baa 100644
--- a/tools/droiddoc/templates-sdk/components/masthead.cs
+++ b/tools/droiddoc/templates-sdk/components/masthead.cs
@@ -252,7 +252,8 @@
<?cs if:android.hasSamples ?>
<li class="dac-nav-item samples">
<a class="dac-nav-link" href="<?cs var:toroot ?>samples/index.html">Samples</a>
- </li><?cs /if ?>
+ </li>
+ <?cs /if ?>
<li class="dac-nav-item preview">
<a class="dac-nav-link" href="<?cs var:toroot ?>preview/index.html">Preview</a>
</li>
diff --git a/tools/droiddoc/templates-sdk/customizations.cs b/tools/droiddoc/templates-sdk/customizations.cs
index 4cf5abb..d52f0e4 100644
--- a/tools/droiddoc/templates-sdk/customizations.cs
+++ b/tools/droiddoc/templates-sdk/customizations.cs
@@ -10,7 +10,7 @@
<div id="body-content">
<div>
<?cs /def ?>
-<?cs
+<?cs
def:sdk_nav() ?>
<div class="wrap clearfix" id="body-content"><div class="cols">
<div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
@@ -297,7 +297,7 @@
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -528,7 +528,7 @@
call:fullpage() ?><?cs
elif:nonavpage ?><?cs
call:no_nav() ?><?cs
- elif:guide || reference || samples || downloads ?><?cs
+ elif:guide || reference || samples || downloads ?><?cs
call:ndk_nav() ?><?cs
else ?><?cs
call:default_left_nav() ?> <?cs
diff --git a/tools/droiddoc/templates-sdk/designpage.cs b/tools/droiddoc/templates-sdk/designpage.cs
index d9c2681..4a523ce 100644
--- a/tools/droiddoc/templates-sdk/designpage.cs
+++ b/tools/droiddoc/templates-sdk/designpage.cs
@@ -9,10 +9,10 @@
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic">
<link rel="stylesheet" href="<?cs var:toroot ?>assets/yui-3.3.0-reset-min.css">
- <link rel="stylesheet" href="<?cs var:toroot ?>assets/design/default.css?v=19">
+ <link rel="stylesheet" href="<?cs var:toroot ?>assets/design/default.css">
<script src="<?cs var:toroot ?>assets/jquery-1.6.2.min.js"></script>
<script>var SITE_ROOT = '<?cs var:toroot ?>design';</script>
- <script src="<?cs var:toroot ?>assets/design/default.js?v=19"></script>
+ <script src="<?cs var:toroot ?>assets/design/default.js"></script>
</head>
<body class="gc-documentation
<?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
diff --git a/tools/droiddoc/templates-sdk/docpage.cs b/tools/droiddoc/templates-sdk/docpage.cs
index d41adaa..668105b 100644
--- a/tools/droiddoc/templates-sdk/docpage.cs
+++ b/tools/droiddoc/templates-sdk/docpage.cs
@@ -193,11 +193,11 @@
</div><!-- end doc-content -->
<?cs include:"trailer.cs" ?>
- <script src="https://developer.android.com/ytblogger_lists_unified.js?v=19" type="text/javascript"></script>
- <script src="<?cs var:toroot ?>jd_lists_unified.js?v=19" type="text/javascript"></script>
- <script src="<?cs var:toroot ?>jd_extras.js?v=19" type="text/javascript"></script>
- <script src="<?cs var:toroot ?>jd_collections.js?v=19" type="text/javascript"></script>
- <script src="<?cs var:toroot ?>jd_tag_helpers.js?v=19" type="text/javascript"></script>
+ <script src="https://developer.android.com/ytblogger_lists_unified.js" type="text/javascript"></script>
+ <script src="<?cs var:toroot ?>jd_lists_unified.js?v=15" type="text/javascript"></script>
+ <script src="<?cs var:toroot ?>jd_extras.js?v=15" type="text/javascript"></script>
+ <script src="<?cs var:toroot ?>jd_collections.js?v=15" type="text/javascript"></script>
+ <script src="<?cs var:toroot ?>jd_tag_helpers.js?v=15" type="text/javascript"></script>
</body>
</html>
diff --git a/tools/droiddoc/templates-sdk/footer.cs b/tools/droiddoc/templates-sdk/footer.cs
index 095c7fd..a0900f2 100644
--- a/tools/droiddoc/templates-sdk/footer.cs
+++ b/tools/droiddoc/templates-sdk/footer.cs
@@ -44,12 +44,10 @@
<select name="language" onchange="changeLangPref(this.value, true)">
<option value="en" selected="selected">English</option>
<option value="es">Español</option>
- <option value="in">Bahasa Indonesia</option>
<option value="ja">日本語</option>
<option value="ko">한국어</option>
<option value="pt-br">Português Brasileiro</option>
<option value="ru">Русский</option>
- <option value="vi">tiếng Việt</option>
<option value="zh-cn">中文(简体)</option>
<option value="zh-tw">中文(繁體)</option>
</select>
diff --git a/tools/droiddoc/templates-sdk/head_tag.cs b/tools/droiddoc/templates-sdk/head_tag.cs
index 1dbb3c3..c668203 100644
--- a/tools/droiddoc/templates-sdk/head_tag.cs
+++ b/tools/droiddoc/templates-sdk/head_tag.cs
@@ -22,17 +22,6 @@
<meta name="Description" content="<?cs var:page.metaDescription ?>"><?cs
/if ?>
<link rel="shortcut icon" type="image/x-icon" href="<?cs var:toroot ?>favicon.ico" />
-<link rel="alternate" href="http://developer.android.com/<?cs var:path.canonical ?>" hreflang="en" />
-<link rel="alternate" href="http://developer.android.com/intl/es/<?cs var:path.canonical ?>" hreflang="es" />
-<link rel="alternate" href="http://developer.android.com/intl/id/<?cs var:path.canonical ?>" hreflang="id" />
-<link rel="alternate" href="http://developer.android.com/intl/ja/<?cs var:path.canonical ?>" hreflang="ja" />
-<link rel="alternate" href="http://developer.android.com/intl/ko/<?cs var:path.canonical ?>" hreflang="ko" />
-<link rel="alternate" href="http://developer.android.com/intl/pt-br/<?cs var:path.canonical ?>" hreflang="pt-br" />
-<link rel="alternate" href="http://developer.android.com/intl/ru/<?cs var:path.canonical ?>" hreflang="ru" />
-<link rel="alternate" href="http://developer.android.com/intl/vi/<?cs var:path.canonical ?>" hreflang="vi" />
-<link rel="alternate" href="http://developer.android.com/intl/zh-cn/<?cs var:path.canonical ?>" hreflang="zh-cn" />
-<link rel="alternate" href="http://developer.android.com/intl/zh-tw/<?cs var:path.canonical ?>" hreflang="zh-tw" />
-
<title><?cs
if:page.title ?><?cs
var:page.title ?> | <?cs
@@ -47,12 +36,12 @@
if:android.whichdoc != 'online' ?>https:<?cs
/if ?>//fonts.googleapis.com/css?family=Roboto:light,regular,medium,thin,italic,mediumitalic,bold"
title="roboto">
-<?cs
+<?cs
if:ndk ?><link rel="stylesheet" href="<?cs
if:android.whichdoc != 'online' ?>https:<?cs
/if ?>//fonts.googleapis.com/css?family=Roboto+Mono:400,500,700" title="roboto-mono" type="text/css"><?cs
/if ?>
-<link href="<?cs var:toroot ?>assets/css/default.css?v=19" rel="stylesheet" type="text/css">
+<link href="<?cs var:toroot ?>assets/css/default.css?v=7" rel="stylesheet" type="text/css">
<?cs if:reference && !(reference.gms || reference.gcm || preview) ?>
<!-- FULLSCREEN STYLESHEET -->
@@ -75,9 +64,8 @@
var toRoot = "<?cs var:toroot ?>";
var metaTags = [<?cs var:meta.tags ?>];
var devsite = <?cs if:devsite ?>true<?cs else ?>false<?cs /if ?>;
- var useUpdatedTemplates = <?cs if:useUpdatedTemplates ?>true<?cs else ?>false<?cs /if ?>;
</script>
-<script src="<?cs var:toroot ?>assets/js/docs.js?v=19" type="text/javascript"></script>
+<script src="<?cs var:toroot ?>assets/js/docs.js?v=6" type="text/javascript"></script>
<?cs if:helpoutsWidget ?>
<script type="text/javascript" src="https://helpouts.google.com/ps/res/embed.js" defer async
diff --git a/tools/droiddoc/templates-sdk/sdkpage.cs b/tools/droiddoc/templates-sdk/sdkpage.cs
index d4b0af2..401f183 100644
--- a/tools/droiddoc/templates-sdk/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk/sdkpage.cs
@@ -1,6 +1,5 @@
<?cs include:"doctype.cs" ?>
<?cs include:"macros.cs" ?>
-<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_vars.cs" ?>
<html<?cs if:devsite ?> devsite<?cs /if ?>>
<?cs if:sdk.redirect ?>
<head>
@@ -81,20 +80,20 @@
<th>Platform</th>
<th>Package</th>
<th style="white-space:nowrap">Size (Bytes)</th>
- <th>SHA1 Checksum</th>
+ <th>MD5 Checksum</th>
</tr>
<tr>
<td>Windows 32-bit</td>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
</td>
<td><?cs var:ndk.win32_bytes ?></td>
<td><?cs var:ndk.win32_checksum ?></td>
</tr>
<!-- <tr>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
+ <a onClick="return onDownload(this)"
href="//dl.google.com/android/ndk/<?cs var:ndk.win32.legacy_download ?>"><?cs var:ndk.win32.legacy_download ?></a>
</td>
<td><?cs var:ndk.win32.legacy_bytes ?></td>
@@ -103,16 +102,16 @@
<tr>
<td>Windows 64-bit</td>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
</td>
<td><?cs var:ndk.win64_bytes ?></td>
<td><?cs var:ndk.win64_checksum ?></td>
</tr>
<!-- <tr>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
</td>
<td><?cs var:ndk.win64.legacy_bytes ?></td>
<td><?cs var:ndk.win64.legacy_checksum ?></td>
@@ -121,8 +120,8 @@
<tr>
<td>Mac OS X 32-bit</td>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
</td>
<td><?cs var:ndk.mac32_bytes ?></td>
<td><?cs var:ndk.mac32_checksum ?></td>
@@ -130,32 +129,41 @@
<!-- (this item is deprecated)
<tr>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
</td>
<td><?cs var:ndk.mac32.legacy_bytes ?></td>
<td><?cs var:ndk.mac32.legacy_checksum ?></td>
</tr> -->
<td>Mac OS X 64-bit</td>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
</td>
<td><?cs var:ndk.mac64_bytes ?></td>
<td><?cs var:ndk.mac64_checksum ?></td>
</tr>
<!-- <tr>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
</td>
<td><?cs var:ndk.mac64.legacy_bytes ?></td>
<td><?cs var:ndk.mac64.legacy_checksum ?></td>
</tr> -->
+ <tr>
+ <td>Linux 32-bit (x86)</td>
+ <td>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.linux32_download ?>"><?cs var:ndk.linux32_download ?></a>
+ </td>
+ <td><?cs var:ndk.linux32_bytes ?></td>
+ <td><?cs var:ndk.linux32_checksum ?></td>
+ </tr>
<!-- <tr>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
</td>
<td><?cs var:ndk.linux32.legacy_bytes ?></td>
<td><?cs var:ndk.linux32.legacy_checksum ?></td>
@@ -163,16 +171,16 @@
<tr>
<td>Linux 64-bit (x86)</td>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
</td>
<td><?cs var:ndk.linux64_bytes ?></td>
<td><?cs var:ndk.linux64_checksum ?></td>
</tr>
<!-- <tr>
<td>
- <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
- href="//dl.google.com/android/repository/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
+ <a onClick="return onDownload(this)"
+ href="//dl.google.com/android/ndk/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
</td>
<td><?cs var:ndk.linux64.legacy_bytes ?></td>
<td><?cs var:ndk.linux64.legacy_checksum ?></td>
@@ -184,13 +192,16 @@
<?cs call:tag_list(root.descr) ?>
-<?cs ######## The NDK version of the download script ######### ?>
+
<script>
function onDownload(link) {
$("#downloadForRealz").html("Download " + $(link).text());
$("#downloadForRealz").attr('href',$(link).attr('href'));
+ $("#tos").fadeIn('slow');
+
+ location.hash = "download";
return false;
}
@@ -203,28 +214,25 @@
}
}
-
- function onDownloadForRealz(link) {
+ function onDownloadNdkForRealz(link) {
if ($("input#agree").is(':checked')) {
- $("div.sdk-terms").slideUp();
- $("h2#tos-header").text('Now downloading...');
- $(".sdk-terms-intro").text('Your download is in progress.');
- $("#sdk-terms-form").fadeOut('slow', function() {
- setTimeout(function() {
- // close the dialog
- $('#ndk_tos').trigger('modal-close');
- // reload to refresh the tos or optionally forward the user
- location.reload();
- }, 3000);
+ $("#tos").fadeOut('slow');
+
+ $('html, body').animate({
+ scrollTop: $("#Installing").offset().top
+ }, 800, function() {
+ $("#Installing").click();
});
- ga('send', 'event', 'SDK', 'NDK tools', $("#downloadForRealz").html());
+
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();
@@ -256,173 +264,153 @@
<?cs call:tag_list(root.descr) ?>
-<section id="downloads" class="dac-section dac-small">
-<div class="wrap">
-
-<h2 class="norule">Start using Android Studio today</h2>
-
-<p>Android Studio includes all the tools you need to build apps for Android.</p>
-
-<div style="float:left;margin-right:40px;width:auto;">
-<p>
- <a class="landing-button green download-bundle-button"
- data-modal-toggle="studio_tos">Download Android Studio 2.0<br>
- <span class="small"></span></a>
-</p>
-</div>
-
-<div style="float:left;width:auto;margin-bottom:40px">
-<ul class="nolist" style="text-transform: uppercase;margin:8px 0">
-<li>Version: <?cs var:studio.version ?></li>
-<li>Release date: <?cs var:studio.release.date ?></li>
-</ul>
-</div>
+<div class="pax col-13 online" style="margin:0;">
-<h4 style="clear:left;margin-top:40px">Select a different platform</h4>
+
+<h3>SDK Tools Only</h3>
+
+<p>If you prefer to use a different IDE or run the tools from the
+command line or with build scripts, you can instead download the stand-alone Android SDK Tools.
+These packages provide the basic SDK tools for app development, without an IDE.
+Also see the <a href="<?cs var:toroot ?>tools/sdk/tools-notes.html">SDK tools release notes</a>.</p>
<table class="download">
<tr>
<th>Platform</th>
- <th>Android Studio package</th>
+ <th>Package</th>
<th>Size</th>
- <th>SHA-1 checksum</th>
+ <th>SHA-1 Checksum</th>
</tr>
<tr>
- <td rowspan="3">Windows</td>
+ <td rowspan="2">Windows</td>
<td>
- <a onclick="return onDownload(this,false,true)" id="win-bundle" data-modal-toggle="studio_tos"
- href="//dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_exe_download ?>"
- ><?cs var:studio.win_bundle_exe_download ?></a><br>
- Includes Windows installer (recommended)
+ <a onclick="return onDownload(this)" id="win-tools" href="//dl.google.com/android/<?cs
+var:sdk.win_installer
+?>"><?cs var:sdk.win_installer ?></a> (Recommended)
</td>
- <td id="win-bundle-size"><?cs call:size_in_mb(studio.win_bundle_exe_bytes) ?> MB
- <br>(<?cs var:studio.win_bundle_exe_bytes ?> bytes)</td>
- <td><?cs var:studio.win_bundle_exe_checksum ?></td>
+ <td><?cs var:sdk.win_installer_bytes ?> bytes</td>
+ <td><?cs var:sdk.win_installer_checksum ?></td>
</tr>
<tr>
<!-- blank TD from Windows rowspan -->
<td>
- <a onclick="return onDownload(this,false,true)" id="win-bundle-zip" data-modal-toggle="studio_tos"
- href="//dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_download ?>"
- ><?cs var:studio.win_bundle_download ?></a><br>
- No Windows installer
+ <a onclick="return onDownload(this)" href="//dl.google.com/android/<?cs var:sdk.win_download
+?>"><?cs var:sdk.win_download ?></a>
</td>
- <td><?cs call:size_in_mb(studio.win_bundle_bytes) ?> MB
- <br>(<?cs var:studio.win_bundle_bytes ?> bytes)</td>
- <td><?cs var:studio.win_bundle_checksum ?></td>
- </tr>
- <tr>
- <!-- blank TD from Windows rowspan -->
- <td>
- <a onclick="return onDownload(this,false,true)" id="win-bundle-notools" data-modal-toggle="studio_tos"
- href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_notools_exe_download ?>"
- ><?cs var:studio.win_notools_exe_download ?></a><br>
- Includes Windows installer but no SDK tools
- </td>
- <td><?cs call:size_in_mb(studio.win_notools_exe_bytes) ?> MB
- <br>(<?cs var:studio.win_notools_exe_bytes ?> bytes)</td>
- <td><?cs var:studio.win_notools_exe_checksum ?></td>
+ <td><?cs var:sdk.win_bytes ?> bytes</td>
+ <td><?cs var:sdk.win_checksum ?></td>
</tr>
<tr>
<td><nobr>Mac OS X</nobr></td>
<td>
- <a onclick="return onDownload(this,false,true)" id="mac-bundle" data-modal-toggle="studio_tos"
- href="//dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.mac_bundle_download ?>"
- ><?cs var:studio.mac_bundle_download ?></a>
+ <a onclick="return onDownload(this)" id="mac-tools" href="//dl.google.com/android/<?cs
+var:sdk.mac_download
+?>"><?cs var:sdk.mac_download ?></a>
</td>
- <td id="mac-bundle-size"><?cs call:size_in_mb(studio.mac_bundle_bytes) ?> MB
- <br>(<?cs var:studio.mac_bundle_bytes ?> bytes)</td>
- <td><?cs var:studio.mac_bundle_checksum ?></td>
+ <td><?cs var:sdk.mac_bytes ?> bytes</td>
+ <td><?cs var:sdk.mac_checksum ?></td>
</tr>
<tr>
<td>Linux</td>
<td>
- <a onclick="return onDownload(this,false,true)" id="linux-bundle" data-modal-toggle="studio_tos"
- href="//dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.linux_bundle_download ?>"
+ <a onclick="return onDownload(this)" id="linux-tools" href="//dl.google.com/android/<?cs
+var:sdk.linux_download
+?>"><?cs var:sdk.linux_download ?></a>
+ </td>
+ <td><?cs var:sdk.linux_bytes ?> bytes</td>
+ <td><?cs var:sdk.linux_checksum ?></td>
+ </tr>
+ </table>
+
+
+
+<h3>All Android Studio Packages</h3>
+
+<p>Select a specific Android Studio package for your platform. Also see the
+<a href="<?cs var:toroot ?>tools/revisions/studio.html">Android Studio release notes</a>.</p>
+
+ <table class="download">
+ <tr>
+ <th>Platform</th>
+ <th>Package</th>
+ <th>Size</th>
+ <th>SHA-1 Checksum</th>
+ </tr>
+
+ <tr>
+ <td rowspan="3">Windows</td>
+ <td>
+ <a onclick="return onDownload(this,false,true)" id="win-bundle"
+ href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_exe_download ?>"
+ ><?cs var:studio.win_bundle_exe_download ?></a><br>(Recommended)
+ </td>
+ <td><?cs var:studio.win_bundle_exe_bytes ?> bytes</td>
+ <td><?cs var:studio.win_bundle_exe_checksum ?></td>
+ </tr>
+
+ <tr>
+ <!-- blank TD from Windows rowspan -->
+ <td>
+ <a onclick="return onDownload(this,false,true)" id="win-bundle-notools"
+ href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_notools_exe_download ?>"
+ ><?cs var:studio.win_notools_exe_download ?></a><br>(No SDK tools included)
+ </td>
+ <td><?cs var:studio.win_notools_exe_bytes ?> bytes</td>
+ <td><?cs var:studio.win_notools_exe_checksum ?></td>
+ </tr>
+
+ <tr>
+ <!-- blank TD from Windows rowspan -->
+ <td>
+ <a onclick="return onDownload(this,false,true)" id="win-bundle-zip"
+ href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_download ?>"
+ ><?cs var:studio.win_bundle_download ?></a>
+ </td>
+ <td><?cs var:studio.win_bundle_bytes ?> bytes</td>
+ <td><?cs var:studio.win_bundle_checksum ?></td>
+ </tr>
+
+ <tr>
+ <td><nobr>Mac OS X</nobr></td>
+ <td>
+ <a onclick="return onDownload(this,false,true)" id="mac-bundle"
+ href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.mac_bundle_download ?>"
+ ><?cs var:studio.mac_bundle_download ?></a>
+ </td>
+ <td><?cs var:studio.mac_bundle_bytes ?> bytes</td>
+ <td><?cs var:studio.mac_bundle_checksum ?></td>
+ </tr>
+
+ <tr>
+ <td>Linux</td>
+ <td>
+ <a onclick="return onDownload(this,false,true)" id="linux-bundle"
+ href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.linux_bundle_download ?>"
><?cs var:studio.linux_bundle_download ?></a>
</td>
- <td id="linux-bundle-size"><?cs call:size_in_mb(studio.linux_bundle_bytes) ?> MB
- <br>(<?cs var:studio.linux_bundle_bytes ?> bytes)</td>
+ <td><?cs var:studio.linux_bundle_bytes ?> bytes</td>
<td><?cs var:studio.linux_bundle_checksum ?></td>
</tr>
</table>
-<h4 class="norule" style="margin-top:40px">Get just the SDK tools</h4>
-
-<p>If you do not need Android Studio, you can download the basic
-Android SDK tools below.</p>
-
- <table class="download">
- <tr>
- <th>Platform</th>
- <th>SDK tools package</th>
- <th>Size</th>
- <th>SHA-1 checksum</th>
- </tr>
- <tr>
- <td rowspan="2">Windows</td>
- <td>
- <a onclick="return onDownload(this)" id="win-tools" data-modal-toggle="studio_tos"
- href="//dl.google.com/android/<?cs
-var:sdk.win_installer
-?>"><?cs var:sdk.win_installer ?></a><br>
- Includes Windows installer
- </td>
- <td><?cs call:size_in_mb(sdk.win_installer_bytes) ?> MB
- <br>(<?cs var:sdk.win_installer_bytes ?> bytes)</td>
- <td><?cs var:sdk.win_installer_checksum ?></td>
- </tr>
- <tr>
- <!-- blank TD from Windows rowspan -->
- <td>
- <a onclick="return onDownload(this)" id="win-tools2" data-modal-toggle="studio_tos"
- href="//dl.google.com/android/<?cs var:sdk.win_download
-?>"><?cs var:sdk.win_download ?></a><br>
- No Windows installer
- </td>
- <td><?cs call:size_in_mb(sdk.win_bytes) ?> MB
- <br>(<?cs var:sdk.win_bytes ?> bytes)</td>
- <td><?cs var:sdk.win_checksum ?></td>
- </tr>
- <tr>
- <td><nobr>Mac OS X</nobr></td>
- <td>
- <a onclick="return onDownload(this)" id="mac-tools" data-modal-toggle="studio_tos"
- href="//dl.google.com/android/<?cs
-var:sdk.mac_download
-?>"><?cs var:sdk.mac_download ?></a>
- </td>
- <td><?cs call:size_in_mb(sdk.mac_bytes) ?> MB
- <br>(<?cs var:sdk.mac_bytes ?> bytes)</td>
- <td><?cs var:sdk.mac_checksum ?></td>
- </tr>
- <tr>
- <td>Linux</td>
- <td>
- <a onclick="return onDownload(this)" id="linux-tools" data-modal-toggle="studio_tos"
- href="//dl.google.com/android/<?cs
-var:sdk.linux_download
-?>"><?cs var:sdk.linux_download ?></a>
- </td>
- <td><?cs call:size_in_mb(sdk.linux_bytes) ?> MB
- <br>(<?cs var:sdk.linux_bytes ?> bytes)</td>
- <td><?cs var:sdk.linux_checksum ?></td>
- </tr>
- </table>
- <p>
-Also see the <a href="<?cs var:toroot ?>tools/sdk/tools-notes.html">SDK
-tools release notes</a>.</p>
-
- </div><!-- end wrap -->
- </section>
+</div><!-- end pax -->
-<?cs ######## The Android Studio version of the download script ######### ?>
+
+
+
<script>
+
+ if (location.hash == "#Requirements") {
+ $('.reqs').show();
+ } else if (location.hash == "#ExistingIDE") {
+ $('.ide').show();
+ }
+
var os;
var bundlename;
var $toolslink;
@@ -447,9 +435,7 @@
$('#not-supported').hide();
/* set up primary Android Studio download button */
- idname = bundlename + "-size";
- sizeMB = $(idname).text().split(' MB')[0];
- $('.download-bundle-button > .small').html(" for " + os + " <em>(" + sizeMB + " MB)</em>");
+ $('.download-bundle-button > .small').html(" for " + os);
$('.download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename);
}
@@ -467,10 +453,13 @@
if (bundle && !button) {
$("a#downloadForRealz").attr("name", "#" + $(link).attr('id'));
} else {
- $("h2#tos-header").text('Download the Android SDK Tools');
$("a#downloadForRealz").attr("name", $(link).attr('href'));
}
+ $("#tos").show();
+ $("#landing").hide();
+
+ location.hash = "top";
return false;
}
@@ -498,24 +487,22 @@
function onDownloadForRealz(link) {
if ($("input#agree").is(':checked')) {
+ location.hash = "";
+ location.hash = "top";
$("div.sdk-terms").slideUp();
- if ($("#downloadForRealz").attr('bundle') == 'true') {
- $("h2#tos-header").text('Now downloading Android Studio!');
- $(".sdk-terms-intro").text('Redirecting to the install instructions...');
- $("#sdk-terms-form").slideUp(function() {
- setTimeout(function() {
- window.location = "/sdk/installing/index.html";
- }, 2000);
- });
- } else {
- $("h2#tos-header").text('Now downloading the Android SDK Tools!');
- $(".sdk-terms-intro").html("<p>Because you've chosen to download " +
- "only the Android SDK tools (and not Android Studio), there are no " +
- "setup procedures to follow.</p><p>For information about how to " +
- "keep your SDK tools up to date, refer to the " +
- "<a href='/tools/help/sdk-manager.html'>SDK Manager</a> guide.</p>");
- $("#sdk-terms-form").slideUp();
- }
+ $("h1#tos-header").text('Now downloading...');
+ $(".sdk-terms-intro").text('You\'ll be redirected to the install instructions in a moment.');
+ $("#sdk-terms-form").fadeOut('slow', function() {
+ setTimeout(function() {
+ if ($("#downloadForRealz").attr('bundle') == 'true') {
+ // User downloaded the studio Bundle
+ window.location = "/sdk/installing/index.html?pkg=studio";
+ } else {
+ // User downloaded the SDK Tools
+ window.location = "/sdk/installing/index.html?pkg=tools";
+ }
+ }, 3000);
+ });
ga('send', 'event', 'SDK', 'IDE and Tools', $("#downloadForRealz").html());
return true;
} else {
@@ -533,7 +520,7 @@
-
+</div><!-- end the wrapper used for relative/absolute positions -->
<?cs # THIS DIV WAS OPENED IN INDEX.JD ?>
@@ -582,11 +569,6 @@
</div><!-- end g-unit -->
<?cs include:"trailer.cs" ?>
-<script src="https://developer.android.com/ytblogger_lists_unified.js?v=17" type="text/javascript"></script>
-<script src="/jd_lists_unified.js?v=17" type="text/javascript"></script>
-<script src="/jd_extras.js?v=17" type="text/javascript"></script>
-<script src="/jd_collections.js?v=17" type="text/javascript"></script>
-<script src="/jd_tag_helpers.js?v=17" type="text/javascript"></script>
<!-- Start of Tag -->
<script type="text/javascript">