History log of /frameworks/support/fragment/java/android/support/v4/app/Fragment.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c2986284e6cbb4fd73b5db0145bc01ca83fab59d 25-Aug-2017 Sergey Vasilinets <sergeyv@google.com> Make support lib lifecycle-aware

Test: refactoring.
bug: 34416241
Change-Id: I4a997ec4fad76d2b040d956c63beae3c3f54528e
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
4ddb624aec37203fcd237663264924a850aa3961 19-Jul-2017 George Mount <mount@google.com> Merge "Fix Fragment.onCreate() not being called in some cases." into oc-support-26.1-dev
am: 155c46b292

Change-Id: I8c010b7378e1a058d402959faeb0c8f2b95ea069
e97d1f2defa08e9bff9d39d6157981e30407e90a 17-Jul-2017 George Mount <mount@google.com> Fix Fragment.onCreate() not being called in some cases.

Bug 62798751

When an application process has been killed with a retained instance
fragment on its back stack, and a configuration change causes
state save, the retained instance fragment was not calling onCreate()
when it was popped back into existence.

The cause of the problem is that the mRetaining flag was being set,
and when it was supposed to go through onCreate(), it was skipped.
This CL uses a new flag to judge whether or not a Fragment has
called onCreate() or not.

Test: ran fragment tests
Change-Id: Ia66a1f474d815f657b6962097139c796f7fa198b
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
fd6aeec1babf41ea09cddd1cf59c61de7bab3407 28-Apr-2017 George Mount <mount@google.com> Merge changes Ia81f2cd7,I26f41bec into oc-dev am: 8ee2102193 am: 1fe9423119
am: d884a86d8d

Change-Id: Id1a5e330a79b17f5032b28e3c627b7fd35293fac
fda5be2466024a656152015c45a7681361d399bb 26-Apr-2017 George Mount <mount@google.com> Address API council feedback.

Bug 37636027

Change FragmentTransaction#setAllowOptimization() to
FragmentTransaction#setReorderingAllowed().

Framework Change: I24c35aad95ffa14d2e2fa092ae71d3d459e6d648
Test: ran fragment tests
Change-Id: Ia81f2cd7bd3c97ad2f121caa3a943aead0f8d100
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
5ad3348931d4e6381536baf8c64a8c4e5d606919 21-Apr-2017 Aurimas Liutikas <aurimas@google.com> Merge "Fix/suppress error-prone warnings in support-fragment." into oc-dev am: 867716f017
am: 740c1ea7b4

Change-Id: Ia3f923891b18b86eeee3a99b25f4c30fa9a04dca
867716f017ea85e3481369e5fb3712563832212d 21-Apr-2017 Aurimas Liutikas <aurimas@google.com> Merge "Fix/suppress error-prone warnings in support-fragment." into oc-dev
2119d9937079daf951cfcc1da8aa5456d125f566 21-Apr-2017 George Mount <mount@google.com> Merge "Add animator support to setCustomAnimations()" into oc-dev am: 574269be4c
am: 555c66e03c

Change-Id: Ie2b3d01922a26d0807dcec40e14589922fa9416c
15e593ea3575512d7072240d1db9d74fad8749a3 12-Apr-2017 George Mount <mount@google.com> Add animator support to setCustomAnimations()

Bug 37280782

This adds animator support in setCustomAnimations() to work
in nearly the same way as framework fragments. The difference
is that onCreateAnimation() is called first, then
onCreateAnimator() if onCreateAnimations() returns null.

Test: ran fragment tests
Change-Id: I23becb7a3b282a5435758b202771f11f69b5094c
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
b7a2c474fc66d5b7f2a57f2c212f8ac5a9e6de70 31-Mar-2017 Aurimas Liutikas <aurimas@google.com> Fix/suppress error-prone warnings in support-fragment.

Bug: 37537860
Test: ./gradlew assembleErrorProne has fewer warnings now
Change-Id: I57851ff02c821b6fbeb824391a470bf52a75e789
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
e3b17e1d43d77754df11544cf06e9658e52a4ac5 07-Feb-2017 Aurimas Liutikas <aurimas@google.com> Move FragmentState out of Fragments.java

