History log of /frameworks/base/core/java/android/app/Fragment.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
955d8d69ea6caabce1461dc25b339b9bf9dc61a6 08-Oct-2014 Dianne Hackborn <hackbod@google.com> Put in real "code" (aka marketing) name.

Change-Id: Idb3976edfae37293ed75cb5b869b4b42d8042bbe
/frameworks/base/core/java/android/app/Fragment.java
0b26e4d58ab1a60340dd7ab35ca6e3bddff9f760 18-Sep-2014 George Mount <mount@google.com> Fix exception when fragment container has no View.

Bug 17535259

Change-Id: I29c9ef53dd693cbb4043ebfb4750753870c9e99a
/frameworks/base/core/java/android/app/Fragment.java
85ea498d86b35ea9baf4e5ef96927bea17209636 12-Sep-2014 George Mount <mount@google.com> Changed method name to match Activity's method name.

Bug 17488968

Change-Id: I3f00561d96ff33e8eaf7234934c69e3b8e2681e8
/frameworks/base/core/java/android/app/Fragment.java
2a129789adbfa64098cba50a27f88d9602d022ab 10-Sep-2014 Jeff Davidson <jpd@google.com> Update unclear Fragment Javadoc.

"Empty" could imply that the constructor body itself is empty, which
is not a requirement. All that matters is that the constructor is
public and takes no arguments.

Change-Id: Id1cda8835baee9f9ad89aba8b3d33b963e61e718
/frameworks/base/core/java/android/app/Fragment.java
6558056e8fccc32f9e1dc59e46d09f8d916b7538 29-Aug-2014 George Mount <mount@google.com> API Review: Change SharedElementListener to SharedElementCallback.

Bug 15863001
Bug 17289526

Changed SharedElementListener to SharedElementCallback
Renamed methods to use "on" prefix.
Adjusted javadoc to reflect usage in Fragments.

Change-Id: I7cc517c269a8e417cb5c3a0948bdd3b654d42472
/frameworks/base/core/java/android/app/Fragment.java
c03da0e7a9ef721709d51cf8a2d539a5bd8a320e 23-Aug-2014 George Mount <mount@google.com> Make Fragment Transitions match Acitivty Transitions API

Bug 17188255

Change-Id: I506a097be4010d7156caf465c95295c58612c16e
/frameworks/base/core/java/android/app/Fragment.java
371a809179c843d7ae661a10bc9b4b8cfcaff566 20-Jun-2014 Adam Powell <adamp@google.com> Inflate fragments from layout into child FragmentManagers

Previously, if an app inflated a layout in a Fragment's onCreateView
that itself had fragments included, those fragments would be added to
the Activity-level FragmentManager and would not share the same
lifecycle with the fragment it was inflated for. This led to some
nasty management headaches.

If an app targets L or above, add the fragment to the child
FragmentManager of the current fragment when inflated using the
LayoutInflater passed to the parent fragment.

Bug 12763389

Change-Id: Iad4ed7d5df602aea9579bf1503e206fa894630c1
/frameworks/base/core/java/android/app/Fragment.java
ce601aee4cf632e5fc9fd23265f293eada7b0d35 28-Feb-2014 Tim Kilbourn <tkilbourn@google.com> am 7489271c: am c405bae9: am 7071786e: Clear child FragmentManagers when destroying Fragments.

* commit '7489271cd12ef04ba19cd2ea31a1e79251b10a08':
Clear child FragmentManagers when destroying Fragments.
7071786e0074bea42b01236f817383cab69c1b63 28-Feb-2014 Tim Kilbourn <tkilbourn@google.com> Clear child FragmentManagers when destroying Fragments.

If Fragment has instantiated a child FragmentManager and is later
detached, it retains its reference to the child FragmentManager which
has been destroyed. This causes an IllegalStateException in the
child FragmentManager if the original Fragment is reattached.

Fixes Issue 42601.

Change-Id: I8db2b1a110a341dc259939723f4c5ec131ca5f1e
/frameworks/base/core/java/android/app/Fragment.java
d9273d6f289d9b55da3fd0db2f659fdfb48106a8 31-May-2013 Tor Norbye <tnorbye@google.com> Add typedefs and nullness annotations.

This changeset adds in typedef annotations (custom annotations
marked with @IntDef) for various int parameters and return values
in the API. It also adds nullness annotations for cases where the
documentation explicitly mentioned null policy, or where it was
blindingly obvious from the context. Also fixed some typos in the
documentation.

Change-Id: Ica27c01368895818e26237544edd8483007155bb
/frameworks/base/core/java/android/app/Fragment.java
1487466dc2ce14cccf0ff2bd2f824238aaa0044e 19-Jul-2013 Adam Powell <adamp@google.com> Add View#cancelPendingInputEvents API

This API allows an application to cancel deferred high-level input
events already in flight. It forms one tool of several to help apps
debounce input events and prevent things like multiple startActivity
calls, FragmentTransactions, etc. from executing when only one was
desired since it's otherwise not desirable for things like click
events to fire synchronously.

