• Home
  • History
  • Annotate
  • only in /frameworks/support/v4/honeycomb/android/support/v4/view/
History log of /frameworks/support/v4/honeycomb/android/support/v4/view/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3faba4d9eaba0ac552a9f6dd5c54bfa45e51a133 18-Apr-2016 Chris Banes <chrisbanes@google.com> Merge "Fix invalidation workaround" into mnc-ub-dev
am: b878633

* commit 'b878633128a0533d843edcc7c086155bbddb4db8':
Fix invalidation workaround

Change-Id: Icbb200907e08833848a98d8eae6c3201f882cc0c
4a5aaa6852108a8e5fd9e849209803c8f6fcd6cf 18-Apr-2016 Chris Banes <chrisbanes@google.com> Fix invalidation workaround

We were missing the tickle on the actual view, as well as the parent.

BUG: 28239627
Change-Id: I8593e9a6ea8074e0a103ba4ed5c76f7220dc6e18
4510b5c24adad2b94df9b84c6b73f5534ffe9b57 06-Apr-2016 Yigit Boyar <yboyar@google.com> Do not recycle visible views

This CL adds a new API to the LayoutManager where the LayoutManager
can get the bounds of a View while taking into account its
transformation matrix.
This API is mainly useful for recycle decision. I've also changed
built in layout managers to respect this value in addition to layout
position of the view.

Bug: 26402811
Change-Id: If75072c73d3374bfac0439d7714714c82684096a
9a7451b2f23d00e8f4b68f16edb64f260b433fee 03-Feb-2016 Chris Banes <chrisbanes@google.com> Merge "Fix AppCompat running on pre-v13"
ed1096ebffac8f3cac5e5b98f54b96ae2ce8579e 02-Feb-2016 Chris Banes <chrisbanes@google.com> Fix AppCompat running on pre-v13

BUG: 26928253

Change-Id: I1d0f56df5072e35370b1943ebaf15531145f8c5b
34656d7f78f35591ad1f629b936c939406d6270e 01-Feb-2016 Yuichi Araki <yaraki@google.com> VC.offsetTopAndBottom/LeftAndRight on API 11-22

Bug: 26894655
Change-Id: I8579782f77f6b8a71c7c82bc94fbfe8a56e4eccb
a89b7a8e4840e52dfda1442bcb885686680556f6 26-Jan-2016 Chris Banes <chrisbanes@google.com> Fix Snackbar swipe to dismiss not working pre-v11

Multiple issues:
- offsetTopAndBottom doesn't invalidate pre-v11, so
ViewDragHelper now uses the ViewCompat version.
- ViewCompat's offset method needs to invalidate the parent
instead, since the view has moved and thus the dirty rect
is larger than the view's bounds.
- Fixed issue in Snackbar which meant that the view would
not be removed after a swipe settle.

BUG: 26768803
Change-Id: Ia9abc4884f8ffd05408135d3fc4dd1b073392a7b
a12f22ddbd4382df3bc0d7311e7573b4c748c76c 22-Apr-2015 Chris Banes <chrisbanes@google.com> Ensure LayoutInflaterCompat forces set the correct Factory

This is a follow up to Ib9cd690725b365ad40d4a6cf12c1e6dc6c0089fd
which makes sure that any subsequent merged factory is set to be
the designated Factory2. This ensures that we use the merged
factory over another Factory2.

Also bumped up the version number in preparation.

BUG: 20477817

Change-Id: Ie4ea8595afffe9905bb11174f330db4dedb2d2fb
10850534c9e2949857133437cf1cd9af82721ab1 19-Apr-2015 Adam Powell <adamp@google.com> Work around a framework bug setting LayoutInflater.Factory2

Prior to commit 630c077463fecaa8eb1015865770f2c05c514ade in
frameworks/base there was a platform bug starting at API 11 (fixed in
API 21) that would cause a Factory2 not to be set properly on a
LayoutInflater obtained via the LayoutInflater#cloneInContext method.

The intended behavior was to merge the old Factory/Factory2 with the
new one set on the cloned LayoutInflater. Precedence is given to the
new Factory/Factory2, but if the new factory returns null, the old one
is used. The bug would cause the merge to be correct for Factory, but
not Factory2.

Now that AppCompat uses Factory2, this matters. Without this
workaround, nested fragment inflation for android-support-v4 fragments
is broken and nested fragments are inflated into the
FragmentActivity's FragmentManager instead of the parent Fragment's
child FragmentManager.

Bug 20343535

Change-Id: Ib9cd690725b365ad40d4a6cf12c1e6dc6c0089fd
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
fd1eb27a3700de31507de34fd1bcc51830fe876c 24-Oct-2014 Chris Banes <chrisbanes@google.com> Backport android:theme functionality for all Views

Also make the tinted widgets public so that developers
can extend from them.

BUG: 18367946
BUG: 18112118

Change-Id: Id47e21e960f3539304f0c1c023eebdff6c429c8d
b645de790756e27bbe92d133216b7ac79cca7679 21-Oct-2014 Chris Banes <chrisbanes@google.com> Update ShareActionProvider to match Lollipop's

