History log of /frameworks/support/v4/java/android/support/v4/view/ViewPager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4d1d0e9d92e708b532fa7338804f42938efdfcbf 02-Jun-2016 Aurimas Liutikas <aurimas@google.com> Fix page snapping for large number pages.

Previous implementation suffered from float precision loss
causing incorrect results. Updated the int cast to only cast the
(pageOffset + truncator) which will always be a small number [0.4, 1.6)
thus will either be 0 or 1 after the cast. This way we avoid converting
currentPage to a float.

Bug: 29041279
Change-Id: I98f400ca8ad6ca7508fcd0de7866348ebdaf36ff
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
00559e360cf4cf7858d4bd5ddb874b85fad6e9cb 27-Apr-2016 Chris Banes <chrisbanes@google.com> Merge "TabLayout + ViewPager improvements" into nyc-dev
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/v4/java/android/support/v4/view/ViewPager.java
8f27603fc4caa4931c98a97d4482b1b01bf4bd0f 04-Apr-2016 Chris Banes <chrisbanes@google.com> TabLayout + ViewPager improvements

- Add support for arbitrary decor views in ViewPager.
Previously it had a hidden marker interface, but now
we have a public class annotation.
- Made ViewPager's internal adapter change listener public
to enable decor views to receive any changes.
- TabLayout now supports being a decor view by automatically
setting itself if it has a ViewPager parent.

BUG: 27812405
Change-Id: Ia1a369f9401ee0108544a4aacc1461db3639cc80
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
22fe451fd7118deabebe25e45c7319f7f1cd2a7e 19-Apr-2016 Chris Banes <chrisbanes@google.com> Fix ViewPager calling onPageScrolled(0)

This CL fixes the situation of ViewPager dispatching
onPageScrolled(0) just because it has not been laid out,
and thus populated. The call makes no sense in this
state anyway.

BUG: 28110875
Change-Id: I54e552ffc5355e2e6c59c4e2c7a9d28393b47ac1
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
c635c9a623f07e1cc351919f6baa73c93dcfafa5 18-Mar-2016 Aurimas Liutikas <aurimas@google.com> Merge "Start accounting for page margins for ACTION_UP events." into mnc-ub-dev
a94a44dc6f24dc1f63c29ec537c2536332437c93 17-Mar-2016 Aurimas Liutikas <aurimas@google.com> DO NOT MERGE ANYWHERE. Fix ViewPager margin drawing for cases drawAt < 0.

ViewPager drawAt value depends on setCurrentItem and it will
go negative for items before current item. Margin drawing bound
calculation was doing rounding that was only valid for positive numbers.
In a case of drawAt -0.99997 it causes the margin to be between 0 and 0.

Bug: 27611657
Change-Id: I89650ecb612f7e124ffe8267bee8e6ed9ef9f8d3
(cherry picked from commit 7f435eb14a778aec816a653871bc0c9112664c72)
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
15156089274ad6aab17edb47d4efa4ba8e297ea8 16-Mar-2016 Aurimas Liutikas <aurimas@google.com> Start accounting for page margins for ACTION_UP events.

Match the logic of ViewPager#pageScrolled() in onTouchEvent for ACTION_UP
events to start accounting for page pargins in page offset calculation.

Bug: 27675090
Change-Id: Ic15282b2cc177c35d103b0183f7aa382193ce7b5
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
107cee69f5418da3b3c23e27871bd530e1c7c2f0 03-Mar-2016 Steven Dao <sdao@google.com> Ensure ViewPager scroll event properties are properly set

- Previous behavior obtained an AccessibilityRecord and
set the scroll position properties there, but then
discarded the record.
- New behavior sets the properties by getting the record
from the event.

b/27487654

Change-Id: I7a9bc21a6230fc9e361a9a5f5d3e9ce1abdf0c74
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0bde9b4e675aa24a223352e692ad6466636dd047 25-Feb-2016 Aurimas Liutikas <aurimas@google.com> DO NOT MERGE ANYWHERE. Fix the fix of view pager scroll calculation for size changes

This partially reverts the original fix ag/842471 with a slight
modification to the case where scroller is not finished (rotation changes).

Bug: 26314718, 27354188
Change-Id: Icefc62fc39996ae6e8e51b400a2f6dd95ddf50c9
/frameworks/support/v4/java/android/support/v4/view/ViewPager.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/v4/java/android/support/v4/view/ViewPager.java
907fbd4dc38d0290e52c924ee1130f8b7a59a5e8 08-Jan-2016 Aurimas Liutikas <aurimas@google.com> Fix view pager scroll calculation for size changes.

recomputeScrollPosition only worked with size changes when
ViewPager was in a settled position. This CL changes ViewPager
to use scrollToItem to snap ViewPager to page boundaries on size
changes.

Bug: 26314718
Change-Id: Ifb87da451acfa9653985d4167ecab3b708693469
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
46bf835451f89be0405e93ed3fa8f5210f82f23e 09-Jan-2016 Aurimas Liutikas <aurimas@google.com> Always pass FOCUS_FORWARD when switching pages in ViewPager.

Bug: 26417256
Change-Id: I35a19b2a54d592dd51754fd0b669a8a4564c6e41
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0fd734ce0ab57b1bcf4a57e059cfd1a3d7c1c1b4 16-Dec-2015 Aurimas Liutikas <aurimas@google.com> Fix endFakeDrag and fakeDragBy crashes when mAdapter is null.

Bug: 26216557
Change-Id: Ia3105617b21f25b2733f07f541b432fd78c69e21
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
38cc44cffde90f6fe689b0df6b82f49481a981f7 03-Nov-2015 Chris Banes <chrisbanes@google.com> Add dynamic tab support to TabLayout

TabLayout will now automatically invalidate
and re-populate itself when the linked PagerAdapter
has it's data set changed.

Two objects Pools are used to minimize churn when the
adapter is updated.

A small change had to be made to ViewPager + PagerAdapter's
observing functionality. Observable will always dispatch
changed events in reverse added order, which means that
ViewPager is the last to know. This means that any later
added Observer can't update the ViewPager (since it
doesn't know about the data set change yet). This is fixed
by moving ViewPager's observer out of the Observable and
always calling it first.

BUG: 20908355