Change-Id: I60b12cd5350898065f0019d616e24d779eb8cff9
/frameworks/base/core/java/android/app/Fragment.java
364ed4dda42882b600dce48319881ff58464fced 26-Jul-2013 Amith Yamasani <yamasani@google.com> PreferenceActivity Fragment security

Provides a way for PreferenceActivities to verify that they
aren't being launched with Fragments not meant to be attached to
them. Default implementation will fail verification for apps built
with KLP. This will not affect apps built for earlier targets.

Also, make sure that the class being instantiated is a Fragment and
not some random class.

Bug: 9901133

Change-Id: I564cd5168eabcadd7594ea8011e2081ebebfe063
/frameworks/base/core/java/android/app/Fragment.java
3e82ba1a67b0c756ab6a289985f4cfc53725b311 16-Jul-2013 Dianne Hackborn <hackbod@google.com> Make ArrayMap public! :)

Also do some tweaking of the various container classes
to synchronize them with the support lib and make it
easier to copy code between the two.

And update activity/fragment to use ArrayMap.

Change-Id: I3cfe82392a17119dfc72c3d9961f64e1914f42be
/frameworks/base/core/java/android/app/Fragment.java
87bff974d01a51412846765ce327b5589f55b080 28-Feb-2013 Scott Main <smain@google.com> docs: clarify startActivity

Change-Id: I821321441bbb39b84031e9c65fe43762270e0148
/frameworks/base/core/java/android/app/Fragment.java
1b8ecc5031051b4bba620fac27552e84ca666496 09-Sep-2012 Dianne Hackborn <hackbod@google.com> A little cleanup.

Change-Id: Ie33fd1b02011606e67ce08df3cce887c07680c60
/frameworks/base/core/java/android/app/Fragment.java
62bea2f1710be0d1a42c07109fd4307ded660d3b 05-Sep-2012 Dianne Hackborn <hackbod@google.com> Nested fragments.

Change-Id: I79acc19b391352c16b06afee2ca543223c38e364
/frameworks/base/core/java/android/app/Fragment.java
ee76efb74b5886f98cdfebfbefe9b69224e016fb 05-Jun-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6584942 IllegalStateException: Failure saving state...

...active SuggestFragment{419494f0} has cleared index: -1

There were issues when the same fragment was removed and then
added again before completely finishing the remove (such as due
to a running animation).

Two fixes:

- Now when you call FragmentTransaction.replace() and are replacing
a fragment with the same fragment, this becomes a no-op, to avoid
visual artifacts in the transition and bad states.
- When we are moving the fragment state up and it is currently
animating away to the INITIALIZED state, we could end up making
the fragment inactive as part of the cleanup. In this case it
shouldn't be made inactive; we just need to initialize it but
keep it active since we are going to continue to use it.

Bug: 6584942
Change-Id: I8bfd73f2d8ef8f67b541b3e2525dfa5db6c3bfa5
/frameworks/base/core/java/android/app/Fragment.java
03fcc333cf0fbbc4df1215649746d6360801efd8 15-May-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6284404: ArrayIndexOutOfBoundsException in...

...FragmentManagerImpl.restoreAllState

This was a bug related to the difference between the pre- and post-HC
behavior of onSaveInstanceState(). Prior to HC, state was saved
before calling onPause(). Starting with HC, it is saved between
onPause() and onStop(). To maintain compatibility with existing
applications, there is a check in ActivityThread for pre-HC to in
that case emulate the behavior of old applications, still calling
onSaveInstanceState() before onPause() but using the state later.

One of the special cases we had to deal with in the old model of
saving state before pausing was restarting an activity that is
already paused.

Consider, for example: you have two activities on screen, the one on
top not fullscreen so you can see the one behind. The top activity
is resumed, the behind activity is paused. In the pre-HC world, the
behind activity would have already had its state saved.

Now you rotate the screen, and we need to restart the activities.
We need to destroy the behind activity and create a new instance,
but the new instance has to end up in the paused state. To
accompish this, we restart it with a flag saying that it should
end up paused. For the pre-HC world, since it ends up paused,
we need to make sure we still have its instance state kept around
in case we need it because we can't regenerate it (since it is
already paused).

So that is what the changed code here is doing. It goes through
the normal create/start/resume steps, but holds on to the current
saved state so that it isn't lost when resume clears it, and then
puts the activity back to paused and stuffs that old saved state
back in to it.

The problem is that this code was doing it for every application,
even HC apps. So we end up in a bad state, when a HC app has its
saved state sitting there as if it had been saved, even though it
is only paused. Now if we go to restart the activity again, instead
of asking it for a new saved state (as we should for a HC app as
part of stopping it), we just re-use the existing saved state again.

Now this wouldn't generally be a huge problem. Worst case, when we
restart the activity yet again we are just instantiating it from
the same saved state as we used last time, dropping whatever changes
may have happened in-between. Who cares? All it has been doing is
sitting there in the background, visible to the user, but not something
they can interact with. If the activity made changes to its
fragments, those changes will be lost, and we will restore it from
the older state.

However... if one of those fragements is a retained fragment, this
will *not* appear in the saved state, but actually be retained across
each activity instance. And now we have a problem: if the retained
fragments are changed during this time, the next activity instance
will be created from the most recent state for the retained fragments,
but the older state for everyting else. If these are inconsistent...
wham, dead app.