BUG: 16370059
Change-Id: I1e0013bd9344ccda3751972109b389097d4f7a23
5e63ab9505a3a4d11374cbbec418c1aba921409d 07-Oct-2014 Chris Banes <chrisbanes@google.com> Remove the intermediary ViewGroup for support-v4 fragments

On Honeycomb and above the extra ViewGroup isn't needed
as we can use setSaveFromParentEnabled() like the framework
FragmentManager impl.

BUG: 17901056
Change-Id: I7b3cb130943f8f0e9ab7c910f86f5d711bd42f7a
bc7c32772fbc966091181ce7fa933ca4083679ac 22-Sep-2014 Adam Powell <adamp@google.com> Jump drawables to current state when rebinding ActionMenuView

This prevents lingering ripples or other pressed state effects from
remaining after an action button has been rebound.

Also add ViewCompat#jumpDrawablesToCurrentState to support this.

Bug 17592051

Change-Id: I8227af59d7b80a5a2d2f91aca7d0f17257fb6101
d7d27e9ebe5c7325e67e1a8af265378bd2056cad 28-Feb-2014 Chet Haase <chet@google.com> Add animations to RecyclerView

This CL adds the basic plumbing for animating item changes in
RecyclerView. It also implements the bare essentials add/delete
animations. When the app specifies that items have been
added/removed (by calling the appropriate Adapter methods), the
RecyclerView will determine the appropriate fading and moving
animations to animate the items being added, removed, and moved
into new locations.

Change-Id: I4fa8686f54c8bfa2ba29c399eea112d33f71689c
b1bfdf4c03d1b25959c5818805b997020f7ed085 15-May-2014 Chet Haase <chet@google.com> Revert "Add animations to RecyclerView"

This reverts commit 33b18903168c177d65e3c2ef7398c1b2ca0c826f.

Change-Id: I41664a375f9fc5fa878481b90cd2e61aad17f739
33b18903168c177d65e3c2ef7398c1b2ca0c826f 28-Feb-2014 Chet Haase <chet@google.com> Add animations to RecyclerView

This CL adds the basic plumbing for animating item changes in
RecyclerView. It also implements the bare essentials add/delete
animations. When the app specifies that items have been
added/removed (by calling the appropriate Adapter methods), the
RecyclerView will determine the appropriate fading and moving
animations to animate the items being added, removed, and moved
into new locations.

Change-Id: If70c09e7af168ce5963c785b5886a18c87a7dc98
c096ad1894f1a4543e703ddc9d279fbd3b596c53 06-Mar-2014 Adam Powell <adamp@google.com> More RecyclerView API additions

* findViewHolderForChildUnder() becomes findChildViewUnder()

* Have findChildViewUnder() respect translationX/Y properties

* getChildViewHolder() becomes public

* LayoutManager gets onAddFocusables to override default
ViewGroup#addFocusables behavior

* LayoutManager gets onInterceptFocusSearch to override the default
focus finder behavior before onFocusSearchFailed

Change-Id: Id7e79167fbe68bdbeac6e0cd09c90202b493f4df
b12ba0547b2fad1c4dfc12dec36c5e7893974e67 28-Aug-2013 Adam Powell <adamp@google.com> Fix compatibility support for v7/gridlayout

A previous implementation import from frameworks/base combined with an
incorrectly restricted makefile led to GridLayout using new/hidden API
from the framework instead of compat lib conventions and public API

Add required shims to ViewCompat/ViewGroupCompat as needed and have
GridLayout use them. Fix some general Android code style guide issues.

Change-Id: I5dd965b9c4282c47964bfd1d481e3a62725cca38
6eb3cdf42d5382aef6b6a6afd7c305dbc27885b9 30-May-2013 Alan Viverette <alanv@google.com> Initial commit for ExploreByTouchHelper class.

This helper class simplifies the implementation of accessibility in
custom views that would otherwise need AccessibilityNodeProvider. It
supports single-depth virtual view hierarchies and enforces guidelines
about what properties must be set on accessibility nodes and events.

Additional supporting code has been added to the ViewCompat and

Change-Id: If0d1f21bea5c187eecc54cac6c9e9bae96337d9b
4d43916b89d85315e1f344d992325e8ab106fb4e 07-May-2013 Adam Powell <adamp@google.com> am 2c4ea24c: am cb154e52: am 1b8262b8: Disable MotionEvent splitting for DrawerLayout

* commit '2c4ea24c49d222582c7e439e461935f18099886c':
Disable MotionEvent splitting for DrawerLayout
1b8262b87426b2f766b40d6ab4eaeac296d5c2fe 07-May-2013 Adam Powell <adamp@google.com> Disable MotionEvent splitting for DrawerLayout

Make sure that secondary touches don't interact with content in views
other than the drawer.

Add ViewGroupCompat method for MotionEvent splitting changes

Bug 8839961

Change-Id: Ia833333ef596363d0a3ce951f53f78342aca52aa
30837f1095c803f332f4a1c3f0917c8afdd50156 24-Apr-2013 Adam Powell <adamp@google.com> API changes for support action bar menus