Change-Id: I631620ff186047ae57e928db78f5ca77a0b80306
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
51c2e6efd87dd811c8d10377945248cd26cfc6aa 23-Oct-2015 Kirill Grouchnikov <kirillg@google.com> Handle consecutive ViewPager.setCurrentItem calls.

Bug: 25113163
Change-Id: Id4711485a28c20868874e223547c220646406a3d
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
41d6425f37ff3a3c58e3bec9b9ba8ca185513482 01-Oct-2015 Mark Wei <markwei@google.com> Prevent pointerIndex out of range IllegalArgumentException in ViewPager.

Recover from an inconsistent state where mActivePointerId no longer references a valid tracked pointer.
This may happen if a child view consumes part of the touch event stream, or is doing unsafe dispatching of touch events from #onInterceptTouchEvent.

Bug: 24191418
Change-Id: I1eda1d0ae435cf1b69918f521491c24b8f90203e
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
aa1657a871b457f80209bbf452bf58fe34e226d7 09-May-2015 Chris Banes <chrisbanes@google.com> am 74563660: Tidy up TabLayout + ViewPager integration

* commit '745636602593f0b8ae508eb10266a3c7c675e746':
Tidy up TabLayout + ViewPager integration
745636602593f0b8ae508eb10266a3c7c675e746 07-May-2015 Chris Banes <chrisbanes@google.com> Tidy up TabLayout + ViewPager integration

Also added the ability to add/remove OnPageChangeListeners
to ViewPager.

BUG: 20897298
Change-Id: I51ec2117a1f49aab15f7ed1a30960330fa00c317
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
3faf61d1945577dffd78e4c71a0853ba03d7ac6c 08-May-2015 Dan Albert <danalbert@google.com> am 9cf7f2d6: Merge "Revert "Tidy up TabLayout + ViewPager integration"" into lmp-mr1-ub-dev

* commit '9cf7f2d655d042f25a91fbae49596d078c1d45d8':
Revert "Tidy up TabLayout + ViewPager integration"
92a2d7b7f62472a768e62f66681c0e1841cd57ba 08-May-2015 Dan Albert <danalbert@google.com> Revert "Tidy up TabLayout + ViewPager integration"

Build is still broken in other projects, so reverting for now.

This reverts commit 40f27ea67cb42ab88020275f63cc600fcc42adcb.

Change-Id: I94a6335d10390697e81cba177c9e059b616fedf9
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
028d1af69b6f6f8a5277681bdd9205eb236f0c34 08-May-2015 Chris Banes <chrisbanes@google.com> am 5f4bb82d: Merge "Tidy up TabLayout + ViewPager integration" into lmp-mr1-ub-dev

* commit '5f4bb82d07ae3de712e56d38b9b31b62b46b85d0':
Tidy up TabLayout + ViewPager integration
40f27ea67cb42ab88020275f63cc600fcc42adcb 07-May-2015 Chris Banes <chrisbanes@google.com> Tidy up TabLayout + ViewPager integration

Also added the ability to add/remove OnPageChangeListeners
to ViewPager.

BUG: 20897298

Change-Id: I7d944d2ebcd169c5c084000bd17f20da5c60e7ea
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
70acb0c19be3831a2080e4f902324de16bfbf62e 04-Mar-2015 Tor Norbye <tnorbye@google.com> Annotate support library with @ColorInt, @CallSuper, etc

Change-Id: Ifa25a628f89a07d3903cd71eb1c3639297fdf722
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
af9c293a9e019b88a8717b371480e954d68a052b 05-Mar-2015 Filip Gruszczynski <gruszczy@google.com> am dcb6abe2: am 823f8b54: Notify listeners when resetting scroll in ViewPager.

* commit 'dcb6abe2a8a20691afb5ff97dcb3d336313bf15e':
Notify listeners when resetting scroll in ViewPager.
823f8b54305cc0e19c4004e46b23a0affd665cd8 27-Feb-2015 Filip Gruszczynski <gruszczy@google.com> Notify listeners when resetting scroll in ViewPager.

This fixes a bug in ViewPager on small (wearable) screens, where if
you swipe very gently, it doesn't retract fully. It retracts almost to
the end, but stops a pixel (or 2 or 3) before reaching the end.

When retracting if a touch is detected, the scroll state is immediatele
set to 0. The listeners, however, are not informed about this event and
they state in the state delivered to them by the last scrolling update.

Change-Id: Ief0d40ba04a73c71ab6767d4201cabdadf8d1fb8
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
d3f114accbb35d4fbb6f84ace64aec1009020cee 27-Nov-2014 Martin Olsson <martin@minimum.se> Drop unused private member mIgnoreGutter in ViewPager

Change-Id: I5e94b49179946132600cf7720310c144fa0126c5
Signed-off-by: Martin Olsson <martin@minimum.se>
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
823b284b75bffd7b48b611b09ad8c769af28a787 03-Jun-2014 Scott Main <smain@google.com> am e41303eb: add link to view pager guide

* commit 'e41303eb1c37a18b64e99cf58fd1a155e832acbc':
add link to view pager guide
e41303eb1c37a18b64e99cf58fd1a155e832acbc 03-Jun-2014 Scott Main <smain@google.com> add link to view pager guide

Change-Id: Idb3b4628a051d1190f198cdbb069e150600f7c2a
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
a3ff3273e976adf19770651dcf473fa67b38eb22 21-Mar-2014 Tor Norbye <tnorbye@google.com> Add tools metadata annotations to the support library

Change-Id: I018ccee411da848e6ced91da316f86ae149dc218
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
f924d9c3584a3a180f52da573605aad993d2fd80 20-Jun-2013 Alan Viverette <alanv@google.com> am 973d0a58: am c62bf6ec: Merge "Implement ViewPager.canScrollHorizontally()." into jb-mr2-ub-dev

* commit '973d0a581ea7b98115a1e343dc52e32b95df16a2':
Implement ViewPager.canScrollHorizontally().
aa35c4c3bf312c24b48dc6d2af430b5bacebfaf0 20-Jun-2013 Alan Viverette <alanv@google.com> Implement ViewPager.canScrollHorizontally().