To fix this, just don't keep the saved state for HC apps.

Also includes a small optimization to ActivityStack to not push
the home screen to the front redundantly.

Change-Id: Ic3900b12940de25cdd7c5fb9a2a28fb1f4c6cd1a
/frameworks/base/core/java/android/app/Fragment.java
eb84cc6bbd6122287ead600c64ae251b9458de42 12-Apr-2012 Quddus Chong <quddusc@google.com> am c4180594: am 51cb7ca5: am c08787fc: Merge "SDK doc change: Fixed typo and added method parentheses in line 206. Bug: 6318971" into ics-mr1

* commit 'c4180594855bf108fe6eccf9f7ab57605ba86b58':
SDK doc change: Fixed typo and added method parentheses in line 206. Bug: 6318971
3790001c20494d1f355a67bec7751c4b8f07874f 11-Apr-2012 Quddus Chong <quddusc@google.com> SDK doc change: Fixed typo and added method parentheses in line 206.
Bug: 6318971

Change-Id: I57f3c7aff6209269ca0d95d616e551e2100eeb54
/frameworks/base/core/java/android/app/Fragment.java
7a2195cdd33f27c79eda343defc1f7ccf59cc8ac 20-Mar-2012 Dianne Hackborn <hackbod@google.com> Start using the new activity options argument.

New class lets you make an options bundle defining a custom animation,
as an alternative to Activity.overridePendingTransition().

Change-Id: I8e209bf52398a98ab9f1bcafa1ec0a580dae57c0
/frameworks/base/core/java/android/app/Fragment.java
a4972e951bf2bdb7afdafee95b3ab0c15b8bacae 14-Mar-2012 Dianne Hackborn <hackbod@google.com> Add new "options" argument to all startActivity APIs.

This will be used to allow new features to be requested... such as,
say, a special kind of animation. Right now there are no options
defined.

Change-Id: I4eb6f27275cdd4bf186f6da316ab93a2372ad4b7
/frameworks/base/core/java/android/app/Fragment.java
e4ef9b1ac2c4d7a1deb25f575e341255369c5c3b 27-Feb-2012 felipeal <felipeal@google.com> DO NOT MERGE
(from master: Fixed minor typo on Javadoc)

Change-Id: I7d62e37011a7fd4d792fdfe5bd62022a850303a6
/frameworks/base/core/java/android/app/Fragment.java
1b4e4b657cd730046b51d3cabdf1525d89637a4c 27-Feb-2012 felipeal <felipeal@google.com> Fixed minor typo on Javadoc

Change-Id: I2040520030319c0330d659dfa06716be0bd41b7b
/frameworks/base/core/java/android/app/Fragment.java
7871badd5d4d29d80207e9cc09a0681f26a151d0 13-Dec-2011 Dianne Hackborn <hackbod@google.com> SDK only: now that support lib is in SDK, we can link to it.

Update some of the platform documentation to directly link to
relevent support lib docs. Yay!

Also improve BroadcastReceiver documentation to more clearly
discussion security around receivers, and how the support
lib's LocalBroadcastManager can help.

Change-Id: I563c7516d5fbf91ab884c86bc411aff726249e42
/frameworks/base/core/java/android/app/Fragment.java
78fed9b78f8b3b92979b94dda2640cdeaffb2573 07-Nov-2011 Adam Powell <adamp@google.com> Change the "start deferred" fragment API to "user visible hint"

Allow a fragment to set a hint of whether or not it is currently user
visible. This will be used implicitly to defer the start of fragments
that are not user visible until the loaders for visible fragments have
run. This hint defaults to true.

Change-Id: Id1349d319886a277ef07301f64f7b9e12c8729bf
/frameworks/base/core/java/android/app/Fragment.java
635c60af623c73d2409f5729c0953638b5d6c497 26-Oct-2011 Adam Powell <adamp@google.com> Add API for deferring fragment start.

Fragments now have the setDeferStart method to signal that a fragment
has lower priority than others. Deferred start fragments will not
always be started immediately; they will be started once any loaders
have finished servicing any outstanding requests. This is useful if
any attached fragments are not immediately visible and can wait to
start until later.

Disabling deferStart on a fragment that is waiting for a deferred
start will start it immediately. Start.

Change-Id: Ia1f004877ca5e88d4f10147d21c7e2e97f141c34
/frameworks/base/core/java/android/app/Fragment.java
b54e7a3d9f60ac605f404f9eb3c5e92ca51bbd23 04-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross-references, Project ACRE

Change-Id: I5df1c4e13af67ff4c4a5b22f3cb1247bf0103b09
/frameworks/base/core/java/android/app/Fragment.java
6c285977a0dc9605348bd9530282c7d006cbf8bd 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
can use to have the correct menus shows. And add a method to get the
name of a back stack entry.

Change-Id: Idcba14cfa2a172545a7a2a2c466cb49ceb789619
/frameworks/base/core/java/android/app/Fragment.java
f0f5fffc6f578f531df7b208cfbfb53f884c0380 01-Aug-2011 Adam Powell <adamp@google.com> Fix bug 5090996 - Crash on tapping Menu on dial pad