Fragments.java contained 2 top level classes FragmentState and Fragments.
This CL moves FragmentState into its own java file. On the plus side we
will have one top level class per file as mandated by Google style, on the
downside per line history will be a bit harder to do for FragmentState class,
however it does not seem to have a lot of logic so it should be an OK loss.

Test: None
Change-Id: I6b83c9b2478af66bc68f9d91cf12484bb4a23532
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
bae5c5f73f48516194fdf5c7cfb6b3b7d9878537 18-Apr-2017 George Mount <mount@google.com> resolve merge conflicts of 0eb50f95ba to oc-dev

Test: Ran fragment tests
Change-Id: I7a7e25bf6b99c6762f771cf818524739e6c1d56d
8b60e88655f6d4191e55b1dd8706e4ae2ae21b04 13-Apr-2017 George Mount <mount@google.com> Adds getLayoutInflater() to return a cached value.

Bug 37156970

Many applications need to get the LayoutInflater used for
fragment View inflation. onGetLayoutInflater() can be heavy
weight, so a version that caches that last value is added.

Test: ran fragment tests
Change-Id: I11d719d7416a5bb3b65f37a78e6ed96a69c32332
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
cfedb8d5ab2b14e025e8202fb6d0a2356e56c18f 04-Apr-2017 George Mount <mount@google.com> resolve merge conflicts of 0765353c00 to oc-dev

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I7574a0666e2e029ce7ea0ecbce6aaf1cdac98a93
0765353c002bfdf681c982565810aa4be3499dd0 01-Apr-2017 George Mount <mount@google.com> Call noteStateNotSaved on child fragment managers.

Bug 36740474

When onNewIntent() is called, it calls noteStateNotSaved on
the FragmentManager. It wasn't propagating that to child
FragmentManagers. This CL properly propagates the
noteStateNotSaved().

Test: ran fragment tests
Change-Id: Ibe0794c02059f5787e144d1ee63980990fe2a04a
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
0abeed582ee0a105edb41181d76e8ee034750f22 28-Mar-2017 George Mount <mount@google.com> Rename getLayoutInflater() to onGetLayoutInflater()

Bug 34703669

Change the name based on API review.

Keeping getLayoutInflater() temporarily until apps have
an opportunity to change their implementations.

Test: ran fragment tests
Change-Id: I675d20e94dceaf7178f9c30123c7483d0565aa64
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
412addbcb02eb52d1238040e8b0720c12fd2a97f 28-Mar-2017 George Mount <mount@google.com> DO NOT MERGE: Rename getLayoutInflater() to onGetLayoutInflater()

Bug 34703669

Change the name based on API review.

Keeping getLayoutInflater() temporarily until apps have
an opportunity to change their implementations.

Test: ran fragment tests
Change-Id: I0c4e8c884a3f45195426ad565f36b432b62b735a
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
4fbf64b54006515873b6e37fc3dd1248f639e30b 23-Mar-2017 George Mount <mount@google.com> Fixed log warning for calling doStart() twice.
am: b51206c625

Change-Id: I2d569cd2bbebfe13970ab1c8e8145aec8b06e44c
b51206c625a09945a96ad091e35a4a9e5f72802c 22-Mar-2017 George Mount <mount@google.com> Fixed log warning for calling doStart() twice.

Bug 36504927

The LoaderManager was performing a doStart() multiple times
and issued a warning and then returned without any problems.
This CL fixes the underlying problem of doStart() being
called multiple times so that the warning isn't logged.

Test: ran fragment and appcompat tests
Change-Id: I3f154e9cb26badbdb8c0b58da95f0a4cd9ac4f6f
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
995c3504e6c5b1d20368c36193b44a7e6844709d 22-Mar-2017 George Mount <mount@google.com> resolve merge conflicts of 945ef67304 to master