Bug: 8691982
Change-Id: I4a73ccea10dd3341268a07a55ea5f07139ce60e4
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
9c7359057712d741ea450e4a57ca99a02c0d1dc5 08-Jun-2013 Chet Haase <chet@google.com> am e22fcec1: am 12211b27: Merge "ViewPager was not repositioning the PagerTitleStrip properly" into jb-mr2-dev

* commit 'e22fcec1edc1ee18de0cd5bebb8c53b95150425e':
ViewPager was not repositioning the PagerTitleStrip properly
c8c0fc23e8ff21166a7699e324426a6a7dc65806 07-Jun-2013 Chet Haase <chet@google.com> ViewPager was not repositioning the PagerTitleStrip properly

Gmail had an artifact where animating the ViewPager in from the right caused
the title strip at the bottom to disappear at the end of the animation.
The problem was that the view pager was being redrawn at the end of the
animation (due to disabling the layer that was being animated), but the
title strip was mis-positioned off the right of the screen.

The root cause was ViewPager's layout process, which was not properly
repositioning the title strip during layout, when the scrollX field
changed.

Issue #9336914 ViewPager title strip not positioned correctly during layout

Change-Id: Idfcb70e2f28b98233fe6cb0e9b20bc2b6582ac1b
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0f86ecff5c3a1de3b53e9aede5048203cfa64551 05-Jun-2013 Alan Viverette <alanv@google.com> Disable ViewPager parent interception of touch events when scrolling.

Bug: 8692266
Change-Id: Ideca36bef7ea5bace9426eddd6b190d7ce8e80a7
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0ffb8d3adf489d2218c354fe44aa58518b9e89a2 09-May-2013 Svetoslav <svetoslavganov@google.com> am c6c52b81: am 8abf2b8c: Merge "NPE in ViewPager in accessibility mode." into jb-mr2-dev

* commit 'c6c52b81e86455d722c1ffab9ef393b5775b100d':
NPE in ViewPager in accessibility mode.
e4578af7dfd6ae3f85435a569ed8d5107bf20ec3 08-May-2013 Svetoslav <svetoslavganov@google.com> NPE in ViewPager in accessibility mode.

The code that populates an accessibility event in view pager does
not check whether the adapter is not null before referencing it.

bug:8857052

Change-Id: I7df2980e5a43836e48a404c5ba95631e5132774f
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
b4f512b4e77829b767fc6fe8f09f50a83e8e72c2 06-May-2013 Adam Powell <adamp@google.com> am ad1c9228: am f73a3517: Merge "ViewPager optimization/fix for pathological case" into jb-mr2-dev

* commit 'ad1c922888d340241206a64a8a6b69dccb2a9235':
ViewPager optimization/fix for pathological case
4f4c3a3978997e552c44726fb2862e4461497384 03-May-2013 Adam Powell <adamp@google.com> ViewPager optimization/fix for pathological case

Prune/don't generate pages to fill the desired full width to either
side if the measured width of the pager is 0. This fixes a bug in some
apps that would measure their ViewPager at width 0 in an initial pass
when placed in some layouts, resulting in too many instantiateItem
calls.

Change-Id: I87d036814b53756cac49d0a68ca9e45115f6c3b2
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
439affa93803bff0f444a0d6497a3118604637e0 29-Apr-2013 Chris Banes <chrisbanes@google.com> Merge "Fix ViewPager touch handling in scrolling parent"
9a95c60a9c9fcc7d5ca0f9aeaede854d2a47a824 19-Apr-2013 Ying Wang <wangying@google.com> Fix build.

Change-Id: I4fa24a52c64612cc8658dc3c155f616c3d4f258d
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
23f32662b0e412510094d59c478f1d5370a15244 18-Apr-2013 Chris Banes <chrisbanes@google.com> Fix ViewPager touch handling in scrolling parent

ViewPager at the moment does not handle being in a
vertically scrolling parent well. It's onTouchEvent
sets mIsDragging on every ACTION_DOWN.
This commit fixes that so that mIsDragging is only
set if the ACTION_MOVE is checked against the touch
slop and is in the correct direction.
I also added in a call to
requestDisallowInterceptTouchEvent().

Fixes 8636395.

Change-Id: I3e4d26209708b67b84da1ba8fe460eb45e11a3e2
Signed-off-by: Chris Banes <chrisbanes@google.com>
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
109e561bfa6720a7043a28dc265297d915170954 16-Apr-2013 Alan Viverette <alanv@google.com> Correctly populate VIEW_SCROLLED events sent from ViewPager.

Previously, ViewPager sent incorrectly populated VIEW_SCROLLED events
due to logic that forwarded dispatching of all events to the displayed
child page.

BUG: 8185409
Change-Id: Ibc08b55c402809f01d7c5af082713ab17a89a894
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0e44aa8a7502d4b6b9884eb18e49c655209e12c7 09-Apr-2013 Scott Main <smain@google.com> am 9cdb85b0: am 33586fb4: remove redundant/confusing links to pager classes. Although the links are technically unique, the links appear as duplicates and the added value is mostly redundant.

* commit '9cdb85b0936d6d1e20626056d01406c755b9cf5d':
remove redundant/confusing links to pager classes. Although the links are technically unique, the links appear as duplicates and the added value is mostly redundant.
33586fb4d8b42d7c65240ffcc269fe10e682b309 09-Apr-2013 Scott Main <smain@google.com> remove redundant/confusing links to pager classes.
Although the links are technically unique, the links appear as
duplicates and the added value is mostly redundant.

Change-Id: I08fc34576a8b5932e6f5f79c8233b2c092b91f19
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
f1452d17be15651c6047ec4eb7ff5892538e8265 26-Mar-2013 Adam Powell <adamp@google.com> Fix ViewPager child drawing order sorting

Fix a bug where ViewPager would not obtain its internal list of
children sorted for drawing order in time to actually draw.

Bug 8481031

Change-Id: I171f956504ef1a60be9925b88d06b97bbcdae476
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
31dac59d77ff5c1e1ae2c425fa5fc939c6ec15cd 26-Mar-2013 Adam Powell <adamp@google.com> Add some debug logging for a strange edge case in ViewPager

Monkey tests are reporting issues during focus search when we try to
offset a rect between the parent and child, that we're assuming a view
is a child when it is not. Add some logging to help diagnose.

Bug 6418084