Let the FragmentManager handle deferring menu invalidation when
not currently resumed.

Change-Id: I6e5de9c8ab5288c7c90a59ce8e0c7bb9133b6eb5
/frameworks/base/core/java/android/app/Fragment.java
c68c913d357e2955d4bd7ca52829071e531c7825 29-Jul-2011 Dianne Hackborn <hackbod@google.com> Various work on out of memory managment.

- Improve how we handle processes that have shown UI, to take care
of more cases where we want to push them into the background LRU
list.
- New trim memory level for when an application that has done UI
is no longer visible to the user.
- Add APIs to get new trim memory callback.
- Add a host of new bind flags to tweak how the system will adjust
the OOM level of the target process.

Change-Id: I23ba354112f411a9f8773a67426b4dff85fa2439
/frameworks/base/core/java/android/app/Fragment.java
257466d4e24bd405204cb21a1663eb1cc99f6137 28-Jul-2011 Adam Powell <adamp@google.com> Merge "Bug 5076788 - Optimize the building and invalidation of menus"
89b09da7b3b1e69264d9ec710c66eb2f891b313e 27-Jul-2011 Adam Powell <adamp@google.com> Bug 5076788 - Optimize the building and invalidation of menus

Fix cases that weren't batching menu presenter changes correctly.

Have FragmentManager invalidate the options menu less often.

Change-Id: Ia66fcd09ada8b0a084ad6b08d4340a8fa0c8fc5d
/frameworks/base/core/java/android/app/Fragment.java
36193d09a87035395d036a730038b765ac0b0913 13-Jul-2011 Scott Main <smain@google.com> cherrypick Change-Id: I4713d3977a0a1514ff9c4217e7f3723c0346d0d8
docs: revise ActionBar class summary and add a few links to dev guide docs

Change-Id: I14df84b16d7bdab85aa74d8b8211e988b0519115
/frameworks/base/core/java/android/app/Fragment.java
15856f7b62d06d968f57441ffe7dd31aac631952 15-Jun-2011 Dianne Hackborn <hackbod@google.com> am 27bad6f3: am baa89d38: am f930232f: Fix a major problem in fragment lifecycle.

* commit '27bad6f33b98e8d7417a6ce4d7f09b2fa1146379':
Fix a major problem in fragment lifecycle.
f930232fd1c8d301d91853c8fe5dca43979ac807 15-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix a major problem in fragment lifecycle.

When animating away a fragment, we were not putting it through
the last part of its lifecycle (onDestroy() etc).

Also, retained fragments that have a target were broken. Oops.

Change-Id: I5a669b77a2f24b581cde2a0959acf62edb65e326
/frameworks/base/core/java/android/app/Fragment.java
542f2409d9be9211dcb8cdfe2f863c22ff6cf26f 15-Jun-2011 Ben Dodson <bjdodson@google.com> minor documentation fixes

Change-Id: I8ff5ad7c310fdbf0ade9d66e075d09e293182b89
/frameworks/base/core/java/android/app/Fragment.java
afc4b283fdaedec9bf32492a019b43cc33edc9b6 11-Jun-2011 Dianne Hackborn <hackbod@google.com> Fix some problems with moving in and out of detached state.

Loaders were not being re-initialized correctly when coming back
(this would also impact the back stack). The ListView also wasn't
working correctly, and there were also problems with simply
re-using a Fragment instance after it had been removed.

Change-Id: I534b091ae09c0ef7ffffe9d68049e6840e8926b3
/frameworks/base/core/java/android/app/Fragment.java
b46ed7636be9341b6ce0b158b3d86f34a437e6da 03-Jun-2011 Dianne Hackborn <hackbod@google.com> Add new Fragment API for explicitly saving/restoring state.

Also fix issue #4519821:
Blank screen displayed on tapping "Battery Use" option in the settings

We weren't correctly doing the full Activity resume code when coming
back from delivering a new Intent or result.

And fix a fragment problem where we still weren't correctly restoring
the state of list views. (I think this was from a bad manual-merge
from master.)

Change-Id: If79dc7e998155c39ab8c04781f6c73a82238a9ef
/frameworks/base/core/java/android/app/Fragment.java
f9dd34f4d3203fd50363b3b0247c5d0db6fe2c8f 20-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE: Integrate from main - Deprecate a bunch of APIs.

And clean up some documentation.

Change-Id: I8f06e2fc3bb6c552581b64657e82ba690d524232
/frameworks/base/core/java/android/app/Fragment.java
16f6e89c2a4bbf73fe15cb2e81c8fec98c7ac831 16-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE. Integrate fragment work from master

Back-port new fragment detach APIs from support lib.

This allow a much cleaner implementation of things like the
fragment pager class.

Integrate from support lib: fix restore of list state.

The FragmentManager/ListFragment impl was restoring the list
state before setting its adapter. This caused the list view to
lose the state, since it gets cleared as part of setting the
adapter. Now the fragment manager waits on restoring the view
hierarchy state until after it has done onActivityCreated(),
at which point we have set the adapter.

It would be nice to make list view less fragile in this regard,
but that is for a different change.