Test: Ran fragment and appcompat tests
Change-Id: I8c1d95280dbe75624aa43d64247376cd22f32a67
832e5fdbe5416d03dbc4787951f01d91b2c17478 22-Mar-2017 George Mount <mount@google.com> Fix wrong API for getLayoutInflater

Bug 34703669

getLayoutInflater(Bundle) is needed for DialogFragment, so
it should be the one that is used. This removes the incorrectly
added getLayoutInflater() method.

Test: ran fragment tests
Change-Id: I4456cb4ffbdac2ef007d5a811d5f12a9546dbb2c
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
96221034e4a23a2abb83f772a0281bb197ac5ac0 14-Mar-2017 George Mount <mount@google.com> Make public getFragments() and getLayoutInflater() methods

Bug 34703669

Test: ran fragment tests

Change-Id: I460bc4b7c74550dddaa8345db4514c4b29094d84
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
4bf8c3d1aeb944a993c946db770604b55f981341 07-Feb-2017 Aurimas Liutikas <aurimas@google.com> Cleanup LayoutInflaterCompat after minSdk 14 bump.

Bug: 32794064
Test: ./gradlew assemble
Change-Id: I45598595683ab9c53eccac17d9dff04574a54dc8
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
2ab15df66963610bc02cb30e9a459f2b49c2ccfa 01-Feb-2017 Adam Powell <adamp@google.com> Fix setting null target fragments

Bug: 34869013
Test: ./gradlew support-fragment:connectedCheck
Change-Id: I9977132dea068245008da0eef2783d9ea2e4a8f0
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
a4fd990846a60f3647445bf65980faad47b4cc68 25-Jan-2017 Adam Powell <adamp@google.com> Lifecycle guarantees for target fragments

When a target fragment was set using Fragment#setTargetFragment, all
bets were off, especially when restoring from instance state. Order of
lifecyle initialization was undefined meaning that two bugs could
occur, both of which manifested as the target fragment was not
initialized by the time the referring fragment's onCreate ran. One
could happen if the target fragment is on the back stack, the other
could happen if the target fragment was ordered unfortunately in
FragmentManager implementation details. (!)

Fix both by guaranteeing that any target fragment gets pushed forward
to at least the CREATED state before we dispatch any lifecycle events
for the referring fragment.

Add some sanity checks that try to keep developers from setting target
fragments across different FragmentManagers or from creating target
cycles, both of which are bad ideas.

Bug: 33653458
Test: ./gradlew support-fragment:connectedCheck
Change-Id: I824eb312fbdfd6b548fe94aa2cd5b03afbaa97c7
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
4aebb5be19bbf9314e7474dd62df8dd915313436 19-Jan-2017 Adam Powell <adamp@google.com> Allow FragmentContainer to play a role in fragment construction

This allows class swapping, dependency injection, and other fun
stuff.

Port of change-id I93e17ccf9cebb6f542903d31597b5ea41544e069 from
frameworks/base

Test: manual
Change-Id: I4552d61cfc9e9b651f05a2e91746e9f355a90311
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
5e2b030b851bde2b4569104a01b4acf6960327a6 13-Jan-2017 Adam Powell <adamp@google.com> Fragment grab bag!

* Fragment#isStateSaved: report whether a given fragment has been
through state save within its given FragmentManager. This will
additionally echo the state of its child FragmentManager, indicating
whether it is safe to perform transactions without losing state.

* Fragment#setArguments can now be called at any time before a
fragment's state is saved, not just before an internal index is
assigned. This fixes an issue with assigning arguments during
fragment inflation in some code paths.

* FragmentTransaction#postOnCommit: Add a Runnable to a
FragmentTransaction that will be executed once the operations in the
transaction have been fully executed. Transaction optimization may
mean that other transaction ops could run before this is executed,
or that specific operations from this transaction were optimized
out. (e.g. a fragment in this transaction was added, but then
removed in a subsequent transaction before pending operations were
executed.) This may not be used for transactions added to the back
stack, as we cannot persist the runnable for later to guarantee
running it when the transaction is reversed.

