Merge "Doc change: update behavior changes and move to separate doc. Add nogotofail to SSL best practices." into lmp-docs
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 251652e..22a3613 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -6352,7 +6352,7 @@
         <!-- The summary for the Preference in a PreferenceActivity screen. -->
         <attr name="summary" />
         <!-- The order for the Preference (lower values are to be ordered first). If this is not
-             specified, the default orderin will be alphabetic. -->
+             specified, the default ordering will be alphabetic. -->
         <attr name="order" format="integer" />
         <!-- When used inside of a modern PreferenceActivity, this declares
              a new PreferenceFragment to be shown when the user selects this item. -->
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index 808f04a..448dcda 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -41,13 +41,6 @@
 Google Play Store in the prior 7 days.</p>
 
 
-<div class="note">
-<p><strong>Note:</strong> Beginning in September, 2013, devices running versions older than Android
-2.2 do not appear in this data because those devices do not support the new Google Play Store
-app. Only the new app is able to measure the number of devices that actively visit Google Play Store
-and we believe this measurement best reflects your potential user-base.</p>
-</div>
-
 
 <h2 id="Platform">Platform Versions</h2>
 
@@ -64,7 +57,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on September 9, 2014.
+<p style="clear:both"><em>Data collected during a 7-day period ending on November 3, 2014.
 <br/>Any versions with less than 0.1% distribution are not shown.</em>
 </p>
 
@@ -95,7 +88,7 @@
 </div>
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on September 9, 2014.
+<p style="clear:both"><em>Data collected during a 7-day period ending on November 3, 2014.
 
 <br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
 
@@ -115,7 +108,7 @@
 
 
 <img alt="" style="float:right"
-src="//chart.googleapis.com/chart?chs=400x250&cht=p&chd=t%3A77.5%2C22.5&chf=bg%2Cs%2C00000000&chl=GL%202.0%7CGL%203.0&chco=c4df9b%2C6fad0c" />
+src="//chart.googleapis.com/chart?chl=GL%202.0%7CGL%203.0&chd=t%3A74.7%2C25.3&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250" />
 
 <p>To declare which version of OpenGL ES your application requires, you should use the {@code
 android:glEsVersion} attribute of the <a
@@ -133,17 +126,17 @@
 </tr>
 <tr>
 <td>2.0</td>
-<td>77.5%</td>
+<td>74.7%</td>
 </tr>
 <tr>
 <td>3.0</td>
-<td>22.5%</td>
+<td>25.3%</td>
 </tr>
 </table>
 
 
 
-<p style="clear:both"><em>Data collected during a 7-day period ending on September 9, 2014</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on November 3, 2014</em></p>
 
 
 
@@ -161,42 +154,42 @@
 var VERSION_DATA =
 [
   {
-    "chart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&cht=p&chs=500x250&chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chd=t%3A0.7%2C11.4%2C9.6%2C53.8%2C24.5&chf=bg%2Cs%2C00000000",
+    "chart": "//chart.googleapis.com/chart?chl=Froyo%7CGingerbread%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chd=t%3A0.6%2C9.8%2C8.5%2C50.9%2C30.2&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=500x250",
     "data": [
       {
         "api": 8,
         "name": "Froyo",
-        "perc": "0.7"
+        "perc": "0.6"
       },
       {
         "api": 10,
         "name": "Gingerbread",
-        "perc": "11.4"
+        "perc": "9.8"
       },
       {
         "api": 15,
         "name": "Ice Cream Sandwich",
-        "perc": "9.6"
+        "perc": "8.5"
       },
       {
         "api": 16,
         "name": "Jelly Bean",
-        "perc": "25.1"
+        "perc": "22.8"
       },
       {
         "api": 17,
         "name": "Jelly Bean",
-        "perc": "20.7"
+        "perc": "20.8"
       },
       {
         "api": 18,
         "name": "Jelly Bean",
-        "perc": "8.0"
+        "perc": "7.3"
       },
       {
         "api": 19,
         "name": "KitKat",
-        "perc": "24.5"
+        "perc": "30.2"
       }
     ]
   }
@@ -210,27 +203,27 @@
       "Large": {
         "hdpi": "0.6",
         "ldpi": "0.5",
-        "mdpi": "4.3",
-        "tvdpi": "1.7",
+        "mdpi": "4.5",
+        "tvdpi": "1.9",
         "xhdpi": "0.6"
       },
       "Normal": {
-        "hdpi": "35.7",
-        "mdpi": "10.6",
-        "xhdpi": "19.2",
-        "xxhdpi": "16.2"
+        "hdpi": "36.6",
+        "mdpi": "9.9",
+        "xhdpi": "18.9",
+        "xxhdpi": "16.0"
       },
       "Small": {
-        "ldpi": "6.2"
+        "ldpi": "5.8"
       },
       "Xlarge": {
         "hdpi": "0.3",
-        "mdpi": "3.7",
-        "xhdpi": "0.4"
+        "mdpi": "3.9",
+        "xhdpi": "0.5"
       }
     },
-    "densitychart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&cht=p&chs=400x250&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chd=t%3A6.7%2C18.6%2C1.7%2C36.6%2C20.2%2C16.2&chf=bg%2Cs%2C00000000",
-    "layoutchart": "//chart.googleapis.com/chart?chco=c4df9b%2C6fad0c&cht=p&chs=400x250&chl=Xlarge%7CLarge%7CNormal%7CSmall&chd=t%3A4.4%2C7.7%2C81.7%2C6.2&chf=bg%2Cs%2C00000000"
+    "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chd=t%3A6.3%2C18.3%2C1.9%2C37.5%2C20.0%2C16.0&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250",
+    "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chd=t%3A4.7%2C8.1%2C81.4%2C5.8&chf=bg%2Cs%2C00000000&chco=c4df9b%2C6fad0c&cht=p&chs=400x250"
   }
 ];
 
@@ -302,6 +295,16 @@
     "api":19,
     "link":"<a href='/about/versions/android-4.4.html'>4.4</a>",
     "codename":"KitKat"
+  },
+  {
+    "api":20,
+    "link":"<a href='/about/versions/android-4.4.html'>4.4W</a>",
+    "codename":"KitKat for Wear"
+  },
+  {
+    "api":21,
+    "link":"<a href='/about/versions/android-5.0.html'>4.4</a>",
+    "codename":"Lollipop"
   }
 ];
 
diff --git a/docs/html/design/tv/index.jd b/docs/html/design/tv/index.jd
index 483c24f..d79e279 100644
--- a/docs/html/design/tv/index.jd
+++ b/docs/html/design/tv/index.jd
@@ -1,4 +1,7 @@
-page.title=Android TV
+page.title=Designing for Android TV
+page.tags="tv", "leanback","designguidelines"
+page.metaDescription=Guidelines to help you create a great leanback experience on Android TV.
+page.image=design/tv/images/apps-games-rows.jpg
 @jd:body
 
 
@@ -6,12 +9,15 @@
   experience. It's important to understand how your app is presented in the main user interface and
   how your app can help users get to the content they want quickly.</p>
 
-<p class="note">
+<p class="caution">
   <strong>Important:</strong> There are specific design requirements your app must meet to qualify
   as an Android TV app on Google Play. For more information, see the requirements listed in
   <a href="{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a>.
 </p>
 
+<p class="note"><strong>Note:</strong> For information about how to publish your TV apps in Google Play,
+see <a href="/distribute/googleplay/tv.html">Distributing to Android TV</a>.</p>
+
 <h2>Home Screen</h2>
 
 <p>The Home Screen is the start of the user experience, providing search, content
diff --git a/docs/html/design/tv/patterns.jd b/docs/html/design/tv/patterns.jd
index 768dcfc..be7ae31 100644
--- a/docs/html/design/tv/patterns.jd
+++ b/docs/html/design/tv/patterns.jd
@@ -41,6 +41,8 @@
       language, you must provide versions of the banner image for each supported language.</li>
 </ul>
 