Change-Id: I38606ef7d0b06478995f3fb7726aead67420e172
/frameworks/base/core/java/android/app/Fragment.java
e3a7f628c6d9fef42be24999b3137ebe5c6f3525 04-Mar-2011 Dianne Hackborn <hackbod@google.com> Fix Fragment.onInflate() to actually work correctly.

Like, um, it needs to be given the Activity since this is called before
the activity is attached.

And it was called after the entire fragment and its *view* was created
when being restored from saved state.

And the documentation was whacked.

Also fix the IME selector to dismiss when you tap outside of it.

Change-Id: Icbcafe7558965a570bdef9cda3441b1f0f7a317c
/frameworks/base/core/java/android/app/Fragment.java
7187ccb93ee8adbb745fcbb901cfacfeed397a23 25-Jan-2011 Dianne Hackborn <hackbod@google.com> Fix issue #3385839: Fragment.onCreateView is passing in activity...

...context for a DialogFragment

Change-Id: I434ebca64d2738da4c27321db8dbbded2cbe167d
/frameworks/base/core/java/android/app/Fragment.java
5d9d03a0234faa3cffd11502f973057045cafe82 24-Jan-2011 Dianne Hackborn <hackbod@google.com> Maybe fix issue #3093599: java.lang.IndexOutOfBoundsException...

...Invalid index 0, size is 0 at
android.app.ActivityThread.performPauseActivity(ActivityThread.java:2326)

It looks like if an arrow key is dispatched between the time the
list view is told its data set has changed and it does the resulting
layout pass, we could try to move the position to a now invalid
index. This may prevent that from happening.

Also put in a better error message if saving state of a fragment
whose target is no longer in the fragment manager.

And fix a bug in PackageManager where we could return a null from
queryIntentActivities().

And add a new API to find out whether a fragment is being removed,
to help fix issue #3306021: NPE at
android.app.AlertDialog.getDefaultDialogTheme(AlertDialog.java)

Next, for new HC apps we can delay committing data to
storage until the activity is stopped.

Finally, use the new multi-threaded AyncTask executor in a few
places, so we don't have worked blocked by long-running tasks from
the application.

Change-Id: I27b2aafedf2e1bf3a2316309889613fa539760f3
/frameworks/base/core/java/android/app/Fragment.java
662cc7a46a44af782a1f697d16b0613498312e1f 18-Jan-2011 Scott Main <smain@google.com> add javadoc for getView method

Change-Id: Ia8d9516c4017319f8bcaedb3e4c451c5c3825857
/frameworks/base/core/java/android/app/Fragment.java
87121accdb0ce318482ac51270763a6faab2ed63 05-Jan-2011 Dianne Hackborn <hackbod@google.com> Some new API cleanup.

- Tweak Fragment docs to match new sample code.
- Make some new attributes public.
- Hide all of the XmlAdapter stuff, since it is not actually being used.

Change-Id: Iae2062f91d1ca0c6b1d656ae948417d3d048482f
/frameworks/base/core/java/android/app/Fragment.java
352cc98b4621b76959af8f8a698fd75c6d6132e8 04-Jan-2011 Dianne Hackborn <hackbod@google.com> Few little fragment, wm tweaks.

Deal with fragments being restored when their containing view is
gone.

Try to put in a black background during rotation. Currently commented
out because it appears to cause surface flinger to hang.

Change-Id: I150d061e64488356d17513f4e2d124d7c3d04f6b
/frameworks/base/core/java/android/app/Fragment.java
d173fa3b1cb8e4294aba7564c0171894be6c3c24 23-Dec-2010 Dianne Hackborn <hackbod@google.com> Possible fix to issue #3213749: NPE at...

...android.app.Fragment.startActivityForResult(Fragment.java)

Make sure to remove all pending messages when AbsListView is detached
from its window.

But... that's not enough.

It turns out that when a fragment's views are animating away, they of
course don't get detached until after the animation is done. However
the fragment itself is immediately destroyed, leaving its live views
still going after that.

Here's a possible solution: when fragment manager initiates an animation
on a fragment whose views are being removed, it makes note of that so
it can hold off on destroying the fragment until the animation is over.

There are a lot of interesting race conditions here, if further operations
happen on the fragment while it is being animated. I think the code here
does something sensible, and it does seem to work for the situations I
have tested, but it is hard to know all of the edge cases that may happen.

Change-Id: I4490ce8862a9bb714c7ea54baca3072c62126388
/frameworks/base/core/java/android/app/Fragment.java
a2ea747faaf5fcd437afbaaf4085cfc29e7c16b8 20-Dec-2010 Dianne Hackborn <hackbod@google.com> More cleanup of Loader APIs.

- Remove old method names.
- Introduce onXxx() hooks to Loader.
- Improve debugging.

Change-Id: I3fba072a05c7023aa7d2c3eb4e126feb514ab6d8
/frameworks/base/core/java/android/app/Fragment.java
d2835935d2df8be70d1b37d3ef3b2fe0155b3422 14-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3258849: Grab thumbnail when exiting an app via back

Also issue #3281400: Rotating a retained instance fragment leaks the fragment manager

