OSDN Git Service

Resolve merge conflicts of a5f0068 to nyc-dev
authorTrevor Johns <trevorjohns@google.com>
Mon, 11 Apr 2016 21:36:41 +0000 (14:36 -0700)
committerTrevor Johns <trevorjohns@google.com>
Mon, 11 Apr 2016 21:55:35 +0000 (14:55 -0700)
Change-Id: Id0d573566abb989a173349ffaf01390cebd51607

1  2 
tools/droiddoc/templates-sdk-dev/class.cs
tools/droiddoc/templates-sdk/components/masthead.cs
tools/droiddoc/templates-sdk/customizations.cs
tools/droiddoc/templates-sdk/designpage.cs
tools/droiddoc/templates-sdk/footer.cs
tools/droiddoc/templates-sdk/head_tag.cs
tools/droiddoc/templates-sdk/sdkpage.cs

- <?cs include:"doctype.cs" ?>
+ <?cs # THIS CREATES A CLASS OR INTERFACE PAGE FROM .java FILES ?>
  <?cs include:"macros.cs" ?>
  <?cs include:"macros_override.cs" ?>
- <html<?cs if:devsite ?> devsite<?cs /if ?>>
- <?cs include:"head_tag.cs" ?>
- <body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
-   <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
-     if:reference ?> reference<?cs
-     /if ?><?cs
-   elif:design ?>design<?cs
-   elif:distribute ?>distribute<?cs
-   /if ?>" itemscope itemtype="http://schema.org/Article">
-   <div id="doc-api-level" class="<?cs var:class.since ?>" style="display:none"></div>
-   <a name="top"></a>
- <?cs include:"header.cs" ?>
- <div class="col-12"  id="doc-col">
- <div id="api-info-block">
- <?cs # are there inherited members ?>
- <?cs each:cl=class.inherited ?>
-   <?cs if:subcount(cl.methods) ?>
-    <?cs set:inhmethods = #1 ?>
-   <?cs /if ?>
-   <?cs if:subcount(cl.constants) ?>
-    <?cs set:inhconstants = #1 ?>
-   <?cs /if ?>
-   <?cs if:subcount(cl.fields) ?>
-    <?cs set:inhfields = #1 ?>
-   <?cs /if ?>
-   <?cs if:subcount(cl.attrs) ?>
-    <?cs set:inhattrs = #1 ?>
-   <?cs /if ?>
- <?cs /each ?>
- <div class="sum-details-links">
- <?cs if:inhattrs || inhconstants || inhfields || inhmethods || (!class.subclasses.hidden &&
-      (subcount(class.subclasses.direct) || subcount(class.subclasses.indirect))) ?>
- Summary:
- <?cs if:subcount(class.inners) ?>
-   <a href="#nestedclasses">Nested Classes</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.attrs) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lattrs">XML Attrs</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:inhattrs ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.enumConstants) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#enumconstants">Enums</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.constants) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#constants">Constants</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:inhconstants ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.fields) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lfields">Fields</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:inhfields ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhfields">Inherited Fields</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.ctors.public) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubctors">Ctors</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.ctors.protected) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#proctors">Protected Ctors</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.methods.public) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubmethods">Methods</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:subcount(class.methods.protected) ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#promethods">Protected Methods</a>
-   <?cs set:linkcount = #1 ?>
- <?cs /if ?>
- <?cs if:inhmethods ?>
-   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
- <?cs /if ?>
- &#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
- <?cs /if ?>
- </div><!-- end sum-details-links -->
- <div class="api-level">
-   <?cs call:since_tags(class) ?><?cs
-   if:class.deprecatedsince
-     ?><br>Deprecated since <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels"
-         >API level <?cs var:class.deprecatedsince ?></a><?cs
-   /if ?>
-   <?cs call:federated_refs(class) ?>
- </div>
- </div><!-- end api-info-block -->
- <?cs # this next line must be exactly like this to be parsed by eclipse ?>
- <!-- ======== START OF CLASS DATA ======== -->
- <div id="jd-header">
-     <?cs var:class.scope ?>
-     <?cs var:class.static ?> 
-     <?cs var:class.final ?> 
-     <?cs var:class.abstract ?>
-     <?cs var:class.kind ?>
- <h1 itemprop="name"><?cs var:class.name ?></h1>
- <?cs set:colspan = subcount(class.inheritance) ?>
- <?cs each:supr = class.inheritance ?>
-   <?cs if:colspan == 2 ?>
-     extends <?cs call:type_link(supr.short_class) ?><br/>
-   <?cs /if ?>
-   <?cs if:last(supr) && subcount(supr.interfaces) ?>
-       implements 
-       <?cs each:t=supr.interfaces ?>
-         <?cs call:type_link(t) ?> 
-       <?cs /each ?>
-   <?cs /if ?>
-   <?cs set:colspan = colspan-1 ?>
- <?cs /each ?>
- <?cs call:show_annotations_list(class) ?>
- </div><!-- end header -->
- <div id="naMessage"></div>
- <div id="jd-content" class="api apilevel-<?cs var:class.since ?>">
- <table class="jd-inheritance-table">
- <?cs set:colspan = subcount(class.inheritance) ?>
- <?cs each:supr = class.inheritance ?>
-     <tr>
-         <?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
-             <td class="jd-inheritance-space">&nbsp;<?cs if:(subcount(class.inheritance)-colspan) == i ?>&nbsp;&nbsp;&#x21b3;<?cs /if ?></td>
-         <?cs /loop ?>         
-         <td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
-             if:colspan == 1
-                 ?><?cs call:class_name(class.qualifiedType) ?><?cs 
-             else 
-                 ?><?cs call:type_link(supr.class) ?><?cs
-             /if ?></td>
-     </tr>
-     <?cs set:colspan = colspan-1 ?>
- <?cs /each ?>
- </table>
- <?cs # this next line must be exactly like this to be parsed by eclipse ?>
- <?cs if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
- <table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
- <?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
- <?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
- </td></tr></table>
- <?cs /if ?>
- <?cs if:subcount(class.subclasses.indirect) && !class.subclasses.hidden ?>
- <table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
- <?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
- <?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
- </td></tr></table>
- <?cs /if ?>
- <div class="jd-descr">
- <?cs call:deprecated_warning(class) ?>
- <?cs if:subcount(class.descr) || subcount(class.annotationdocumentation) ?>
- <h2>Class Overview</h2>
- <?cs if:subcount(class.descr) ?><p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p><?cs /if ?>
- <?cs if:subcount(class.annotationdocumentation) ?><?cs each:annodoc = class.annotationdocumentation?>
- <p><?cs var:annodoc.text ?></p>
- <?cs /each?><?cs /if?>
- <?cs /if ?>
- <?cs call:see_also_tags(class.seeAlso) ?>
- </div><!-- jd-descr -->
- <?cs # summary macros ?>
- <?cs def:write_method_summary(methods, included) ?>
+ <?cs
+ ####################
+ # MACRO FUNCTION USED ONLY IN THIS TEMPLATE TO GENERATE API REFERENCE
+ # FIRST, THE FUNCTIONS FOR THE SUMMARY AT THE TOP OF THE PAGE
+ ####################
+ ?>
+ <?cs
+ # Prints the table cells for the summary of methods.
+ ?><?cs def:write_method_summary(methods, included) ?>
  <?cs set:count = #1 ?>
  <?cs each:method = methods ?>