Test: ./gradlew support-fragment:connectedCheck

Change-Id: Iff605d35329214d15148f3e83960cd264a8c0316
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
a4dd8065e66394cf00e9fcdea4490c12ea917b0d 13-Jan-2017 George Mount <mount@google.com> Throw an exception before creating bad child fragment manager.
am: 1c7e1f738e

Change-Id: If1d3b0f9bb5efc8cd4326af3fbe6a3e4a9fb6e25
1c7e1f738e202226b365c81715b221d2e864fdd5 12-Jan-2017 George Mount <mount@google.com> Throw an exception before creating bad child fragment manager.

Bug 34183840

When accessing a fragment's child fragment manager prior to
its being attached, it will forever be in a bad state. This
CL throws an exception when that happens to warn the developer
not to do that.

The original bug came from a restored fragment listed in "active"
having its child fragment manager being accessed. The restored
fragment may not have been attached if it is only in the back
stack.

Test: gradlew connectedCheck in fragments/
Change-Id: I2304ab56bc72ae675c0cde0fc83dac6221ae615e
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
3bfda46e646d72b25a6cedc73e61dc1eb90475f8 05-Jan-2017 George Mount <mount@google.com> Fix focus problems when using optimized fragment transactions. am: 0bb3f19c91
am: 84aaafe705

Change-Id: I7d7fb57327497248c002ed49b8a047e1c644ea1d
0bb3f19c91311de0b6619c7728a7bcc1f6863132 04-Jan-2017 George Mount <mount@google.com> Fix focus problems when using optimized fragment transactions.

Bug 33754255

Instead of making Views INVISIBLE immediately after adding them,
Views are set to alpha = 0 (or INVISIBLE pre-11) only after they
have been determined to be postponed.

Test: gradlew connectedCheck in fragments/

Change-Id: I474af8ca19f7544afef28067e8d11749ef3571b4
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
00834368f8f1ad9bae181b5b34ff65ac572dae2e 21-Nov-2016 Aurimas Liutikas <aurimas@google.com> resolve merge conflicts of 8e10080 to master

Change-Id: I48e02631e7622097e9c556602485a7cdf96dcf21
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/fragment/java/android/support/v4/app/Fragment.java
37149f137aad1b2ec06df63807cef6713da3ca2f 11-Nov-2016 Adam Powell <adamp@google.com> Fix bugs around inflated child fragments

* Ensure that a fragment that has had its view destroyed has a chance
to recreate it.

* Clear mInLayout after views are destroyed

* Make sure that when a fragment is restored from the back stack and
reinflates its view that child fragments from fragment tags are
reconnected properly.

Bug: 32691935
Test: ./gradlew support-fragment:connectedCheck --info --daemon -Pandroid.testInstrumentationRunnerArguments.class=android.support.v4.app.NestedInflatedFragmentTest

Change-Id: I581af852a9162d7328270575be8f82c2442c9650
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
267b02ebf455fa4d7de59150548676e406b2dd2b 25-Oct-2016 Adam Powell <adamp@google.com> Add FragmentLifecycleCallbacks

Add a new callback object that can be attached to a FragmentManager to
observe all fragment lifecycle events within that
FragmentManager. Useful for dependency injection and other
shenanigans.

FragmentLifecycleCallbacks can be registered as recursive, in which
case they will be activated for any lifecycle events that happen in
descendant FragmentManagers as well.

Test: ../gradlew connectedCheck [from fragment/]

Change-Id: I19af51fb98dea54628781676a3c25090626df547
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
667ec4150c78bf295b3db1fa4d546def9ade9d20 26-Oct-2016 George Mount <mount@google.com> Fix hide fragment transition.

Bug 30699392

During optimized hide operations with fragment transitions, the
hidden fragment View should not be GONE, but instead be visible
and the exiting views should be made INVISIBLE. After the
transition completes, the fragment's view should be GONE.

Add tests for Fragment Transitions with show/hide/attach/detach

Test: ./gradlew connectedCheck in fragment/