And turn off fragment debug logging.

Change-Id: Ibdd7db82bb35618021bcba421ba92ced7cd691c2
/frameworks/base/core/java/android/app/Fragment.java
30d7189067524000c738c188c4ff91f84f474d25 11-Dec-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3274841: Orientation change problem with a paused activity

Plus a bunch of debug output improvements.

And some new Intent helpers for dealing with restarting an app.

Change-Id: I50ec56bca6a86c562156b13fe8a6fdf68038a12e
/frameworks/base/core/java/android/app/Fragment.java
bdd19bc338286e1042f59808545665a061e73ffc 11-Nov-2010 Dianne Hackborn <hackbod@google.com> Add Theme.Holo.DialogWhenLarge

This theme gives you a dialog look when running on a large
or xlarge screen, otherwise a regular full-screen activity.

Also some new Fragment convenience APIs.

Change-Id: I3d97928ffaa4f3bdfd0cc5daf8823f9235c4ba68
/frameworks/base/core/java/android/app/Fragment.java
8eb2e244f9b14d946ee587d0b673b866865026c0 01-Nov-2010 Dianne Hackborn <hackbod@google.com> Various PreferenceActivity and related improvement.

This is all about making the preferences implementation better.

Well, mostly all about that.

Change-Id: I8efa98cb5680f3ccfa3ed694a1586de3fb3a9e11
/frameworks/base/core/java/android/app/Fragment.java
5164246d7e47b9c995ca1e1587f3056eb777f60b 28-Oct-2010 Dianne Hackborn <hackbod@google.com> Fix setting of class loader.

Also add Bundle API to retrieve its class loader because... well,
why not.

Change-Id: Ie939f6a2ae13974e5a05eb5bd3b28f350d8a8565
/frameworks/base/core/java/android/app/Fragment.java
fb3cffeb35368da22f99b85d45039c4e6e471c06 26-Oct-2010 Dianne Hackborn <hackbod@google.com> Fix issue #3130426: Finsky crash in switching from window carousel

Need to note that we no longer have saved state before delivering
results or new intents to an activity.

Also do some work on loaders to prevent apps from making fragment
changes as a result of receiving loader data. This makes apps
consistent crash in a case that they would previously sometimes
crash (if they got the loader data after onPause).

Change-Id: I46e9e46d0aa05d9d7d6a275a2a488a18a20a5747
/frameworks/base/core/java/android/app/Fragment.java
625ac271f80777668f832a344486a6fcdc06d0ae 18-Sep-2010 Dianne Hackborn <hackbod@google.com> Work on fragments in layouts.

- Change semantics if IDs associated with these fragments, to
work correctly when placed in a container. If the container
has an ID or you have supplied a tag, the fragment's ID is
optional.

- To do this, there is a new LayoutInflater API that allows code
creating views to access the parent container that view will
be in.

- Fix issues with state management around these fragments. Now
correctly retains state when switching to a layout that doesn't
include the fragment.

Also:

- Add new simple list layouts for items that want to show an
activated state.
- Add new Activity.dump() that can be invoked with adb shell
dumpsys; the default implementation dumps fragment state.

Change-Id: I192f35e3ea8c53fbd26cf909095f2a994abfc1b6
/frameworks/base/core/java/android/app/Fragment.java
3e449ce00ed2d3b271e50bc7a52798f630973bf1 12-Sep-2010 Dianne Hackborn <hackbod@google.com> Some fragment stuff:

Fix issue #2975886: Make getTargetFragment() survive rotation events with
retained fragments. We now fix up the fragment pointer when restoring state.