+<p>See <a href="{@docRoot}training/tv/start/start.html#banner">Provide a home screen banner</a>
+in Get Started with TV Apps for more information.</p>
 
 <h3>Recommendation Icons</h3>
 
diff --git a/docs/html/design/wear/patterns.jd b/docs/html/design/wear/patterns.jd
index 30fdc244..e56ac2d 100644
--- a/docs/html/design/wear/patterns.jd
+++ b/docs/html/design/wear/patterns.jd
@@ -76,6 +76,13 @@
 <li>The cue card can be invoked to continue specifying the action. For example in a messaging application, tapping a “Reply” action button invokes the Cue Card and prompts for voice input. In this case the prompt label (such as “Speak your message…”) and a set of sample voice suggestions can be specified by developers.</li>
 </ol>
 
+<a class="notice-developers left" href="{@docRoot}training/wearables/ui/confirm.html">
+  <div>
+    <h3>Developer Docs</h3>
+    <p>Showing Confirmations</p>
+  </div>
+</a>
+
 
 <h2 id="Continuing" style="clear:both">Continuing activities on phone</h2>
 
@@ -100,6 +107,13 @@
 
 <p>Good examples of using an action on card include: play and pause music, toggle light switch on and off, navigate to an address, and call a phone number.</p>
 
+<a class="notice-developers left" href="{@docRoot}training/wearables/ui/cards.html">
+  <div>
+    <h3>Developer Docs</h3>
+    <p>Creating Cards</p>
+  </div>
+</a>
+
 
 <h2 id="Stacks" style="clear:both">Card stacks</h2>
   <img src="{@docRoot}design/media/wear/expandable_stacks.png" width="147" height="147" style="float:right;margin:0 0 20px 40px">
@@ -124,6 +138,13 @@
 
 <p>More information about how to use the 2D Picker pattern is provided in the <a href="{@docRoot}design/wear/structure.html#2DPicker">App Structure</a> guide.</p>
 
+<a class="notice-developers left" href="{@docRoot}training/wearables/ui/2d-picker.html">
+  <div>
+    <h3>Developer Docs</h3>
+    <p>Creating a 2D Picker</p>
+  </div>
+</a>
+
 
 <h2 id="Voice" style="clear:both">Voice commands</h2>
 
@@ -148,3 +169,10 @@
 
 
 <p>Of course, it is possible for Android Wear apps to extend themselves beyond the familiarities of these patterns. For a deeper look at the options available, see the <a href="{@docRoot}design/wear/structure.html">App Structure</a> guide.</p>
+
+<a class="notice-developers left" href="{@docRoot}training/wearables/ui/lists.html">
+  <div>
+    <h3>Developer Docs</h3>
+    <p>Creating Lists</p>
+  </div>
+</a>
diff --git a/docs/html/design/wear/structure.jd b/docs/html/design/wear/structure.jd
index b77ccc2..95d5c1a 100644
--- a/docs/html/design/wear/structure.jd
+++ b/docs/html/design/wear/structure.jd
@@ -84,12 +84,18 @@
 <img src="{@docRoot}design/media/wear/1D_picker.png" alt="" width="499px" />
 <p class="img-caption">This pattern can be used to present a single vertical list, or a “1D Picker”</p>
 
-<img src="{@docRoot}design/media/wear/2D_picker.png" alt="" width:760px" />
+<img src="{@docRoot}design/media/wear/2D_picker.png" alt="" width="760px" />
 <p class="img-caption">It can also be used as a 2D matrix of options, as a way of presenting categorized options.</p>
 
 
 
 <h3>Actions</h3>
+<a class="notice-developers" style="clear:none" href="{@docRoot}training/wearables/ui/2d-picker.html">
+  <div>
+    <h3>Developer Docs</h3>
+    <p>Creating a 2D Picker</p>
+  </div>
+</a>
 <p>For actions on each card, use the <a href="{@docRoot}design/wear/patterns.html#Actions">Action cards pattern</a>.</p>
 
 <h3>Making it fast</h3>
@@ -155,6 +161,6 @@
 <h3>Manually exiting</h3>
 
 <p>Even with logical exit points like these, some cases may exist where the user may want to immediately exit. This may be common in apps that are used for a longer while. In all cases, you should treat long-press as the user's intent to exit, using
-<a href="{@docRoot}training/wearables/apps/layouts.html#UiLibrary"><code>DismissOverlayView</code></a>.</p>
+<a href="{@docRoot}training/wearables/ui/exit.html"><code>DismissOverlayView</code></a>.</p>
 
 
diff --git a/docs/html/distribute/essentials/quality/tv.jd b/docs/html/distribute/essentials/quality/tv.jd
index b13307e..20018c3 100644
--- a/docs/html/distribute/essentials/quality/tv.jd
+++ b/docs/html/distribute/essentials/quality/tv.jd
@@ -47,11 +47,9 @@
   qualify as an Android TV app on Google Play.
 </p>
 
-<p class="note">
-  <strong>Note:</strong> You will be able to submit TV apps to Google Play with the public release
-  of Android 5.0 on November 3. Stay tuned for more information about how to submit your TV apps
-  through the Google Play Developer Console.
-</p>
+<p class="note"><strong>Note:</strong> For information about how to publish your TV apps in Google Play,
+see <a href="{@docRoot}distribute/googleplay/tv.html">Distributing to Android TV</a>.</p>
+
 
 
 <div class="headerLine">
diff --git a/docs/html/distribute/googleplay/edu/start.jd b/docs/html/distribute/googleplay/edu/start.jd
index 3c3a175..f4c9717 100644
--- a/docs/html/distribute/googleplay/edu/start.jd
+++ b/docs/html/distribute/googleplay/edu/start.jd
@@ -1,4 +1,4 @@
-page.title=Publish Apps
+page.title=Publish Education Apps
 page.image=/distribute/images/play-education.jpg
 meta.tags="education", "guidelines", "quality"
 page.tags="education", "addendum"
diff --git a/docs/html/distribute/googleplay/googleplay_toc.cs b/docs/html/distribute/googleplay/googleplay_toc.cs
index 45464c7..fc7cd11 100644
--- a/docs/html/distribute/googleplay/googleplay_toc.cs
+++ b/docs/html/distribute/googleplay/googleplay_toc.cs
@@ -18,6 +18,12 @@
     </div>
   </li>
   <li class="nav-section">
+    <div class="nav-section empty" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/tv.html">
+          <span class="en">Distributing to <span style="white-space:nowrap">Android TV</span></span>
+        </a>
+    </div>
+  </li>
+  <li class="nav-section">
     <div class="nav-section-header" style="font-weight:normal"><a href="<?cs var:toroot?>distribute/googleplay/edu/about.html">
           <span class="en">Google Play for Education</span>
         </a>
diff --git a/docs/html/distribute/googleplay/index.jd b/docs/html/distribute/googleplay/index.jd
index a215930..20f07fa 100644
--- a/docs/html/distribute/googleplay/index.jd
+++ b/docs/html/distribute/googleplay/index.jd
@@ -21,7 +21,7 @@
     data-maxResults="3">
   </div>
 
-  <h3>Google Play for Education</h3>
+  <h3>Distribute Your Apps</h3>
 
   <div class="resource-widget resource-flow-layout landing col-16"
     data-query="collection:distribute/gp/gpfelanding"