Change-Id: Ie08931cbcf8165fe0d20d3c61858c5f32c603b2c
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
199a13cf79b43494ea381a91ee67f0da1f1d10de 12-Feb-2013 Adam Powell <adamp@google.com> Throw exception if PagerAdapters are modified without notifyDataSetChanged

ViewPager is all grown up! Fail as fast as we can if we detect that
the adapter has changed without telling us.

Change-Id: Ic48435c8437f4b0ecd38bfb66923c3c834136950
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
860155ee7a4c7968f3cbe1d8dbb0c8a35f9fec2d 07-Feb-2013 Dake Gu <dake@google.com> ViewPager: handle focus direction properly

When pageLeft() creates a new page, use FOCUS_LEFT to find the proper
child to focus on.

Change-Id: Ie124823b22759fac9351ddf64196fb1e3a9c752f
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
44fc13985aed09d1fda3fdf2fd900ec13720a5df 30-Jan-2013 Adam Powell <adamp@google.com> Make ViewPager scroll to the current item after deferred populate

We defer the initial populate and setCurrentItem calls to first layout
when applicable. Make sure that we're scrolled so that the page is
visible in this case.

Bug 7974296

Change-Id: I4435a16cad325bd5c788082b553c184395ebdad1
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
a20bbdbf66ca21c8fc10973fb66cafe4018c023a 16-Jan-2013 Adam Powell <adamp@google.com> am 0bb301ec: Remove cruft from ViewPager

* commit '0bb301ec35dcaf2ea9c2010790d7eadb1918b8cb':
Remove cruft from ViewPager
0bb301ec35dcaf2ea9c2010790d7eadb1918b8cb 11-Jan-2013 Adam Powell <adamp@google.com> Remove cruft from ViewPager

Change-Id: I9ea9d5469db97188b85a375edc5f38cc7e9bddac
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
6a5642de021e573f3981d863923161db1e60f326 18-Dec-2012 Adam Powell <adamp@google.com> am d267c93c: Fix a bug that could cause ViewPager to select the wrong page

* commit 'd267c93c774c51addeb3cc6bfa64d729ce238d54':
Fix a bug that could cause ViewPager to select the wrong page
d267c93c774c51addeb3cc6bfa64d729ce238d54 17-Dec-2012 Adam Powell <adamp@google.com> Fix a bug that could cause ViewPager to select the wrong page

Change-Id: If9cf9bed7ee2a932be0666cdca38be748e600a63
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
9236f275892648cb06fe01da6196994f14cd56cc 14-Dec-2012 Adam Powell <adamp@google.com> am 0f1e7f18: am 76a83388: am 16991ca8: Tweak ViewPager behavior for more DWIM goodness

* commit '0f1e7f18cfe2033b23cd0495633eb352928d99ac':
Tweak ViewPager behavior for more DWIM goodness
76a83388cc7a878f51a052d2345d097ef42e2ad1 14-Dec-2012 Adam Powell <adamp@google.com> am 16991ca8: Tweak ViewPager behavior for more DWIM goodness

* commit '16991ca86a49023bf6eb47b4e215bb1f2209de6d':
Tweak ViewPager behavior for more DWIM goodness
16991ca86a49023bf6eb47b4e215bb1f2209de6d 14-Dec-2012 Adam Powell <adamp@google.com> Tweak ViewPager behavior for more DWIM goodness

* Enforce a more deliberate motion in the direction of paging to begin
paging

* Use a pumped-up minimum velocity threshold for flinging to next page

* Bias dropped paging (below velocity threshold) toward staying on the
current page

Bug 7726180

Change-Id: Ie38f77d1a52a7152e86a6b9c40b0941e24138532
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
fdd9223ac2d8fc0c7a74a076c1cd4defc7acf499 12-Dec-2012 Adam Powell <adamp@google.com> Fix for ViewPager population error on first layout

Before first layout, ViewPager doesn't have enough information to
properly instantiate enough pages to fill at least the offscreen page
count pages width worth of content to either side. (Width is needed.)

Defer this initial population when setting an adapter and a few other
cases. Also avoid additional calls to populate when they aren't
needed/will be redundant.

Bug 7724771

Change-Id: I8cc565c9f3f40e9466e756625716a3d07583ffd6
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
493d713246b40d9fe67d5a8ad84e12d3f44905a9 29-Nov-2012 Chet Haase <chet@google.com> am 37a7c5d2: Fix use of removeView() during layout

* commit '37a7c5d234e23a4a3290bc75b064b355870e2622':
Fix use of removeView() during layout
37a7c5d234e23a4a3290bc75b064b355870e2622 26-Nov-2012 Chet Haase <chet@google.com> Fix use of removeView() during layout

Align removeView() with addView() to make sure we call the proper
*inLayout() version when we're currently undergoing layout. Calling
requestLayout() during layout considered hamrful.

Change-Id: Ie0207b32f452be03444de9b42b2aaa0eff49d788
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
866f6f6646e8de62ca6abb01a45fca43f4caf2ba 10-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> am 71d54737: Fix bug #7297028 Settings app crash when swiping between Downloaded / Running / All for Apps

* commit '71d54737b6d60ec99799aabdf9b48d2da26d8ccb':
Fix bug #7297028 Settings app crash when swiping between Downloaded / Running / All for Apps
71d54737b6d60ec99799aabdf9b48d2da26d8ccb 09-Oct-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7297028 Settings app crash when swiping between Downloaded / Running / All for Apps

- fix draw invariant for ViewPager (you cannot layout during drawing)
- add more logging

Change-Id: Ibfc38a16b40b8c63b0ecbf9b423d8867c28b66ed
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
143e211e051154f664882455ca89d6888a8a4c51 04-Oct-2012 Philip Milne <pmilne@google.com> am a862399a: Fix for bug 7000638: ISE crash in Gmail.

* commit 'a862399a9f738aa7e14012bc30491627f9dc6bef':
Fix for bug 7000638: ISE crash in Gmail.
a862399a9f738aa7e14012bc30491627f9dc6bef 03-Oct-2012 Philip Milne <pmilne@google.com> Fix for bug 7000638: ISE crash in Gmail.

Change-Id: Id3ad574065508e4d0de07e670c3c9e43e26fd2b5
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
2e5796951e40a565f38f006d9a880d1d42deec9a 25-Sep-2012 Adam Powell <adamp@google.com> am e68f24ca: Refactoring in ViewPager for more descriptive names

