History log of /frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
17f3424b84d9550e6cb97a06dff4c67f82d36c4f 02-Jun-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix CoordinatorLayout edge building process." into oc-support-26.0-dev
d388d36cc2f2cf43b51f7958a268a29865ad6497 02-Jun-2017 Aurimas Liutikas <aurimas@google.com> Fix error prone warning in CoordinatorLayout.

Fixes:
CoordinatorLayout.java:630: warning: [ClassNewInstance] Class.newInstance()
bypasses exception checking; prefer getDeclaredConstructor().newInstance()

Test: ./gradlew support-design:assembleErrorProne
Change-Id: I16b3b10494b0f765cad078a782ecdf40631b9201
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
952c28b8cf957ff6df921e352385d02b4da285be 15-May-2017 Frantisek Nagy <frantisek.nagy.ml@gmail.com> Fix CoordinatorLayout edge building process.

There was a bug in the way the dependency graph was filled on the first
measure/layout pass. We iterated over all child views and for each child
A we iterated every other child and for each other child B we checked if
B depends on A and if so, we added an edge A->B to the dependency graph.
For anchors, on the first run, each child's LayoutParams only have info
about its anchorId and not the anchor view itself. This is resolved by
calling LayoutParams.findAnchorView(). Until this call, checking
LayoutParams.dependsOn() returns false. In current implementation we
only called findAnchorView() for child A, but then we checked
dependsOn() for child B.

This fixes this issue with inverting the check, so we check if A depends
on B and if it does, we add an edge B->A to the dependency graph.

Bug: 31622224
Test: Added CoordinatorLayoutTest.testAnchorDependencyGraph() test case
that fails without this fix.

Change-Id: Idcdf82031cce02340b2733aad1e30feb6f9359bb
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
ee1b969af871a7015fc2df11f8d342a4e6cf40f0 17-May-2017 Hyundo Moon <hdmoon@google.com> MediaRouter: Fix errprone warnings

Bug: 38276537
Test: ./gradlew support-mediarouter-v7:lintErrorProne
./gradlew createArchive
Change-Id: I88aeeae5cb84f1b131fa615b17aec0851b7ffa66
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
101d1376f87b5d4e82942a0b264c99a9a009b521 16-May-2017 Kirill Grouchnikov <kirillg@google.com> Revert "Move CoordinatorLayout from design to core-ui"

This reverts commit 0a63a3570132fb830b87f757ce50ee114d0229f2.

Bug: 30240339
Change-Id: I40ec3f2a562262b5ee577ddf11eac677382cf9c6
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
0a63a3570132fb830b87f757ce50ee114d0229f2 05-May-2017 Kirill Grouchnikov <kirillg@google.com> Move CoordinatorLayout from design to core-ui

Bug: 30240339
Test: ./gradlew support-design:connectedCheck --info --daemon -Pandroid.testInstrumentationRunnerArguments.class=android.support.design.widget.CoordinatorLayoutTest
Change-Id: Ibf011249eee99bada6af610ab9518dd3377018a6
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
ad1b0e82100ee31e70040d77bfa4d847b2bf0864 02-May-2017 Aurimas Liutikas <aurimas@google.com> Fix and suppress an assortment of ErrorProne warnings.

Test: ./gradlew assembleErrorProne now has fewer warnings
Change-Id: I445c7dfd36b33243771eb7821562ca468851ad8a
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
76daed103193a1756535d1f59b165e98e1d17445 13-Dec-2016 Chris Banes <chrisbanes@google.com> Nested scrolling++

This CL adds a number of overloads for the support
implementation of the nested scrolling APIs, to
add the 'type' parameter. This allow developers to
differentiate between direct touch scrolls, and
other non-direct scrolls. Primarily this is to support
dispatching the nested scrolling APIs from when a
scrolling view settles from a fling.

NestedScrollView and RecyclerView have both been updated
to dispatch these events from a fling settle. AppBarLayout
has also been updated to consume these new events.

The way the interfaces have been implemented allow us to
be API compatible without breaking anyone. Yes, the names
are fugly but so be it. If developers wish to support the
new APIs they just need to change the interface they
implement.