diff --git a/docs/html/distribute/googleplay/tv.jd b/docs/html/distribute/googleplay/tv.jd
new file mode 100644
index 0000000..37cbe26
--- /dev/null
+++ b/docs/html/distribute/googleplay/tv.jd
@@ -0,0 +1,320 @@
+page.title=Distributing to Android TV
+page.image=/design/tv/images/atv-home.jpg
+meta.tags="tv", "publish", "quality"
+page.tags="tv", "publish", "googleplay"
+page.metaDescription=Distribute your apps, games, and content to Android TV.
+
+@jd:body
+
+<div id="qv-wrapper"><div id="qv">
+<h2>How to Participate</h2>
+<ol>
+<li><a href="#understand_guidelines">Understand the guidelines</a></li>
+<li><a href="#develop_app">Develop a great app for TV</a></li>
+<li><a href="#test_app">Test for TV App Quality</a></li>
+<li><a href="#opt_in">Opt-in</a></li>
+<li><a href="#track_review">Track your review</a></li>
+</ol>
+
+<h2>You Should Also Read</h2>
+<ol>
+<li><a href="{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a></li>
+<li><a href="{@docRoot}distribute/essentials/quality/core.html">Core App Quality</a></li>
+</ol>
+
+</div></div>
+
+<p>
+  If you've got a great app or game, Android TV and Google Play can help you
+  bring it to users right in their living rooms. You'll be able to offer your
+  apps and games in a storefront experience that’s optimized for TV. You can
+  extend your new or existing apps for TV and then publish them using familiar
+  tools and processes in Google Play.
+</p>
+
+<p>
+  To get started, review the sections in this document to learn how to
+  distribute your TV apps to users through Google Play. Be sure to read
+  <a href="{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a>
+  for information on the usability and quality standards that your apps should
+  meet. When your app is ready, you can opt-in to publishing in the Android TV
+  storefront from the Developer Console.
+</p>
+
+<h2 id="how_to_participate">
+  How to Participate
+</h2>
+
+<p>
+  Google Play lets you put your TV apps in front of a new audience of users in
+  their living rooms. You can develop and publish using your existing Developer
+  Console account and your current distribution and pricing settings. It's easy
+  to participate — the sections below outline the process.
+</p>
+
+<div style="float:right;margin:1em 0 1.5em 2em;">
+  <img src="{@docRoot}images/gp-tv-process.png">
+</div>
+
+<h3 id="understand_guidelines">
+  1. Understand guidelines and requirements
+</h3>
+
+<p>
+  To prepare for a successful launch on Android TV, start by reviewing the
+  guidelines for creating great app experiences on TV. See the <a href=
+  "{@docRoot}design/tv/index.html">Android TV design guidelines</a> for ideas
+  on extending your app for TV and details on design and usability.
+</p>
+
+<p>
+  As you get started designing your TV experience, make sure to read and
+  understand the quality criteria for TV apps. The Google Play experience for
+  Android TV <strong>showcases only apps that are usable on the TV</strong>
+  &mdash; your apps can participate if they meet a set of basic quality
+  criteria. See <a href="{@docRoot}distribute/essentials/quality/tv.html">TV
+  App Quality</a> for details.
+</p>
+
+<h3 id="develop_app">2. Develop a great app for TV</h3>
+
+<p>
+  A great app for TV is designed for living room use and takes advantage of the
+  capabilities of Android TV and related input accessories such as game
+  controllers, D-pads, and remotes. The app is refined to offer a polished,
+  high-quality experience on large screens and delivers a compelling feature
+  set for users.
+</p>
+
+<p>
+  As you consider your TV app, review the <a href=
+  "{@docRoot}training/tv/start/index.html">developer documentation</a> and
+  usability guidelines and plan on supporting them to the greatest extent
+  possible. Make sure to design a great leanback experience for users and build
+  it with the leanback library included in the SDK. You’ll want to optimize
+  other parts of your app for the TV use case and it's a good idea to identify
+  those early in your development process.
+</p>
+
+<p>
+  In most cases, we recommend delivering your TV experience as part of your
+  existing app for phones, tablets, and other devices, using the same package
+  name and store listing. This approach lets users upgrade to your TV experience
+  seamlessly and also lets you take advantage of the reviews and ratings you’ve
+  earned in your app for phones and tablets.
+</p>
+
+<p>
+  You can bundle your TV intents, leanback library, and TV-specific code and
+  resources as part of a single APK solution for all supported devices. If
+  necessary, you can use <a href=
+  "{@docRoot}google/play/publishing/multiple-apks.html">Multiple APK
+  Support</a> to deliver a custom binary to Android TV devices under the same
+  package name and store listing that you use for phones and tablets.
+</p>
+
+<p>
+  Throughout design and development, it's important to have a suitable device
+  on which to prototype and test your user experience. You should acquire one
+  or more Android TV devices or emulators and set up your testing environment
+  as early as possible. The recommended hardware device for testing in the
+  Android TV environment is Nexus Player, which is <a href=
+  "http://www.google.com/intl/all/nexus/player/">available from Google Play</a>
+  and other stores, and you should also acquire a game controller and other TV
+  input devices.
+</p>
+
+<h3 id="test_app">3. Test for TV App Quality</h3>
+
+<p>
+  Your TV apps should be designed to perform well, look great on Android TV,
+  and offer the best user experience possible. Google Play showcases
+  high-quality apps for easy discovery by users in Google Play. Here’s how you
+  can participate and deliver an Android TV app that users will enjoy.
+</p>
+
+<ul>
+  <li>Meet Core App Quality guidelines
+    <ul>
+      <li>Follow <a href="{@docRoot}design/index.html">Android Design
+      guidelines</a>. Pay special attention to using <a href=
+      "http://www.google.com/design/spec/material-design/introduction.html">material
+      design</a> in your app.
+      </li>
+
+      <li>Test your apps against the <a href=
+      "{@docRoot}distribute/essentials/quality/core.html">Core App Quality
+      guidelines</a>.
+      </li>
+    </ul>
+  </li>
+  <li>Meet <a href="{@docRoot}distribute/essentials/quality/tv.html">TV App
+  Quality</a> guidelines
+    <ul>
+      <li>Follow our best practices for <a href="{@docRoot}training/tv/index.html">
+      TV app development</a></li>
+      <li>Make sure your app meets all of the <a href=
+      "{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a> criteria</li>
+    </ul>
+  </li>
+  <li>Strive for simplicity and highest usability</li>
+</ul>
+
+<h3 id="opt_in">4. Opt-in to Android TV and publish</h3>
+
+<p>
+  When you've built your release-ready APK and tested to ensure that it meets
+  all of the <a href="{@docRoot}distribute/essentials/quality/tv.html">TV App
+  Quality</a> guidelines, upload it to the Developer Console. Update your store
+  listing with TV screenshots and TV banner, and set distribution options as
+  needed. If you aren't familiar with how to prepare for launch on Google Play,
+  see the <a href=
+  "{@docRoot}distribute/googleplay/publish/preparing.html">Launch
+  Checklist.</a>
+</p>
+
+<p>
+  Before you can publish to Android TV users, you need to opt-in to Android
+  TV from the <strong>Pricing and Distribution</strong> section of the
+  Developer Console. Opt-in means that you want your app to be made available
+  to Android TV users through Google Play, and that
+  your app meets <a href="{@docRoot}distribute/essentials/quality/tv.html">TV
+  App Quality</a> guidelines.
+</p>
+
+<p>
+  You can opt-in only if your app meets two preliminary quality
+  criteria that are automatically checked on APK upload:
+</p>
+
+<ul>
+  <li>Your app manifest must include an intent type of <a href=
+  "{@docRoot}reference/android/content/Intent.html#ACTION_MAIN"><code>ACTION_MAIN</code></a>
+  with category <a href=
+  "{@docRoot}reference/android/content/Intent.html#CATEGORY_LEANBACK_LAUNCHER">
+    <code>CATEGORY_LEANBACK_LAUNCHER</code></a>. Learn more <a href=
+    "{@docRoot}training/tv/start/start.html#tv-activity">here</a>.
+  </li>
+
+  <li>Your app must declare that it does not require a touchscreen. The
+  manifest must declare the <code>android.hardware.touchscreen</code> hardware
+  with <code>android:required="false”</code>. Learn more <a href=
+  "{@docRoot}training/tv/start/hardware.html#declare-hardware-requirements">here</a>.
+  </li>
+</ul>
+
+<p>
+  If your app meets the preliminary criteria, you’ll see an opt-in checkbox for
+  Android TV, as shown below. If the opt-in checkbox is not enabled, review
+  your APK to ensure it meets the preliminary criteria.
+</p>
+
+<p>
+  After you opt-in and save the changes, you can publish your app as usual.
+  Before making the app available to Android TV users, Google Play submits
+  your app for review against the <a href=
+  "{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a> criteria
+  and notifies you of the result. See the next section for details on how to
+  track the approval status of your app.
+</p>
+
+<p>
+  If your app meet <a href="{@docRoot}distribute/essentials/quality/tv.html">TV
+  App Quality</a> criteria, Google Play makes that app available to Android TV
+  users. Your app is alsoeligible for higher-visibility featuring in app
+  collections and promotions. To let users everywhere know that your app is
+  designed for Android TV, Google Play decorates the app’s store listing with a
+  TV badge.
+</p>
+
+<p>
+  Note that opt-in and review do not affect the availability of your app to
+  other devices in Google Play Store &mdash; on phones and tablets, for
+  example, your app is available as soon as you publish.
+</p>
+
+<p>
+  Here are the steps to opt-in to Android TV in the Developer Console:
+</p>
+
+<ol>
+  <li>Make sure your app meets all <a href=
+  "{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a> criteria
+  </li>
+
+  <li>Add TV screenshots and banner graphic to the app’s store listing
+  </li>
+
+  <li>In the <strong>All Applications</strong> page, click the app you want to opt-in.
+  </li>
+
+  <li>Under <strong>Pricing and Distribution</strong>, scroll down to find <em>Android TV</em> and the
+  opt-in checkbox.
+  </li>
+
+  <li>Click the checkbox next to <em>Distribute your app to Android TV</em>.
+  </li>
+
+  <li>Click <strong>Save</strong> to save your changes.
+  </li>
+</ol>
+
+<div style="padding-top:1em">
+  <img style="border:2px solid #ddd;" src="{@docRoot}images/gp-tv-opt-in.png">
+  <p class="caption">
+    <strong>Opt-in for TV:</strong> Include your app in Android TV by opting-in from the
+    Developer Console.
+  </p>
+</div>
+
+<h3 id="track_review">5. Track your review and approval</h3>
+
+<p>
+  If your app meets the technical and quality criteria for Android TV, as described above,
+  your app will be available for users to enjoy on Android TV. If your app doesn’t meet
+  the criteria, you’ll receive a <strong>notification email sent to your developer account
+  address</strong>, with a summary of the areas that you need to address. When you’ve made
+  the necessary adjustments, you can upload a new version of your app to the Developer
+  Console. 
+</p>
+
+<p>
+  At any time, you can check the review and approval status of your app in the
+  Developer Console, under <em>Android TV</em> in the app's <strong>Pricing and Distribution</strong>
+  page.
+</p>
+
+<p>
+  There are three approval states:
+</p>
+
+<ul>
+  <li>
+    <em>Pending</em> — Your app was sent for review and the review is not yet
+    complete.
+  </li>
+
+  <li>
+    <em>Approved</em> — Your app was reviewed and approved. The app will be
+    made available directly to Android TV users. 
+  </li>
+
+  <li>
+    <em>Not approved</em> — Your app was reviewed and not approved. Check the
+    notification email for information about why the app was not approved. You
+    can address any issues and opt-in and publish again to initiate another
+    review.
+  </li>
+</ul>
+
+<p>To understand how your apps are evaluated, please see the <a href=
+"{@docRoot}distribute/essentials/quality/tv.html">TV App Quality</a> document. </p>
+
+
+  <h3>Related resources</h3>
+
+  <div class="resource-widget resource-flow-layout col-16"
+    data-query="collection:tvlanding"
+    data-cardSizes="9x6, 6x3x2"
+    data-maxResults="6">
+  </div>
diff --git a/docs/html/guide/topics/manifest/activity-element.jd b/docs/html/guide/topics/manifest/activity-element.jd
index ade05c9..7374a67 100644
--- a/docs/html/guide/topics/manifest/activity-element.jd
+++ b/docs/html/guide/topics/manifest/activity-element.jd
@@ -9,6 +9,7 @@
           android:<a href="#reparent">allowTaskReparenting</a>=["true" | "false"]
           android:<a href="#always">alwaysRetainTaskState</a>=["true" | "false"]
           android:<a href="#autoremrecents">autoRemoveFromRecents</a>=["true" | "false"]