Refactor support action bar to use standard framework menu interfaces
instead of additional interfaces. This simplifies the API and results
in fewer disjoint callbacks which could make life difficult for
library authors.

SupportMenu/SupportMenuItem are now private implementation details of
the support lib rather than interfaces used directly by app
developers. Developers must use standard support shim *Compat classes
to access new methods, and these shims are now aware of
SupportMenu/SupportMenuItem and will do the right thing.

Fix up a few other general issues and bugs.

Change-Id: I833dce76485741b680bef84c1c0ed8d81ea57616
97341bdc5bea1d7bf777de65228039142d249f38 20-Jul-2012 Adam Powell <adamp@google.com> Add SlidingPaneLayout

SlidingPaneLayout gives a two-pane layout suitable for use at the top
level of an activity layout. layout_width on children is treated as
a minimum width and layout_weight indicates how remaining space should
be divided, similar to LinearLayout.

When there isn't enough space to lay out the child views, remaining
views become sliding panels that can move over previous panels. If a
panel slides more than halfway out of view, it dims and will not
respond to normal touch input. Instead taps will slide the panel
closed making its content fully visible again.

Still todo:

* Keyboard support - navigating into a dimmed pane should bring the
pane back.

* requestChildRectangleOnScreen and friends

* Helpers for manipulating Up/Back in Activities

* Further testing

Change-Id: I4dae69e06d1cee4e7b68091f6bea70a317eab517
8a0c51a3d438802df28612e02fdf0cc8fab06ddb 24-Jul-2012 Adam Powell <adamp@google.com> Add PageTransformers to ViewPager

PageTransformer allows an app to supply a custom step during scrolling
to transform each page view in addition to the default sliding
behavior. Setting a PageTransformer also allows the app to reverse the
drawing order for pages to accomodate certain kinds of

Add setLayerType to ViewCompat. Make ViewPager use hardware layers for
scrolling when available and a PageTransformer is in use.

Change-Id: Icdcb7bf92ad4adb9d14e36c6048f7f5dd455437b
ec03704fbb4f0217d4c274d1c6cf56e6ea4dcfbd 12-Apr-2012 Adam Powell <adamp@google.com> Add support for postOnAnimation View methods for JB.

Fallback variants for older platform versions post runnables with a
timeout value lower than that needed to achieve 60fps.

Change-Id: I807a1cbe82111a29e9459de0892f253348717c7b
1935ed3af7c6545bc38adfdc6026d87a3249222f 15-Nov-2011 Svetoslav Ganov <svetoslavganov@google.com> Adding new APIs to the support-v4 lib needed by the v4 samples (support-v4 part).

Some of the samples are using APIs that are introduced after v4 but not
supported in the v4 library. Adding the minimal necessary stuff to the
support-v4 lib to compile and run the samples.


Change-Id: I103e557f8d021773d51d8383f7b6752027ca334d
2a4d8518f36346ea25a22a736453ff28f2954165 30-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issues 5158104 and 4981556 (fragment problems)

5158104: com.android.contacts: java.lang.IllegalStateException:
Can not perform this action after onSaveInstanceState at

The ViewPager can just commit without worrying about a state loss,
since it can correctly reconstruct its state later.

4981556: Fragment.mImmediateActivity doesn't get restored on orientation change

I am giving up on this thing; I just don't see how it can actually
be correct. So now instead of getting an exception about a dup
add/remove at point of the add/remove call, this will happen later when
processing the transaction.

Also add an API for controlling the visibility of menus, which ViewPager
uses to have the correct menus shows. And add a method to get the
name of a back stack entry.

Finally fix a recent problem in ViewPager with dealing with focus,
and make ViewPager smart about handling keyboard focus navigation
inside itself.

Change-Id: I280269ac64079d171e9c899ea1cff7e80246c924
eedc67283a5a49dce86c625e54596dfdea9465a7 05-Apr-2011 Dianne Hackborn <hackbod@google.com> First submit of FragmentPager class.

This provides an easy way to build a UI where the user can
swipe left or right through its elements. The elements are
implemented as fragments, and the class takes care of managing
those fragments as the user navigates through it.

This implementation also introduces a new FragmentManager
concept of a "detached" fragment -- basically a way for you
to put a fragment in the same state as when it is on the
back stack, where the framework is managing its current state
but it is no longer actively running.

Also required the introduction of new compatibility code for
MotionEvent and VelocityTracker for accessing multi-touch data.

Change-Id: I997492cfc6f1969f1a5d775385afb830f5a47795
27aea04b07c1fafa0f815aa4f80374a9e051b41c 22-Feb-2011 Dianne Hackborn <hackbod@google.com> Implement support for menus in fragments.

This uses a little trick to be able to take care of rebuilding
the menu when the fragments change, when running on pre-HC
platforms. When running on HC or better, it uses the new API
to invalidate the menu.

Also adds a little bit of a helper for using new menu APIs and
fixes the implementation of dump() to call up to the super class
dump() when running on HC.

And fix a few problems that came up when running on Donut.

Change-Id: I2420545632796b3199d5eec90aa3f3372ceedb90