* commit 'e68f24ca44991e124882736d9e97e72191582d73':
Refactoring in ViewPager for more descriptive names
e68f24ca44991e124882736d9e97e72191582d73 25-Sep-2012 Adam Powell <adamp@google.com> Refactoring in ViewPager for more descriptive names

Change-Id: Ibf937811706281e3123a88ba774383cf5c842862
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
becb552984e4693c87f5f0ae38b6ebf4f719b740 14-Sep-2012 Dake Gu <dake@google.com> ViewPager: fixed paddingLeft/paddingRight handling

This effort is to show children correctly when "clipToPadding=false",

In current code, the child is measured excluding paddingLeft and paddingRight.
But there are couple other places that didn't take padding into consideration.
This CL fixed the issue.

This is a high risk change, don't merge into jb-mr1-dev.

Change-Id: I0a9413ded88c999a37abbeecaec7a352d1922ac8
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
64f49357df06a29f989f688379451024a178bcd8 16-Sep-2012 Adam Powell <adamp@google.com> Handle "windup" motion in ViewPager

Change-Id: I8f59080aa07c520c85e3fc4cc02aeebd8e4a4942
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
7e464c3f9ff67d08c61f1c7a57dee0532c3c9449 25-Jul-2012 Adam Powell <adamp@google.com> Fix child drawing order for ViewPager when a PageTransformer is present

Change-Id: I9eb4edc89f75c5bb3827e1254495ae7cef0172f4
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
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
transformations.

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

Change-Id: Icdcb7bf92ad4adb9d14e36c6048f7f5dd455437b
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
efea2e772645ccd2d0de3e92fa8382d5444eab11 07-Jun-2012 Adam Powell <adamp@google.com> Error check in ViewPager

Change-Id: Ic8fe905bc0520d1028ef3e1bdae9b34da990105e
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
dd24aab287e08428b20270b9f12921af13fbd72b 05-Jun-2012 Adam Powell <adamp@google.com> Fix keyboard navigation in ViewPager

Fix a bug where next focusable views were not being detected properly.

Bug 5832688

Change-Id: I3a2019075413ece912efd2d182e4008373d55526
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
6e7700ca575523895f8ebc5696e3e57aeccf30c0 04-Jun-2012 Adam Powell <adamp@google.com> ViewPager shouldn't drop motion that was detected during intercept

Fix an issue where a large motion that triggered touch interception
and scrolling would not scroll the view. This can happen if the app
is being particularly unresponsive at the time and MotionEvents are
batched.

Change-Id: Ib350e75f6d83da81df11e3c7e618184f414ab670
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
8d3dd8427b57f463f0d4959c0ad8796008472caa 04-Jun-2012 Adam Powell <adamp@google.com> Fix some ViewPager positioning and title strip bugs

Bug 6589201 - fix some bugs with page offsets when page margins and
the pager's size change. ItemInfo#offset always holds the offset with
the margins already taken into account; don't double-count them.

Bug 6596152 - PagerTitleStrip shouldn't ask the adapter for a title
for an item index that is out of range.

Allow users to "catch" the pager properly after a fling without
resetting position to the nearest page.

More consistent/reliable tracking of scroll settling state.

Use VelocityTracker properly when handing off between
onInterceptTouchEvent/onTouchEvent

Get rid of some dodgy rounding fudges.

Change-Id: If22ab6b8b3de7dd3a8863032e10e59e5eda06f21
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
a56d6faa9df608aaa2907864669800abb68acec7 16-May-2012 Adam Powell <adamp@google.com> Perform rounding in a more predictable way when drawing ViewPager margin
drawables

Prevent extra unwanted borders along the sides of pages when a margin
drawable is set.

Bug 6422166

Change-Id: I6b04b5591feafa5447fd5bb587f9b71bdc069fe1
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
25121559b53b9f6c7ef7159203d42e11b9aee281 15-May-2012 Svetoslav Ganov <svetoslavganov@google.com> Adding support for accessibility scroll actions to ViewPager.

1. We have added scroll actions in JellyBean and this patch
adds supports for such to the ViewPager in a backwards
compatible manner.

2. Added the required accessibility API to the support library
to implement the above functionality.

bug:5932640

Change-Id: I569af5622914f7463daefdd74d55d807d273bfb5
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
8f19b17dbc34bfc7e5caacbf83a7099e5cb5a47c 13-May-2012 Adam Powell <adamp@google.com> Add paging gutters to ViewPager.

With the new Android Design guidelines, conforming apps pair tabs with
a ViewPager to easily move between tabbed content. However taken to
its natural conclusion this limits the types of content that can be
placed into a tab. Unbounded scrolling content such as a map suddenly
cannot be used, since there is no way to reach the "edge" of that
content in order to start paging. In addition, bounded but very wide
horizontally scrolling content can make paging cumbersome.

Enter paging gutters.

A gutter is defined as the 16dp space along the left and right edges
of a ViewPager, or 10% of the available horizontal space, whichever is
smaller. If the user begins a drag within a gutter, the pager will
take over and allow the user to switch pages without reaching the edge
of horizontally scrolling content. This provides a default "edge
swipe" navigation that may be used in any ViewPager regardless of
content.

Bug 6486971

Change-Id: I27a393445e7d379204b42fd3751acd4c1b4fa69a
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
d84ef6c972b75c0ddeee88db2d66d40fff7519a8 13-May-2012 Adam Powell <adamp@google.com> Fix a ViewPager bug repopulating after a data set change that removed
items.

Bug 6484624

Change-Id: Ibeee22e75ca77786f5b80fcbd601b8ad976fb636
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
1e300b0aca2f34bfe65885c5405044cfe5585224 10-May-2012 Adam Powell <adamp@google.com> ViewPager fix. Oops.

Change-Id: Ie7213d05b0ad6b54cf4e3585590c3a12f92c97a2
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
1a1c2acbc15f8bc9dba05d09dcb18e340474e1c6 10-May-2012 Adam Powell <adamp@google.com> ViewPager data set change fixes

Clean up ViewPager data set change operations a bit and update
FragmentPagerAdapter to allow for items changing positions within the
adapter during a data set change.