+          android:<a href="#banner">banner</a>="<i>drawable resource</i>"
           android:<a href="#clear">clearTaskOnLaunch</a>=["true" | "false"]
           android:<a href="#config">configChanges</a>=["mcc", "mnc", "locale",
                                  "touchscreen", "keyboard", "keyboardHidden",
@@ -153,6 +154,29 @@
 "{@code true}" or "{@code false}".</dd>
 
 
+<dt><a name="banner"></a>{@code android:banner}</dt>
+<dd>A <a href="{@docRoot}guide/topics/resources/drawable-resource.html">drawable resource</a>
+providing an extended graphical banner for its associated item. Use with the
+{@code &lt;activity&gt;} tag to supply a default banner for a specific activity, or with the
+<a href="{@docRoot}guide/topics/manifest/application-element.html"><code>&lt;application&gt;</code></a>
+tag to supply a banner for all application activities.
+
+<p>The system uses the banner to represent an app in
+the Android TV home screen. Since the banner is displayed only in the home screen, it
+should only be specified by applications with an activity that handles the
+{@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} intent.</p>
+
+<p>This attribute must be set as a reference to a drawable resource containing
+the image (for example {@code "&#64;drawable/banner"}). There is no default banner.
+</p>
+
+<p>
+See <a href="{@docRoot}design/tv/patterns.html#banner">
+Banners</a> in the UI Patterns for TV design guide, and <a href="{@docRoot}training/tv/start/start.html#banner">
+Provide a home screen banner</a> in Get Started with TV Apps for more information.
+</p></dd>
+
+
 <dt><a name="clear"></a>{@code android:clearTaskOnLaunch}</dt>
 <dd>Whether or not all activities will be removed from the task, except for
 the root activity, whenever it is re-launched from the home screen &mdash;
diff --git a/docs/html/guide/topics/manifest/application-element.jd b/docs/html/guide/topics/manifest/application-element.jd
index 33f6bce..8a0e837 100644
--- a/docs/html/guide/topics/manifest/application-element.jd
+++ b/docs/html/guide/topics/manifest/application-element.jd
@@ -7,12 +7,14 @@
 <dd><pre class="stx">&lt;application android:<a href="#reparent">allowTaskReparenting</a>=["true" | "false"]
              android:<a href="#allowbackup">allowBackup</a>=["true" | "false"]
              android:<a href="#agent">backupAgent</a>="<i>string</i>"
+             android:<a href="#banner">banner</a>="<i>drawable resource</i>"
              android:<a href="#debug">debuggable</a>=["true" | "false"]
              android:<a href="#desc">description</a>="<i>string resource</i>"
              android:<a href="#enabled">enabled</a>=["true" | "false"]
              android:<a href="#code">hasCode</a>=["true" | "false"]
              android:<a href="#hwaccel">hardwareAccelerated</a>=["true" | "false"]
              android:<a href="#icon">icon</a>="<i>drawable resource</i>"
+             android:<a href="#isGame">isGame</a>=["true" | "false"]
              android:<a href="#killrst">killAfterRestore</a>=["true" | "false"]
              android:<a href="#largeHeap">largeHeap</a>=["true" | "false"]
              android:<a href="#label">label</a>="<i>string resource</i>"
@@ -48,13 +50,13 @@
 
 <dt>description:</dt>
 <dd itemprop="description">The declaration of the application.  This element contains subelements
-that declare each of the application's components and has attributes 
-that can affect all the components.  Many of these attributes (such as 
-{@code icon}, {@code label}, {@code permission}, {@code process}, 
-{@code taskAffinity}, and {@code allowTaskReparenting}) set default values 
+that declare each of the application's components and has attributes
+that can affect all the components.  Many of these attributes (such as
+{@code icon}, {@code label}, {@code permission}, {@code process},
+{@code taskAffinity}, and {@code allowTaskReparenting}) set default values
 for corresponding attributes of the component elements.  Others (such as
-{@code debuggable}, {@code enabled}, {@code description}, and 
-{@code allowClearUserData})  set values for the application as a whole and 
+{@code debuggable}, {@code enabled}, {@code description}, and
+{@code allowClearUserData})  set values for the application as a whole and
 cannot be overridden by the components.</dd>
 
 