-        <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
-     <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:method.since ?>" >
-         <td class="jd-typecol"><nobr>
-             <?cs var:method.abstract ?>
-             <?cs var:method.default ?>
-             <?cs var:method.static ?>
-             <?cs var:method.final ?>
-             <?cs call:type_link(method.generic) ?>
-             <?cs call:type_link(method.returnType) ?></nobr>
-         </td>
-         <td class="jd-linkcol" width="100%"><nobr>
-         <span class="sympad"><?cs call:cond_link(method.name, toroot, method.href, included) ?></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
-         <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) || subcount(method.showAnnotations) ?>
-           <div class="jd-descrdiv">
-             <?cs if:subcount(method.shortDescr) || subcount(method.annotationdocumentation) ?><?cs call:short_descr(method)?><?cs /if?>
-             <?cs call:show_annotations_list(method) ?>
-           </div>
-         <?cs /if ?>
-   </td></tr>
- <?cs set:count = count + #1 ?>
+   <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
+   <tr class="api apilevel-<?cs var:method.since ?>" >
+   <?cs # leave out this cell if there is no return type = if constructors ?>
+   <?cs if:subcount(method.returnType) ?>
+     <td><code>
+         <?cs var:method.abstract ?>
 -        <?cs var:method.final ?>
++        <?cs var:method.default ?>
+         <?cs var:method.static ?>
++        <?cs var:method.final ?>
+         <?cs call:type_link(method.generic) ?>
+         <?cs call:type_link(method.returnType) ?></code>
+     </td>
+   <?cs /if ?>
+     <td width="100%">
+       <code>
+       <?cs call:cond_link(method.name, toroot, method.href, included) ?>(<?cs call:parameter_list(method.params, 0) ?>)
+       </code>
+       <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
+         <p><?cs call:short_descr(method) ?>
+         <?cs call:show_annotations_list(method) ?></p>
+       <?cs /if ?>
+     </td>
+   </tr>
+   <?cs set:count = count + #1 ?>
  <?cs /each ?>
  <?cs /def ?>
  
@@@ -7,12 -7,12 +7,12 @@@
        Android Design<?cs if:page.title ?> - <?cs var:page.title ?><?cs /if ?>
      </title>
      <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
 -    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic">
 +    <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">
+     <link rel="stylesheet" href="<?cs var:toroot ?>assets/design/default.css?v=19">
      <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"></script>