Fix issue #2919928: In PreferenceFragment, addPreferencesFromResources() is
not effective when called after onActivityCreated(). Note to self: do not use
a what code of 0. Maybe that should be documented (I'll do it in gingerbread).

Hopefully implement #2992753: DialogFragment.dismiss will NPE if called too soon
(before attached to activity). We now keep track of the FragmentManager
separately from the activity, and set that as soon as the fragment is part of a
transaction.

Investigate issue #2988876: NPE when device orientation is changed. The NPE is
because of the app trying to do a fragment transaction in onPause(). This is
fundamentally not viable, since (a) the activity will be gone before we ever
have a chance to process the message to commit the transaction, and (b) even if
we did try to commit the transaction earlier, this would be done after
onSaveInstanceState() and thus not work in cases where the activity gets killed
in the background. So instead, we'll just throw an immediate exception if you
try to do this.

Change-Id: Iea62b50eb79f066af2471fce86836d073398f4f7
/frameworks/base/core/java/android/app/Fragment.java
2f761760459fe27c8e9f96569bb7f28fc5b58bab 13-Sep-2010 Daisuke Miyakawa <dmiyakawa@google.com> Fix typo.

onnSaveInstanceState -> onSaveInstanceState

Change-Id: I34981dd10fce4eaad6e1f6bba3d569e1e35e3c2a
/frameworks/base/core/java/android/app/Fragment.java
a18a86b43e40e3c15dcca0ae0148d641be9b25fe 07-Sep-2010 Chet Haase <chet@google.com> Rename several animation classes

Change-Id: I6a4544875090db485163c8d56de8718f56d267c7
/frameworks/base/core/java/android/app/Fragment.java
727782053ced0cac5beadc2c7ee9382d0f1ba1f5 21-Aug-2010 Dianne Hackborn <hackbod@google.com> Work on DialogFragment and docs.

- DialogFragment now has an option to not show a dialog, so you can
use your UI somewhere else.
- Deprecated show() versions that were tied to activities.
- Added documentation to DialogFragment class.
- Added documentation to onSaveInstanceState() to explain how the
time it is called is different than Activity's version.
- Fixed some java doc warnings.

Change-Id: If026744c368e2443030d2d9e0a9c808d820857df
/frameworks/base/core/java/android/app/Fragment.java
291905e34a7f0ae03c68fb2c1b8c34b92d447fbf 18-Aug-2010 Dianne Hackborn <hackbod@google.com> Maybe fix #2925641: calling onCreateOptionsMenu before attached activity

Also add some APIs to PreferenceActivity.

Change-Id: I85894a3eb9cd3e5adb78b82e85454c0d74773178
/frameworks/base/core/java/android/app/Fragment.java
3f00be5bd0b46e7937b68909baeff295b86215cc 16-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix build.

Change-Id: I9e887aacf3d3ba642df287dfdecbc2ff1ef02033
/frameworks/base/core/java/android/app/Fragment.java
def1537e9e8d0dd190cde5310ddae8b921088c9b 15-Aug-2010 Dianne Hackborn <hackbod@google.com> More fragment work:

- Introduce FragmentManager as a public API, deprecating the fragment
APIs on Activity. (They will be removed soon.)
- Add APIs to write a fragment reference to a bundle and later retrieve
it.
- Add Fragment API to set another fragment as its target, for delivering
results.
- Change when onInflate() is called and formalize its meaning in relation
to the fragment arguments that were previously introduced.
- Change onDestroyView() to always be called, regardless of when
onCreateView() returns. It now also is called slightly differently,
after the view hierarchy's state is saved.
- Fix some issues with DialogFragment's lifecycle with its associated
Dialog and state save/restore.
- Preference can now have a Bundle associated with it to provide
arguments to a fragment. The data for this Bundle call be supplied
via <extra> tags under a PreferenceScreen.
- PreferenceActivity's header XML tags are now <preference-headers>
and <header>, and you can supply <extra> tags under a <header> to set
arguments for the header's fragment.

Change-Id: I22c212c9fa862d50840201ca16e51f9de5ef0031
/frameworks/base/core/java/android/app/Fragment.java
b7a2e4772220c4b41df1260cedaf8912f4b07547 13-Aug-2010 Dianne Hackborn <hackbod@google.com> Fragment and PreferenceFragment and FragmentManager, oh my!

- Introduce FragmentManager public API, for all Fragment management
needs. Will in the future allow the removal of the (growing number
of) fragment APIs on Activity.

- Fragment now has a concept of arguments. This can be supplied
immediately after creation, and are retained across instances.

- PreferenceActivity now has an API to have it update its headers (note
not tested). Headers now have arguments. Keys for controlling
when PreferenceActivity shows at launch have been added to the SDK.

- Fixes to back stack handling and state saving/restoring.

Change-Id: Ib9d07ae2beb296c4eb3a4d9e1b3b59544675e819
/frameworks/base/core/java/android/app/Fragment.java
811ed1065f39469cf2cf6adba22cab397ed88d5e 06-Aug-2010 Chet Haase <chet@google.com> Make Fragments use the new animation APIs

Change-Id: I3e3c271234c737491b6ae37821f16434f4563b1d
/frameworks/base/core/java/android/app/Fragment.java
5e0d59547c4042037e23a42ba4e2521721e9c7d3 05-Aug-2010 Dianne Hackborn <hackbod@google.com> Fix some Loader bugs.

- Weren't re-attaching to the current loader manager after retaining
instance state.
- Ensure loaders are being destroyed.
- Fix a bug if you call restartLoader() inside of onLoadFinished().

Change-Id: I89df53db49d8e09047bf55216ebeb0f133c059e7
/frameworks/base/core/java/android/app/Fragment.java
b1ad5977bc8178b6d350ebe9099daded4c1ef603 03-Aug-2010 Dianne Hackborn <hackbod@google.com> New two-pane mode for PreferenceActivity.

This introduces a whole new way to use PreferenceActivity, as
a container for PreferenceFragments that the user can switch
between from a list of headers.

Change-Id: I1c79b7c78b86790dc460a1414a999aba5de80628
/frameworks/base/core/java/android/app/Fragment.java
4911b783aa9f4af5ac919db861751d350471f5ef 15-Jul-2010 Dianne Hackborn <hackbod@google.com> Fix bug where loader listener would be registered twice.

Also change LoaderManager to an interface.

Change-Id: Ife6d123e56cc6f63b6fe902afac35b2673761e60
/frameworks/base/core/java/android/app/Fragment.java
2707d6026240bcca6f0e35e2e1138958882e90ce 10-Jul-2010 Dianne Hackborn <hackbod@google.com> Implement instance passing in LoaderManager.

Activity now propagates loaders across instances when retaining
state. Adjusted APIs to make it better for apps to deal with this.

Change-Id: I8a6448cff1132e66207f9223eb29ccfc0decf2ca
/frameworks/base/core/java/android/app/Fragment.java
c801768e4d29667a2608695449ebc2833ba0f200 06-Jul-2010 Dianne Hackborn <hackbod@google.com> Integrate Loader support in to Activity/Fragment.

Introduces a new LoaderManager class that takes care of
most of what LoaderManagingFragment does. Every Fragment
and Activity can have one instance of this class. In the
future, the instance will be retained across config changes.

Also various other cleanups and improvement.

Change-Id: I3dfb406dca46bda7f5acb3c722efcbfb8d0aa9ba
/frameworks/base/core/java/android/app/Fragment.java
5ddd127d5a38d80c0d8087d1770f41f61f84f048 12-Jun-2010 Dianne Hackborn <hackbod@google.com> Implement ListFragment and Fragment context menus.

Also fix the docs build.

Change-Id: I96f24cc03e6debd897171e503957284b140a9f27
/frameworks/base/core/java/android/app/Fragment.java
4dc643eb6749afe5211198c920e739475590f92c 13-Jun-2010 Wink Saville <wink@google.com> Fix some javadoc link/see's to fix the build for the sdk-win_sdk target.

Change-Id: I243c19d3d7f1ed2decbd6bfc7ecbe6ce2b582fc2
/frameworks/base/core/java/android/app/Fragment.java
b31e84bc4513e46bac4be8f8d0513f78e360fb11 09-Jun-2010 Dianne Hackborn <hackbod@google.com> Add Fragment option menu APIs.

Also fix up how transactions are handled so that a series of transactions
can correctly be created and committed.

Change-Id: I948ba47d49e9b2246a1958bd9eac9dd36dc5a855
/frameworks/base/core/java/android/app/Fragment.java
cddfa6de1fcf1a9480d4c9b575102909bd8f2067 20-May-2010 Dianne Hackborn <hackbod@google.com> Fix sdk build.

Change-Id: I4106de6c85d69a68d80414db5dbf5cf48685ce54
/frameworks/base/core/java/android/app/Fragment.java
5ae74d6e89a30e79ea85c487b32223ef55314985 20-May-2010 Dianne Hackborn <hackbod@google.com> More fragment work.

Clean up FragmentTransaction API, add more animation control, add new
Fragment APIs for hiding and showing.

Change-Id: Iffe31351024a7a63d164270b8a955a499076600e
/frameworks/base/core/java/android/app/Fragment.java
6e8304e57ec533e257a2496183125f257be1ff60 14-May-2010 Dianne Hackborn <hackbod@google.com> More fragment stuff:

- New startActivityForResult() API.
- Fragments now should have the correct lifecycle while hanging around
in the back stack (not being destroyed and re-created).
- Rework of state save/restore to make it simpler and better. In theory
now any fragment (including layout and others in the hierarchy) can
now be retained across config changes, though this hasn't been tested.

Change-Id: I2a7fe560e14e567f5675a2f172a23fca67b3e97f
/frameworks/base/core/java/android/app/Fragment.java
b4bc78b16a05554c57508b488e21dd8eca4e13e6 13-May-2010 Dianne Hackborn <hackbod@google.com> Further work on fragments:

- Implement all of the state saving and restoring machinery. This
caused some flux in the API.
- Add ability to have fragments that are retained across activity
instances.
- Fix some bugs.

Change-Id: Ib6b5b0752d7f8d667cfdcd3e76d127cc9b6d901b
/frameworks/base/core/java/android/app/Fragment.java
f121be737c59390d97e21a92be8e166001534c7d 06-May-2010 Dianne Hackborn <hackbod@google.com> Improvements to fragment API:

- Remove names associated with fragments (we'll use ids). They may
come back for other uses.
- Add method to replace a fragment, to help in doing back stacks.
- Add names to back stack states, to allow for jumping back to
known states.
- Add ability to set animations associated with fragments being
added or removed.

Change-Id: Ic2799f06947b1511fb1df5965ca32568b860b3c3
/frameworks/base/core/java/android/app/Fragment.java
ba51c3d02d08709e933de6f6c76dee3fd2f4bfa1 06-May-2010 Dianne Hackborn <hackbod@google.com> New fragment stuff: back stack, and layout integration.

You can now have fragment transactions pushed on to a local back
stack, which will automatically be popped when the user pressed
back in the activity.

Fragments can also now be inserted into layouts.

Change-Id: Id1c9ae3fbc54f696cd8bb5ca5957bec4d3eabf18
/frameworks/base/core/java/android/app/Fragment.java
2dedce6e84679ead961a485c7fe4b0f77c713b6a 15-Apr-2010 Dianne Hackborn <hackbod@google.com> Introducing Fragment.

Basic implementation of an API for organizing a single activity into separate,
discrete pieces. Currently supports adding and removing fragments, and
performing basic lifecycle callbacks on them.

Change-Id: I6ea8e6bdb04d93f8105c2e983fe9b6532422de34
/frameworks/base/core/java/android/app/Fragment.java