@@ -65,18 +67,18 @@
 <dd><dl class="attr">
 
 <dt><a name="reparent"></a>{@code android:allowTaskReparenting}</dt>
-<dd>Whether or not activities that the application defines can move from 
-the task that started them to the task they have an affinity for when that task 
-is next brought to the front &mdash; {@code "true"} if they can move, and 
-{@code "false"} if they must remain with the task where they started.  
+<dd>Whether or not activities that the application defines can move from
+the task that started them to the task they have an affinity for when that task
+is next brought to the front &mdash; {@code "true"} if they can move, and
+{@code "false"} if they must remain with the task where they started.
 The default value is {@code "false"}.
 
 <p>
-The 
-<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code> 
-element has its own 
+The
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
+element has its own
 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">allowTaskReparenting</a></code>
-attribute that can override the value set here.  See that attribute for more 
+attribute that can override the value set here.  See that attribute for more
 information.
 </p></dd>
 
@@ -92,46 +94,68 @@
 <dt><a name="agent"></a>{@code android:backupAgent}</dt>
 <dd>The name of the class that implement's the application's backup agent,
 a subclass of {@link android.app.backup.BackupAgent}.  The attribute value should be
-a fully qualified  class name (such as, {@code "com.example.project.MyBackupAgent"}).  
-However, as a shorthand, if the first character of the name is a period 
-(for example, {@code ".MyBackupAgent"}), it is appended to the 
-package name specified in the 
-<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> 
+a fully qualified  class name (such as, {@code "com.example.project.MyBackupAgent"}).
+However, as a shorthand, if the first character of the name is a period
+(for example, {@code ".MyBackupAgent"}), it is appended to the
+package name specified in the
+<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
 element.
 
 <p>
 There is no default.  The name must be specified.
 </p></dd>
 
+<dt><a name="banner"></a>{@code android:banner}</dt>
+<dd>A <a href="{@docRoot}guide/topics/resources/drawable-resource.html">drawable resource</a>
+providing an extended graphical banner for its associated item. Use with the
+{@code &lt;application&gt;} tag to supply a default banner for all application activities, or with the
+<a href="{@docRoot}guide/topics/manifest/activity-element.html"><code>&lt;activity&gt;</code></a>
+tag to supply a banner for a specific activity.
+
+<p>The system uses the banner to represent an app in
+the Android TV home screen. Since the banner is displayed only in the home screen, it
+should only be specified by applications with an activity that handles the
+{@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER} intent.</p>
+
+<p>This attribute must be set as a reference to a drawable resource containing
+the image (for example {@code "&#64;drawable/banner"}). There is no default banner.
+</p>
+
+<p>
+See <a href="{@docRoot}design/tv/patterns.html#banner">
+Banners</a> in the UI Patterns for TV design guide, and <a href="{@docRoot}training/tv/start/start.html#banner">
+Provide a home screen banner</a> in Get Started with TV Apps for more information.
+</p></dd>
+
 <dt><a name="debug"></a>{@code android:debuggable}</dt>
-<dd>Whether or not the application can be debugged, even when running 
+<dd>Whether or not the application can be debugged, even when running
 on a device in user mode &mdash; {@code "true"} if it can be, and {@code "false"}
-if not.  The default value is {@code "false"}.</dd> 
+if not.  The default value is {@code "false"}.</dd>
 
 <dt><a name="desc"></a>{@code android:description}</dt>
 <dd>User-readable text about the application, longer and more descriptive than the application label.  The value must be set as a reference to a string resource.  Unlike the label, it cannot be a raw string.  There is no default value.</dd>
 
 <dt><a name="enabled"></a>{@code android:enabled}</dt>
-<dd>Whether or not the Android system can instantiate components of 
-the application &mdash; {@code "true"} if it can, and {@code "false"} 
-if not.  If the value is {@code "true"}, each component's 
-{@code enabled} attribute determines whether that component is enabled 
-or not.  If the value is {@code "false"}, it overrides the 
+<dd>Whether or not the Android system can instantiate components of
+the application &mdash; {@code "true"} if it can, and {@code "false"}
+if not.  If the value is {@code "true"}, each component's
+{@code enabled} attribute determines whether that component is enabled
+or not.  If the value is {@code "false"}, it overrides the
 component-specific values; all components are disabled.
 
 <p>
 The default value is {@code "true"}.
-</p></dd>  
+</p></dd>
 
 <dt><a name="code"></a>{@code android:hasCode}</dt>
-<dd>Whether or not the application contains any code &mdash; {@code "true"} 
-if it does, and {@code "false"} if not.  When the value is {@code "false"}, 
-the system does not try to load any application code when launching components.  
+<dd>Whether or not the application contains any code &mdash; {@code "true"}
+if it does, and {@code "false"} if not.  When the value is {@code "false"},
+the system does not try to load any application code when launching components.
 The default value is {@code "true"}.
 
 <p>
 An application would not have any code of its own only if it's using nothing
-but built-in component classes, such as an activity that uses the {@link 
+but built-in component classes, such as an activity that uses the {@link
 android.app.AliasActivity} class, a rare occurrence.</p>
 </dd>
 
@@ -140,7 +164,7 @@
 activities and views in this application &mdash; {@code "true"} if it
 should be enabled, and {@code "false"} if not. The default value is {@code "true"} if you've set
 either <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a>
-or <a 
+or <a
 href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code targetSdkVersion}</a>
 to {@code "14"} or higher; otherwise, it's {@code "false"}.
 
@@ -161,20 +185,26 @@
 </dd>
 
 <dt><a name="icon"></a>{@code android:icon}</dt>
-<dd>An icon for the application as whole, and the default icon for 
-each of the application's components.  See the individual 
-{@code icon} attributes for 
-<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>, 
+<dd>An icon for the application as whole, and the default icon for
+each of the application's components.  See the individual
+{@code icon} attributes for
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>,
 <code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>,
-<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>, 
+<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>,
 <code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>, and
 <code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code> elements.
 
 <p>
 This attribute must be set as a reference to a drawable resource containing
-the image (for example {@code "@drawable/icon"}). There is no default icon.
+the image (for example {@code "&#64;drawable/icon"}). There is no default icon.
 </p></dd>
 
+<dt><a name="isGame"></a>{@code android:isGame}</dt>
+<dd>Whether or not the application is a game. The system may group together applications classifed
+as games or display them separately from other applications.
+
+<p>The default is {@code false}.</p></dd>
+
 <dt><a name="killrst"></a>{@code android:killAfterRestore}</dt>
 <dd>Whether the application in question should be terminated after its
 settings have been restored during a full-system restore operation.
@@ -202,65 +232,65 @@
 </dd>
 
 <dt><a name="label"></a>{@code android:label}</dt>
-<dd>A user-readable label for the application as a whole, and a default 
-label for each of the application's components.  See the individual 
-{@code label} attributes for 
-<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>, 
+<dd>A user-readable label for the application as a whole, and a default
+label for each of the application's components.  See the individual
+{@code label} attributes for
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>,
 <code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code>,
-<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>, 
+<code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>,
 <code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>, and
 <code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code> elements.
 
 <p>
 The label should be set as a reference to a string resource, so that
