1 page.title=Support Library Revision History 2 page.metaDescription=This page provides details about the Support Library package releases. 3 4 @jd:body 5 6 <p>This page provides details about the Support Library package releases.</p> 7 8 <div class="toggle-content opened"> 9 <p id="rev24-0-0"> 10 <a href="#" onclick="return toggleContent(this)"><img src= 11 "{@docRoot}assets/images/styles/disclosure_up.png" class= 12 "toggle-content-img" alt="">Android Support Library, revision 24.0.0</a> 13 <em>(June 2016)</em> 14 </p> 15 16 <div class="toggle-content-toggleme"> 17 <dl> 18 <dt> 19 Changes for <a href= 20 "{@docRoot}tools/support-library/features.html#v4">v4 Support 21 Library</a>: 22 </dt> 23 24 <dd> 25 <ul> 26 <li>Added <code>Fragment.commitNow()</code> 27 for synchronous commit 28 </li> 29 30 <li>Added <code>NotificationCompat.MessagingStyle</code> 31 for multi-party conversations 32 </li> 33 34 <li>Added <code>NotificationManagerCompat.areNotificationsEnabled()</code> 35 and <code>getImportance()</code> 36 </li> 37 38 <li>{@link android.support.v4.media.session.MediaSessionCompat} 39 now mirrors the functionality of {@link 40 android.media.session.MediaSession} and no longer calls {@link 41 android.media.session.MediaSession#setMediaButtonReceiver 42 setMediaButtonReceiver()} automatically 43 </li> 44 </ul> 45 <p class="note"> 46 <strong>Note:</strong> Only <a href= 47 "{@docRoot}reference/android/support/v4/media/MediaBrowserServiceCompat.html" 48 ><code>MediaBrowserServiceCompat</code></a> in version 24.0.0 is 49 forward-compatible with future versions of Android beyond API 24. 50 If you are using previous versions, update to this version to 51 ensure compatibility. 52 53 </p> 54 55 <dt> 56 Changes for <a href= 57 "{@docRoot}tools/support-library/features.html#v7-appcompat">v7 58 appcompat library</a>: 59 </dt> 60 61 <dd> 62 <ul> 63 <li>Added support for referencing themed {@link 64 android.content.res.ColorStateList} objects from XML 65 </li> 66 </ul> 67 </dd> 68 69 <dt> 70 Changes for <a href= 71 "{@docRoot}tools/support-library/features.html#design">Design Support 72 Library</a>: 73 </dt> 74 75 <dd> 76 <ul> 77 <li>Improvements to {@link android.support.design.widget.AppBarLayout} 78 handling of elevation using {@link 79 android.animation.StateListAnimator} 80 </li> 81 </ul> 82 </dd> 83 84 <dt> 85 Changes for <a href= 86 "{@docRoot}topic/libraries/support-library/features.html#v17-leanback" 87 >v17 Leanback library</a>: 88 </dt> 89 90 <dd> 91 <ul> 92 <li>Added <code>OnboardingFragment</code> to provide first-run welcome 93 and setup flow 94 </li> 95 </ul> 96 </dd> 97 98 <dt> 99 Changes for <a href= 100 "{@docRoot}topic/libraries/support-library/features.html#custom-tabs" 101 >custom tabs</a>: 102 </dt> 103 104 <dd> 105 <ul> 106 <li>Added support for providing a {@link android.widget.RemoteViews} 107 hierarchy for the secondary toolbar</li> 108 <li>Added <code>CustomTabsClient.connectAndInitialize()</code> 109 for one-line warm up</li> 110 </ul> 111 </dd> 112 113 </dl> 114 </div> 115 </div> 116 117 <!-- end of collapsible section: 24.0.0 --> 118 119 120 <div class="toggle-content closed"> 121 <p id="rev23-4-0"> 122 <a href="#" onclick="return toggleContent(this)"><img src= 123 "{@docRoot}assets/images/styles/disclosure_up.png" class= 124 "toggle-content-img" alt="">Android Support Library, revision 23.4.0</a> 125 <em>(May 2016)</em> 126 </p> 127 128 <div class="toggle-content-toggleme"> 129 <dl> 130 <dt> 131 Changes for <a href= 132 "{@docRoot}tools/support-library/features.html#v4">v4 Support 133 Library</a>: 134 </dt> 135 136 <dd> 137 <ul> 138 <li>Fixed issue where fragments were added in the wrong order. 139 (<a class="external-link" href= 140 "https://code.google.com/p/android/issues/detail?id=206901">Issue 141 206901</a>) 142 </li> 143 144 <li>Fixed issue where app bar wasn't drawn after being scrolled 145 offscreen. (<a class="external-link" href= 146 "https://code.google.com/p/android/issues/detail?id=178037">Issue 147 178037</a>) 148 </li> 149 </ul> 150 </dd> 151 152 <dt> 153 Changes for <a href= 154 "{@docRoot}tools/support-library/features.html#v7-appcompat">v7 155 appcompat library</a>: 156 </dt> 157 158 <dd> 159 <ul> 160 <li>Added 161 {@link android.support.v7.app.AppCompatDelegate#setCompatVectorFromResourcesEnabled 162 AppCompatDelegate.setCompatVectorFromResourcesEnabled()} 163 method to re-enable usage of vector drawables in {@link 164 android.graphics.drawable.DrawableContainer} objects on devices 165 running Android 4.4 (API level 19) and lower. See <a href= 166 "https://medium.com/@chrisbanes/appcompat-v23-2-age-of-the-vectors-91cbafa87c88#.44uulkfal" 167 class="external-link">AppCompat v23.2Age of the vectors</a> for 168 more information. 169 </li> 170 171 <li>Fixed an issue in API 23 with <a href= 172 "{@docRoot}reference/android/support/v7/app/AppCompatDelegate.html#setDefaultNightMode(int)"> 173 <code>AppCompatDelegate.setDefaultNightMode()</code></a> not 174 loading correct resources in API level 23. (<a class= 175 "external-link" href= 176 "https://code.google.com/p/android/issues/detail?id=206573">Issue 177 206573</a>) 178 </li> 179 180 <li>Fixed issue that could cause {@link 181 java.lang.NullPointerException}. (<a class="external-link" href= 182 "https://code.google.com/p/android/issues/detail?id=207638">Issue 183 207638</a>) 184 </li> 185 </ul> 186 </dd> 187 188 <dt> 189 Changes for <a href= 190 "{@docRoot}tools/support-library/features.html#design">Design Support 191 Library</a>: 192 </dt> 193 194 <dd> 195 <ul> 196 <li>Fixed an issue where {@link 197 android.support.design.widget.TextInputLayout} doesn't clear error 198 tint after {@link 199 android.support.design.widget.TextInputLayout#setErrorEnabled 200 setErrorEnabled(false)} on API level 21 - 22 (<a class= 201 "external-link" href= 202 "https://code.google.com/p/android/issues/detail?id=202829">Issue 203 202829</a>) 204 </li> 205 206 <li>Fixed an issue where {@link 207 android.support.design.widget.FloatingActionButton} does not return 208 when animations are disabled. (<a class="external-link" href= 209 "https://code.google.com/p/android/issues/detail?id=206416">Issue 210 206416</a>) 211 </li> 212 213 <li>Fixed issue in {@link android.support.design.widget.AppBarLayout} 214 snap functionality when used with <code>{@link 215 android.support.design.R.id#scroll}|{@link 216 android.support.design.R.id#enterAlways}|{@link 217 android.support.design.R.id#enterAlwaysCollapsed}|{@link 218 android.support.design.R.id#snap}</code> scroll flags. 219 (<a class="external-link" href= 220 "https://code.google.com/p/android/issues/detail?id=207398">Issue 221 207398</a>) 222 </li> 223 </ul> 224 </dd> 225 226 <dt> 227 Changes for <!-- TODO: Add link -->Vector Drawable library: 228 </dt> 229 230 <dd> 231 <ul> 232 <li>Fixed a bug where {@link 233 android.support.graphics.drawable.VectorDrawableCompat} does 234 not render correctly in 235 {@link android.widget.TextView} on API level 23. (<a class= 236 "external-link" href= 237 "https://code.google.com/p/android/issues/detail?id=206227">Issue 238 206227</a>) 239 </li> 240 </ul> 241 </dd> 242 </dl> 243 </div> 244 </div> 245 246 <!-- end of collapsible section: 23.4.0 --> 247 248 249 <div class="toggle-content closed"> 250 <p id="rev23-3-0"> 251 <a href="#" onclick="return toggleContent(this)"><img src= 252 "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" 253 alt="">Android Support Library, revision 23.3.0</a> <em>(April 254 2016)</em> 255 </p> 256 257 <div class="toggle-content-toggleme"> 258 <dl> 259 <dt> 260 Changes for <a href= 261 "{@docRoot}tools/support-library/features.html#v4">v4 Support 262 Library</a>: 263 </dt> 264 265 <dd> 266 <ul> 267 <li>Added <code>AppLaunchChecker</code> to help track how your app 268 has been launched by the user in the past. 269 <code>hasStartedFromLauncher()</code> lets you know if the user has 270 launched your app from the home screen before, or if it has only 271 been started by other means (for example, to view specific web 272 URLs). 273 </li> 274 275 <li>Fixed a memory leak in 276 <code>MediaBrowserServiceCompat.mConnections</code>. (<a class= 277 "external-link" href= 278 "https://code.google.com/p/android/issues/detail?id=205220">Issue 279 205220</a>) 280 </li> 281 282 <li>Fixed issue where {@link android.support.v4.view.ViewPager} 283 does not account for page margins when flipping page. (<a class= 284 "external-link" href= 285 "https://code.google.com/p/android/issues/detail?id=203816">Issue 286 203816</a>) 287 </li> 288 <li>{@link android.support.v4.app.Fragment#onRequestPermissionsResult 289 Fragment.onRequestPermissionsResult()} is now delivered to child 290 fragments. 291 </li> 292 </ul> 293 </dd> 294 295 296 <dt> 297 Changes for <a href= 298 "{@docRoot}tools/support-library/features.html#v7-appcompat">v7 299 appcompat library</a>: 300 </dt> 301 302 <dd> 303 <ul> 304 <li>Fixed an issue in {@link 305 android.support.v7.widget.AppCompatSpinner} that could cause 306 multiple popups to appear. (<a class="external-link" href= 307 "https://code.google.com/p/android/issues/detail?id=205052">Issue 308 205052</a>) 309 </li> 310 311 <li>Fixed an issue with how borderless buttons were colored. 312 (<a class="external-link" href= 313 "https://code.google.com/p/android/issues/detail?id=202967">Issue 314 202967</a>) 315 </li> 316 317 <li>Fixed a compatibility issue between {@link 318 android.support.v7.app.AppCompatDialogFragment } and {@link 319 android.support.v7.app.AlertDialog}. (<a class="external-link" 320 href="https://code.google.com/p/android/issues/detail?id=204805">Issue 321 204805</a>) 322 </li> 323 324 <li>Reverted changes to <code>TintResources</code> that were causing 325 memory and configuration issues. (<a class="external-link" 326 href="https://code.google.com/p/android/issues/detail?id=205236">Issue 327 205236</a>)</li> 328 </ul> 329 </dd> 330 331 332 <dt> 333 Changes for <a href= 334 "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7 335 mediarouter library</a>: 336 </dt> 337 338 <dd> 339 <ul> 340 <li>Fixed {@link android.support.v7.app.MediaRouteControllerDialog} 341 volume sliders behavior. (<a class="external-link" href= 342 "https://code.google.com/p/android/issues/detail?id=202299">Issue 343 202299</a>) 344 </li> 345 </ul> 346 </dd> 347 348 349 <dt> 350 Changes for <a href="features.html#v7-preference">v7 Preference</a> 351 library: 352 </dt> 353 354 <dd> 355 <ul> 356 <li>Fixed issue where {@link 357 android.support.v7.preference.PreferenceFragmentCompat} would crash 358 if <code>dividerHeight</code> is specified. (<a class= 359 "external-link" href= 360 "https://code.google.com/p/android/issues/detail?id=204778">Issue 361 204778</a>) 362 </li> 363 </ul> 364 </dd> 365 366 367 <dt> 368 Changes for <a href= 369 "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7 370 recyclerview library</a>: 371 </dt> 372 373 <dd> 374 <ul> 375 <li>Fixed a bug where {@link 376 android.support.v7.widget.RecyclerView} would not invoke scroll 377 callbacks if the range of visible items shrank. (<a class= 378 "external-link" href= 379 "https://code.google.com/p/android/issues/detail?id=200987">Issue 380 200987</a>) 381 </li> 382 383 <li>Fixed a bug where {@link 384 android.support.v7.widget.RecyclerView} would freeze if it was in 385 linear layout, was weighted, and contained images. (<a class= 386 "external-link" href= 387 "https://code.google.com/p/android/issues/detail?id=203276">Issue 388 203276</a>) 389 </li> 390 391 <li>Fixed a crash in {@link 392 android.support.v7.widget.OrientationHelper#getStartAfterPadding 393 OrientationHelper.getStartAfterPadding()}. (<a class= 394 "external-link" href= 395 "https://code.google.com/p/android/issues/detail?id=180521">Issue 396 180521</a>) 397 </li> 398 399 <li>Fixed a crash with usages of 400 <code>android:nestedScrollingEnabled</code>. (<a class= 401 "external-link" href= 402 "https://code.google.com/p/android/issues/detail?id=197932">Issue 403 197932</a>) 404 </li> 405 </ul> 406 </dd> 407 408 409 <dt> 410 Changes for <a href= 411 "{@docRoot}tools/support-library/features.html#design">Design Support 412 Library</a>: 413 </dt> 414 415 <dd> 416 <ul> 417 <li>Fixed a bug where a hidden bottom sheet would handle touch 418 events. (<a class="external-link" href= 419 "https://code.google.com/p/android/issues/detail?id=203654">Issue 420 203654</a>) 421 </li> 422 423 <li>Fixed a layout issue with <code>BottomSheetBehavior</code> when 424 <code>fitsSystemWindows</code> is true. (<a class="external-link" 425 href= 426 "https://code.google.com/p/android/issues/detail?id=203057">Issue 427 203057</a>) 428 </li> 429 430 <li>Fixed an accessibility issue with {@link 431 android.support.design.widget.Snackbar}. (<a class="external-link" 432 href= 433 "https://code.google.com/p/android/issues/detail?id=182145">Issue 434 182145</a>) 435 </li> 436 437 <li>Fixed a crash on {@link android.support.design.widget.Snackbar} 438 swipe. (<a class="external-link" href= 439 "https://code.google.com/p/android/issues/detail?id=203924">Issue 440 203924</a>) 441 </li> 442 443 <li>Fixed a bug in {@link 444 android.support.design.widget.AppBarLayout} with 445 <code>enterAlways</code>. (<a class="external-link" href= 446 "https://code.google.com/p/android/issues/detail?id=203661">Issue 447 203661</a>) 448 </li> 449 450 <li>Fixed a bug where {@link 451 android.support.design.widget.TextInputLayout} unnecessarily clears 452 {@link android.widget.EditText} object's background color filter. 453 (<a class="external-link" href= 454 "https://code.google.com/p/android/issues/detail?id=203357">Issue 455 203357</a>) 456 </li> 457 </ul> 458 </dd> 459 460 </dl> 461 </div> 462 </div> 463 <!-- end of collapsible section: 23.3.0 --> 464 465 <div class="toggle-content closed"> 466 <p id="rev23-2-1"> 467 <a href="#" onclick="return toggleContent(this)"><img src= 468 "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" 469 alt="">Android Support Library, revision 23.2.1</a> <em>(March 470 2016)</em> 471 </p> 472 473 <div class="toggle-content-toggleme"> 474 <dl> 475 <dt> 476 Changes for <a href= 477 "{@docRoot}tools/support-library/features.html#v4">v4 Support 478 Library</a>: 479 </dt> 480 481 <dd> 482 <ul> 483 <li>Fixed an exception in {@link 484 android.support.v4.graphics.drawable.DrawableCompat#wrap 485 DrawableCompat.wrap()} and {@link android.graphics.drawable.LayerDrawable} on 486 API levels 17 to 19. (<a class="external-link" href= 487 "https://code.google.com/p/android/issues/detail?id=201817">Issue 201817</a>) 488 </li> 489 490 <li>Fixed an {@code ArrayIndexOutOfBoundsException} in {@link 491 android.support.v4.widget.ViewDragHelper#shouldInterceptTouchEvent 492 ViewDragHelper.shouldInterceptTouchEvent()}. (<a class="external-link" 493 href="https://code.google.com/p/android/issues/detail?id=182262">Issue 494 182262</a>) 495 </li> 496 497 <li>Fixed a bug in {@link android.support.v4.view.ViewPager} related to 498 scroll calculation for size changes. 499 </li> 500 501 <li>Fixed a {@code NullPointerException} when {@code 502 DrawerLayout.removeDrawerListener()} is called without a set {@link 503 android.support.v4.widget.DrawerLayout.DrawerListener 504 DrawerLayout.DrawerListener}. (<a class="external-link" href= 505 "https://code.google.com/p/android/issues/detail?id=202478">Issue 202478</a>) 506 </li> 507 508 <li>Fixed a bug where {@link android.support.v4.view.ViewPager} does not set 509 {@link android.view.accessibility.AccessibilityEvent} parameters properly 510 when scrolling. 511 </li> 512 513 <li>Fixed an issue that caused lag during device rotation when using 514 {@link android.support.v4.graphics.drawable.DrawableCompat#wrap 515 Drawable.wrap()}. (<a class="external-link" href= 516 "https://code.google.com/p/android/issues/detail?id=201924">Issue 201924</a>) 517 </li> 518 </ul> 519 </dd> 520 521 <dt> 522 Changes for <a href= 523 "{@docRoot}tools/support-library/features.html#v7-appcompat">v7 524 appcompat library</a>: 525 </dt> 526 527 <dd> 528 <ul> 529 <li>Reverted dependency on vector assets so that developers using the 530 <a href="{@docRoot}tools/support-library/features.html#v7-appcompat">appcompat 531 library</a> are not forced to use {@link 532 android.graphics.drawable.VectorDrawable} and its associated build flags. 533 </li> 534 535 <li>Fixed a compatibility issue with Night Mode and API level 23. 536 (<a class="external-link" href= 537 "https://code.google.com/p/android/issues/detail?id=201910">Issue 538 201910</a>) 539 </li> 540 541 <li>Fixed a compatibility issue with {@link 542 android.support.v7.widget.SwitchCompat} and API level 7. (<a class= 543 "external-link" href= 544 "https://code.google.com/p/android/issues/detail?id=201942">Issue 201942</a>) 545 </li> 546 547 <li>Fixed an issue with propagating configuration values in Resources objects 548 <a class="external-link" href= 549 "https://code.google.com/p/android/issues/detail?id=201928">Issue 201928</a> 550 </li> 551 552 <li>Fixed a compatibility issue where the {@link 553 android.support.v7.app.NotificationCompat.MediaStyle 554 NotificationCompat.MediaStyle} cancel button becomes invisible on API level 555 21 and below. (<a class="external-link" href= 556 "https://code.google.com/p/android/issues/detail?id=202156">Issue 202156</a>) 557 </li> 558 559 <li>Fixed a compatibility crash with {@link 560 android.support.v7.widget.AppCompatSpinner} on API level 21 and below. 561 (<a class="external-link" href= 562 "https://code.google.com/p/android/issues/detail?id=202246">Issue 202246</a>) 563 </li> 564 565 <li>Fixed an issue where the {@code app:textAllCaps = "false"} style did not 566 work. (<a class="external-link" href= 567 "https://code.google.com/p/android/issues/detail?id=202117">Issue 202117</a>) 568 </li> 569 570 <li>Fixed a crash when restoring {@link android.widget.SearchView}. 571 (<a class="external-link" href= 572 "https://code.google.com/p/android/issues/detail?id=201836">Issue 573 201836</a>) 574 </li> 575 576 <li>Fixed a memory leak that occurs when tinting drawable resources using 577 AppCompat. (<a class="external-link" href= 578 "https://code.google.com/p/android/issues/detail?id=202379">Issue 202379</a>) 579 </li> 580 581 <li>Fixed an issue with {@link android.view.KeyEvent} on API level 11 and 582 lower. (<a class="external-link" href= 583 "https://code.google.com/p/android/issues/detail?id=202939">Issue 202939</a>) 584 </li> 585 </ul> 586 </dd> 587 588 <dt> 589 Changes for <a href= 590 "{@docRoot}tools/support-library/features.html#v7-cardview">v7 cardview 591 library</a>: 592 </dt> 593 594 <dd> 595 <ul> 596 <li>Added Night Mode support for {@link 597 android.support.v7.widget.CardView}. (<a class="external-link" 598 href="https://code.google.com/p/android/issues/detail?id=194497">Issue 599 194497</a>) 600 </li> 601 </ul> 602 </dd> 603 604 <dt> 605 Changes for <a href= 606 "{@docRoot}tools/support-library/features.html#v7-recyclerview">v7 607 recyclerview library</a>: 608 </dt> 609 610 <dd> 611 <ul> 612 <li>Fixed bugs related to various measure-spec methods. (<a class= 613 "external-link" href= 614 "https://code.google.com/p/android/issues/detail?id=201856">Issue 615 201856</a>) 616 </li> 617 618 <li>Reduced the lockdown period in which {@link 619 android.support.v7.widget.RecyclerView} does not allow adapter 620 changes while calculating a layout or scroll. (<a class= 621 "external-link" href= 622 "https://code.google.com/p/android/issues/detail?id=202046">Issue 623 202046</a>) 624 </li> 625 626 <li>Fixed a crash when calling {@link 627 android.support.v7.widget.RecyclerView.Adapter#notifyItemChanged 628 notifyItemChanged()} on an item that is out of view. (<a class= 629 "external-link" href= 630 "https://code.google.com/p/android/issues/detail?id=202136">Issue 631 202136</a>) 632 </li> 633 634 <li>Fixed a crash that occurs when {@link 635 android.support.v7.widget.RecyclerView.LayoutManager 636 RecyclerView.LayoutManager} adds and removes a view in the same 637 measurement pass. (<a class="external-link" href= 638 "https://code.google.com/p/android/issues/detail?id=193958">Issue 639 193958</a>) 640 </li> 641 </ul> 642 </dd> 643 644 <dt> 645 Changes for <a href= 646 "{@docRoot}tools/support-library/features.html#v7-mediarouter">v7 647 mediarouter library</a>: 648 </dt> 649 650 <dd> 651 <ul> 652 <li>Fixed a crash that occurs when calling {@link 653 android.support.v7.media.MediaRouter#getInstance 654 MediaRouter.getInstance()} on API level 17. (<a class="external-link" 655 href= 656 "https://code.google.com/p/android/issues/detail?id=180654">Issue 657 180654</a>) 658 </li> 659 </ul> 660 </dd> 661 662 <dt> 663 Changes for <a href= 664 "{@docRoot}tools/support-library/features.html#v17-leanback">v17 665 Leanback Library</a>: 666 </dt> 667 668 <dd> 669 <ul> 670 <li>Fixed an issue with {@code GridLayout.onAddFocusables()} that 671 caused the wrong item to be selected. 672 </li> 673 674 <li>Fixed issue with {@link 675 android.support.v17.leanback.app.GuidedStepFragment} actions 676 disappearing after an action was collapsed. 677 </li> 678 </ul> 679 </dd> 680 681 <dt> 682 Changes for <a href= 683 "{@docRoot}tools/support-library/features.html#design">Design Support 684 Library</a>: 685 </dt> 686 687 <dd> 688 <ul> 689 <li>Fixed a {@link android.support.design.widget.TabLayout} crash 690 caused by tab-pooling. (<a class="external-link" href= 691 "https://code.google.com/p/android/issues/detail?id=201827">Issue 692 201827</a>) 693 </li> 694 695 <li>Fixed a bug in {@link 696 android.support.design.widget.NavigationView} that caused the wrong 697 color to be selected. (<a class="external-link" href= 698 "https://code.google.com/p/android/issues/detail?id=201951">Issue 699 201951</a>) 700 </li> 701 702 <li>Fixed a bug where {@link 703 android.support.design.widget.FloatingActionButton#setBackgroundTintList 704 setBackgroundTintList()} was no longer able to change the background 705 color. (<a class="external-link" href= 706 "https://code.google.com/p/android/issues/detail?id=201873">Issue 707 201873</a>) 708 </li> 709 710 <li>Fixed an issue where {@link 711 android.support.design.widget.AppBarLayout} did not completely scroll 712 out of view when used with {@code android:fitsSystemWindows = true}. 713 (<a class="external-link" href= 714 "https://code.google.com/p/android/issues/detail?id=201822">Issue 715 201822</a>) 716 </li> 717 718 <li>Fixed an issue where {@code BottomSheetDialog} did not display 719 short content views correctly. (<a class="external-link" href= 720 "https://code.google.com/p/android/issues/detail?id=201793">Issue 721 201793</a>) 722 </li> 723 724 <li>Fixed an issue where {@code BottomSheetDialogFragment} moved 725 sporadically when content inside was changed. (<a class= 726 "external-link" href= 727 "https://code.google.com/p/android/issues/detail?id=202125">Issue 728 202125</a>) 729 </li> 730 731 <li>Fixed a crash in TextInputLayout counter <a class="external-link" 732 href= 733 "https://code.google.com/p/android/issues/detail?id=202051">link</a> 734 </li> 735 736 <li>Fixed a crash that occured when {@link 737 android.support.design.widget.TextInputLayout#getCounterMaxLength 738 TextInputLayout.getCounterMaxLength()} restored a saved state. 739 (<a class="external-link" href= 740 "https://code.google.com/p/android/issues/detail?id=202375">Issue 741 202375</a>) 742 </li> 743 744 <li>Fixed a {@code ClassCastException} that occurred when restoring a 745 {@link android.support.design.widget.CoordinatorLayout} using the 746 saved state of a view that was not a {@link 747 android.support.design.widget.CoordinatorLayout}. 748 </li> 749 </ul> 750 </dd> 751 752 <dt> 753 Changes for VectorDrawableCompat: 754 </dt> 755 756 <dd> 757 <ul> 758 <li>Fixed a bug where the wrong variable was read for {@code 759 android:tintMode}. (<a class="external-link" href= 760 "https://code.google.com/p/android/issues/detail?id=201907">Issue 761 201907</a>) 762 </li> 763 </ul> 764 </dd> 765 </dl> 766 </div> 767 </div> 768 <!-- end of collapsible section: 23.2.1 --> 769 770 <div class="toggle-content closed"> 771 <p id="rev23-2-0"> 772 <a href="#" onclick="return toggleContent(this)"><img src= 773 "{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" 774 alt="">Android Support Library, revision 23.2.0</a> <em>(February 775 2016)</em> 776 </p> 777 778 <div class="toggle-content-toggleme"> 779 <dl> 780 <dt> 781 Changes for <a href="features.html#v4">v4 Support library</a>: 782 </dt> 783 784 <dd> 785 <ul> 786 <li>Added {@code MediaBrowserCompat} for {@link 787 android.media.browse.MediaBrowser} support, and {@code 788 MediaBrowserServiceCompat} for {@link 789 android.service.media.MediaBrowserService} support. This is useful 790 when connecting a media apps background service with UI components, 791 and integrating with Android Auto and Android Wear without requiring 792 API level 21 or higher. 793 </li> 794 795 <li>The system now calls {@link 796 android.support.v4.app.FragmentActivity#onActivityResult onActivityResult()} for a 797 nested {@link android.support.v4.app.FragmentActivity}. 798 </li> 799 </ul> 800 </dd> 801 802 <dt> 803 Changes for <a href="features.html#v7-appcompat">v7 AppCompat 804 library</a>: 805 </dt> 806 807 <dd> 808 <ul> 809 <li>Added Night Mode functionality to API level 14 and higher. Switch 810 between <a href="{@docRoot}training/material/theme.html">Material 811 Light and Material Dark Themes</a> based on the time of day or 812 app-specific setting. 813 </li> 814 815 <li style="list-style: none; display: inline"> 816 <ul> 817 <li>Day and night themes can be found here: {@code 818 <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml} 819 </li> 820 821 <li>{@code AppCompatDelegate.setDefaultNightMode()}: sets the 822 apps default mode by passing one of the following constants: 823 </li> 824 825 <li style="list-style: none; display: inline"> 826 <ul> 827 <li>{@code MODE_NIGHT_AUTO} 828 </li> 829 830 <li>{@code MODE_NIGHT_NO} 831 </li> 832 833 <li>{@code MODE_NIGHT_YES} 834 </li> 835 836 <li>{@code MODE_NIGHT_FOLLOW_SYSTEM} 837 </li> 838 </ul> 839 </li> 840 841 <li>{@code AppCompatDelegate.setLocalNightMode()}: overrides 842 the night mode setting for the local app component. 843 </li> 844 845 <li>{@code AppCompatDelegate.getDefaultNightMode()}: returns 846 the default night mode. 847 </li> 848 </ul> 849 </li> 850 </ul> 851 </dd> 852 853 <dt> 854 Changes for <a href="features.html#v7-mediarouter">v7 mediarouter 855 library</a>: 856 </dt> 857 858 <dd> 859 <ul> 860 <li>{@link android.support.v7.app.MediaRouteControllerDialog} now 861 correctly applies custom app theme colors. 862 </li> 863 </ul> 864 </dd> 865 866 <dt> 867 Changes for <a href="features.html#design">Design support library</a>: 868 </dt> 869 870 <dd> 871 <ul> 872 <li>Added support for <a href= 873 "https://www.google.com/design/spec/components/bottom-sheets.html">bottom 874 sheets</a>. An interaction plugin, {@code 875 BottomSheetBehavior}, allows a child view of a {@link 876 android.support.design.widget.CoordinatorLayout} to act as 877 a bottom sheet. The base class, {@code BottomSheetCallback}, provides 878 callbacks to monitor bottom sheet events. 879 </li> 880 </ul> 881 </dd> 882 883 <dt> 884 Changes for the <a href="features.html#custom-tabs">CustomTabs support 885 library</a>: 886 </dt> 887 888 <dd> 889 <ul> 890 <li> 891 <a href= 892 "https://developer.chrome.com/multidevice/android/customtabs">Chrome 893 Custom Tabs</a> now allows apps to include a bottom bar with action 894 buttons in addition to the existing top action button. 895 </li> 896 897 <li>{@code CustomTabsIntent.Builder.addToolBarItem()}: adds an action 898 button to a custom tab. You can use this to add multiple buttons. 899 </li> 900 901 <li>{@code CustomTabsSession.setToolBarItem()}: updates the visuals 902 for toolbar items. This method will only succeed if it is given a 903 valid id and the browser session is in the foreground. 904 </li> 905 </ul> 906 </dd> 907 908 <dt> 909 Added VectorDrawable support library: 910 </dt> 911 912 <dd> 913 <ul> 914 <li>Added Classes: 915 </li> 916 917 <li style="list-style: none; display: inline"> 918 <ul> 919 <li>{@code VectorDrawableCompat} 920 </li> 921 922 <li>{@code AnimatedVectorDrawableCompat} 923 </li> 924 </ul> 925 </li> 926 927 <li>Adds support for {@link 928 android.graphics.drawable.VectorDrawable} assets to apps 929 running on API level 7 or higher. {@link 930 android.graphics.drawable.AnimatedVectorDrawable} assets 931 are also supported on API level 11 or higher. Vector assets can be 932 considerably smaller than image assets and should help reduce app 933 size by reducing the amount of assets required to support multiple 934 device screens. 935 </li> 936 937 <li>This library is now a dependency of the <a href= 938 "features.html#v7-appcompat">v7 AppCompat library</a>, allowing 939 developers and <a href="features.html#v7-appcompat">AppCompat </a> 940 to easily use vector drawables. To use {@code 941 VectorDrawableCompat} within an {@link android.widget.ImageButton} or 942 {@link android.widget.ImageView}, use the {@code app:srcCompat} XML 943 attribute or {@code setImageResource()} 944 method. 945 </li> 946 947 <li>To keep referencing attribute IDs on API level 20 or 948 lower, add the following {@code appt} flag to your {@code 949 build,gradle} file: 950 </li> 951 952 <li style="list-style: none; display: inline"> 953 <ul> 954 <li>If you are building with Android Plugin for Gradle 1.5.0 or 955 lower, add the following to your {@code build.gradle} file: 956 </li> 957 958 <li style="list-style: none; display: inline"> 959 <pre> 960 android { 961 defaultConfig { 962 // Stops the Gradles automatic rasterization of vectors 963 generatedDensities = [] 964 } 965 // Flag that tells aapt to keep the attribute ids 966 aaptOptions { 967 additionalParameters "--no-version-vectors" 968 } 969 } 970 </pre> 971 </li> 972 973 <li>If you are building with Android Plugin for Gradle 2.0.0 or 974 higher, add the following to your {@code build.gradle} file: 975 </li> 976 977 <li style="list-style: none; display: inline"> 978 <pre> 979 android { 980 defaultConfig { 981 vectorDrawables.useSupportLibrary = true 982 } 983 } 984 </pre> 985 </li> 986 </ul> 987 </li> 988 </ul> 989 </dd> 990 991 <dt> 992 Changes for <a href="features.html#v17-leanback">v17 Leanback 993 Library</a>: 994 </dt> 995 996 <dd> 997 <ul> 998 <li>Added new capabilities to {@link android.support.v17.leanback.app.GuidedStepFragment}, 999 which is a component that guides users through a decision or series of decisions: 1000 </li> 1001 1002 <li style="list-style: none; display: inline"> 1003 <ul> 1004 <li>Added button actions to {@link 1005 android.support.v17.leanback.widget.GuidedAction}: 1006 </li> 1007 1008 <ul> 1009 <li>{@code GuidedStepFragment.setButtonActions()}: sets a list of 1010 {@link android.support.v17.leanback.widget.GuidedAction} buttons that 1011 the user may select from the Actions view. 1012 </li> 1013 </ul> 1014 </li> 1015 1016 <li>Description fields are now editable: 1017 </li> 1018 1019 <li style="list-style: none; display: inline"> 1020 <ul> 1021 <li>{@code GuidedAction.Builder.descriptionEditable()}: when passing 1022 {@code true}, sets the actions description to be editable. 1023 </li> 1024 1025 <li>{@code GuidedAction.getEditDescription()}: returns the editable 1026 description as a {@code CharSequence}. 1027 </li> 1028 </ul> 1029 </li> 1030 1031 <li>Added drop-down lists of sub-actions: 1032 </li> 1033 1034 <li style="list-style: none; display: inline"> 1035 <ul> 1036 <li>{@code GuidedAction.setSubActions()}: sets a {@link 1037 android.support.v17.leanback.widget.GuidedAction} list as a drop-down 1038 menu of sub-actions. 1039 </li> 1040 </ul> 1041 </li> 1042 </ul> 1043 1044 <li>Added the {@code GuidedDatePickerAction} widget for {@link 1045 android.widget.DatePicker} functionality: 1046 </li> 1047 1048 <li style="list-style: none; display: inline"> 1049 <ul> 1050 <li>The date is selected using year, month, and day columns and has a 1051 customizable range. 1052 </li> 1053 1054 <li>{@code GuidedDatePickerAction.Builder}: builder class for the {@code 1055 GuidedDatePickerAction} object. 1056 </li> 1057 1058 <li>{@code GuidedDatePickerAction.Builder.datePickerFormat(String 1059 datePickerFormat)}: set the desired date format by passing the 1060 appropriate three-character {@code String}, e.g. {@code YMD} or {@code 1061 MDY}. Alternatively, use the {@code datePickerFormat} XML attribute. 1062 </li> 1063 </ul> 1064 </li> 1065 </ul> 1066 </dd> 1067 </dl> 1068 1069 <dl> 1070 <dt> 1071 Changes for <a href="features.html#v7-recyclerview">v7 RecyclerView 1072 library</a>: 1073 </dt> 1074 1075 <dd> 1076 <ul> 1077 <li>{@link android.support.v7.widget.RecyclerView} now has an opt-in 1078 feature called <em>AutoMeasure</em> which allows {@link 1079 android.support.v7.widget.RecyclerView.LayoutManager} to easily wrap 1080 content or handle various measurement specifications provided by the 1081 parent of the {@link android.support.v7.widget.RecyclerView}. It 1082 supports all existing animation capabilities of the {@link 1083 android.support.v7.widget.RecyclerView}. 1084 </li> 1085 1086 <li style="list-style: none; display: inline"> 1087 <ul> 1088 <li>If you have a custom {@link 1089 android.support.v7.widget.RecyclerView.LayoutManager}, 1090 call {@code setAutoMeasureEnabled(true)} to start using the new 1091 AutoMeasure API. All built-in {@link 1092 android.support.v7.widget.RecyclerView.LayoutManager} objects 1093 enable auto-measure by default. 1094 </li> 1095 1096 <li>{@link android.support.v7.widget.RecyclerView.LayoutManager} 1097 no longer ignores some {@link 1098 android.support.v7.widget.RecyclerView.LayoutParams} settings, 1099 such as {@code MATCH_PARENT} in the scroll direction. 1100 <p class="note"> 1101 <strong>Note:</strong> These lifted restrictions may cause 1102 unexpected behavior in your layouts. Make sure you specify 1103 the correct layout parameters. 1104 </p> 1105 </li> 1106 </ul> 1107 </li> 1108 1109 <li>When updating a {@link 1110 android.support.v7.widget.RecyclerView.ViewHolder} with payload 1111 information, {@link android.support.v7.widget.DefaultItemAnimator} 1112 now disables change animations. 1113 </li> 1114 1115 <li>You can now modify the {@link 1116 android.support.v7.widget.helper.ItemTouchHelper} escape velocity to 1117 control swipe sensitivity. To make it easier or harder to swipe, 1118 override {@code getSwipeEscapeVelocity(float defaultValue)} and modify {@code defaultValue}. 1119 </li> 1120 </ul> 1121 </dd> 1122 </dl> 1123 </div> 1124 </div> 1125 <!-- end of collapsible section: 23.2.0 --> 1126 1127 <div class="toggle-content closed"> 1128 <p id="rev23-1-1"><a href="#" onclick="return toggleContent(this)"> 1129 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1130 />Android Support Library, revision 23.1.1</a> <em>(November 2015)</em> 1131 </p> 1132 <div class="toggle-content-toggleme"> 1133 <dl> 1134 <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library:</a></dt> 1135 <dd> 1136 <ul> 1137 <li>Fixed a crash that occurs when you perform a swipe-to-dismiss action that the 1138 {@code ItemTouchHelper} utility class provides, and then add an item. 1139 (<a href="http://b.android.com/190500">Issue 190500</a>)</li> 1140 </ul> 1141 </dd> 1142 <dt>Changes for <a href="features.html#v7-preference">v7 preference library:</a></dt> 1143 <dd> 1144 <ul> 1145 <li>Fixed an issue with ProGuard usage. 1146 (<a href="http://b.android.com/183261">Issue 183261</a>)</li> 1147 </ul> 1148 </dd> 1149 1150 <dt>Changes for <a href="features.html#v17-leanback">v17 Leanback Support library:</a></dt> 1151 <dd> 1152 <ul> 1153 <li>Fixed a number of internal issues in this library.</li> 1154 </ul> 1155 </dd> 1156 <dt>Changes for <a href="features.html#design">Design Support library:</a></dt> 1157 <dd> 1158 <ul> 1159 <li>Added the <code>getHeaderView</code> method to the <code>NavigationView</code> class.</li> 1160 <li>Fixed a transparent background issue for a <code>FloatingActionButton</code> object on 1161 devices running Android 4.0 (API level 15) and lower. 1162 (<a href="http://b.android.com/183315">Issue 183315</a>)</li> 1163 </ul> 1164 </dd> 1165 </dl> 1166 1167 </div> 1168 </div> <!-- end of collapsible section --> 1169 1170 1171 1172 <div class="toggle-content closed"> 1173 <p id="rev23-1-0"><a href="#" onclick="return toggleContent(this)"> 1174 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1175 />Android Support Library, revision 23.1.0</a> <em>(October 2015)</em> 1176 </p> 1177 <div class="toggle-content-toggleme"> 1178 <dl> 1179 <dt>Changes for <a href="features.html#v4">v4 Support library:</a></dt> 1180 <dd> 1181 <ul> 1182 <li>Added <code>OnScrollChangedListener</code> interface support to the 1183 <code>NestedScrollView</code> widget. It 1184 allows you to receive callbacks when the scroll X or Y positions change.</li> 1185 <li>Added a <code>MediaButtonReceiver</code> class to forward received playback controls 1186 to a service thats managing the <code>MediaSessionCompat</code> class. The 1187 <code>MediaSessionCompat</code> class has a 1188 constructor that can automatically find a media button receiver in the manifest. A 1189 media button receiver is a key part to <a href= 1190 "http://developer.android.com/training/managing-audio/volume-playback.html#PlaybackControls">handling 1191 playback controls</a> from hardware or bluetooth controls.</li> 1192 </ul> 1193 </dd> 1194 1195 1196 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library:</a></dt> 1197 <dd> 1198 <ul> 1199 <li>Added material design <code>Seekbar</code> and <code>ImageButton</code> widgets.</li> 1200 <li>Updated the <code>ImageView</code> widget to support the tint feature.</li> 1201 <li>Updated the look-and-feel of the <code>SwitchCompat</code> widget.</li> 1202 </ul> 1203 </dd> 1204 1205 <dt>Changes for <a href="features.html#v7-mediarouter">v7 mediarouter library:</a></dt> 1206 <dd> 1207 <ul> 1208 <li>Added the following features to the <code>MediaRouteChooserDialog</code> class:</li> 1209 <ul> 1210 <li>Displays a loading page while discovering media route providers.</li> 1211 <li>Includes a device type icon for easier device identification.</li> 1212 <li>Sorts the routes according to frequency of use in the current app.</li> 1213 <li>Supports landscape mode.</li> 1214 </ul> 1215 </ul> 1216 <ul> 1217 <li>Added the following features to the <code>MediaRouteControllerDialog</code> class:</li> 1218 <ul> 1219 <li>Recognizes screen casting and provides a proper description.</li> 1220 <li>Supports various album art sizes and aspect ratios, and loads the art asynchronously.</li> 1221 <li>Automatically selects the content color based on the primary color of the app.</li> 1222 <li>Adjusts the dialog layout based on available screen space on the device.</li> 1223 <li>Supports landscape mode.</li> 1224 </ul> 1225 </ul> 1226 </dd> 1227 1228 <dt>Changes for <a href="features.html#v7-palette">v7 palette library:</a></dt> 1229 <dd> 1230 <ul> 1231 <li>Added the <code>setRegion()</code> method to support extracting color from a specific 1232 region of a <code>Bitmap</code> object.</li> 1233 </ul> 1234 </dd> 1235 1236 <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library:</a></dt> 1237 <dd> 1238 <ul> 1239 <li>Added an improved animation API to the <code>ItemAnimator</code> class for better 1240 customizations:</li> 1241 <ul> 1242 <li>Change animations no longer enforce two copies of the <code>ViewHolder</code> object, 1243 which enables item content animations. Also, the <code>ItemAnimator</code> object 1244 decides whether it wants to reuse the same <code>ViewHolder</code> object or create a 1245 new one.</li> 1246 <li>The new information record API gives the <code>ItemAnimator</code> class the flexibility 1247 to collect data at the correct point in the layout lifecycle. This information is later 1248 passed into the animate callbacks.</li> 1249 </ul> 1250 </ul> 1251 <ul> 1252 <li>Provided an easy transition plan for this backward-incompatible API change:</li> 1253 <ul> 1254 <li>If youve previously extended the <code>ItemAnimator</code> class, you can change 1255 your base class to <code>SimpleItemAnimator</code> and your code should work as before. 1256 The <code>SimpleItemAnimator</code> class provides the old API by wrapping the new API.</li> 1257 <li>Some methods were removed from the <code>ItemAnimator</code> class. The following 1258 code will no longer compile:</li> 1259 <pre>recyclerView.getItemAnimator().setSupportsChangeAnimations(false)</pre> 1260 <p>You can replace it with:</p> 1261 <pre> 1262 ItemAnimator animator = recyclerView.getItemAnimator(); 1263 if (animator instanceof SimpleItemAnimator) { 1264 ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false); 1265 } 1266 </pre> 1267 </ul> 1268 </ul> 1269 </dd> 1270 1271 1272 <dt>Changes for <a href="features.html#v7-preference">v7</a>, 1273 <a href="features.html#v14-preference">v14</a>, and 1274 <a href="features.html#v17-preference">v17</a> Preference Support library:</dt> 1275 <dd> 1276 <ul> 1277 <li>Removed APIs for controlling <code>EditText</code> dialogs.</li> 1278 </ul> 1279 </dd> 1280 1281 <dt>Changes for <a href="features.html#v17-leanback">v17 Leanback Support library:</a></dt> 1282 <dd> 1283 <ul> 1284 <li>Added a version of the <code>GuidedStepFragment</code> class for the Support library 1285 (extends <code>android.support.v4.app.Fragment</code>), and improved animations and 1286 transitions.</li> 1287 <li>Updated the <code>GuidedStepFragment</code> class so it can be placed on top of 1288 existing content.</li> 1289 <li>Added the ability to annotate different types of search completions to the 1290 <code>SearchFragment</code> class.</li> 1291 <li>Added staggered slide transition support to the <code>VerticalGridFragment</code> 1292 class.</li> 1293 </ul> 1294 </dd> 1295 1296 1297 <dt>Changes for <a href="features.html#design">Design Support library:</a></dt> 1298 <dd> 1299 <ul> 1300 <li>Added <a href= 1301 "https://www.google.com/design/spec/components/text-fields.html#text-fields-character-counter"> 1302 character counting</a> support to the <code>TextInputLayout</code> widget.</li> 1303 <li>Added edge snapping support to the <code>AppBarLayout</code> class by adding the 1304 <code>SCROLL_FLAG_SNAP</code> constant. When scrolling ends, if the view is only 1305 partially visible, the view is snapped and scrolled to its closest edge.</li> 1306 <li>Added support for custom views to the <code>NavigationView</code> class by using the 1307 <code>app:actionLayout</code> attribute or <code>MenuItemCompat.setActionView()</code> 1308 method.</li> 1309 </ul> 1310 </dd> 1311 1312 1313 <dt>Changes for <a href="features.html#custom-tabs">Custom Tabs Support library:</a></dt> 1314 <dd> 1315 <ul> 1316 <li>Added the <code>enableUrlBarHiding()</code> method to the <code>CustomTabsIntent</code> 1317 class. It lets the client customize whether the URL bar should be hidden automatically 1318 on scroll down.</li> 1319 <li>Added the <code>setActionButton()</code> method to the <code>CustomTabsSession</code> 1320 class. It lets the client 1321 change the icon for a custom action button in an already launched custom tab.</li> 1322 <li>Added the <code>TAB_SHOWN</code> and <code>TAB_HIDDEN</code> constants as new events 1323 for the <code>onNavigationEvent</code> method of the <code>CustomTabsCallback</code> 1324 class.</li> 1325 </ul> 1326 </dd> 1327 1328 </dl> 1329 1330 </div> 1331 </div> <!-- end of collapsible section --> 1332 1333 1334 <div class="toggle-content closed"> 1335 <p id="rev23-0-1"><a href="#" onclick="return toggleContent(this)"> 1336 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1337 />Android Support Library, revision 23.0.1</a> <em>(September 2015)</em> 1338 </p> 1339 <div class="toggle-content-toggleme"> 1340 <dl> 1341 <dt>Changes for <a href="features.html#v7-preference">v7</a> and 1342 <a href="features.html#v14-preference">v14</a> Preference Support library:</dt> 1343 <dd> 1344 <ul> 1345 <li>Added the material design layout and style files. 1346 (<a href="http://b.android.com/183376">Issue 183376</a>)</li> 1347 </ul> 1348 </dd> 1349 1350 1351 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library:</a></dt> 1352 <dd> 1353 <ul> 1354 <li>Fixed crash issues for the {@link android.app.Fragment} class by limiting the use of 1355 hardware layers to Android 4.1 (API level 16) and higher. 1356 (<a href="http://b.android.com/183896">Issue 183896</a>)</li> 1357 <li>Fixed an issue where hardware buttons did not work when an activity had set the 1358 {@link android.widget.Toolbar} class to act as the 1359 {@link android.app.ActionBar} by using the <code>setSupportActionBar()</code> method. 1360 (<a href="http://b.android.com/183334">Issue 183334</a>)</li> 1361 <li>Updated the {@link android.support.v7.app.AppCompatDialogFragment} class so it 1362 no longer throws the {@code Windows feature must be requested before adding content} 1363 error. 1364 (<a href="http://b.android.com/183186">Issue 183186</a>)</li> 1365 </ul> 1366 </dd> 1367 1368 1369 <dt>Changes for <a href="features.html#design">Design Support library:</a></dt> 1370 <dd> 1371 <ul> 1372 <li>Fixed the 1373 {@link android.support.design.widget.AppBarLayout} class so it now draws correctly after 1374 rotation. 1375 (<a href="http://b.android.com/183109">Issue 183109</a>)</li> 1376 <li>Fixed the 1377 {@link android.support.design.widget.TabLayout} class so it now behaves correctly when a 1378 user clicks after a swipe. 1379 (<a href="http://b.android.com/183123">Issue 183123</a>)</li> 1380 </ul> 1381 </dd> 1382 1383 1384 <dt>Changes for <a href="features.html#custom-tabs">Custom Tabs Support library:</a></dt> 1385 <dd> 1386 <ul> 1387 <li>Lowered the 1388 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code>minSdkVersion</code></a> 1389 value from 16 to 15 for version support.</li> 1390 <li>Added a way to generate a 1391 {@link android.support.customtabs.CustomTabsSessionToken} from an intent.</li> 1392 </ul> 1393 </dd> 1394 1395 </dl> 1396 1397 </div> 1398 </div> <!-- end of collapsible section --> 1399 1400 1401 <div class="toggle-content closed"> 1402 <p id="rev23"><a href="#" onclick="return toggleContent(this)"> 1403 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1404 />Android Support Library, revision 23</a> <em>(August 2015)</em> 1405 </p> 1406 <div class="toggle-content-toggleme"> 1407 <dl> 1408 <dt>Added new support libraries:</a></dt> 1409 <dd> 1410 <ul> 1411 <li><a href="features.html#custom-tabs">Custom Tabs Support library</a></li> 1412 <li><a href="features.html#percent">Percent Support library</a></li> 1413 <li><a href="features.html#recommendation">App Recommendation Support library for TV</a></li> 1414 <li><a href="features.html#v7-preference">v7 Preference Support library</a></li> 1415 <li><a href="features.html#v14-preference">v14 Preference Support library</a></li> 1416 <li><a href="features.html#v17-preference">v17 Preference Support library for TV</a></li> 1417 </ul> 1418 </dd> 1419 1420 </dl> 1421 1422 <p>For a complete list of the Support Library changes, see the 1423 <a href="{@docRoot}sdk/support_api_diff/23/changes.html">Support 1424 Library API Differences Report</a>. </p> 1425 1426 </div> 1427 </div> <!-- end of collapsible section --> 1428 1429 1430 1431 <div class="toggle-content closed"> 1432 <p id="rev22-2-1"><a href="#" onclick="return toggleContent(this)"> 1433 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1434 />Android Support Library, revision 22.2.1</a> <em>(July 2015)</em> 1435 </p> 1436 <div class="toggle-content-toggleme"> 1437 <dl> 1438 <dt>Changes for <a href="features.html#design">Design Support library:</a></dt> 1439 <dd> 1440 <ul> 1441 <li>Added the {@code hide()} and {@code show()} methods to the 1442 {@link android.support.design.widget.FloatingActionButton} class for programmatic 1443 triggering of animations. </li> 1444 <li>Added the {@code LENGTH_INDEFINITE} constant to the 1445 {@link android.support.design.widget.Snackbar} class for showing a snackbar 1446 until it is dismissed or another snackbar is shown. Also, added the 1447 {@link android.support.design.widget.Snackbar#setActionTextColor(int)} and 1448 {@link android.support.design.widget.Snackbar#setActionTextColor(ColorStateList)} 1449 methods. </li> 1450 <li>Added the {@code getSelectedTabPosition()} method to the 1451 {@link android.support.design.widget.TabLayout} class for retrieving the currently 1452 selected tab. </li> 1453 <li>Provided a fully fluent API for the 1454 {@link android.support.v7.app.NotificationCompat.MediaStyle} class for method 1455 chaining. </li> 1456 <li>Added convenience methods to the 1457 {@link android.support.v7.widget.RecyclerView} for batch insertion of items. </li> 1458 </ul> 1459 </dd> 1460 </dl> 1461 1462 <p>For a complete list of the Support Library changes, see the 1463 <a href="{@docRoot}sdk/support_api_diff/22.2.0/changes.html">Support 1464 Library API Differences Report</a>. </p> 1465 1466 </div> 1467 </div> <!-- end of collapsible section --> 1468 1469 1470 1471 <div class="toggle-content closed"> 1472 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 1473 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1474 />Android Support Library, revision 22.2.0</a> <em>(May 2015)</em> 1475 </p> 1476 <div class="toggle-content-toggleme"> 1477 <dl> 1478 <dt>Added <a href="features.html#design">Design Support library:</a></dt> 1479 <dd> 1480 <ul> 1481 <li>Added {@link android.support.design.widget.TextInputLayout} for showing 1482 {@link android.widget.EditText} hint and error text as floating labels. 1483 </li> 1484 <li>Added {@link android.support.design.widget.FloatingActionButton} for implementing a 1485 primary action on your interface as a 1486 floating action button, supporting either default or mini sizes. 1487 </li> 1488 <li>Added {@link android.support.design.widget.Snackbar} for providing lightweight 1489 feedback with an optional action in an animated snackbar. 1490 </li> 1491 <li>Added {@link android.support.design.widget.TabLayout} for implementing fixed and 1492 scrollable 1493 <a href="{@docRoot}design/building-blocks/tabs.html">tabs</a> as well as easy 1494 integration with 1495 {@link android.support.v4.view.ViewPager}. 1496 </li> 1497 <li>Added {@link android.support.design.widget.NavigationView} for implementing 1498 <a href="{@docRoot}design/patterns/navigation-drawer.html">navigation drawer</a> 1499 contents, including the ability to inflate menu items via a 1500 <a href="{@docRoot}guide/topics/resources/menu-resource.html">Menu Resource</a>. 1501 </li> 1502 <li>Added {@link android.support.design.widget.CoordinatorLayout}, a general purpose 1503 layout, used for building dependencies between 1504 sibling views and allowing easy scrolling reactions between components via 1505 {@link android.support.design.widget.CoordinatorLayout.Behavior}. Many of the Design 1506 Library components rely on being a child of a 1507 {@link android.support.design.widget.CoordinatorLayout}. 1508 </li> 1509 <li>Added {@link android.support.design.widget.AppBarLayout}, a container for a 1510 {@link android.widget.Toolbar} 1511 and other views (such as {@link android.support.design.widget.TabLayout}) for 1512 reacting to scrolling events by scrolling off the screen, becoming visible in reaction 1513 to a downward scroll, or collapsing/uncollapsing before scrolling off/onto the screen. 1514 </li> 1515 <li>Added {@link android.support.design.widget.CollapsingToolbarLayout} for controlling 1516 how a {@link android.widget.Toolbar} collapses. A toolbar may collapse by: 1517 pinning components to the top of the screen while it collapses, introducing 1518 parallax scrolling of components such as an {@link android.widget.ImageView}, 1519 or adding a content scrim color when the view is partially collapsed. 1520 </li> 1521 </ul> 1522 </dt> 1523 1524 1525 1526 <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt> 1527 <dd> 1528 <ul> 1529 1530 <li>Added the 1531 {@link android.support.v4.view.accessibility.AccessibilityEventCompat#getContentChangeTypes getContentChangeTypes()} 1532 and 1533 {@link android.support.v4.view.accessibility.AccessibilityEventCompat#setContentChangeTypes setContentChangeTypes()} 1534 methods and related change type 1535 fields to the 1536 {@link android.support.v4.view.accessibility.AccessibilityEventCompat} 1537 class for accessibility event handling. 1538 </li> 1539 <li>Added the 1540 {@link android.support.v4.media.session.PlaybackStateCompat#getActiveQueueItemId getActiveQueueItemId()}, 1541 {@link android.support.v4.media.session.PlaybackStateCompat#getCustomActions getCustomActions()}, 1542 and 1543 {@link android.support.v4.media.session.PlaybackStateCompat#getExtras getExtras()} 1544 methods with related state fields to the 1545 {@link android.support.v4.media.session.PlaybackStateCompat} class for 1546 getting custom actions from the queue. 1547 </li> 1548 <li>Added the 1549 {@link android.support.v4.media.session.PlaybackStateCompat.Builder#addCustomAction addCustomAction()}, 1550 {@link android.support.v4.media.session.PlaybackStateCompat.Builder#setActiveQueueItemId setActiveQueueItemId()}, 1551 and 1552 {@link android.support.v4.media.session.PlaybackStateCompat.Builder#setExtras setExtras()} 1553 methods to the 1554 {@link android.support.v4.media.session.PlaybackStateCompat.Builder} class for adding 1555 custom actions to a playback state. 1556 </li> 1557 <li>Added the 1558 {@link android.support.v4.media.session.PlaybackStateCompat.CustomAction#fromCustomAction fromCustomAction()} and 1559 {@link android.support.v4.media.session.PlaybackStateCompat.CustomAction#getCustomAction getCustomAction()} methods 1560 to the 1561 {@link android.support.v4.media.session.PlaybackStateCompat.CustomAction} class 1562 for getting custom actions from the queue. 1563 </li> 1564 <li>Added the {@link android.support.v4.view.ViewCompat#isAttachedToWindow isAttachedToWindow()}, 1565 {@link android.support.v4.view.ViewCompat#offsetLeftAndRight offsetLeftAndRight()}, and 1566 {@link android.support.v4.view.ViewCompat#offsetTopAndBottom offsetTopAndBottom()} 1567 methods to the {@link android.support.v4.view.ViewCompat} class for working with views. 1568 </li> 1569 <li>Added the {@link android.support.v4.view.ViewPager#addOnPageChangeListener addOnPageChangeListener()}, 1570 {@link android.support.v4.view.ViewPager#clearOnPageChangeListeners clearOnPageChangeListeners()}, and 1571 {@link android.support.v4.view.ViewPager#removeOnPageChangeListener removeOnPageChangeListener()} 1572 methods to the {@link android.support.v4.view.ViewPager} class for responding to page 1573 changes. 1574 <p>Deprecated the 1575 {@link android.support.v4.view.ViewPager#setOnPageChangeListener setOnPageChangeListener()} method.</p> 1576 </li> 1577 <li>Added the 1578 {@link android.support.v4.view.ViewParentCompat#notifySubtreeAccessibilityStateChanged notifySubtreeAccessibilityStateChanged()} method to 1579 the {@link android.support.v4.view.ViewParentCompat} class for notifying a view parent 1580 that the accessibility state of one of its descendants has changed. 1581 </li> 1582 <li>Added the {@link android.support.v4.view.ViewPropertyAnimatorCompat#translationZ translationZ()}, 1583 {@link android.support.v4.view.ViewPropertyAnimatorCompat#translationZBy translationZBy()}, 1584 {@link android.support.v4.view.ViewPropertyAnimatorCompat#z z()}, and 1585 {@link android.support.v4.view.ViewPropertyAnimatorCompat#zBy zBy()} 1586 methods to the {@link android.support.v4.view.ViewPropertyAnimatorCompat} class for 1587 adding animation. 1588 </li> 1589 </ul> 1590 </dd> 1591 1592 1593 1594 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt> 1595 <dd> 1596 <ul> 1597 <li>Added the 1598 {@link android.support.v7.app.AppCompatActivity#onWindowStartingSupportActionMode onWindowStartingSupportActionMode()} 1599 method to the 1600 {@link android.support.v7.app.AppCompatActivity}, 1601 {@link android.support.v7.app.AppCompatCallback}, and 1602 {@link android.support.v7.app.AppCompatDialog} classes for handling action modes 1603 started from the current window. 1604 </li> 1605 1606 <li>Added the 1607 {@link android.support.v7.app.AppCompatDelegate#isHandleNativeActionModesEnabled isHandleNativeActionModesEnabled()} and 1608 {@link android.support.v7.app.AppCompatDelegate#setHandleNativeActionModesEnabled setHandleNativeActionModesEnabled()} 1609 methods to the 1610 {@link android.support.v7.app.AppCompatDelegate} class for handling native action modes. 1611 </li> 1612 </ul> 1613 </dd> 1614 1615 <p>For a complete list of the Support Library changes, see the 1616 <a href="{@docRoot}sdk/support_api_diff/22.2.0/changes.html">Support 1617 Library API Differences Report</a>. </p> 1618 1619 </dl> 1620 1621 </div> 1622 </div> <!-- end of collapsible section --> 1623 1624 1625 1626 1627 <div class="toggle-content closed"> 1628 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 1629 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1630 />Android Support Library, revision 22.1.0</a> <em>(April 2015)</em> 1631 </p> 1632 1633 1634 1635 <div class="toggle-content-toggleme"> 1636 <dl> 1637 1638 1639 <div class="toggle-content-toggleme"> 1640 <dl> 1641 <dt>Changes for <a href="features.html#annotations">annotations library:</a></dt> 1642 <dd> 1643 <ul> 1644 <li>Added the Annotations library to provide support for enhanced code inspections. 1645 Annotations are added as metadata tags that you attach to variables, parameters, 1646 and return values to inspect method return values, passed parameters, and local 1647 variables and fields. 1648 </li> 1649 </ul> 1650 </dd> 1651 1652 1653 <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt> 1654 <dd> 1655 <ul> 1656 1657 <li>Added the {@link android.support.v4.graphics.ColorUtils ColorUtils} class 1658 to provide a set of color-related utility methods. 1659 </li> 1660 <li>Added the {@link android.support.v4.graphics.drawable.DrawableCompat#unwrap unwrap()} and 1661 {@link android.support.v4.graphics.drawable.DrawableCompat#wrap wrap()} methods to the 1662 {@link android.support.v4.graphics.drawable.DrawableCompat} class , allowing you to use 1663 {@link android.support.v4.graphics.drawable.DrawableCompat#setTint setTint()}, 1664 {@link android.support.v4.graphics.drawable.DrawableCompat#setTintList setTintList()}, 1665 and {@link android.support.v4.graphics.drawable.DrawableCompat#setTintMode setTintMode()} 1666 on all API level 4 or higher devices. 1667 </li> 1668 <li>Added the {@link android.support.v4.os.TraceCompat} class to 1669 write trace events to the system trace buffer, which can then be collected and 1670 visualized using the <a href="{@docRoot}tools/help/systrace.html">Systrace</a> tool. 1671 </li> 1672 <li>Added the {@link android.support.v4.util.CircularIntArray} class 1673 to create circular integer array data structures. 1674 </li> 1675 <li>Added the {@link android.support.v4.util.CircularArray#clear clear()}, 1676 {@link android.support.v4.util.CircularArray#removeFromStart removeFromStart()}, 1677 and {@link android.support.v4.util.CircularArray#removeFromEnd removeFromEnd()} 1678 methods to the {@link android.support.v4.util.CircularArray} class. Also, changed the 1679 existing methods in this class to be non-final. 1680 </li> 1681 <li>Added the {@link android.support.v4.view.InputDeviceCompat} 1682 as a helper class to access data in the 1683 {@link android.support.v4.view.InputDeviceCompat} class. 1684 </li> 1685 <li>Added the {@link android.support.v4.view.LayoutInflaterCompat} 1686 class as a helper class to access data in the 1687 {@link android.support.v4.view.LayoutInflaterCompat} class 1688 and added the {@link android.support.v4.view.LayoutInflaterFactory} interface. 1689 </li> 1690 <li>Added classes, methods, and interfaces to support nested scrolling. 1691 <ul> 1692 <li>Added the {@link android.support.v4.view.NestedScrollingChildHelper} 1693 and {@link android.support.v4.view.NestedScrollingParentHelper} 1694 helper classes for implementing nested scrolling parent and child views.</li> 1695 <li>Added the {@link android.support.v4.view.NestedScrollingChild} 1696 interface to be implemented by {@link android.view.View} subclasses.</li> 1697 <li>Added the {@link android.support.v4.view.NestedScrollingParent} 1698 and {@link android.support.v4.view.ScrollingView} interfaces to support 1699 scrolling operations and provide scroll related APIs.</li> 1700 <li>Added the 1701 {@link android.support.v4.view.ViewGroupCompat#getNestedScrollAxes 1702 getNestedScrollAxes()} method to the {@link android.support.v4.view.ViewGroupCompat} 1703 class.</li> 1704 <li>Added methods to the {@link android.support.v4.view.ViewParentCompat} class to 1705 support nested scrolling. 1706 </li> 1707 <li>Added the {@link android.support.v4.widget.NestedScrollView} 1708 class to support nested scrolling parent and child on both new and old versions of 1709 Android. 1710 </li> 1711 </ul> 1712 </li> 1713 <li>Added methods and constants to the {@link android.support.v4.view.MotionEventCompat} 1714 class for getting axis values and event source. 1715 </li> 1716 <li>Updated the {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} 1717 class to add methods for errors, content invalidation and labels. 1718 </li> 1719 <li>Added the following interpolation classes for animation: 1720 {@link android.support.v4.view.animation.FastOutLinearInInterpolator}, 1721 {@link android.support.v4.view.animation.FastOutSlowInInterpolator}, 1722 {@link android.support.v4.view.animation.LinearOutSlowInInterpolator}, 1723 {@link android.support.v4.view.animation.LinearOutSlowInInterpolator}, and 1724 {@link android.support.v4.view.animation.PathInterpolatorCompat}. 1725 </li> 1726 <li>Added the {@link android.support.v4.widget.Space} class to create gaps between 1727 components in general purpose layouts. This class is deprecated in the gridlayout library. 1728 </li> 1729 <li>Added the {@link android.support.v4.widget.TextViewCompat} class for accessing 1730 features in a {@link android.widget.TextView}. 1731 </li> 1732 <li>Added a displacement parameter to the 1733 {@link android.support.v4.widget.EdgeEffectCompat#onPull onPull()} method in the 1734 {@link android.support.v4.widget.EdgeEffectCompat} class. 1735 </li> 1736 1737 </ul> 1738 </dd> 1739 1740 1741 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt> 1742 <dd> 1743 <ul> 1744 <li>Added tint support to appcompat widgets, including 1745 {@link android.support.v7.widget.AppCompatAutoCompleteTextView}, 1746 {@link android.support.v7.widget.AppCompatButton}, 1747 {@link android.support.v7.widget.AppCompatCheckBox}, 1748 {@link android.support.v7.widget.AppCompatCheckedTextView}, 1749 {@link android.support.v7.widget.AppCompatEditText}, 1750 {@link android.support.v7.widget.AppCompatMultiAutoCompleteTextView}, 1751 {@link android.support.v7.widget.AppCompatRadioButton}, 1752 {@link android.support.v7.widget.AppCompatRatingBar}, 1753 {@link android.support.v7.widget.AppCompatSpinner}, and 1754 {@link android.support.v7.widget.AppCompatTextView}. 1755 </li> 1756 <li>Updated the {@link android.support.v7.app.AppCompatActivity} as the base 1757 class for activities that use the support library action bar features. This class 1758 replaces the deprecated {@link android.support.v7.app.ActionBarActivity}. 1759 </li> 1760 <li>Added the 1761 {@link android.support.v7.app.AppCompatCallback} interface 1762 to be implemented for AppCompat to be able to perform callbacks. 1763 </li> 1764 <li>Added the 1765 {@link android.support.v7.app.AppCompatDelegate} abstract class 1766 as a delegate you can use to extend AppCompat's support to any activity. 1767 </li> 1768 <li>Added the 1769 {@link android.support.v7.app.AppCompatDialog} class 1770 as the base class for AppCompat themed dialogs. 1771 </li> 1772 <li>Added the spinner style 1773 {@link android.support.v7.app.AlertDialog} and 1774 {@link android.support.v7.app.AlertDialog.Builder} classes to provide an AppCompat 1775 themed {@link android.app.AlertDialog}. 1776 </li> 1777 <li>Added the {@link android.support.v7.graphics.Palette.Builder} class 1778 for generating {@link android.support.v7.graphics.Palette} instances. 1779 <ul> 1780 <li>Added the 1781 {@link android.support.v7.graphics.Palette#from} 1782 method to the {@link android.support.v7.graphics.Palette} class to 1783 start generating a Palette with the returned 1784 {@link android.support.v7.graphics.Palette.Builder} instance. 1785 </li> 1786 <li>Deprecated the {@link android.support.v7.graphics.Palette#generate generate()} and 1787 {@link android.support.v7.graphics.Palette#generateAsync generateAsync()} methods. 1788 </li> 1789 </ul> 1790 </li> 1791 1792 <li>Added the 1793 {@link android.support.v7.widget.GridLayout.Spec#getAbsoluteAlignment 1794 getAbsoluteAlignment()} method to the {@link android.support.v7.widget.GridLayout.Spec} 1795 class. 1796 </li> 1797 <li>Deprecated use of <code>app:theme</code> for styling 1798 {@link android.support.v7.widget.Toolbar}. You can now use 1799 <code>android:theme</code> for toolbars on all API level 7 and higher devices and 1800 <code>android:theme</code> support for all widgets on API level 11 and higher devices. 1801 </li> 1802 </ul> 1803 </dd> 1804 1805 1806 <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt> 1807 <dd> 1808 <ul> 1809 <li> Added {@link android.support.v17.leanback.app.GuidedStepFragment}, 1810 {@link android.support.v17.leanback.widget.GuidanceStylist} and 1811 {@link android.support.v17.leanback.widget.GuidedActionsStylist} to support 1812 creating multi-step decision flows. 1813 </li> 1814 </ul> 1815 </dd> 1816 1817 1818 <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library</a>:</dt> 1819 <dd> 1820 <ul> 1821 <li>Added {@link android.support.v7.util.SortedList} classes to display items in 1822 a list order and provide notification of changes to the list. 1823 </li> 1824 <li>Added the {@link android.support.v7.widget.util.SortedListAdapterCallback} class 1825 that can bind a sorted list to a 1826 {@link android.support.v7.widget.RecyclerView.Adapter} class. 1827 </li> 1828 </ul> 1829 </dd> 1830 1831 1832 <dt>Changes for <a href="features.html#v8-renderscript">v8 renderscript library</a>:</dt> 1833 <dd> 1834 <ul> 1835 <li>Added the {@link android.support.v8.renderscript.ScriptIntrinsicHistogram} class for 1836 use as a histogram filter.</li> 1837 <li>Added the {@link android.support.v8.renderscript.ScriptIntrinsicResize} class for 1838 performing a resize of a 2D allocation. 1839 </li> 1840 </ul> 1841 </dd> 1842 1843 </dl> 1844 1845 1846 </div> 1847 </div> <!-- end of collapsible section --> 1848 1849 1850 1851 <div class="toggle-content closed"> 1852 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 1853 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1854 />Android Support Library, revision 22</a> <em>(March 2015)</em> 1855 </p> 1856 <div class="toggle-content-toggleme"> 1857 <dl> 1858 <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt> 1859 <dd> 1860 <ul> 1861 <li>Updated the {@link android.support.v4.content.res.ResourcesCompat#getDrawable 1862 getDrawable()} method to return a drawable object for a specified specific resource ID, 1863 screen density, and theme. 1864 </li> 1865 <li>Added the {@link android.support.v4.view.ViewCompat#setImportantForAccessibility 1866 setImportantForAccessibility()} method so you can indicate if a view should trigger 1867 accessibility events. 1868 </li> 1869 <li>Added the {@link android.support.v4.widget.DrawerLayout#getStatusBarBackgroundDrawable 1870 getStatusBarBackgroundDrawable()} method so you can get the status bar background 1871 drawable. 1872 </li> 1873 <li>Added methods to the 1874 {@link android.support.v4.app.NotificationCompat.CarExtender.UnreadConversation} 1875 class so Android Auto messaging apps can retrieve additional notification data. 1876 </li> 1877 <li>Added the {@link android.support.v4.widget.SwipeRefreshLayout#getProgressCircleDiameter 1878 getProgressCircleDiameter()} method to return the diameter of a circle layout. 1879 </li> 1880 <li>Changed the default {@link android.support.v4.widget.DrawerLayout DrawerLayout} 1881 status bar color to {@link android.R.attr#colorPrimaryDark}. 1882 </li> 1883 </ul> 1884 </dd> 1885 1886 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt> 1887 <dd> 1888 <ul> 1889 <li>Added the spinner style 1890 {@link android.support.v7.appcompat.R.style#Base_Widget_AppCompat_Spinner_Underlined}.</li> 1891 <li>Added tinted widgets styles with 1892 {@link android.support.v7.appcompat.R.style#Widget_AppCompat_AutoCompleteTextView}, 1893 {@link android.widget.MultiAutoCompleteTextView}, 1894 {@link android.support.v7.appcompat.R.style#TextAppearance_AppCompat_Button}, and 1895 {@link android.support.v7.appcompat.R.style#Base_Widget_AppCompat_RatingBar}.</li> 1896 </ul> 1897 </dd> 1898 1899 <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt> 1900 <dd> 1901 <ul> 1902 <li>Added the {@link android.support.v17.leanback.widget.ListRowPresenter#getRecycledPoolSize 1903 getRecycledPoolSize()} and 1904 {@link android.support.v17.leanback.widget.ListRowPresenter#setRecycledPoolSize 1905 setRecycledPoolSize()} methods to allow customized recycled pool sizes.</li> 1906 <li>Added the {@link android.view.ViewGroup.LayoutParams#WRAP_CONTENT} attribute to the 1907 layout width setting to support wrapped content for title icons.</li> 1908 <li>Defined {@link android.support.v17.leanback.R.transition} in XML to 1909 improve transition updates. </li> 1910 <li>Enabled support for right to left layouts.</li> 1911 <li>Added the play and pause media key events support to the 1912 {@link android.support.v17.leanback.app.PlaybackOverlayFragment} class.</li> 1913 <li>Added enter and return transitions to the 1914 {@link android.support.v17.leanback.app.BrowseFragment} class and the 1915 {@link android.support.v17.leanback.app.DetailsFragment} class.</li> 1916 <li>Added the {@link android.support.v17.leanback.widget.ArrayObjectAdapter#replace 1917 replace()} method to replace items in an objects adapter array. </li> 1918 </ul> 1919 </dd> 1920 1921 1922 <dt>Changes for <a href="features.html#v7-mediarouter">v7 mediarouter library</a>:</dt> 1923 <dd> 1924 <ul> 1925 <li>Updated Google Cast icons to use the 1926 <a href="{@docRoot}training/material/index.html">material design</a> style.</li> 1927 <li>Updated all the icons used in the {@link android.media.MediaRouter} dialogs to use the 1928 <a href="{@docRoot}training/material/index.html">material design</a> style.</li> 1929 </ul> 1930 </dd> 1931 1932 1933 <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview library</a>:</dt> 1934 <dd> 1935 <ul> 1936 <li>Added the {@link android.support.v7.widget.RecyclerView.ViewHolder#getLayoutPosition 1937 getlayoutPosition()} 1938 and {@link android.support.v7.widget.RecyclerView.ViewHolder#getAdapterPosition 1939 getadapterPosition()} methods to the {@link android.support.v7.widget.RecyclerView} 1940 class.</li> 1941 <li>Deprecated the <code>classgetChildPosition()</code> and 1942 <code>findViewHolderForPosition()</code> methods in the 1943 {@link android.support.v7.widget.RecyclerView} class. </li> 1944 <li>Deprecated the <code>getPosition()</code> method in the 1945 {@link android.support.v7.widget.RecyclerView.ViewHolder} class. </li> 1946 <li>Deprecated the <code>getViewPosition()</code> method in the 1947 {@link android.support.v7.widget.RecyclerView.LayoutParams} class. </li> 1948 </ul> 1949 </dd> 1950 1951 </div> 1952 </div> 1953 1954 1955 1956 1957 <div class="toggle-content closed"> 1958 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 1959 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1960 />Android Support Library, revision 21.0.3</a> <em>(December 2014)</em> 1961 </p> 1962 <div class="toggle-content-toggleme"> 1963 <dl> 1964 <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt> 1965 <dd> 1966 <ul> 1967 <li>Added several {@link android.support.v4.app.NotificationCompat.WearableExtender} 1968 methods to improve the display of barcodes in notifications on wearable devices. 1969 <ul> 1970 <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#getHintScreenTimeout getHintScreenTimeout()}</li> 1971 <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#setHintScreenTimeout setHintScreenTimeout()}</li> 1972 <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#getHintAvoidBackgroundClipping getHintAvoidBackgroundClipping()}</li> 1973 <li>{@link android.support.v4.app.NotificationCompat.WearableExtender#setHintAvoidBackgroundClipping setHintAvoidBackgroundClipping()}</li> 1974 </ul> 1975 </li> 1976 </ul> 1977 </dd> 1978 1979 </div> 1980 </div> 1981 1982 1983 1984 <div class="toggle-content closed"> 1985 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 1986 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 1987 />Android Support Library, revision 21.0.2</a> <em>(November 2014)</em> 1988 </p> 1989 <div class="toggle-content-toggleme"> 1990 <dl> 1991 <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt> 1992 <dd> 1993 <ul> 1994 <li>Added {@link android.support.v4.app.NotificationCompat.CarExtender} 1995 class to support Android Auto extensions to notifications.</li> 1996 </ul> 1997 </dd> 1998 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat library</a>:</dt> 1999 <dd> 2000 <ul> 2001 <li>Added the {@link android.support.v7.widget.PopupMenu} constructor to support new popup 2002 menus.</li> 2003 <li>Added support for a Collapse icon description in the {@link android.support.v7.widget.Toolbar} 2004 class.</li> 2005 <li>Updated the {@link android.support.v7.widget.SearchView} widget to support displaying 2006 the {@link android.support.v7.appcompat.R.attr#commitIcon}. </li> 2007 <li>Removed the <code>buttonGravity</code> attribute from the 2008 {@link android.support.v7.widget.Toolbar} class. </li> 2009 </ul> 2010 </dd> 2011 <dt>Changes for <a href="features.html#v7-cardview">v7 cardview library</a>:</dt> 2012 <dd> 2013 <ul> 2014 <li>Added {@link android.support.v7.widget.CardView#setCardBackgroundColor} API to 2015 support changing the background color of the {@link android.support.v7.widget.CardView}.</li> 2016 <li>Changed the {@link android.support.v7.widget.CardView} to more accurately report its 2017 opacity value as {@link android.graphics.PixelFormat#TRANSLUCENT}.</li> 2018 </ul> 2019 </dd> 2020 <dt>Changes for <a href="features.html#v7-recyclerview">v7 recyclerview 2021 library</a>:</dt> 2022 <dd> 2023 <ul> 2024 <li>Added {@link android.support.v7.widget.RecyclerView#TOUCH_SLOP_DEFAULT} and 2025 {@link android.support.v7.widget.RecyclerView#TOUCH_SLOP_PAGING} constants 2026 to the {@link android.support.v7.widget.RecyclerView} class 2027 to support touch slop configurations for paging.</li> 2028 </ul> 2029 </dd> 2030 <dt>Changes for <a href="features.html#v17-leanback">v17 leanback library</a>:</dt> 2031 <dd> 2032 <ul> 2033 <li>Added support to generate v4 code fragments. </li> 2034 <li>Changed the secondary text color on {@link android.support.v7.widget.CardView}. </li> 2035 </ul> 2036 </dd> 2037 </dl> 2038 </div> 2039 </div> 2040 2041 2042 2043 <div class="toggle-content closed"> 2044 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 2045 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2046 />Android Support Library, revision 21.0.1</a> <em>(November 2014)</em> 2047 </p> 2048 <div class="toggle-content-toggleme"> 2049 <dl> 2050 <dt>Added <a href="{@docRoot}tools/support-library/features.html#multidex"> 2051 multidex support library</a> to support multiple 2052 <a href="https://source.android.com/devices/tech/dalvik/">Dalvik</a> Executable (DEX) files 2053 for multi-dex file support prior to Android 5.0. 2054 </dt> 2055 </dl> 2056 </div> 2057 </div> 2058 2059 2060 2061 2062 <div class="toggle-content closed"> 2063 <p id="rev21"><a href="#" onclick="return toggleContent(this)"> 2064 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2065 />Android Support Library, revision 21</a> <em>(October 2014)</em> 2066 </p> 2067 <div class="toggle-content-toggleme"> 2068 <dl> 2069 <dt>Changes for <a href="features.html#v4">v4 support library:</a></dt> 2070 <dd> 2071 <ul> 2072 <li>Added support for {@link android.support.v4.app.Fragment} 2073 transitions for devices running Android 5.0 (API level 21). 2074 Be aware that transitions have no effect on devices running 2075 Android 4.4 and lower. 2076 </li> 2077 <li>Added {@link android.support.v4.provider.DocumentFile} to ease 2078 the transition from {@link java.io.File} 2079 while working with document trees. However, this class demands 2080 more processing overhead compared to the platform's 2081 {@link android.provider.DocumentsContract} API added in 2082 Android 4.4 (API level 19). So you should switch to using {@link 2083 android.provider.DocumentsContract} when running on Android 4.4 2084 and higher.</li> 2085 </ul> 2086 </dd> 2087 <dt>Changes for <a href="features.html#v7-appcompat">v7 appcompat 2088 library</a>:</dt> 2089 <dd> 2090 <ul> 2091 <li>Added support for <a href="{@docRoot}design/material/">material 2092 design</a> user interfaces.</li> 2093 <li>Added {@link android.support.v7.widget.Toolbar}, which generalizes 2094 the functionality of {@link android.support.v7.app.ActionBar} for 2095 use within app layouts.</li> 2096 <li>Updated {@link android.support.v7.app.ActionBarDrawerToggle}, 2097 which contains the menu-to-arrow animation</li> 2098 <li>Updated common user interface widgets to allow tinting via theme 2099 attributes when running on pre-Android 5.0 devices</li> 2100 <li>Added {@link android.support.v7.widget.SwitchCompat}, a backport 2101 of the {@link android.widget.Switch} widget that was added in 2102 Android 4.0 (API level 14).</li> 2103 </ul> 2104 </dd> 2105 <dt>New <a href="features.html#v7-cardview">v7 cardview library</a>:</dt> 2106 <dd> 2107 <ul> 2108 <li>Added the {@link android.support.v7.widget.CardView} widget, which 2109 provides a material design-compatible implementation for displaying 2110 data items.</li> 2111 </ul> 2112 </dd> 2113 <dt>New <a href="features.html#v7-recyclerview">v7 recyclerview 2114 library</a>:</dt> 2115 <dd> 2116 <ul> 2117 <li>Added the {@link android.support.v7.widget.RecyclerView} widget, 2118 which provides a flexible list view for providing a limited window 2119 into a large data set.</li> 2120 </ul> 2121 </dd> 2122 <dt>New <a href="features.html#v7-palette">v7 palette library</a>:</dt> 2123 <dd> 2124 <ul> 2125 <li>Added {@link android.support.v7.graphics.Palette} class, 2126 which lets you extract prominent colors from an image.</li> 2127 </ul> 2128 </dd> 2129 <dt>New <a href="features.html#v17-leanback">v17 leanback library</a>:</dt> 2130 <dd> 2131 <ul> 2132 <li>Added support for building TV user interfaces, including 2133 {@link android.support.v17.leanback.app.BrowseFragment}, 2134 {@link android.support.v17.leanback.app.DetailsFragment}, and 2135 {@link android.support.v17.leanback.app.PlaybackOverlayFragment}. 2136 For more information about using these user interface widgets, 2137 see <a href="{@docRoot}training/tv/playback/index.html">Building TV 2138 Playback Apps</a>.</li> 2139 </ul> 2140 </dd> 2141 </dl> 2142 </div> 2143 </div> 2144 2145 <div class="toggle-content closed"> 2146 <p><a href="#" onclick="return toggleContent(this)"> 2147 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2148 />Android Support Library, revision 20</a> <em>(July 2014)</em> 2149 </p> 2150 <div class="toggle-content-toggleme"> 2151 <dl> 2152 <dt>Changes for v4 support library:</dt> 2153 <dd> 2154 <ul> 2155 <li>Added extended notification support for Android Wear in 2156 {@link android.support.v4.app.NotificationCompat.WearableExtender}, which allows you 2157 to specify wearable-specific features in your notifications.</li> 2158 <li>Added {@link android.support.v4.app.NotificationCompat.Action.WearableExtender}, 2159 which allows actions to be added on wearable notifications.</li> 2160 <li>Added {@link android.support.v4.app.NotificationManagerCompat}, which allows you 2161 to issue notifications that properly support wearable features.</li> 2162 <li>Added {@link android.support.v4.app.RemoteInput}, which allows a handheld device 2163 to receive voice input from a notification that appears on a wearable device.</li> 2164 <li>Improved the handling of touch feedback in 2165 {@link android.support.v4.widget.SwipeRefreshLayout}.</li> 2166 </ul> 2167 </dd> 2168 </dl> 2169 </div> 2170 </div> 2171 2172 <div class="toggle-content closed"> 2173 <p><a href="#" onclick="return toggleContent(this)"> 2174 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2175 />Android Support Library, revision 19.1.0</a> <em>(March 2014)</em> 2176 </p> 2177 <div class="toggle-content-toggleme"> 2178 <dl> 2179 <dt>Changes for v4 support library:</dt> 2180 <dd> 2181 <ul> 2182 <li>Added the {@link android.support.v4.widget.SwipeRefreshLayout} class, 2183 which enables users to refresh the contents of a view with a vertical 2184 swipe gesture.</li> 2185 <li>Fixed accessibility issues with navigation drawers.</li> 2186 </ul> 2187 </dd> 2188 2189 <dt>Changes for v7 appcompat library:</dt> 2190 <dd> 2191 <ul> 2192 <li>Fixed background issues with the action bar.</li> 2193 </ul> 2194 </dd> 2195 </dl> 2196 </div> 2197 </div> 2198 2199 <div class="toggle-content closed"> 2200 <p><a href="#" onclick="return toggleContent(this)"> 2201 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2202 />Android Support Library, revision 19.0.1</a> <em>(December 2013)</em> 2203 </p> 2204 <div class="toggle-content-toggleme"> 2205 <dl> 2206 <dt>Changes for v4 support library:</dt> 2207 <dd> 2208 <ul> 2209 <li>Improved {@link android.support.v4.print.PrintHelper} by adding asynchronous 2210 handling of printing.</li> 2211 <li>Fixed the {@link android.support.v4.widget.DrawerLayout} class approximation of 2212 the {@link android.view.View#addChildrenForAccessibility addChildrenForAccessibility()} 2213 method.</li> 2214 <li>Fixed slide drawable mirroring in {@link 2215 android.support.v4.app.ActionBarDrawerToggle}.</li> 2216 <li>Fixed off-by-one issue when removing an item from a collection iterator.</li> 2217 </ul> 2218 </dd> 2219 2220 <dt>Changes for v7 mediarouter library:</dt> 2221 <dd> 2222 <ul> 2223 <li>Improved route identification by using full component name in the {@link 2224 android.support.v7.media.MediaRouteProvider.ProviderMetadata}.</li> 2225 <li>Updated {@link android.support.v7.app.MediaRouteChooserDialog} to hide disabled 2226 routes.</li> 2227 </ul> 2228 </dd> 2229 2230 <dt>Changes for <a href="features.html#v8-renderscript">v8 renderscript library</a></dt> 2231 <dd> 2232 <ul> 2233 <li>Added error propagation for the RenderScript thunking layer.</li> 2234 </ul> 2235 </dd> 2236 2237 </dl> 2238 </div> 2239 </div> 2240 2241 2242 <div class="toggle-content closed"> 2243 <p><a href="#" onclick="return toggleContent(this)"> 2244 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2245 />Android Support Library, revision 19</a> <em>(October 2013)</em> 2246 </p> 2247 <div class="toggle-content-toggleme"> 2248 <dl> 2249 <dt>Changes for v4 support library:</dt> 2250 <dd> 2251 <ul> 2252 <li>Added support for external Storage APIs with the 2253 {@link android.support.v4.content.ContextCompat#getObbDirs getObbDirs()}, 2254 {@link android.support.v4.content.ContextCompat#getExternalFilesDirs getExternalFilesDirs()}, 2255 {@link android.support.v4.content.ContextCompat#getExternalCacheDirs getExternalCacheDirs()}, 2256 and {@link android.support.v4.os.EnvironmentCompat#getStorageState getStorageState()}. 2257 These helper methods always return a single file object on devices running Android 2258 4.3 (API level 18) and earlier. When running on Android 4.4 (API level 19) and higher, 2259 these methods may return more than one file object.</li> 2260 <li>Added {@link android.support.v4.print.PrintHelper} class that works with the 2261 Print APIs to print images with a minimum of code.</li> 2262 <li>Added drag-to-open user interface support for pop-up menus. For more information, see 2263 {@link android.support.v4.widget.PopupMenuCompat} and 2264 {@link android.support.v4.widget.ListPopupWindowCompat}.</li> 2265 <li>Improved accessibility support with the addition of a 2266 {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat#findFocus 2267 findFocus()} method in 2268 {@link android.support.v4.view.accessibility.AccessibilityNodeProviderCompat} and the 2269 {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat#getLiveRegion 2270 getLiveRegion()} method in 2271 {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}.</li> 2272 <li>Added helper class {@link android.support.v4.view.ScaleGestureDetectorCompat} for 2273 accessing new scaling gesture methods.</li> 2274 <li>Fixed problem with {@link android.support.v4.app.ActionBarDrawerToggle} in 2275 right-to-left language displays.</li> 2276 <li>Modified {@link android.support.v4.widget.AutoScrollHelper} option to consume 2277 touch events or allow them to be passed through to other views.</li> 2278 </ul> 2279 </dd> 2280 2281 <dt>Changes for v7 mediarouter library:</dt> 2282 <dd> 2283 <ul> 2284 <li>Added support for media playback queuing, setting HTTP header values and media 2285 playback duration.</li> 2286 <li>Added explicit start, get, and end session actions for explicitly managing media 2287 playback sessions with media router.</li> 2288 </ul> 2289 </dd> 2290 </dl> 2291 </div> 2292 </div> 2293 2294 <div class="toggle-content closed"> 2295 <p><a href="#" onclick="return toggleContent(this)"> 2296 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2297 />Android Support Library, revision 18</a> <em>(July 2013)</em> 2298 </p> 2299 <div class="toggle-content-toggleme"> 2300 <dl> 2301 <dt>Changes for v4 support library:</dt> 2302 <dd> 2303 <ul> 2304 <li>User interface 2305 <ul> 2306 <li>Added {@link android.support.v4.text.BidiFormatter} for handling 2307 text strings that combine right to left and left to right-formatted text.</li> 2308 <li>Modified {@link android.support.v4.view.ViewPager} to better handle cases where the 2309 pager has a measured width of zero in the initial layout processing.</li> 2310 <li>Modified {@link android.support.v4.widget.DrawerLayout} and 2311 {@link android.support.v4.widget.SlidingPaneLayout} to not throw exceptions for 2312 measurement while the project code is being edited.</li> 2313 </ul> 2314 </li> 2315 2316 <li>Accessibility 2317 <ul> 2318 <li>Added {@link android.support.v4.widget.ExploreByTouchHelper} to simplify the 2319 implementation of accessibility for custom views.</li> 2320 <li>Fixed a problem with {@link android.support.v4.view.ViewPager} incorrectly 2321 populating {@link 2322 android.support.v4.view.accessibility.AccessibilityEventCompat#TYPE_VIEW_SCROLLED 2323 TYPE_VIEW_SCROLLED} accessibility events.</li> 2324 <li>Fixed a null pointer exception in {@link android.support.v4.view.ViewPager} when 2325 populating an accessibility event.</li> 2326 <li>Simplified {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} 2327 by changing {@link java.lang.CharSequence} inputs to {@link java.lang.String} objects. 2328 </li> 2329 <li>Deprecated an {@link android.support.v4.view.accessibility.AccessibilityRecordCompat} 2330 constructor that used an {@link java.lang.Object} as input.</li> 2331 </ul> 2332 </li> 2333 2334 <li>Media 2335 <ul> 2336 <li>Added {@link android.support.v4.media.TransportMediator} helper class to manage 2337 media transport control, such as play, pause, skip and other media actions.</li> 2338 <li>Added {@link android.support.v4.hardware.display.DisplayManagerCompat} for managing 2339 display output to one or more device displays.</li> 2340 </ul> 2341 </li> 2342 2343 <li>Other changes 2344 <ul> 2345 <li>Added {@link android.support.v4.content.WakefulBroadcastReceiver} helper class for 2346 implementing a common pattern of detecting a device wakeup event and passing work off 2347 to a {@link android.app.Service} while ensuring that the device does not go back to 2348 sleep before the handoff is complete.</li> 2349 <li>Added two new APIs, 2350 {@link android.support.v4.content.AsyncTaskLoader#commitContentChanged 2351 commitContentChanged()} and 2352 {@link android.support.v4.content.AsyncTaskLoader#rollbackContentChanged 2353 rollbackContentChanged()}, to {@link android.support.v4.content.AsyncTaskLoader} to 2354 help deal with background updates for data changes that are subsequently canceled. 2355 </li> 2356 </ul> 2357 </li> 2358 </ul> 2359 </dd> 2360 2361 <dt>New v7 appcompat library:</dt> 2362 <dd> 2363 <ul> 2364 <li>Added {@link android.support.v7.app.ActionBar} to allow implementation of the 2365 action bar user interface <a href="{@docRoot}design/patterns/actionbar.html">design 2366 pattern</a> back to Android 2.1 (API level 7) and higher. Use of this class requires 2367 that you implement your activity by extending the new 2368 {@link android.support.v7.app.ActionBarActivity} class.</li> 2369 </ul> 2370 </dd> 2371 2372 <dt>New v7 mediarouter library:</dt> 2373 <dd> 2374 <p>Added a new mediarouter library that provides support for the <a 2375 href="https://developers.google.com/cast/">Google Cast developer preview</a>. 2376 The v7 mediarouter library APIs provide a means of controlling the routing of 2377 media channels and streams from the current device to external screens, 2378 speakers, and other destination devices, with compatibility back to Android 2.1 2379 (API level 7). See <a 2380 href="{@docRoot}tools/support-library/features.html#v7-mediarouter">V7 2381 mediarouter library</a> for more information. </p> 2382 2383 <p class="caution">The v7 mediarouter library APIs introduced in Support 2384 Library r18 are subject to change in later revisions of the Support 2385 Library. At this time, we recommend using the library only in connection 2386 with the <a href="https://developers.google.com/cast/">Google Cast 2387 developer preview</a>.</p> 2388 </dd> 2389 2390 </dl> 2391 </div> 2392 </div> 2393 2394 2395 <div class="toggle-content closed"> 2396 <p><a href="#" onclick="return toggleContent(this)"> 2397 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2398 />Android Support Library, revision 13</a> <em>(May 2013)</em> 2399 </p> 2400 <div class="toggle-content-toggleme"> 2401 <dl> 2402 <dt>Changes for v4 support library:</dt> 2403 <dd> 2404 <ul> 2405 <li>Added {@link android.support.v4.widget.DrawerLayout} for creating a 2406 <a href="{@docRoot}training/implementing-navigation/nav-drawer.html">Navigation 2407 Drawer</a> that can be pulled in from the edge of a window.</li> 2408 <li>Added {@link android.support.v4.widget.SlidingPaneLayout} widget for creating linked 2409 summary and detail views that appropriately adapt to various screen sizes.</li> 2410 <li>Added {@link android.support.v4.app.ActionBarDrawerToggle} as a way to tie 2411 together the functions of {@link android.support.v4.widget.DrawerLayout} and {@link 2412 android.app.ActionBar}.</li> 2413 <li>Added {@link android.support.v4.widget.ViewDragHelper} as a new common component 2414 for dragging views within a parent view.</li> 2415 <li>Added {@link android.support.v4.widget.ScrollerCompat} to provide {@link 2416 android.widget.Scroller} and {@link android.widget.OverScroller} compatibility support. 2417 </li> 2418 <li>Added {@link android.support.v4.content.FileProvider} to allow sharing of private 2419 files between applications.</li> 2420 <li>Updated {@link android.support.v4.view.ViewPager} to throw an exception if the 2421 associated {@link android.support.v4.view.PagerAdapter} class is modified without a 2422 call to {@link android.support.v4.view.PagerAdapter#notifyDataSetChanged 2423 notifyDataSetChanged()}. 2424 </li> 2425 <li>Fixed an issue with {@link android.support.v4.view.ViewPager} children drawing sort 2426 order.</li> 2427 <li>Fixed {@link android.support.v4.view.GestureDetectorCompat} to dispatch missing 2428 {@link android.view.GestureDetector.SimpleOnGestureListener#onSingleTapConfirmed} calls 2429 between tap timeout and long press events.</li> 2430 </ul> 2431 </dd> 2432 2433 <dt>New v7 gridlayout library:</dt> 2434 <dd> 2435 <ul> 2436 <li>Added {@link android.support.v7.widget.GridLayout} to provide support for the 2437 {@link android.widget.GridLayout} layout object.</li> 2438 <li>Added {@link android.support.v7.widget.Space} which can be used to create blank areas 2439 within a {@link android.support.v7.widget.GridLayout} layout object.</li> 2440 </ul> 2441 </dl> 2442 </div> 2443 </div> 2444 2445 2446 <div class="toggle-content closed"> 2447 <p><a href="#" onclick="return toggleContent(this)"> 2448 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2449 />Android Support Library, revision 12</a> <em>(February 2013)</em> 2450 </p> 2451 <div class="toggle-content-toggleme"> 2452 <dl> 2453 <dt>Changes for v4 support library:</dt> 2454 <dd> 2455 <ul> 2456 <li>Improved interaction behavior for {@link android.support.v4.view.ViewPager}.</li> 2457 <li>Fixed a bug that could cause {@link android.support.v4.view.ViewPager} to select the 2458 wrong page.</li> 2459 <li>Fixed use of {@link android.support.v4.view.ViewPager#removeView removeView()} method 2460 during layout for {@link android.support.v4.view.ViewPager}.</li> 2461 <li>Fixed issue with {@link android.support.v4.widget.SearchViewCompat} where using the 2462 back button to dismiss does not clear the search text. This fix only applies to 2463 host API levels 14 and higher.</li> 2464 </ul> 2465 </dd> 2466 </dl> 2467 </div> 2468 </div> 2469 2470 2471 <div class="toggle-content closed"> 2472 <p><a href="#" onclick="return toggleContent(this)"> 2473 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2474 />Android Support Library, revision 11</a> <em>(November 2012)</em> 2475 </p> 2476 <div class="toggle-content-toggleme"> 2477 <dl> 2478 <dt>Changes for v4 support library:</dt> 2479 <dd> 2480 <ul> 2481 <li>User Interface 2482 <ul> 2483 <li>Added support for nested {@link android.support.v4.app.Fragment} classes.</li> 2484 <li>Added improvements to {@link android.support.v4.app.FragmentManager} debugging. 2485 </li> 2486 <li>Fixed problem in {@link android.support.v4.app.FragmentTabHost} where fragment 2487 and tab interaction could result in a {@link android.widget.ListView} state loss. 2488 </li> 2489 <li>Fixed issue with user-visible hint in 2490 {@link android.support.v4.app.FragmentStatePagerAdapter}.</li> 2491 <li>Added {@link android.support.v4.view.ViewPager.PageTransformer PageTransformer} 2492 interface to {@link android.support.v4.view.ViewPager} to allow applications to 2493 supply a custom transition behavior for scrolling.</li> 2494 <li>Added new features and fixes to {@link android.support.v4.app.TaskStackBuilder} 2495 from current release.</li> 2496 <li>Fixed {@link android.support.v4.view.PagerTitleStrip} to correctly track the 2497 {@link android.support.v4.view.PagerAdapter} currently in use.</li> 2498 <li>Fixed display flickering, positioning, and text clipping problems with 2499 {@link android.support.v4.view.PagerTitleStrip}.</li> 2500 <li>Fixed {@link android.support.v4.view.PagerTabStrip} to properly respect padding 2501 when drawing an underline.</li> 2502 </ul> 2503 </li> 2504 <li>Accessibility 2505 <ul> 2506 <li>Added support for new accessibility gesture and touch event types in 2507 {@link android.support.v4.view.accessibility.AccessibilityEventCompat}.</li> 2508 <li>Added support for new accessibility APIs in 2509 {@link android.support.v4.view.ViewCompat}.</li> 2510 <li>Added support for {@link android.support.v4.view.ViewCompat#performAccessibilityAction 2511 performAccessibilityAction()} method to {@link android.support.v4.view.ViewCompat}. 2512 </li> 2513 </ul> 2514 </li> 2515 <li>Added support for gestures with {@link android.support.v4.view.GestureDetectorCompat}. 2516 </li> 2517 <li>Added support for performing atomic operations on files using a new 2518 {@link android.support.v4.util.AtomicFile} class.</li> 2519 <li>Added support for the full set of {@code make} methods in 2520 {@link android.support.v4.content.IntentCompat}.</li> 2521 <li>Added {@link android.support.v4.util.LruCache#trimToSize trimToSize()} method in 2522 {@link android.support.v4.util.LruCache} utility class.</li> 2523 <li>Updated {@link android.support.v4.net.ConnectivityManagerCompat} to get NetworkInfo 2524 from a {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION} 2525 broadcast.</li> 2526 </ul> 2527 </dd> 2528 </dl> 2529 </div> 2530 </div> 2531 2532 2533 <div class="toggle-content closed"> 2534 <p><a href="#" onclick="return toggleContent(this)"> 2535 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2536 />Android Support Library, revision 10</a> <em>(August 2012)</em> 2537 </p> 2538 <div class="toggle-content-toggleme"> 2539 <dl> 2540 <dt>Changes for v4 support library:</dt> 2541 <dd> 2542 <ul> 2543 <li>Added support for notification features introduced in Android 4.1 (API level 16) with 2544 additions to {@link android.support.v4.app.NotificationCompat}.</li> 2545 </ul> 2546 </dd> 2547 </dl> 2548 </div> 2549 </div> 2550 2551 2552 <div class="toggle-content closed"> 2553 <p><a href="#" onclick="return toggleContent(this)"> 2554 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2555 />Android Support Library, revision 9</a> <em>(June 2012)</em> 2556 </p> 2557 <div class="toggle-content-toggleme"> 2558 <dl> 2559 <dt>Changes for v4 support library:</dt> 2560 <dd> 2561 <ul> 2562 2563 <li>User Interface Support 2564 <ul> 2565 <li>Added {@link android.support.v4.view.PagerTabStrip} support, providing enhanced 2566 functionality beyond {@link android.support.v4.view.PagerTitleStrip}.</li> 2567 <li>Fixed various bugs for {@link android.support.v4.view.PagerTitleStrip} and 2568 {@link android.support.v4.view.PagerTabStrip}, including {@link 2569 android.widget.TextView#setAllCaps setAllCaps} option, title alignment, 2570 appearance improvements, minimum width constraints and touch navigation issues.</li> 2571 <li>Added support for {@link android.support.v4.view.ViewPager} page gutters, which 2572 helps the {@link android.support.v4.view.ViewPager} class provide paging support for content with 2573 a large horizontal scroll range, such as a map.</li> 2574 <li>Fixed numerous bugs for {@link android.support.v4.view.ViewPager}, including size 2575 and data set change problems, page positioning, user interaction, scroll tracking and keyboard 2576 navigation problems.</li> 2577 <li>Fixed many bugs for {@link android.support.v4.app.Fragment}, including proper 2578 handling of {@link android.support.v4.app.Fragment#onActivityResult onActivityResult()} when 2579 the target fragment no longer exists, dispatching selection events to invisible fragments, improved 2580 {@link android.support.v4.app.FragmentTransaction#replace FragmentTransaction.replace()} behavior 2581 and added better state handling for fragments being moved out of view.</li> 2582 <li>Added support for the {@link 2583 android.support.v4.view.ViewCompat postOnAnimation()} method in {@link 2584 android.support.v4.view.ViewCompat}.</li> 2585 <li>Updated {@link android.support.v4.app.NavUtils} to use Android 4.1 (API level 16) 2586 <em>Up</em> navigation functionality when available.</li> 2587 </ul> 2588 </li> 2589 2590 <li>Accessibility 2591 <ul> 2592 <li>Updated accessibility support classes, including {@link 2593 android.support.v4.view.accessibility.AccessibilityNodeInfoCompat}, to follow fixes made in Android 2594 4.1 (API level 16).</li> 2595 <li>Added support for accessibility scroll actions in {@link 2596 android.support.v4.view.ViewPager}.</li> 2597 </ul> 2598 </li> 2599 2600 <li>General improvements 2601 <ul> 2602 <li>Updated {@link android.support.v4.app.TaskStackBuilder} to reflect API changes in 2603 Android 4.1 (API level 16).</li> 2604 <li>Enhanced {@link android.support.v4.app.TaskStackBuilder} to allow it to be used 2605 from a Service.</li> 2606 <li>Added support for {@link android.support.v4.content.IntentCompat EXTRA_HTML_TEXT} 2607 to {@link android.support.v4.app.ShareCompat}.</li> 2608 <li>Updated {@link android.support.v4.app.NotificationCompat.Builder} to support the 2609 {@link android.support.v4.app.NotificationCompat.Builder#setNumber setNumber()} method.</li> 2610 <li>Added support in {@link android.support.v4.net.ConnectivityManagerCompat} for the 2611 {@link android.support.v4.net.ConnectivityManagerCompat#isActiveNetworkMetered 2612 isActiveNetworkMetered()} method.</li> 2613 </ul> 2614 </li> 2615 </ul> 2616 </dd> 2617 </dl> 2618 </div> 2619 </div> 2620 2621 2622 <div class="toggle-content closed"> 2623 <p><a href="#" onclick="return toggleContent(this)"> 2624 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2625 />Android Support Library, revision 8</a> <em>(April 2012)</em> 2626 </p> 2627 <div class="toggle-content-toggleme"> 2628 <dl> 2629 <dt>Changes for v4 support library:</dt> 2630 <dd> 2631 <ul> 2632 <li>Fixed intent flags for {@link android.app.PendingIntent} objects generated 2633 by {@link android.support.v4.app.TaskStackBuilder}.</li> 2634 <li>Removed unused attributes from the gridlayout library projects to make sure 2635 the library can be built with API level 7 and higher.</li> 2636 <li>Added {@code .classpath} and {@code .project} files for the gridlayout 2637 library project.</li> 2638 </ul> 2639 </dd> 2640 </dl> 2641 </div> 2642 </div> 2643 2644 2645 <div class="toggle-content closed"> 2646 <p><a href="#" onclick="return toggleContent(this)"> 2647 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2648 />Android Support Library, revision 7</a> <em>(March 2012)</em> 2649 </p> 2650 <div class="toggle-content-toggleme"> 2651 <dl> 2652 <dt>Changes for v4 support library:</dt> 2653 <dd> 2654 <ul> 2655 <li>Added {@link android.support.v4.app.ShareCompat}, which provides helper classes 2656 for sending and receiving content for social sharing applications, including new metadata for 2657 attributing shared data to the source app. This class also provides compatible integration with the 2658 new {@link android.widget.ShareActionProvider} in Android 4.0.</li> 2659 <li>Added {@link android.support.v4.app.NavUtils} and {@link 2660 android.support.v4.app.TaskStackBuilder} to provide support for implementing the 2661 <a href="{@docRoot}design/index.html">Android Design</a> guidelines for navigation. These 2662 additions include a way to implement the action bar's <em>Up</em> button across versions. 2663 For an example implementation of this pattern, see the AppNavigation sample in 2664 ({@code <em><sdk></em>/samples/<em><platform></em>/AppNavigation}).</li> 2665 <li>Added {@link android.support.v4.app.NotificationCompat.Builder} to provide a 2666 compatibility implementation of Android 3.0's {@link android.app.Notification.Builder} helper class 2667 for creating standardized system notifications.</li> 2668 </ul> 2669 </dd> 2670 </dl> 2671 </div> 2672 </div> 2673 2674 2675 <div class="toggle-content closed"> 2676 <p><a href="#" onclick="return toggleContent(this)"> 2677 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2678 />Android Support Library, revision 6</a> <em>(December 2011)</em> 2679 </p> 2680 <div class="toggle-content-toggleme"> 2681 2682 <p class="note"><strong>Note:</strong> Reference for support library APIs are now available with 2683 the framework references, for example: {@link android.support.v4.app}.</p> 2684 <dl> 2685 <dt>Changes for v4 support library:</dt> 2686 <dd> 2687 <ul> 2688 <li>Changes to ViewPager: 2689 <ul> 2690 <li>Added extra decorative view support for {@link android.support.v4.view.ViewPager}. 2691 Decorative views may be supplied as child views of a pager in XML layout.</li> 2692 <li>Added {@link android.support.v4.view.PagerAdapter#getPageTitle 2693 PagerAdapter.getPageTitle()} to supply title strings for pages, which defaults to no 2694 title for each page.</li> 2695 <li>Added {@link android.support.v4.view.PagerTitleStrip}, a non-interactive title 2696 strip, that can be added as a child of ViewPager. Developers can supply text 2697 appearance and color, as well as layout sizing and gravity information.</li> 2698 <li>Updated {@link android.support.v4.view.PagerAdapter} methods to take ViewGroup 2699 objects, rather than View to avoid class casting in adapter implementations.</li> 2700 <li>Updated {@link android.support.v4.view.ViewPager} to use Launcher-style 2701 fling behavior.</li> 2702 <li>Bug fixes for user interface interaction and test automation.</li> 2703 </ul> 2704 </li> 2705 2706 <li>Support for Fragments: 2707 <ul> 2708 <li>Changed {@code setStartDeferred()} method to {@link 2709 android.support.v4.app.Fragment#setUserVisibleHint}.</li> 2710 <li>Added deferred start for off-screen pages to improve performance.</li> 2711 </ul> 2712 </li> 2713 2714 <li>Support for Accessiblity APIs: 2715 <ul> 2716 <li>Updated {@link android.support.v4.view.AccessibilityDelegateCompat} methods 2717 to return empty lists instead of null.</li> 2718 <li>Added new APIs needed by the v4 samples.</li> 2719 </ul> 2720 </li> 2721 2722 </ul> 2723 </dd> 2724 </dl> 2725 </div> 2726 </div> 2727 2728 <div class="toggle-content closed"> 2729 <p><a href="#" onclick="return toggleContent(this)"> 2730 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2731 />Android Support Library, revision 5</a> <em>(December 2011)</em> 2732 </p> 2733 <div class="toggle-content-toggleme"> 2734 <dl> 2735 <dt>Changes for v4 support library:</dt> 2736 <dd> 2737 <ul> 2738 <li>Support for Accessiblity APIs: 2739 <ul> 2740 <li>Added {@link android.support.v4.view.AccessibilityDelegateCompat} 2741 to support {@link android.view.View.AccessibilityDelegate}.</li> 2742 2743 <li>Added {@link android.support.v4.view.accessibility.AccessibilityEventCompat} 2744 to support {@link android.view.accessibility.AccessibilityEvent}.</li> 2745 2746 <li>Added {@link android.support.v4.view.accessibility.AccessibilityManagerCompat} 2747 to support {@link android.view.accessibility.AccessibilityManager}.</li> 2748 2749 <li>Added {@link android.support.v4.view.accessibility.AccessibilityNodeInfoCompat} 2750 to support {@link android.view.accessibility.AccessibilityNodeInfo}.</li> 2751 2752 <li>Added {@link android.support.v4.view.accessibility.AccessibilityRecordCompat} 2753 to support {@link android.view.accessibility.AccessibilityRecord}.</li> 2754 2755 <li>Added {@link 2756 android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat} 2757 to support {@link android.accessibilityservice.AccessibilityServiceInfo}.</li> 2758 2759 <li>Added {@link android.support.v4.view.ViewGroupCompat} 2760 to support accessibility features in {@link android.view.ViewGroup}. 2761 </li> 2762 2763 <li>Modified {@link android.support.v4.view.ViewCompat} 2764 to support accessibility features in {@link android.view.View}.</li> 2765 </ul> 2766 </li> 2767 2768 <li>Changes to ViewPager: 2769 <ul> 2770 <li>Added support for margins between pages. 2771 An optional {@link android.graphics.drawable.Drawable} can be provided 2772 to fill the margins.</li> 2773 <li>Added support for {@link android.widget.EdgeEffect}.</li> 2774 <li>Added support for keyboard navigation</li> 2775 <li>Added support to control how many pages are kept to either side 2776 of the current page.</li> 2777 <li>Improved touch physics.</li> 2778 <li>Bug fixes for user interface behavior.</li> 2779 </ul> 2780 </li> 2781 </ul> 2782 </dd> 2783 </dl> 2784 </div> 2785 </div> 2786 2787 <div class="toggle-content closed"> 2788 <p><a href="#" onclick="return toggleContent(this)"> 2789 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2790 />Android Support Library, revision 4</a> <em>(October 2011)</em> 2791 </p> 2792 <div class="toggle-content-toggleme"> 2793 <dl> 2794 <dt>Changes for v4 support library:</dt> 2795 <dd> 2796 <ul> 2797 <li>Added <code>EdgeEffectCompat</code> to 2798 support {@link android.widget.EdgeEffect}.</li> 2799 2800 <li>Added <code>LocalBroadcastManager</code> to allow applications to easily 2801 register for and receive intents within a single application without 2802 broadcasting them globally.</li> 2803 2804 <li>Added support in <code>ViewCompat</code> to check for and set overscroll 2805 modes for {@link android.view.View}s on Android 2.3 and later.</li> 2806 <li>Changes to Fragment APIs: 2807 <ul> 2808 <li>Added new APIs to control the visibility of new menus.</li> 2809 <li>Added custom animation APIs.</li> 2810 <li>Added APIs in <code>FragmentActivity</code> to retain custom, 2811 non-configuration instance data.</li> 2812 <li>Various bug fixes.</li> 2813 </ul> 2814 </li> 2815 2816 <li>Fixed a {@link android.content.Loader} bug that caused issues in 2817 canceling {@link android.os.AsyncTask}s when running on Froyo and older 2818 versions of the platform. The support 2819 code now uses its own version of {@link android.os.AsyncTask} to keep the same 2820 behavior on all platform versions.</li> 2821 2822 </ul> 2823 </dd> 2824 </dl> 2825 </div> 2826 </div> 2827 2828 2829 <div class="toggle-content closed"> 2830 <p><a href="#" onclick="return toggleContent(this)"> 2831 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2832 />Android Support Library, revision 3</a> <em>(July 2011)</em> 2833 </p> 2834 <div class="toggle-content-toggleme"> 2835 <dl> 2836 <dt>Changes for v4 support library:</dt> 2837 <dd> 2838 <ul> 2839 <li>Adds support for {@link android.app.Fragment.SavedState}</li> 2840 <li>Adds {@code MotionEventCompat} to support newer {@link 2841 android.view.MotionEvent} APIs</li> 2842 <li>Adds {@code VelocityTrackerCompat} to support a newer {@link 2843 android.view.VelocityTracker} APIs</li> 2844 <li>Adds {@code ViewConfigurationCompat} to support a newer {@link 2845 android.view.ViewConfiguration} APIs</li> 2846 <li>All new APIs (available only in the support library) that allow you to create UIs 2847 with horizontal paging, allowing users to swipe left and right between content views. Classes to 2848 support this include: 2849 <ul> 2850 <li>{@code ViewPager}: A {@link android.view.ViewGroup} that manages the 2851 layout for the child views, which the user can swipe between.</li> 2852 <li>{@code PagerAdapter}: An adapter that populates the {@code ViewPager} with the 2853 views that represent each page.</li> 2854 <li>{@code FragmentPagerAdapter}: An extension of {@code PagerAdapter} for flipping 2855 between fragments.</li> 2856 <li>{@code FragmentStatePagerAdapter}: An extension of {@code PagerAdapter} for 2857 flipping between fragments that uses the library's support for {@link 2858 android.app.Fragment.SavedState}.</li> 2859 </ul> 2860 </li> 2861 </ul> 2862 </dd> 2863 <dt>New v13 support library:</dt> 2864 <dd> 2865 <ul> 2866 <li>Includes the {@code FragmentPagerAdapter} and {@code FragmentStatePagerAdapter} 2867 to support the horizontal paging. 2868 <p>These are exactly the same as the APIs added to the v4 support library, but rely on 2869 other platform components in Android 3.2. Use this library instead of v4 if you're developing for 2870 Android 3.2 and higher (all other APIs in the v4 library are already available with API level 2871 13).</p> 2872 </li> 2873 </ul> 2874 </dd> 2875 </dl> 2876 </div> 2877 </div> 2878 2879 2880 <div class="toggle-content closed"> 2881 <p><a href="#" onclick="return toggleContent(this)"> 2882 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2883 />Android Support Library, revision 2</a> <em>(May 2011)</em> 2884 </p> 2885 <div class="toggle-content-toggleme"> 2886 <dl> 2887 <dt>Changes for v4 library:</dt> 2888 <dd> 2889 <ul> 2890 <li>Support for fragment animations</li> 2891 <li>Fix {@link android.support.v4.app.Fragment#onActivityResult Fragment.onActivityResult()} 2892 bug</li> 2893 </ul> 2894 </dd> 2895 </dl> 2896 </div> 2897 </div> 2898 2899 2900 <div class="toggle-content closed"> 2901 <p><a href="#" onclick="return toggleContent(this)"> 2902 <img src="{@docRoot}assets/images/styles/disclosure_down.png" class="toggle-content-img" alt="" 2903 />Android Support Library, revision 1</a> <em>(March 2011)</em> 2904 </p> 2905 <div class="toggle-content-toggleme"> 2906 <p>Initial release with the v4 library.</p> 2907 </div> 2908 </div> 2909 2910