+     <script src="<?cs var:toroot ?>assets/design/default.js?v=19"></script>
    </head>
    <body class="gc-documentation 
      <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
  <!-- STYLESHEETS -->
  <link rel="stylesheet"
  href="<?cs
 -if:android.whichdoc != 'online' ?>http:<?cs
 +if:android.whichdoc != 'online' ?>https:<?cs
  /if ?>//fonts.googleapis.com/css?family=Roboto+Condensed">
  <link rel="stylesheet" href="<?cs
 -if:android.whichdoc != 'online' ?>http:<?cs
 +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' ?>http:<?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=7" rel="stylesheet" type="text/css">
+ <link href="<?cs var:toroot ?>assets/css/default.css?v=19" rel="stylesheet" type="text/css">
  
  <?cs if:reference && !(reference.gms || reference.gcm || preview) ?>
  <!-- FULLSCREEN STYLESHEET -->
    <tr>
      <td>Windows 32-bit</td>
      <td>
-   <a onClick="return onDownload(this)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a>
++     href="//dl.google.com/android/repository/<?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)"
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/ndk/<?cs var:ndk.win32.legacy_download ?>"><?cs var:ndk.win32.legacy_download ?></a>
 +     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>
      <td><?cs var:ndk.win32.legacy_checksum ?></td>
    <tr>
      <td>Windows 64-bit</td>
      <td>
-   <a onClick="return onDownload(this)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a>
++     href="//dl.google.com/android/repository/<?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)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a>
++     href="//dl.google.com/android/repository/<?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>
    <tr>
      <td>Mac OS X 32-bit</td>
      <td>
-   <a onClick="return onDownload(this)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a>
++     href="//dl.google.com/android/repository/<?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>
   <!-- (this item is deprecated)
    <tr>
      <td>
-   <a onClick="return onDownload(this)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
++     href="//dl.google.com/android/repository/<?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)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a>
++     href="//dl.google.com/android/repository/<?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)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a>
++     href="//dl.google.com/android/repository/<?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)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a>
++     href="//dl.google.com/android/repository/<?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>
    <tr>
      <td>Linux 64-bit (x86)</td>
      <td>
-   <a onClick="return onDownload(this)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a>
++     href="//dl.google.com/android/repository/<?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)"
-      href="//dl.google.com/android/ndk/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
+   <a onClick="return onDownload(this)" data-modal-toggle="ndk_tos"
 -     href="http://dl.google.com/android/repository/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a>
++     href="//dl.google.com/android/repository/<?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>
    <table class="download">
      <tr>
        <th>Platform</th>
-       <th>Package</th>
+       <th>Android Studio package</th>
        <th>Size</th>
-       <th>SHA-1 Checksum</th>
+       <th>SHA-1 checksum</th>
    </tr>
    <tr>
-     <td rowspan="2">Windows</td>
+     <td rowspan="3">Windows</td>
      <td>
-   <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)
+   <a onclick="return onDownload(this,false,true)" id="win-bundle" data-modal-toggle="studio_tos"
 -    href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_exe_download ?>"
++    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)
      </td>
-     <td><?cs var:sdk.win_installer_bytes ?> bytes</td>
-     <td><?cs var:sdk.win_installer_checksum ?></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>
    </tr>
    <tr>
      <!-- blank TD from Windows rowspan -->
      <td>
-   <a onclick="return onDownload(this)" href="//dl.google.com/android/<?cs var:sdk.win_download
- ?>"><?cs var:sdk.win_download ?></a>
+   <a onclick="return onDownload(this,false,true)" id="win-bundle-zip" data-modal-toggle="studio_tos"
 -    href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_download ?>"
++    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
      </td>
-     <td><?cs var:sdk.win_bytes ?> bytes</td>
-     <td><?cs var:sdk.win_checksum ?></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>
    </tr>
    <tr>
      <td><nobr>Mac OS X</nobr></td>
      <td>
-   <a onclick="return onDownload(this)" id="mac-tools" href="//dl.google.com/android/<?cs
- var:sdk.mac_download
- ?>"><?cs var:sdk.mac_download ?></a>
+   <a onclick="return onDownload(this,false,true)" id="mac-bundle" data-modal-toggle="studio_tos"
 -    href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.mac_bundle_download ?>"
++    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>
      </td>
-     <td><?cs var:sdk.mac_bytes ?> bytes</td>
-     <td><?cs var:sdk.mac_checksum ?></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>
    </tr>
    <tr>
      <td>Linux</td>
      <td>
-   <a onclick="return onDownload(this)" id="linux-tools" href="//dl.google.com/android/<?cs
- var:sdk.linux_download
- ?>"><?cs var:sdk.linux_download ?></a>
+   <a onclick="return onDownload(this,false,true)" id="linux-bundle" data-modal-toggle="studio_tos"
 -    href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.linux_bundle_download ?>"
++    href="//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><?cs var:sdk.linux_bytes ?> bytes</td>
-     <td><?cs var:sdk.linux_checksum ?></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_checksum ?></td>
    </tr>
    </table>