-it can be localized like other strings in the user interface.  
-However, as a convenience while you're developing the application, 
+it can be localized like other strings in the user interface.
+However, as a convenience while you're developing the application,
 it can also be set as a raw string.
 </p></dd>
 
 <dt><a name="logo"></a>{@code android:logo}</dt>
 <dd>A logo for the application as whole, and the default logo for activities.
 <p>This attribute must be set as a reference to a drawable resource containing
-the image (for example {@code "@drawable/logo"}).  There is no default logo.</p></dd>
+the image (for example {@code "&#64;drawable/logo"}).  There is no default logo.</p></dd>
 
 <dt><a name="space"></a>{@code android:manageSpaceActivity}</dt>
-<dd>The fully qualified name of an Activity subclass that the system 
-can launch to let users manage the memory occupied by the application 
-on the device.  The activity should also be declared with an 
+<dd>The fully qualified name of an Activity subclass that the system
+can launch to let users manage the memory occupied by the application
+on the device.  The activity should also be declared with an
 <code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code> element.
 </dd>
 
 <dt><a name="nm"></a>{@code android:name}</dt>
-<dd>The fully qualified name of an {@link android.app.Application} 
-subclass implemented for the application.  When the application process 
-is started, this class is instantiated before any of the application's 
-components.  
+<dd>The fully qualified name of an {@link android.app.Application}
+subclass implemented for the application.  When the application process
+is started, this class is instantiated before any of the application's
+components.
 
 <p>
 The subclass is optional; most applications won't need one.
-In the absence of a subclass, Android uses an instance of the base 
+In the absence of a subclass, Android uses an instance of the base
 Application class.
 </p></dd>
 
 <dt><a name="prmsn"></a>{@code android:permission}</dt>
-<dd>The name of a permission that clients must have in order to interact 
-with the application.  This attribute is a convenient way to set a 
-permission that applies to all of the application's components.  It can 
-be overwritten by setting the {@code permission} attributes of individual 
+<dd>The name of a permission that clients must have in order to interact
+with the application.  This attribute is a convenient way to set a
+permission that applies to all of the application's components.  It can
+be overwritten by setting the {@code permission} attributes of individual
 components.
 
 <p>
-For more information on permissions, see the 
-<a href="{@docRoot}guide/topics/manifest/manifest-intro.html#sectperm">Permissions</a> 
-section in the introduction and another document, 
+For more information on permissions, see the
+<a href="{@docRoot}guide/topics/manifest/manifest-intro.html#sectperm">Permissions</a>
+section in the introduction and another document,
 <a href="{@docRoot}guide/topics/security/security.html">Security and
 Permissions</a>.
 </p></dd>
 
 <dt><a name="persistent"></a>{@code android:persistent}</dt>
-<dd>Whether or not the application should remain running at all times &mdash; 
-{@code "true"} if it should, and {@code "false"} if not.  The default value 
-is {@code "false"}.  Applications should not normally set this flag; 
+<dd>Whether or not the application should remain running at all times &mdash;
+{@code "true"} if it should, and {@code "false"} if not.  The default value
+is {@code "false"}.  Applications should not normally set this flag;
 persistence mode is intended only for certain system applications.</dd>
 
 <dt><a name="proc"></a>{@code android:process}</dt>
@@ -282,9 +312,9 @@
 </p>
 
 <p>
-If the name assigned to this attribute begins with a colon (':'), a new 
+If the name assigned to this attribute begins with a colon (':'), a new
 process, private to the application, is created when it's needed.
-If the process name begins with a lowercase character, a global process 
+If the process name begins with a lowercase character, a global process
 of that name is created.  A global process can be shared with other
 applications, reducing resource usage.
 </p></dd>
@@ -307,7 +337,7 @@
 If your app requires an {@link android.accounts.Account}, the value for this attribute must
 correspond to the account authenticator
 type used by your app (as defined by {@link android.accounts.AuthenticatorDescription}),
-such as "com.google".  
+such as "com.google".
 
 <p>The default value is null and indicates that the application
 can work <em>without</em> any accounts.
@@ -369,13 +399,13 @@
 <dt><a name="aff"></a>{@code android:taskAffinity}</dt>
 <dd>An affinity name that applies to all activities within the application,
 except for those that set a different affinity with their own
-<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code> 
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code>
 attributes.  See that attribute for more information.
 
 <p>
-By default, all activities within an application share the same 
-affinity.  The name of that affinity is the same as the package name 
-set by the 
+By default, all activities within an application share the same
+affinity.  The name of that affinity is the same as the package name
+set by the
 <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> element.
 </p></dd>
 
@@ -389,7 +419,7 @@
 <dt><a name="theme"></a>{@code android:theme}</dt>
 <dd>A reference to a style resource defining a default theme for all
 activities in the application.  Individual activities can override
-the default by setting their own <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#theme">theme</a></code> 
+the default by setting their own <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#theme">theme</a></code>
 attributes. For more information, see the <a
 href="{@docRoot}guide/topics/ui/themes.html">Styles and Themes</a> developer guide.
 </dd>
diff --git a/docs/html/images/emulator-wvga800l.png b/docs/html/images/emulator-wvga800l.png
deleted file mode 100644
index c92c1b9..0000000
--- a/docs/html/images/emulator-wvga800l.png
+++ /dev/null
Binary files differ
diff --git a/docs/html/images/emulator.png b/docs/html/images/emulator.png
new file mode 100644
index 0000000..96a2507
--- /dev/null
+++ b/docs/html/images/emulator.png
Binary files differ
diff --git a/docs/html/images/emulator@2x.png b/docs/html/images/emulator@2x.png
new file mode 100644
index 0000000..9b825a7
--- /dev/null
+++ b/docs/html/images/emulator@2x.png
Binary files differ
diff --git a/docs/html/images/games/game-controller-buttons_2x_crop.png b/docs/html/images/games/game-controller-buttons_2x_crop.png
new file mode 100644
index 0000000..54dc2fa
--- /dev/null
+++ b/docs/html/images/games/game-controller-buttons_2x_crop.png
Binary files differ
diff --git a/docs/html/images/gp-tv-opt-in.png b/docs/html/images/gp-tv-opt-in.png
new file mode 100644
index 0000000..a815818
--- /dev/null
+++ b/docs/html/images/gp-tv-opt-in.png
Binary files differ
diff --git a/docs/html/images/gp-tv-process.png b/docs/html/images/gp-tv-process.png
new file mode 100644
index 0000000..a530777
--- /dev/null
+++ b/docs/html/images/gp-tv-process.png
Binary files differ
diff --git a/docs/html/images/tools/as-attach.png b/docs/html/images/tools/as-attach.png
new file mode 100644
index 0000000..c572b1e
--- /dev/null
+++ b/docs/html/images/tools/as-attach.png
Binary files differ
diff --git a/docs/html/jd_collections.js b/docs/html/jd_collections.js
index 08c0090..d63580e 100644
--- a/docs/html/jd_collections.js
+++ b/docs/html/jd_collections.js
@@ -57,8 +57,8 @@
   },
   "distribute/gp/gpfelanding": {
     "resources": [
+      "distribute/googleplay/tv.html",
       "distribute/googleplay/edu/about.html",
-      "distribute/googleplay/edu/start.html",
       "distribute/googleplay/edu/videos.html"
     ]
   },
@@ -773,6 +773,14 @@
       "https://support.google.com/googleplay/answer/2651410"
     ]
   },