This CL also fixes some scroll issues in NSV and RV:
- NSV: fling not starting if scroll is completely
consumed (since it doesn't think it is dragging).
- RV: intercept setting the wrong X/Y start values
sometimes causing flinging in the wrong direction.

BUG: 22780822
Test: included for RV

Change-Id: I37de005e4fb33b5b443852058f3e1ab22ef98e20
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
b0ec0584ef4618908ddcc77b1701e5f22c458347 31-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Replace usage of design MathUtils with core-utils version of MathUtils." into oc-dev
12e0a308d1ab838cb05c395baa6f1251fcbb2363 30-Mar-2017 Aurimas Liutikas <aurimas@google.com> Replace usage of design MathUtils with core-utils version of MathUtils.

android.support.design.widget.MathUtils class had duplicate functionality to
android.support.v4.math.MathUtils. This CL replaces the usage and deletes
design version of MathUtils.

Test: ./gradlew assemble
Change-Id: I1e821deac0a421ced01dcefa04c44162dfa065fe
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
98ec0d5b378c8417156037af6389e90f0074a26e 30-Mar-2017 Aurimas Liutikas <aurimas@google.com> Clean up an assortment of Error-Prone warnings.

Test: ./gradlew assembleError prone still works (and now with fewer warnings TM)
Change-Id: I9e0af18b49a3eff1dd7ac8edc5a2873f93bb844e
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
4b25d63ff53d4676150ac54897851e4ff9f1049f 25-Feb-2017 Aurimas Liutikas <aurimas@google.com> Clean up ParcelableCompat after minSdk 14 bump.

Bug: 32794064
Test: ./gradlew assemble

Change-Id: I87d35d527e80d55ac4a2a626a6040fcdaff63ae3
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
6ed40c1f86bcb172a1f0f069cde1c571a7781aee 07-Feb-2017 Aurimas Liutikas <aurimas@google.com> Deprecate and remove usage of MotionEventCompat methods.

We bumped our minSdk to 14 and now most of MotionEventCompat methods and
constants are no longer needed.

Bug: 32794064
Test: ./gradlew assemble assembleAndroidTest
Change-Id: I5fc698fc8243107cd969743b7500163818f8c258
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
fa0f82f629bf95681c14ed559922f77a3030aa18 30-Jan-2017 Aurimas Liutikas <aurimas@google.com> Deprecated ViewCompat methods that were added in API 11.

Deprecated all the ViewCompat methods that were APIs added to View
since API 11. Additionally this removes usages of these APIs in support
library.

Bug: 32794064
Test: ./gradlew assemble assembleAndroidTest still works
Change-Id: I18fb0cc1ebc67c911eeb30aada7b8315afc15835
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
a347d3328db90b2d2a0cf92721a38df592ec34a9 12-Jan-2017 Yuichi Araki <yaraki@google.com> Fix gravity handling in CoordinatorLayout
am: b3db610105

Change-Id: I8477489e5ffd889f9365f87f6ec46b42f8c09888
b3db61010514ef829b0bd9b17c598138b3c27f73 20-Dec-2016 Yuichi Araki <yaraki@google.com> Fix gravity handling in CoordinatorLayout

When a child without behavior or anchor has only one axis specified as
its layout_gravity, CoL was centering the child for the other axis.

Bug: 33655774
Test: CoordinatorLayoutTest#testLayoutChildren on 9, 15, 19, 25
Change-Id: Ie56afa62491251b01355b269c9f4c0d79658da4d
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
f2acb8f93089ca875e08b4562f5897ccc888ba7d 15-Dec-2016 Chris Banes <chrisbanes@google.com> Stop nested scolling calling onDependentViewChanged
am: e53397216e

Change-Id: I75a7ad349f2fddd5cdda6a37356091c896e5b3e8
e53397216e013cc251ed82e5645ac8e1e8947603 15-Dec-2016 Chris Banes <chrisbanes@google.com> Stop nested scolling calling onDependentViewChanged

onDependentViewChanged() should only be called if
the dependent view has moved or changed size.
Theres currently a code path where the method
can be called if a nested scroll is in progress.
This CL fixes it by gating the movement bounds
check more widely.

Test: included
BUG: 33655283
Change-Id: I06d34147c4ff6136168b1cfd6568a6fce336566e
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
9a4c3517c7f2445031c9469a4989bac9dc2799cc 06-Dec-2016 Chris Banes <chrisbanes@google.com> Remove deprecated isDirty method

It was deprecated in 24.1.0 so it is long
due to be removed.

Test: compiled
BUG: 30110671
Change-Id: I95ca0cb691fd78fc7cca1ff65079f2a964f94e46
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
42878eddd9211e296584203aca44bf4f90cbc95c 05-Dec-2016 Chris Banes <chrisbanes@google.com> resolve merge conflicts of abf273c to master

Change-Id: Ib5cb55f522a95628b2b242dc533fc28cf527f1fa
0b64d3f72fc638f84dd2142d48f0e232fd278042 05-Dec-2016 Chris Banes <chrisbanes@google.com> Merge "Move CoordinatorLayout to use a pool for temp Rects" into nyc-support-25.1-dev
ac12f4a608837cf1cb2a7a01f1ed8753bb9b3674 05-Dec-2016 Chris Banes <chrisbanes@google.com> Merge "Document Behavior handling of touch events" into nyc-support-25.1-dev
abf273c417a019cc52aaa7f2c096bd40f8fd55a2 28-Nov-2016 Chris Banes <chrisbanes@google.com> Move CoordinatorLayout to use a pool for temp Rects

Removes the hacky mTmpRect[*] variables which are
easy to mess up and re-use with interleaving
code-paths.

Test: all pass
BUG: 33158318

Change-Id: I4750c5cdd3f054a60ca9a228fcfe2d7bfa9b4e41
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
b2a5b5286d801081c28e6a76ff143ac1c5448f87 01-Dec-2016 Chris Banes <chrisbanes@google.com> resolve merge conflicts of c88a088 to nyc-support-25.1-dev

Change-Id: I22b9f7cfe49e76b97803a7f22b7408282a3ad867
c88a0889137e9caf87d8bd2e825cb9e7599e4eee 01-Dec-2016 Chris Banes <chrisbanes@google.com> Fix dodge rect contains check

Seems that Rect#contains() checks for non-empty
as well as contains. Fix the check so that only
views with non-empty bounds are actually dodged.

Also moved some of the code around so that we
don't do any unnecessary work just to fail fast.

Test: included
BUG: 31528047

Change-Id: I3ee0e0fe87577d02dee22a8ebd8a9e1dc031796e
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
68b5181ede5cfe0c3abe42cda59e28fd73315b62 29-Nov-2016 Chris Banes <chrisbanes@google.com> Document Behavior handling of touch events

Adds sentence about how we handle view visibility.

BUG: 33134309
Test: docs build
Change-Id: If72c95d84598cafb97170be3ac4fc1ade1c096cc
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
ab324436c729ab39010d8d6869519d16c7be563b 29-Nov-2016 Chris Banes <chrisbanes@google.com> Merge "Revert "Don't dispatch touch events to Behaviors to all views"" into nyc-support-25.1-dev
d50f31949492e65ffc49b0ef74bebecdc2dc417e 29-Nov-2016 Chris Banes <chrisbanes@google.com> Revert "Don't dispatch touch events to Behaviors to all views"

This reverts commit 4a5dd898048a920452692c99896ef8782d71e09b.

Change-Id: I9d29930c367d562a60ff173adf53799156d56179
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
5449394ea30fd42d5051db1af8843b16b98ba36e 28-Nov-2016 Chris Banes <chrisbanes@google.com> Fix CoordinatorLayout inset tests
am: f073132a9b

Change-Id: I87fc111451c80b6f010548959350eed613dc1218
4a5dd898048a920452692c99896ef8782d71e09b 28-Nov-2016 Chris Banes <chrisbanes@google.com> Don't dispatch touch events to Behaviors to all views

We should only be dispatching these events to
Behaviors with views which are visibile.

BUG: 33134309
Test: included
Change-Id: I3c9b442dfa00bc6e0fbe1e0ea5969536f988e663
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
f073132a9b840d5bf3137e067d35264d0c4bad92 28-Nov-2016 Chris Banes <chrisbanes@google.com> Fix CoordinatorLayout inset tests

Caused by a Rect being re-used when it shouldn't
be. Fixed for now by adding another temporary
rect.

Test: passes on 10-24
BUG: 31528047
Change-Id: I4053127a792799b4b4b4f184e8a296d4a76f0edd
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
245f6b0f5f502171d2e0d82df42f5b29895711df 25-Nov-2016 Chris Banes <chrisbanes@google.com> Possibly fix IllegalArgumentException for dodge insets
am: c3e71f0d47

Change-Id: I791373a8463dd3592334920233f08a9e089eb0ba
c3e71f0d47d0b80ee0538e595cc9e98538ed380a 23-Nov-2016 Chris Banes <chrisbanes@google.com> Possibly fix IllegalArgumentException for dodge insets

Using intersect for the check is actually incorrect,
since we want the resulting rect to be within the
view's bounds, therefore contains() is more appropriate.

Also added more debug info to the exception in case this
doesn't fix it.

Test: haven't been able to repro
BUG: 31528047
Change-Id: I4e72e3f8788b98d9234eb2ed4366045e29f1d72e
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
e47578f12b31591ae984b97a9746e6beeaeb093b 22-Nov-2016 Chris Banes <chrisbanes@google.com> Merge "Don't dispatch nested scroll events to GONE views" into nyc-support-25.1-dev
829400b80567896e71227641fbdba8da2ad79b91 21-Nov-2016 Chris Banes <chrisbanes@google.com> Don't dispatch nested scroll events to GONE views

Also added a test which tests the basics
of nested scrolling dispatching in CoordinatorLayout.

Test: included
BUG: 32906215
Change-Id: Ie7f736d18d6536aecd0375330efe9acc21e117c3
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
8e10080c914d1ad0784394fa3026b85535535847 18-Nov-2016 Aurimas Liutikas <aurimas@google.com> Move from GROUP_ID to LIBRARY_GROUP annotations

- GROUP_ID was deprecated in favor of LIBRARY_GROUP.
- Fix import order in touched files.

Test: ./gradlew assemble assembleAndroidTest
Change-Id: I2a774e93215090f42262fb86cf8e841f2a546a4f
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
5504bf16938b16c0456a52714d2297062fd7cd8e 09-Nov-2016 Chris Banes <chrisbanes@google.com> Stop measure/layout on GONE views in CoordinatorLayout
am: 5435163672

Change-Id: Ifabc1403aa3d16ce9eeaf79263dec71b5019f76e
5435163672470b5b49eeeeeab37c44ece0148e92 08-Nov-2016 Chris Banes <chrisbanes@google.com> Stop measure/layout on GONE views in CoordinatorLayout

Test: included and passes on 10-24
BUG: 32713682
Change-Id: Ie785fe3f64420850642664a0d7451e1625721127
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
8a1af70673dea593745d0c63356f88603aab2450 20-Oct-2016 Aurimas Liutikas <aurimas@google.com> Do not attempt to update GONE childen of CoordinatorLayout.

Attempting to offsetChildToAnchor on a GONE child would result in
always calling onDependentViewChanged as GONE views return empty rect
in CoordinatorLayout#getChildRect.

Test: AppBarWithCollapsingToolbarTest#testPinnedToolbarAndAnchoredFab
now passes on ICS API 15. It used to fail because CoordinatorLayout
would keep the loop busy with constantly calling onDependentViewChanged
to FloatingActionBar behavior.

Change-Id: If9ac02024782d799645e3e5537e46d487ecb6e52
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
f42b1d01133891273cc97ccf37e86e899f7e62b1 06-Oct-2016 Alan Viverette <alanv@google.com> Fix CoordinatorLayout IllegalArgumentException crash

If offsetChildByInset() gets called before the child has been laid out,
we don't have any bounds to work with and we should abort immediately.

Bug: 31528047
Test: CoordinatorLayoutTest#testDodgeInsetBeforeLayout()
Change-Id: I2262a36460f36e6dfffcfaed2da93fcbfdee9ebd
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
c39d9c75590eca86a5e7e32a8824ba04a0d42e9b 25-Aug-2016 Alan Viverette <alanv@google.com> Add @RestrictTo(GROUP_ID) annotations to match @hide docs annotations

Also removes some unnecessary @hide annotations on classes that wouldn't
have shown up in docs anyway due to package/private visibility or NO_DOCS.

Bug: 27937193
Change-Id: Iab127a5a3ce57a2d61965d3cef782621eb3859f5
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
dc565e8a7dd1c62201325b98e69642a64b96a4bb 07-Sep-2016 Chris Banes <chrisbanes@google.com> Fix flickering for anchored + inset dodging views
am: 6f5e71c633

Change-Id: I84fc0ebe9eb1ed080f44a813d998e0207d35278a
96a3a5a841741fddc3773f35a22e31cded6bbdd8 06-Sep-2016 Aurimas Liutikas <aurimas@google.com> Remove all the extra accessor methods added by javac in support-design.
am: 657ea1100f

Change-Id: I762e3378d1c7e82139e9f04c3f750324ffd9851c
6f5e71c633625183188ddd567bab27e8b81c6bff 31-Aug-2016 Chris Banes <chrisbanes@google.com> Fix flickering for anchored + inset dodging views

Caused by two issues:

The first is that we use the stored dodge-offsets
at layout. This is unnecessary since we can just
apply them at draw-time, similar to anchoring
(done in CL).

The second is triggered by the first. We were
calculating the dodge-offsets on hidden views, which
resulted in us storing garbage offset values.
When the view is later shown, its laid out
using the garbage offset, resulting in it being in
the wrong place until the next pre-draw kicks in.
Fixed by skipping non-visible views.

Also stopped ignoring return value of intersect()
and throw an IAE if given rect is not suitable.

BUG: 31031905
BUG: 30771443

Change-Id: Ib546b0c3623d47a7f33dc085b36bbdd33db2cb8e
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
657ea1100fee4750f148f9d0dcb7e7e2028f105e 25-Aug-2016 Aurimas Liutikas <aurimas@google.com> Remove all the extra accessor methods added by javac in support-design.

Change private methods to be package protected to avoid extra methods
that get added to be able to access them from inner classes.

This CL saves 138 methods in our jar.

Bug: 31075707
Change-Id: I9ee192652fe005957e28ccfe35c9707be242aac1
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
2f517207503fdffbcf930584a37b4a03392755d6 17-Aug-2016 Chris Banes <chrisbanes@google.com> Fix IOOBE due to internal list being updated from remove

This CL removes all prepareChildren(), leaving
only the one in onMeasure(). This makes the state
more stable since we will only update it within a
layout pass. This also reduces any unnecessary work.

BUG: 30252077
Change-Id: Ibd00a3c3ede1dd654b0ed6d1d8d8d1c8da94e57a
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
3c9fb156e6585049f4e8f7992542aca307f0be13 05-Aug-2016 Chris Banes <chrisbanes@google.com> Speculative fix for exception in CoordinatorLayout.onLayout

Caused by a prepareChildren call in onChildViewRemoved().
If a child is removed in the middle of a layout pass, the
count is wrong and we hit an IndexOutOfBoundsException.

Fixed by removing the prepareChildren call, which also fixes
onDependentViewRemoved() which was broken in
I1283f72c312824ee3ed1fd4b0bb7e7405f38cb2b.

BUG: 30252077

Change-Id: Ifce3178cf69685d519c859c2ebd6402b744204b1
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
b806673aa0977685995be820981207f6bf51858b 29-Jul-2016 Chris Banes <chrisbanes@google.com> Fix CoordinatorLayout scrim functionality

It doesn't currently actually use the opacity provided
via getScrimOpacity(). Also fixed the todo and we now
clipRect when appropriate.

BUG: 30475007
Change-Id: I2bcef6994d2d757e6da2fca9da710ee2484da971
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
c07c8e1e74a026c0d9e3a9dd119913436380be38 12-Jul-2016 Chris Banes <chrisbanes@google.com> Tweak AppBarLayout elevation changes

First, we've sped up the animations to 150ms, from
the default 300ms. Also simplified the state list
animation (its does exactly the same thing).

Second, we now jump the animation if we have any
overlapping scrolling views.

BUG: 29938204

Change-Id: Ie5ee85a4fe6154e318c314d0d671b367115efaf3
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
a2f4dd03315ee950fef6b8211d372f15883a52aa 21-Jun-2016 Chris Banes <chrisbanes@google.com> Fix CoordinatorLayout dependency sorting

Since CoordinatorLayout allows dependency chaining
of views, a simple sort is not sufficient to handle
all cases. This CL fixes the sorting by moving us
to a topological sort based on a breadth first search.

The search is linear so should actually be slightly
quicker than the current selection sort.

Also changed some of CoordinatorLayout's internals
to use the DAG rather than the sorted list.

BUG: 29529648

Change-Id: I1283f72c312824ee3ed1fd4b0bb7e7405f38cb2b
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
6206ad57276146c8f70e939fd40ce9c7b88767f6 15-Jul-2016 Yuichi Araki <yaraki@google.com> Fix inset edge of CoordinatorLayout

Views with multiple dodgeInsetEdges properly dodge all the edges.

Change-Id: I00e62bfb4d3379e4357f1b4bbfd837d9795a5f4f
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
83418919d2c897e0639999db68831e6c470e6ff4 14-Jul-2016 Yuichi Araki <yaraki@google.com> Fix annotation of getBehavior

Change-Id: Ie28d4cff39b57ae648deac410a91dcd4ecbe6954
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
1ca24096efc933932416645c546dbd9ac91efbeb 12-Jul-2016 Yuichi Araki <yaraki@google.com> Add javadoc for insetEdge and dodgeInsetEdges

Bug: 29417370
Change-Id: I49988e9511f037dc39aeb25140e44c3289a6ca65
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
26c07a84cf70ddf44516f7009fe4ce3b5ed65513 13-Jul-2016 Chris Banes <chrisbanes@google.com> Improve CoordinatorLayout's inset edge funtionality

Currently the gravity handling only supports literal
single gravity values which makes it less useful.

Also made the edge detection work with animations by
correctly employing our pre-draw listener.

Tidied up some of the dispatch code in CoordinatorLayout
so that we have just one method which dispatches any
events. Means that we don't have to copy code everywhere.

Also added support for the functionality in Snackbar
and FloatingActionButton since that is what most people
will be trying to use it with. Removed our old baked in
functionality from FAB since we can use the new
CoordinatorLayout functionality.

BUG: 30107168

Change-Id: Ib23fa740c4c4f4f733a3894ceb2cc1a2e95b35cd
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
4cf1d92509224fab3ca69b419a005c536ab75c5c 13-Jul-2016 Chris Banes <chrisbanes@google.com> API review fixes

BUG: 30088092
BUG: 30088343

Change-Id: I3abc24bd5f7876ff12b42f13a579399123d50470
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
a5c36708f8dd136f2a02a79709923630449be5b5 05-Jul-2016 Chris Banes <chrisbanes@google.com> Move support libs to use ViewCompat.offset* methods

offsetTopAndBottom and offsetLeftAndRight have various
issues across the API levels, which are worked around
in the ViewCompat versions.

BUG: 29970143
Change-Id: Ic0919f438a0c4a6bf4f2e153a6062d5aeb727db1
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
943b6775f5dbe28a8ae509e685cf765937b2a76b 30-Jun-2016 Yuichi Araki <yaraki@google.com> Add layout_insetEdge and layout_dodgeInsetEdges

Add layout_insetEdge and layout_dodgeInsetEdges to CoordinatorLayout.
Views that are marked with layout_insetEdge will inset a CoL's edge.
Views that are marked with layout_dodgeInsetEdges will dodge the
specified inset edges.

The internal implementation of Snackbar-FAB relationship will be
replaced in a coming CL.

Bug: 29417370
Change-Id: Id381d8b6225f3211048dd39fd459e52224af1929
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
5f9a5463fba574d8b33fd757b3e78b2b3613cb82 04-Jul-2016 Chris Banes <chrisbanes@google.com> Deprecated now unused isDirty() Behavior method

BUG: 29951233
Change-Id: I03ee79127e65030ef82276786882ded5600dfc32
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
00a00a7d3ba8279294f63994473afc32e05dcf10 30-Jun-2016 Chris Banes <chrisbanes@google.com> Fix focused views not being visible with AppBarLayout

Due to the way that AppBarLayout works, we need to
manually handle any visible rectangle requests.

BUG: 29876369

Change-Id: Iae57120764c5f1f4ae15c276c0b78f0a7c5c36f8
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
3035e10317eb12c58153d8c651a791896ea3094e 13-Jun-2016 Chris Banes <chrisbanes@google.com> Fix setFitsSystemWindows not working with CoordinatorLayout

This CLs moves some of the logic around so that CoL
responds correctly to setFitsSystemWindows calls.

BUG: 29270333
Change-Id: Id1fd8db914de7c6729c74ec6740d19f538e6fdac
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
2d8c0b4074beca4945bb75c96ff67bfe2dd81e89 09-Jun-2016 Chris Banes <chrisbanes@google.com> Merge \\\"Fix scrolling view position with fitSystemWindows parent\\\" into nyc-dev am: 1082886555 am: 736c426dcf
am: 3344367ce1

Change-Id: I3de7a76bb6d27c30903521865cfaee50135d8787
2e522d2998c937948757ccfe0a5523047726fb4d 07-Jun-2016 Chris Banes <chrisbanes@google.com> Fix scrolling view position with fitSystemWindows parent

Currently the scrolling view is not positioned correctly
if the CoordinatorLayout is set to fitSystemWindows, but
none of its children are. This CL fixes that by properly
insetting the scrolling view.

BUG: 29125508
Change-Id: I3b802f98197ee50e9caee610c32631daeb5af9aa
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
19a80415a88ecfae6bbc645cd14b653ed4337648 26-May-2016 Chris Banes <chrisbanes@google.com> Fix CollapsingToolbarLayout consuming insets

Currently it consumes insets, which means that
the insets never reach its children. Since it
does not need to consume them, lets not.

Also fixed WindowInsetsCompat so that equals(),
toString() and hashCode() work as expected.

Also ported the same equals fix to AppBarLayout
and CoordinatorLayout.

BUG: 28860186
Change-Id: Ib34219f1ba60901d973eea96c7453be46d9bf555
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
8f8034a4204fc10c4805758051f0cec2159c0e40 27-May-2016 Yuichi Araki <yaraki@google.com> Add autoHide to FloatingActionButton

Add a new attribute "behavior_autoHide" to
FloatingActionButton.Behavior. The FAB automatically hides when there is
not enough space for it if behavior_autoHide is set to true. It defaults
to true. FAB.Behavior currently supports AppBarLayout and
BottomSheetBehavior.

This also fixes the issue that CoordinatorLayout stops sending
onDependentViewChanged after the child view reaches at an edge of the
CoordinatorLayout.

Bug: 28962378
Change-Id: Ic17bda6fc448f0c483752f1a3ed0df50fe60a458
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
15375aa6fd54b036f97f99229aefab2822c8a1c9 24-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Override annotations in support library code.

Change-Id: Ifcc3a20b54d6a14b0a14aa0f48e642cf7e8c0e70
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
c6cbbb50a06ec08e6888bd1c3dfd7fdf588d9db5 11-May-2016 Chris Banes <chrisbanes@google.com> Rename design lib layout styleables

They're now in a format which Android Studio and
layoutlib supports.

BUG: 28708856
Change-Id: I8df109e197b56586d19f701b631b6405b08873ea
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
05f5ba020fa6caa658c75b6d77436aa980ca0fcc 22-Apr-2016 Chris Banes <chrisbanes@google.com> Backport AbsSavedState and fixes to v4

Also makes the support library widgets use it
so that they handle multi-class loaders correctly
when restoring state.

BUG: 27790353

Change-Id: I5c7888f119b8fcb79fd7cb67987c304c0c982c8e
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
78d6f4ad1fc1e2d57b138e31f47f2267731ee95e 18-Mar-2016 Aurimas Liutikas <aurimas@google.com> Fix multi-pointer behavior for Snackbar.

A. Fixes CoordinatorLayout to only reset once for multiple
requestDisallowInterceptTouchEvent calls.
B. Fixes SwipeDismissBehavior to only reset on a new active
capture/drag.

Part A fixes the crash for multi finger swipe of snackbar.

Bug: 27675378
Change-Id: I58ffd71c2887ea32e450fdf8b2203eb82b2b55c5
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
b8af67a0b7896d08b81a803b3880dafaddc7e0bc 02-Mar-2016 Alan Viverette <alanv@google.com> Verify class of Parcelable in CoordinatorLayout restore state

Bug: 27451514
Change-Id: I88a37085fd0b26c032ce75eba430c64a425ccb00
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
75fd07ac981ba1f3e02ea4e67029b6c95088ff5f 04-Feb-2016 Chris Banes <chrisbanes@google.com> Merge "Fix window insets for AppBarLayouts in ViewPager" into mnc-ub-dev
9079ab7c6b5ada9d6d667fc97755c96d296e2cee 04-Feb-2016 Chris Banes <chrisbanes@google.com> Merge "Set a callback on CoL's status bar background" into mnc-ub-dev
4d4b8a2a5b5907383e7ca168dd01c76dc75ab930 03-Feb-2016 Adam Powell <adamp@google.com> Make CoordinatorLayout Behavior scrim methods non-final

Because they aren't much use this way.

Change-Id: I4dcfe174a9a8eeec8a15ddcda0a68e72a5b32bc2
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
bcb330de0c625b371010bada2a51363fc37b52cc 02-Feb-2016 Chris Banes <chrisbanes@google.com> Set a callback on CoL's status bar background

While there I also tidied up CoordinatorLayout's
various drawables, and add annotations.

BUG: 26920362
Change-Id: I32c03f3b647b89a5354c8a46fe3565fc7d45167c
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
17ed3263761329f6aa6796941358c41001fff325 29-Jan-2016 Chris Banes <chrisbanes@google.com> Fix window insets for AppBarLayouts in ViewPager

Caused by the standard dispatchApplyWindowInsets()
not being appropriate for a horizontally scrolling
widget with full-height children. This is because
if child 0 consumes the insets, the rest of the children
will not receive the dispatch. To workaround this
we manually dispatch the original insets, not allowing
children to consume them from each other.

Also tidied up the window insets dispatching in CoL,
AppBarLayout and CollapsingToolbarLayout.

BUG: 22869860

Change-Id: I26544267f672b3b4d041d4ef8b29dd0d5f706455
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
c6d62e6d5ca277d4649c686e76edd63176c7c4e3 11-Dec-2015 Chris Banes <chrisbanes@google.com> Fix CoL doc bug

BUG: 26127110
Change-Id: I4335a66f52d900b23e4b58cdaa029f4c906e140b
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
375995f4dc8aecb335bb262190d2cd39fdb136d6 19-Oct-2015 Chris Banes <chrisbanes@google.com> Don't let a View anchor itself to it's parent CoordinatorLayout

CoordinatorLayout isn't design to handle it, and
there's no point in doing it anyway (since any
children are already in the CoL's view coordinates.

Change-Id: I5cb682b47f7b0bc3c08b92f0de86459cac357998
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
25ef4026b72ff670ee07c81897124732d3f5f443 07-Oct-2015 Chris Banes <chrisbanes@google.com> Allow CoordinatorLayout to handle root level pkg

Currently CoordinatorLayout assumes that it will have a
parent package. This might not happen though with
Proguard involved. This CL makes CoL more defensive
over the package name.

BUG: 24701447

Change-Id: I391466b2e3b8f6d3d332a76dde6125b1eddd4156
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
93219e8b82c64dc73be81b564a13611958b56527 06-Oct-2015 Chris Banes <chrisbanes@google.com> Merge "Ensure that CoL's sorted children is invalidated" into mnc-ub-dev
62ab25d71ccfa775a8bd2add7b41277bc4e14bbc 05-Oct-2015 Chris Banes <chrisbanes@google.com> Use ParcelableCompat for CREATOR creation

Should fix BadParcelableException issues due to
using the wrong available class loader.

BUG: 24253575
Change-Id: Ia259559f15500203eff99c6eb6928339bd940278
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
8248a6287c4ff9fa71ff6760bb6fe0906f0d6607 21-Sep-2015 Chris Banes <chrisbanes@google.com> Ensure that CoL's sorted children is invalidated

Currently CoL only checks to see if the child count
has changed before re-sorting everything. This is a
bit crude as the children could change without the
count actually changing.

Fixed by invalidating the list on measure.

Also update dispatchDependentViewRemoved() to make
use of the dependency sorting.

BUG: 24252752

Change-Id: I92fd3a0587b7d24de0abcded37577cf70130d16c
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
cea5e20817a848367e82e69b00d091c8405c99fc 16-Sep-2015 Chris Banes <chrisbanes@google.com> Fix dependency sorting in CoordinatorLayout

For our purposes we need every view to be compared against
each other when sorting. Collections.sort() is stable and
efficient, and thus doesn't guarantee that, therefore we now
need to use a selection sort which does guarantee that.

It is less efficient, but it is much better than removing
all of the sorting and doing a O(N^2) loop in every draw.

BUG: 24126029
Change-Id: Ida34244d62b9c7519b4cded3ab23bef95a01f1f0
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
c344398708c615b0caba76d287e9ec503afa6819 20-Aug-2015 Mady Mellor <madym@google.com> Fix java doc for get/set AnchorId in CoordinatorLayout

Change-Id: I93cdffa696e2936548e7e34a85ba817c4fe6b68a
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
91585cbeb6fe1163e4b3f5f6e623124173f5371b 21-Aug-2015 Chris Banes <chrisbanes@google.com> am 6d91eee3: am e4924958: am 638a2a4a: Merge "Fix crash in CoordinatorLayout DO NOT MERGE" into mnc-dev

* commit '6d91eee3e7d064d7ca695da1fcb755e1ae1d58e9':
Fix crash in CoordinatorLayout DO NOT MERGE
515613db9b9d82472c8fce69b2b104c277f68b99 20-Aug-2015 Chris Banes <chrisbanes@google.com> Fix crash in CoordinatorLayout DO NOT MERGE

Already fixed downstream in I854d97125c26f1584f13ec554e74247cc8c539d6

BUG: 23367283
Change-Id: I7c4c08d7981c78cf9f9158cd7414abe4fce140b3
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
ea004a01f44aaf36212120c936952c1742d03d30 07-Aug-2015 Chris Banes <chrisbanes@google.com> AppBarLayout layout/measure fixes

- We no longer display above the scrolling view
over a collapsed AppBarLayout.
- Make sure we measure the scrolling view to fill
any window inset.
- Make sure the ABL is measured before we measure the
the scrolling view.
- Make sure we use the measured height of views when
calculating the scroll ranges.
- Made some pkg-private methods actually private.

BUG: 23025697

Change-Id: I854d97125c26f1584f13ec554e74247cc8c539d6
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
809bb62055ad42b88f3a69308be222801b89fbd9 07-Aug-2015 Chris Banes <chrisbanes@google.com> Add more helpful exception to design components

If a developer doesn't use a AppCompat theme, bad
things happen with the design lib. This CL adds
an explicit check with a helpful error message.

Change-Id: I60c81ed87057fa75b38e26bf8c4b1edbc9ff7a3f
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
e3f6ba486fec4e11ca7508049ac81de4c7102f23 31-Jul-2015 Chris Banes <chrisbanes@google.com> Make CoordinatorLayout request a window insets dispatch

When using CoL in a Fragment, it's quite easy for it
to miss the normal window insets dispatch. As CoL contains
special functionality with insets, it should request new
window insets as necessary.

BUG: 22869860
Change-Id: Id9547b9e80e31acea5fffcd57d932d0bdb7f50cc
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
ec2139270829c55b0c50c62612306c18b8c0b98b 14-Jul-2015 Chris Banes <chrisbanes@google.com> am 1629c7c8: Merge "Allow vertical dragging of AppBarLayout" into lmp-mr1-ub-dev

* commit '1629c7c8561372ec8a97df983edad01e0657b1d9':
Allow vertical dragging of AppBarLayout
d4c72f08279df548fbc4d556fe1a8b3500fafdbc 15-Jun-2015 Chris Banes <chrisbanes@google.com> Allow vertical dragging of AppBarLayout

Also fixed onStopNestedScroll() not being called
from NestedScrollView and RecyclerView

BUG: 21843568
BUG: 20679299

Change-Id: I1b19d7cae2db403ede30fc9116ea05aace586b3b
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
2521e5cf58f5353f32db138a9d23afce56570ebe 15-Jun-2015 Chris Banes <chrisbanes@google.com> am 0b004890: Fix FAB not returning after Snackbar dismissal

* commit '0b00489086b22c9688c8c04990dadf54489d45e3':
Fix FAB not returning after Snackbar dismissal
0b00489086b22c9688c8c04990dadf54489d45e3 12-Jun-2015 Chris Banes <chrisbanes@google.com> Fix FAB not returning after Snackbar dismissal

Caused by the fact that sometimes a removed view does
not trigger a onDependentViewChanged() dispatch. As
a removal doesn't really fit that method, I've added
a onDependentViewRemoved() call to Behavior.

BUG: 21799255
Change-Id: Ib86713a38928dfdbbfcf419e44bafe8023e5a8ee
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
57a0f459ed169fa770864a6a7ac6e5b42177d564 09-Jun-2015 Chris Banes <chrisbanes@google.com> am 88cccf6c: Fix NoSuchMethodError in CoL on Eclair 2.1

* commit '88cccf6c76b6a1c2d67152c2de5599f3c8301b18':
Fix NoSuchMethodError in CoL on Eclair 2.1
88cccf6c76b6a1c2d67152c2de5599f3c8301b18 08-Jun-2015 Chris Banes <chrisbanes@google.com> Fix NoSuchMethodError in CoL on Eclair 2.1

Change-Id: I2388b7b41d0d573fa133c4aa70337d161c27ce57
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
68c1d88f4288d2f6c7159ad9288df12b622d6e5c 20-May-2015 Adam Powell <adamp@google.com> am d09e24f8: Fix CoordinatorLayout anchor gravity handling

* commit 'd09e24f8d4c10e72dee0e435d3289ddd10223aa0':
Fix CoordinatorLayout anchor gravity handling
d09e24f8d4c10e72dee0e435d3289ddd10223aa0 19-May-2015 Adam Powell <adamp@google.com> Fix CoordinatorLayout anchor gravity handling

CoordinatorLayout would position anchored child views in the wrong place
when using some layout_gravity/layout_anchorGravity settings. Clarify
the responsibility of each gravity handling step - anchor vs. child.

Bug 21282731

Change-Id: I053c6c40802da19e5a7002b6b853413a4d2ee0cc
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
2e0019c6e90d046ea2a69fdfabae1e83469931a5 12-May-2015 Chris Banes <chrisbanes@google.com> am e52e1698: Allow CoordinatorLayout Behaviors to save state

* commit 'e52e16988e2500e20052ddd70920f950f4eb4f79':
Allow CoordinatorLayout Behaviors to save state
e52e16988e2500e20052ddd70920f950f4eb4f79 11-May-2015 Chris Banes <chrisbanes@google.com> Allow CoordinatorLayout Behaviors to save state

AppBarLayout is the first customer to make sure that
they restore correctly.

BUG: 20993010

Change-Id: Iad740edbba80abd18b44a0fa69d22fe7f1983677
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
75284fffafacd32f4d178020050589f9e70e5ed9 01-May-2015 Chris Banes <chrisbanes@google.com> Window inset support for CoL + AppBarLayout

CoL now handles and consumes all window insets given
to it on L+. AppBarLayout and it's Behaviors have special
handling to ensure it's view are measured correctly.
CollapsingToolbarLayout has handling to ensure that view are
not laid out within the insets.

BUG: 20652400

Change-Id: Ifa8677aa8abeaf443c53bbe6b53e29ff1859b18d
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
6ba61c5c79fe025036593c9daf79cb65299bb0b6 01-May-2015 Chris Banes <chrisbanes@google.com> Window inset support for CoL + AppBarLayout DO NOT MERGE

CoL now handles and consumes all window insets given
to it on L+. AppBarLayout and it's Behaviors have special
handling to ensure it's view are measured correctly.
CollapsingToolbarLayout has handling to ensure that view are
not laid out within the insets.

BUG: 20652400

Change-Id: Ifa8677aa8abeaf443c53bbe6b53e29ff1859b18d
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
878384f1e6de7bd9196958224ced1ecfca3be6a7 05-May-2015 Chris Banes <chrisbanes@google.com> Make constructor accessible before calling - AppCompat + Design

ART fixed newInstance method's accessibility checks which means if
provided class/method is not accessible, we will crash.

This CL makes AppCompat + design lib call setAccessible(true) before
calling the constructor to avoid any issues after new ART is released.

Bug: 20824258
Change-Id: I2001bd7fc80713c7effe57bec2eff8622cceb0cc
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
a6a508b2296730ca6954aaebcca52a9962a5cb55 11-Mar-2015 Chris Banes <chrisbanes@google.com> AppBarLayout

There is still a few things missing for this, such as elevation
and fling support. I'll add these in a later CL.

Change-Id: Ie6d6d24a39a21bcd640f09c9da07ec2f6c1f4bb4
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
42058bc54bdb89b9c9429bf6cbd3260787cf0523 18-Mar-2015 Adam Powell <adamp@google.com> CoordinatorLayout bugfixes

* Make sure subclasses use a DefaultBehavior from a superclass if present

* Fix a bug in calculating child rects for anchoring views

Change-Id: I0083d5196f871d22024113d56f56c7b8d9b90845
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
b7f9224b1495db47eb8fd813b5912250e900770a 09-Jan-2015 Chris Banes <chrisbanes@google.com> Snackbar

Also added a new default swipe-to-dismiss behavior
and hooked it up. Also hooked up the Snackbar
to the Floating Action Buttons.

Change-Id: I717d4db5d34b6c17a2afabe5a3bc2c79fcee4233
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
5cb378077ed5c64d35c1972c5fc84ee11ce31d07 10-Mar-2015 Adam Powell <adamp@google.com> Nested scrolling support for CoordinatorLayout and behaviors

Add support for nested scrolling to CoordinatorLayout behaviors. A
behavior can elect to handle nested scrolling for an arbitrarily
nested child. This allows other elements in the CoordinatorLayout to
respond to scrolling events from other containers deeper in the
hierarchy, for example by scrolling a toolbar off of the top of the
screen as a user scrolls.

Change-Id: I4c2d0e24d8034e2d9662a025ef31d3976f880868
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
ecc58a45a7bdd60d9b71e6c413b80a3f8cf85822 04-Mar-2015 Chris Banes <chrisbanes@google.com> Forward onTouchEvent to the View's Behaviour

Change-Id: I1700d7fdfc0991665c1583a4d43fb673ff9e7c01
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java
a966c6cda6a3aa562fcfdb842b6c6b35bdd6a3dc 05-Feb-2015 Adam Powell <adamp@google.com> CoordinatorLayout

CoordinatorLayout is meant to be like a super-powered FrameLayout with
three major additional capabilities:

* Aligning views relative to other views arbitrarily nested within
other siblings (e.g. floating action buttons aligning to one edge of
a content pane)

* Aligning views relative to keylines defining horizontal positioning

* Defining pluggable interaction behaviors from layout xml

This patch implements the first two features and some of the initial
plumbing for the third.

Change-Id: I9c368d298cd35ff507ce5c8449a572fbfe9e5da7
/frameworks/support/design/src/android/support/design/widget/CoordinatorLayout.java