Bug 6347192

Change-Id: Ib0aaa31190fca561f9b2c6c94f37e0b5eb1d1e90
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
5f6568e7e269783e2668527461878cadfbe65215 10-May-2012 Adam Powell <adamp@google.com> ViewPager size changes

Fix some bugs that happen when ViewPagers change size that could
cause pages to become misaligned.

Bug 6335994

Change-Id: Iada902dea1436858b902d2d85c81418a179af5a9
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
b469af6dc2f8cda4020a78fb4582c1483089fd6e 12-Apr-2012 Adam Powell <adamp@google.com> Post invalidations on the animation tick if available for
StaggeredGridView/ViewPager.

Fix interaction with nested scrolling in ViewPager.

Finish settling a ViewPager that is close enough to the end of a fling
when touched.

Change-Id: Ia68be871c92cdb448d4030fdc4b806c78ea69c1a
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
4783095cc69fa85e484132337526c94d42d41c43 08-Feb-2012 Adam Powell <adamp@google.com> Fix a bug when a ViewPager adapter is set to null during scrolling.

Related to bug 5979875

Change-Id: I8b013d2704bcaf39a2c78fabf42716814c944275
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
31bb17f88734747206586eeb3eb57123e3cc2434 01-Feb-2012 Adam Powell <adamp@google.com> Pin the last page to the right edge of a ViewPager.

Change-Id: I7e8fbe783b711a9dd57c76f259f20962d9c3dede
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
6bd60735de55d6621a4dffb0f6f4494decda484a 31-Jan-2012 Adam Powell <adamp@google.com> Fix bug 5918316 - bad offset calculation in ViewPager

Change-Id: Iec682c088d2173100eb65a902e1b34a88a2ff692
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
ad079a869adf67a87a2721342de27970a3ba1844 31-Jan-2012 Adam Powell <adamp@google.com> Bug 5718838 - NPE in ViewPager#pageScrolled

Change-Id: Idac5c3947267de6b4660ddce2453c6ca70f09369
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0f034dc2c69044597a91649b8c073ae5e98a2f25 11-Jan-2012 Adam Powell <adamp@google.com> Fix fake dragging in ViewPager

Change-Id: Iac73e4d71d97a1975761e6691b821881e4fbf1de
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
3d9e557a9a9152db585264987d64f81fa86c73b5 13-Dec-2011 Dianne Hackborn <hackbod@google.com> resolved conflicts for merge of 402ac589 to master

Change-Id: I65c0a15f5a2c91d386138bf6b522d6859dbcad76
7dc96cc2410f551eefaa973ddc144146ad72d1ec 13-Dec-2011 Dianne Hackborn <hackbod@google.com> SDK only: fix up support documentation and visibility.

Now that the support library appears in the SDK documentation,
it is worth cleaning up some of its java docs.

Change-Id: I63d4d04be8ee69abf9385597fddbddcaa030477f
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
91eec7fd0b6ffdbb44cd13777950552f74f654e6 02-Dec-2011 Adam Powell <adamp@google.com> ViewPager bugfixes and API clarifications

Bug 5701216 - ViewPager resizing. Don't try to resume a current
scroll position if we don't have any active items.

Treat a new adapter as a new first layout when setting the current
item; if the pager hasn't had first layout with the new adapter yet
setting a current item should not animate.

Change-Id: Iecb01b5422301f679b5e3d108ee3baa94e3a8364
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
23b42ec742c2047d6bb9b364c9609e6e0af13b9d 01-Dec-2011 Adam Powell <adamp@google.com> Support vertical gravity on PagerTitleStrip

Bug 5687387

Also have the text components baseline align and fix a few other small
issues.

Change-Id: I9dcf34c6f2f9ff7f881c4870838b916071054b0b
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
a4a06a94df00575480d789b60ea25ce59184df1f 22-Nov-2011 Adam Powell <adamp@google.com> Add variable-width pages to ViewPager.

Override PagerAdapter#getPageWidth. Default implementation returns
1.0.

Add more programmatic configuration settings to PagerTitleStrip:
* setTextSpacing
* setNonPrimaryAlpha
* setTextColor
* setTextSize

Change-Id: Ic05be8059e5b87523225e92dc906940c95349f76
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
035f6aa81bbb439d2aa20dcd2eac4459a76d561e 10-Nov-2011 Adam Powell <adamp@google.com> Fix bug 5547745 - Use Launcher Workspace style for ViewPager fling
behavior

Change-Id: Ib3fd7875bd951685830e1c28329894ae6f9d02ae
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
583d8a1ff64c7c59dd4e11759f3d8e994ce878d9 17-Nov-2011 Adam Powell <adamp@google.com> Bug 5327146 - ViewPager API tweaks and docs

PagerAdapter previously took View instances as parameters to several
of its methods leading to lots of casting to ViewGroup in adapter
implementations.

Change these to take ViewGroups. Default implementation calls through
to deprecated stubs with the existing signatures, allowing current
adapters to keep working unmodified.

Add some documentation to PagerAdapter to explain how adapters should
be implemented and the basic mechanics behind ViewPager.

Change-Id: If18a3e4d18a0f84b781518833a23184832808838
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
5de8804b248eebaf7c29113ec80a0dff3a03c97a 09-Nov-2011 Adam Powell <adamp@google.com> Fix bug 5570272 - Monkeys, older devices, and ViewPager

The focus finder had a bug handling FOCUS_FORWARD and FOCUS_BACKWARD
before Android 3.0. Ignore the tab key on those devices.

Change-Id: I68cc5dd09392e794498181d92eee7e790198515d
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
a7aea206661d601755bfac4165092d9130cba2bc 02-Nov-2011 Adam Powell <adamp@google.com> Fix bug 5521154 - changing adapters in ViewPagers with title strips

Don't remove decorative views from a ViewPager when an adapter is
set to null.

Change-Id: Icf44aabf18adbd67fe156bcf48636418d9911aff
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
abc968f1eba800c34a4008deb43b015da5d23a5f 26-Oct-2011 Adam Powell <adamp@google.com> Defer starting fragments in FragmentPagerAdapter for offscreen pages.

Add FragmentCompatICSMR1 to work with deferring fragment starts.