+  "tvlanding": {
+    "title": "",
+    "resources": [
+      "tv/index.html",
+      "design/tv/index.html",
+      "training/tv/index.html"
+    ]
+  },
   "distribute/stories/games": {
     "title": "",
     "resources": [
diff --git a/docs/html/sdk/installing/studio-debug.jd b/docs/html/sdk/installing/studio-debug.jd
index 2e3e137..b048400 100644
--- a/docs/html/sdk/installing/studio-debug.jd
+++ b/docs/html/sdk/installing/studio-debug.jd
@@ -6,7 +6,11 @@
 <div id="qv">
 <h2>In this document</h2>
 <ol>
-  <li><a href="#runDebug">Run your App in Debug Mode</a></li>
+  <li><a href="#runDebug">Run your App in Debug Mode</a>
+    <ol>
+      <li><a href="#attachDebug">Attach the debugger to a running process</a></li>
+    </ol>
+  </li>
   <li><a href="#systemLog">Use the System Log</a>
     <ol>
       <li><a href="#systemLogWrite">Write log messages in your code</a></li>
@@ -94,6 +98,22 @@
 <p class="img-caption"><strong>Figure 2.</strong> The Debug tool window in Android Studio showing
 the current thread and the object tree for a variable.</p>
 
+<h3 id="attachDebug">Attach the debugger to a running process</h3>
+
+<p>You don't always have to restart your app to debug it. To debug an app that you're already
+running:</p>
+
+<ol>
+<li>Click <strong>Attach debugger to Android proccess</strong>
+<img src="{@docRoot}images/tools/as-attach.png" alt=""
+style="vertical-align:bottom;margin:0;height:20px"/>.</li>
+<li>In the <em>Choose Process</em> window, select the device and app you want to attach the
+debugger to.</li>
+<li>To open the <em>Debug</em> tool window, click <strong>Debug</strong>
+<img src="{@docRoot}images/tools/as-debugwindowbutton.png"
+alt="" style="vertical-align:bottom;margin:0;height:20px"/>.</li>
+</ol>
+
 
 <h2 id="systemLog">Use the System Log</h2>
 
diff --git a/docs/html/sdk/installing/studio.jd b/docs/html/sdk/installing/studio.jd
index 6991dea..f02cdbc 100644
--- a/docs/html/sdk/installing/studio.jd
+++ b/docs/html/sdk/installing/studio.jd
@@ -340,7 +340,6 @@
 </td>
 </tr>
 </table>
-<p class="note"><strong>Note:</strong> The full SDK/NDK requires 13 GB of disk space.</p>
 </div><!-- end pax -->
 
 
diff --git a/docs/html/tools/devices/emulator.jd b/docs/html/tools/devices/emulator.jd
index ea1549d..d7bb8c7 100644
--- a/docs/html/tools/devices/emulator.jd
+++ b/docs/html/tools/devices/emulator.jd
@@ -80,7 +80,9 @@
 provides a screen in which your application is displayed, together with any other
 active Android applications. </p>
 
-<img src="{@docRoot}images/emulator-wvga800l.png" width="367" height="349" />
+<img src="{@docRoot}images/emulator@2x.png"
+srcset="{@docRoot}images/emulator.png 1x, {@docRoot}images/emulator@2x.png 2x" alt=""
+  width="367" height="330"/>
 
 <p>To let you model and test your application more easily, the emulator utilizes
 Android Virtual Device (AVD) configurations. AVDs let you define certain hardware
diff --git a/docs/html/training/material/animations.jd b/docs/html/training/material/animations.jd
index e8291b8..efc0ee3 100644
--- a/docs/html/training/material/animations.jd
+++ b/docs/html/training/material/animations.jd
@@ -84,12 +84,14 @@
 int cy = (myView.getTop() + myView.getBottom()) / 2;
 
 // get the final radius for the clipping circle
-int finalRadius = myView.getWidth();
+int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
 
-// create and start the animator for this view
-// (the start radius is zero)
+// create the animator for this view (the start radius is zero)
 Animator anim =
     ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
+
+// make the view visible and start the animation
+myView.setVisibility(View.VISIBLE);
 anim.start();
 </pre>
 
diff --git a/docs/html/training/tv/discovery/index.jd b/docs/html/training/tv/discovery/index.jd
index fbc8c9f..5849149 100644
--- a/docs/html/training/tv/discovery/index.jd
+++ b/docs/html/training/tv/discovery/index.jd
@@ -1,4 +1,5 @@
-page.title=Helping Users Find Content on TV
+page.title=Helping Users Find Your Content on TV
+page.tags="tv", "leanback"
 
 startpage=true
 
diff --git a/docs/html/training/tv/games/index.jd b/docs/html/training/tv/games/index.jd
index 2f510a9..5276d7f 100644
--- a/docs/html/training/tv/games/index.jd
+++ b/docs/html/training/tv/games/index.jd
@@ -1,5 +1,7 @@
 page.title=Building TV Games
-page.tags="controller"
+page.tags="tv", "games", "controller"
+page.image=images/games/game-controller-buttons_2x_crop.png
+page.metaDescription=How to bring your games to Android TV, including recommendations and examples.
 page.article=true
 
 @jd:body
@@ -180,7 +182,7 @@
 It includes a white controller on black background and a black controller on white background
 (shown in figure 1), as a PNG file and an Adobe&reg; Illustrator&reg; file.</p>
 
-<img src="{@docRoot}images/games/game-controller-buttons_2x.png" width="700"
+<img itemprop="image" src="{@docRoot}images/games/game-controller-buttons_2x.png" width="700"
      srcset="{@docRoot}images/games/game-controller-buttons_2x.png 2x,
              {@docRoot}images/games/game-controller-buttons.png 1x" />
 <p class="img-caption"><b>Figure 1.</b> Example controller instructions using the
@@ -194,22 +196,22 @@
 
 <p>There are a some special things games should include in the Android manifest.</p>
 
-<h3 id="Launcher">Show your game in the launcher</h3>
+<h3 id="Launcher">Show your game on the home screen</h3>
 <p>
-  The Android TV launcher home screen displays games in a separate row from regular apps.
-  To make your game appear in the list of games, add the
-  <a href="{@docRoot}guide/topics/manifest/meta-data-element.html"
-  ><code>&lt;meta-data></code></a> tag in your app manifest with <code>android:name</code>
-  set to <code>"isGame"</code> and <code>android:value</code>
-  set to <code>"true"</code>. For example:
+  The Android TV home screen displays games in a separate row from regular apps.
+  To make your game appear in the list of games, set the
+  <a href="{@docRoot}guide/topics/manifest/application-element.html#isGame">
+  {@code android:isGame}</a> attribute to <code>"true"</code> in your app manifest's
+  <a href="{@docRoot}guide/topics/manifest/application-element.html"><code>&lt;application&gt;</code>
+  </a> tag. For example:
 </p>
 
 <pre class="fragment">
-&lt;application&gt;
-  ...
-  &lt;meta-data android:name="isGame" android:value="true" &gt;
-  ...
-&lt;/application&gt;
+&lt;application
+    ...
+    android:isGame="true"
+    ...
+&gt;
 </pre>
 
 
diff --git a/docs/html/training/tv/index.jd b/docs/html/training/tv/index.jd
index 56667a9..d52e1e8 100644
--- a/docs/html/training/tv/index.jd
+++ b/docs/html/training/tv/index.jd
@@ -1,8 +1,11 @@
 page.title=Building Apps for TV
 page.trainingcourse=true
-
+page.metaDescription=Starting point for building apps and games for Android TV, with guidelines, information, and examples.
+page.image=design/tv/images/focus.png
 @jd:body
 
 
 
-<p>These classes teach you how to build apps for TV devices.</p>
\ No newline at end of file
+<p>These classes teach you how to build apps for TV devices.</p>
+
+<p class="note"><strong>Note:</strong> For details on how to publish your TV apps in Google Play,  see <a href="{docRoot}distribute/googleplay/tv.html">Distributing to Android TV</a>.</p>
\ No newline at end of file
diff --git a/docs/html/training/tv/playback/index.jd b/docs/html/training/tv/playback/index.jd
index 118fc6c..09c3f24 100644
--- a/docs/html/training/tv/playback/index.jd
+++ b/docs/html/training/tv/playback/index.jd
@@ -1,5 +1,5 @@
 page.title=Building TV Playback Apps
-page.tags="leanback"
+page.tags="tv","leanback"
 
 startpage=true
 
diff --git a/docs/html/training/tv/start/index.jd b/docs/html/training/tv/start/index.jd
index ceefea1..fb478a8 100644
--- a/docs/html/training/tv/start/index.jd
+++ b/docs/html/training/tv/start/index.jd
@@ -1,4 +1,5 @@
 page.title=Building TV Apps
+page.tags="tv", "leanback"
 startpage=true
 
 @jd:body
diff --git a/docs/html/training/tv/start/start.jd b/docs/html/training/tv/start/start.jd
index bebeedd..3b26abf 100644
--- a/docs/html/training/tv/start/start.jd
+++ b/docs/html/training/tv/start/start.jd
@@ -100,7 +100,8 @@
 <p>The following code snippet shows how to include this intent filter in your manifest:</p>
 
 <pre>
-&lt;application&gt;
+&lt;application
+  android:banner="&#64;drawable/banner" &gt;
   ...
   &lt;activity
     android:name=&quot;com.example.android.MainActivity&quot;
@@ -141,6 +142,34 @@
   "{@docRoot}training/tv/start/layouts.html">Building TV Layouts</a>.
 </p>
 
+<h3 id="banner">Provide a home screen banner</h3>
+
+<p>
+  An application must provide a home screen banner if it includes a Leanback launcher intent
+  filter. The banner is the app launch point that appears on the home screen in the apps and
+  games rows. Desribe the banner in the manifest as follows:
+</p>
+
+<pre>
+&lt;application
+    . . .
+    android:banner="&#64;drawable/banner" &gt;
+    . . .
+&lt;/application&gt;
+</pre>
+
+<p>
+  Use the <a href="{@docRoot}guide/topics/manifest/application-element.html#banner">{@code android:banner}</a>
+  attribute with the <a href="{@docRoot}guide/topics/manifest/application.html"><code>&lt;application&gt;</code></a>
+  tag to supply a default banner for all application activities, or with the
+  <a href="{@docRoot}guide/topics/manifest/activity-element.html"><code>&lt;activity&gt;</code></a>
+  tag to supply a banner for a specific activity.
+</p>
+
+<p>
+  See <a href="{@docRoot}design/tv/patterns.html#banner">Banners</a> in the UI Patterns for TV
+  design guide.
+</p>
 
 <h3 id="tv-libraries">Add TV support libraries</h3>
 
diff --git a/docs/html/training/tv/tif/index.jd b/docs/html/training/tv/tif/index.jd
index 4746e42..cde8ba7 100644
--- a/docs/html/training/tv/tif/index.jd
+++ b/docs/html/training/tv/tif/index.jd
@@ -1,5 +1,5 @@
 page.title=Building Live TV Apps
-page.tags=tif
+page.tags="tv", "tif"
 page.article=true
 
 @jd:body
diff --git a/docs/html/training/wearables/apps/bt-debugging.jd b/docs/html/training/wearables/apps/bt-debugging.jd
index 8d09c43..98cf804 100644
--- a/docs/html/training/wearables/apps/bt-debugging.jd
+++ b/docs/html/training/wearables/apps/bt-debugging.jd
@@ -58,7 +58,8 @@
 </li>
 <li>Connect the handheld to your machine over USB and run:
 <pre>
-adb forward tcp:4444 localabstract:/adb-hub; adb connect localhost:4444
+adb forward tcp:4444 localabstract:/adb-hub
+adb connect localhost:4444
 </pre>
 
 <p class="note"><b>Note</b>: You can use any available port that you have access to.</p>
diff --git a/docs/html/training/wearables/apps/layouts.jd b/docs/html/training/wearables/apps/layouts.jd
index e62d3e5..a35acb0 100644
--- a/docs/html/training/wearables/apps/layouts.jd
+++ b/docs/html/training/wearables/apps/layouts.jd
@@ -90,9 +90,10 @@
 </ol>
 <h2 id="UiLibrary">Create Layouts with the Wearable UI Library</h2>
 <p>
-There's an unofficial UI library that is automatically included when you create your wearable
-app with the Android Studio Project Wizard. You can also add the library to your <code>build.gradle</code>
+The Wearable UI Library is automatically included when you create your wearable
+app with the Android Studio Project Wizard. You can also add this library to your <code>build.gradle</code>
 file with the following dependency declaration:
+</p>
 
 <pre>
 dependencies {
@@ -101,8 +102,11 @@
     compile 'com.google.android.gms:play-services-wearable:+'
 }
 </pre>
-This library helps you build UIs that are designed for wearables. Here are some of the major classes:
-</p>
+
+<p>This library helps you build UIs that are designed for wearables. For more information, see
+<a href="{@docRoot}training/wearables/ui/index.html">Creating Custom UIs for Wear Devices</a>.</p>
+
+<p>Here are some of the major classes in the Wearable UI Library:</p>
 
 <ul>
     <li><code>BoxInsetLayout</code> - A FrameLayout that's aware of screen shape and can box its
diff --git a/docs/html/training/wearables/data-layer/accessing.jd b/docs/html/training/wearables/data-layer/accessing.jd
index 896a698..36e3daa 100644
--- a/docs/html/training/wearables/data-layer/accessing.jd
+++ b/docs/html/training/wearables/data-layer/accessing.jd
@@ -37,7 +37,7 @@
 implementing its callbacks, and handling error cases.</p>
 
 <pre style="clear:right">
-GoogleApiClient mGoogleAppiClient = new GoogleApiClient.Builder(this)
+GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
         .addConnectionCallbacks(new ConnectionCallbacks() {
                 &#64;Override
                 public void onConnected(Bundle connectionHint) {
@@ -64,4 +64,4 @@
 method, as described in
 <a href="{@docRoot}google/auth/api-client.html#Starting">Accessing Google Play services APIs</a>.
 When the system invokes the <code>onConnected()</code> callback for your client, you're ready
-to use the data layer API.</p>
\ No newline at end of file
+to use the data layer API.</p>
diff --git a/docs/html/training/wearables/data-layer/index.jd b/docs/html/training/wearables/data-layer/index.jd
index 39d6561..6ef3fc7 100644
--- a/docs/html/training/wearables/data-layer/index.jd
+++ b/docs/html/training/wearables/data-layer/index.jd
@@ -8,7 +8,7 @@
     <h2>Dependencies and prerequisites</h2>
     <ul>
       <li>Android 4.3 (API Level 18) or higher on the handset device</li>
-      <li>The latest version of <a href="{@docRoot}google/play">Google Play services</a></li>
+      <li>The latest version of <a href="{@docRoot}google/play-services/index.html">Google Play services</a></li>
       <li>An Android Wear device or Wear AVD</li>
     </ul>
   </div>
diff --git a/docs/html/tv/index.jd b/docs/html/tv/index.jd
index 71e177b..e4d7f7a 100644
--- a/docs/html/tv/index.jd
+++ b/docs/html/tv/index.jd
@@ -1,5 +1,9 @@
-page.title=Android TV
+page.title=About Android TV
+page.type=about
+page.image=tv/images/hero.jpg
 page.viewport_width=970
+page.tags="tv", "leanback"
+page.metaDescription=Bring your apps, games, and content to the biggest screen in the house.
 fullpage=true
 no_footer_links=true
 page.type=about
diff --git a/media/java/android/service/media/MediaBrowserService.java b/media/java/android/service/media/MediaBrowserService.java
index d50be42..0754fd4 100644
--- a/media/java/android/service/media/MediaBrowserService.java
+++ b/media/java/android/service/media/MediaBrowserService.java
@@ -101,7 +101,6 @@
      * be thrown.
      *
      * @see MediaBrowserService#onLoadChildren
-     * @see MediaBrowserService#onLoadIcon
      */
     public class Result<T> {
         private Object mDebug;