Change-Id: Id7699ef6f9c5bab3b37ab9710ad897d8556adaed
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
990e6fc0326f5948736650c0cb71b6002d443c9c 14-Oct-2016 George Mount <mount@google.com> Add optimize and postpone transactions.

Bug 29631389
Bug 30502032
Bug 20068723

When multiple operations are executed at once, they sometimes
cancel each other. For example, if the following transactions
are queued:

Transaction 1: add A
Transaction 2: replace with B

This can be trimmed down to add B.

This CL optimizes fragments in both add and pop directions.

Developers can choose not to allow optimization by
using FragmentTransaction#setAllowOptimization

Fragments in a transaction can now indicate when they are ready
and the transaction should complete. Postponed transactions will
have new views in the fragments created and added to the hierarchy
INVISIBLE. When all postponed fragments are ready, the transitions
and animations will start. INVISIBLE views will be made VISIBLE
and removed views will be taken out of the View hierarchy

Test: gradlew connectedCheck in fragment/
Test: manual tests also, just to make sure

Change-Id: I3fdab8e75cb33a02e9e636ff6f43a6f95a564d21
/frameworks/support/fragment/java/android/support/v4/app/Fragment.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/fragment/java/android/support/v4/app/Fragment.java
9562a3b639225d406d736b64a12e2d75459259e3 01-Jul-2016 Alan Viverette <alanv@google.com> Add offline docs target for support lib gradle build

Fixes standalone docs issues like references to hidden framework class
R.styleable. Removes reference to BackupAgent, which makes doclava choke
for some unknown reason.

Standalone online docs may now be built with ./gradlew :generateDocs

Bug: 28124434
Change-Id: If76ac9018be1d17f1258802d4ef3ce1ad67b4903
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
0244762c99db7b1fb6c4905bc1224fefac927014 22-Jun-2016 Adam Powell <adamp@google.com> Clarify Fragment#setUserVisibleHint guarantees in docs

Note that setUserVisibleHint can be called from outside of the
fragment lifecycle. Some apps override it and expect otherwise,
and the bug fix for v24 will affect their expectations.

https://code.google.com/p/android/issues/detail?id=213681

Bug 29526496

Change-Id: I401d1b5353aa1c3693ff728283ff81cf61b14212
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
04f7579a1350af17f700a392f986efd126ccc68b 08-Jun-2016 Aurimas Liutikas <aurimas@google.com> Clarify Fragment construtor javadoc.

Bug:
https://code.google.com/p/android/issues/detail?id=170497
https://code.google.com/p/android/issues/detail?id=55991

Change-Id: I61e1e0fd14afe4c3ab083b858bc1a84e6d0e28bd
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
527415d706bf580ff2bb7b492e5202b985cfa2c7 08-Jun-2016 Aurimas Liutikas <aurimas@google.com> Clarify Fragment#onHiddenChanged() documentation.

Prior comment said that fragment was hidden for both true and false
values of hidden.

This is support library version of ag/1116166

Bug:
https://code.google.com/p/android/issues/detail?id=53178

Change-Id: I2f4b5e6f3140caa32b30309624c23018928358ce
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
90ac236504c1a4cac7e91f1ffc523334f2a8f399 23-May-2016 Aurimas Liutikas <aurimas@google.com> Add missing @Override annotations in support fragment code.

Change-Id: I96e78e7bb69b68f2de8c0f1fe415da95ae053eb9
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java
2a87300db31223942e2916add55067bc7a3e4c4f 14-May-2016 Adam Powell <adamp@google.com> resolve merge conflicts of 9540fd1 to master

Change-Id: I73485945388f8467e9956240ad60352b5321313d
ff22d81f6561f6cdd2a91eb63238c41079927a22 12-May-2016 Kirill Grouchnikov <kirillg@google.com> Extracting fragments and widgets into their own modules.

Also rename core to core-utils.

Change-Id: Icef764d01bc49cd4d04ac4ce47faadda983f4c48
/frameworks/support/fragment/java/android/support/v4/app/Fragment.java