Fix some slightly dodgy layout behavior in ViewPager when extra child
views are present.

Add deferred start feature to support library fragment/loader
framework.

Change-Id: Ied454a6f3e11024eafc970ed9d091788c2d80bab
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
862ffa0efd58922b8ec119bf6fa6695c316423f7 25-Oct-2011 Adam Powell <adamp@google.com> Fix bug 5512616 - monkeying with measurement

Fix a ViewPager bug where a stale value was being used when measuring
child views and angering the monkeys.

Change-Id: Ib8cf4827dfab3ccddd879dbedac4b631e489aa3b
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
3ce9274ccb8034c1787415c77307bbda36071bdd 25-Oct-2011 Adam Powell <adamp@google.com> DO NOT MERGE - cherry-pick Fix a bug where ViewPager scroll direction
could be unpredictable.

Make ViewPager track velocity before touch interception occurs so that
the distance traveled to cross the slop threshold is properly
accounted for.

Change-Id: I2946784ab6c492d248697b5dd7d121f501d484c7
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
1ccb8bcb79557d861de7f271c13e2fd8e54e012a 24-Oct-2011 Adam Powell <adamp@google.com> DO NOT MERGE - cherry-pick Fix bug 5504575 - ViewPager marks fragments
as decor on rotation

ViewPager should be less zealous about marking child views as decor,
specifically when fragment restoration is involved outside of pager
population. Introduce an interface that custom views can implement to
become decor by default. Leave it package-private for now.

Change-Id: Ib08eb1396824966e4324d6345bd3a33dd329a6e6
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
8fffe01871be1806a1bdefa1f7213b660fcf5ac0 17-Oct-2011 Adam Powell <adamp@google.com> Title strips for ViewPager

Add non-interactive title strips to ViewPager. This includes the
following moving parts:

* Extra decorative view support for ViewPager. Decorative views may be
supplied as child views of a pager in XML layout.

* Some package-private plumbing for communication without disturbing
any pager callbacks that apps may be using.

* The addition of PagerAdapter#getPageTitle to supply title strings
for pages. (Defaults to no title for each page.)

* The view PagerTitleStrip, to be added as a child of ViewPager.
The developer can supply textAppearance/textSize/textColor etc.
as well as layout sizing and gravity information this way.

Change-Id: Id28d7f1ed996869f3f60bf99252340308f292d19
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
9508e3e642f5093e3181b4d5a3777bd84eedbcc6 17-Oct-2011 Adam Powell <adamp@google.com> Fix bug 5469634 - ViewPager doesn't call startUpdate/finishUpdate for
dataSetChanged()

Change-Id: I164be97312afe280a1dafbf47a8838a0e0e978d9
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
1cbf48f28f6ef523af2a4aafa98c5437964cb48a 11-Oct-2011 Adam Powell <adamp@google.com> Bug 5278437 - Tweak ViewPager fling physics

Make ViewPager behave more like the launcher workspace.

Change-Id: Id3c6e34709f091e31a0210cdc88276e89f7842aa
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
390dc3748e6dea81760eb1773d55fcbd42976388 29-Sep-2011 Evan Millar <emillar@google.com> Fix onPageScrolled() parameters when page margin set.

Change-Id: If9f0c6fd22afc4d17797b099e8db80ab5a3430ad
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
329da4d5431ae7923279b56b45b84e70c52f8eee 26-Sep-2011 Adam Powell <adamp@google.com> Add support for margins between pages in a ViewPager.

Apps may also supply an optional Drawable that will fill the margin
between pages.

Change-Id: I83ac0ff4fabf6bb7fb4a8c17e84d6908190e60dd
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
29a6184d74279156a9297dc67398712fb047fdc0 19-Sep-2011 Adam Powell <adamp@google.com> Bug 5300610 - Swiping between pages of a ViewPager can be slow

Add setOffscreenPageLimit to ViewPager. This allows apps to specify
how many pages will be kept active to either side of the current page.

Normally this is not needed, but the pathological case for ViewPager
is an adapter with a fixed set of 3 pages when this limit is set to 1.
Every swipe from an edge will page in the furthest item, forcing it to
relayout. setOffscreenPageLimit allows these apps to keep more pages
active and skip extra layout passes.

Change-Id: I319181ce354b9004f1b7a26cbfd0c1c399cb293f
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
f98be2efe67cf4ce160d7ea0b1fba5b46c92a01b 16-Sep-2011 Adam Powell <adamp@google.com> Fix bug 5244365 - Don't populate a ViewPager in onAttachedToWindow

This can result in multiple calls to onAttachedToWindow on child
views; one originating from the addView call and the second from the
continuing dispatch of onAttachedToWindow to the ViewGroup's children.

Change-Id: Iab15a5b222fd2f12c9e92d046df131695759df0b
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
efd6fc3b965239397c398f3b6fcbf1c9e66864ca 07-Sep-2011 Adam Powell <adamp@google.com> Remove requestChildRectangleOnScreen from ViewPager

This caused some unintended consequences around editable TextViews in
particular, plus it doesn't make a lot of sense for a view in a side
page to be able to steal pager focus so easily.

Fixes bug 5245437

Change-Id: Id9605c3d1d0bc449becd9a11a41d8bf0f6509488
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
560114f591be31d0fb73c26a1ee1cc0a15184aba 03-Sep-2011 Adam Powell <adamp@google.com> Make ViewPager aware of EdgeEffect on ICS devices.

Add EdgeEffectCompat for apps that also want to selectively show the
ICS-style edge effect.

Add ViewCompat methods for checking/changing over scroll modes on GB+

Change-Id: If0de62c389c9eaef4593f2321ee99787b13b2418
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
218c1e661578e2a17928f7dbb590b43d1c79aeb7 02-Sep-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5238823, #5100340 and #5249654.

5238823: java.lang.NullPointerException at...
...android.support.v4.view.ViewPager.pageRight(ViewPager.java:1335)

5100340 Leaking reallyStopped in FragmentActivity

5249654 ViewPager resets focus on layout when descendant of...
...fragment.getView() is focusable (FragmentPagerAdapter bug)

Also there was a bug in the "really stopped" thing that was
previously introduced -- fragments wouldn't stop their loaders
until hitting that state, but they wouldn't go into that state
if the fragment was deactivated or put on the back stack without
the containing activity really stopping.

To fix this, we now implement the really stop facility as
an actual state, using the ACTIVITY_CREATED state, so that we
can know when to do the really stop for both cases.

Change-Id: Ia9bd55f41ad30c3ce07f99b6ac6d9113b15fe46d
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
3040c142491acd4a09e7d0add073be0067aec2d5 02-Sep-2011 Adam Powell <adamp@google.com> Fix bug 5248444 - ViewPager reported scroll state out of sync for some
fake drags

Change-Id: I3801a624137506763470110e622da125f12775d2
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
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
android.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1201)

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
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
481243c175651c5de0741ab9390eb10f5b024d98 28-Aug-2011 Adam Powell <adamp@google.com> Improve ViewPager accessibility and focus behavior.

Change-Id: I2b0847f2a02c894b2d7de3ca978636347151a649
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
b743165c9f754c5503d4d056f263f7a328cafca6 13-Aug-2011 Minh Pham <phamm@google.com> Fix bug in ViewPager

- If the current adapter has less than 3 items, then we need to repopulate even when the current item doesn't change.
Bug: 5160404

Change-Id: I12cb747b8d99c07266f3ceaeeb4d2e3c3292594d
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
66c0e6a0a5fd20c66b6c86133b8bd91fe303e430 04-Aug-2011 Minh Pham <phamm@google.com> Fix bug when changing position

- mItems has the assumption that its items are sorted by position. This assumption might be break when onDataSetChanged()
Bug: 5085158

Change-Id: I54e25916414def7acdb05e35ef8e9fa8a1155186
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
cf2312ee850d26c9d1a2413c996d41397e816fb5 03-Aug-2011 Minh Pham <phamm@google.com> Make canScroll protected

- This allows apps to override canScroll with special case and can enable swiping wide content works on pre-ICS devices.
- Minor cleanup
Change-Id: I9f03619ee603a7618d15bc30b1ac1996859668d6
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
053e500a0e25cabf53139f57dc474a0b28751b91 19-Jul-2011 Adam Powell <adamp@google.com> Fix bug 5042520 - bug in ViewPager orientation changes

Change-Id: I260798ea0f3d7798021b7a4ab58e15767d9227c3
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
9bc74aa50cd69dbd1d813102718c8dbf94c42aba 18-Jul-2011 Adam Powell <adamp@google.com> Fix bug 5022052 - handle ViewPager size changes when an animation is
in progress.

Change-Id: Ibc5a432790f830a755cb1aa8be67a45100445fe6
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
97d6e631c6a0f698ae6fb249617f1596cb9c1cf1 28-Jun-2011 Adam Powell <adamp@google.com> Fix bug 4966082 - provide options to select a new page in a ViewPager
without smooth scroll.

* Any setCurrentItem calls before the first layout after being
attached to a window will be immediate. This lets apps set up an
initial state.

* Add a setCurrentItem overload that can optionally skip the smooth
scroll.

Change-Id: Ic7c592c450bbd333785665a95b2f204d1618c120
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
69b7a33f67a5577ceb2bd43ff389d89b592f85b1 17-Jun-2011 Adam Powell <adamp@google.com> Add fake dragging to ViewPager.

A fake drag lets an application simulate (or delegate) a touch drag on
the ViewPager. This makes it easier to implement other widgets that
scroll alongside the pager in parallax while letting the pager control
the overall motion and fling behavior.

Change-Id: Id75d4d15171493fb66503fb77c7827cc9eea5b4b
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
871a68b5daafd810623d680207652f87eb2d11cc 17-Jun-2011 Minh Pham <phamm@google.com> Reset scroll position when clear state

- Scroll to (0, 0) when setting adapter to null.
Bug: 4690349

Change-Id: Ia06d079b86491696d7509385e08ce7d1227177b1
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
bd4398ce660db91dabde5db1e87890d5df0b0823 16-Jun-2011 Makoto Onuki <omakoto@google.com> Add ViewaPager.getCurrentItem

Change-Id: I9ae744e2ed081866589b6ad8f3767e199b2dd148
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
0d6d2990ddacd3f419879149137f09a30c061436 16-Jun-2011 Minh Pham <phamm@google.com> Cleanup ViewPager when switch adapter

- Destroy all items in the old adapter
- Clear the internal list of items
- remove all views

Change-Id: I9608b03bd2b2fcb1949f8c7c2d59d49914d27508
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
47dc57337c13a2760ea3512ad84d6aa9f24ccd28 16-Jun-2011 Adam Powell <adamp@google.com> ViewPager tweaks and API changes

Listener now receives item selected events when the pager believes the
current item has changed rather than strictly at the end of the
animation.

Scroll state change events are now fired when the pager is idle,
dragging, or settling into place.

Multitouch scrolling does not allow the pager to be dragged beyond
active elements.

Change-Id: I135452b78ffed94260a5e7537da43211dda7eb5c
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
677ada6ea45f3889fb5118e85a3aa706f99e4d72 15-Jun-2011 Makoto Onuki <omakoto@google.com> Fix NPE in ViewPager.onSaveInstanceState

Change-Id: Ifee62477291f970873b5fdeba8336800d1b8643e
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
bc889e39e279fcf8c3d35fc11d8052c002eddf38 14-Jun-2011 Adam Powell <adamp@google.com> Add support for horizontal scrolling within a ViewPager (ICS-only)

Change-Id: I7ceb2eb65536a2dc7a9323202c1999071cae237a
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
3661ad6c9143d58f741568f940f77ca9d38dec47 11-Jun-2011 Adam Powell <adamp@google.com> Add ViewPager features.

Support changing data sets in a ViewPager adapter.

Add listener interface to respond to scrolling.

Change-Id: Ib048d938e5721f379a446842d1bd7e80b923627d
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java
5c1637087453de15e31861f073eae5133c4e9f7b 06-Jun-2011 Dianne Hackborn <hackbod@google.com> Move PagerView down to the v4 support lib.

Adds in standard adapters for using PagerView with the fragment support library.

Also bring in the most recent HC fragment API and impl changes so that the support
lib matches it.

Change-Id: Id8a590378b8c544a92df4f3c11af323c930aa5fd
/frameworks/support/v4/java/android/support/v4/view/ViewPager.java