Also removes the artifical restriction that only one apply() can be in
flight at once. That was old from when I thought it'd end up being
required, but wasn't.
Change-Id: I3540ea8be6e0760d6a51d218186f71655c2f3f55
Adds a fire-and-forget save method (startCommit) to the
SharedPreferences.Editor, which is the way most people use it anyway.
This commit adds the implementation. The previous commit added the
interface and docs:
previous change: Idf9934b445da1fb72b79f0192218b47c0a7f5a34
git commit: edf32d0131
In addition, this change:
-- adds a generic "runPendingWorkFinishers" mechanism to
ActivityThread to wait on async operations that are still
in flight and use it for this.
-- ties runPendingWorkFinishers into Activity.onPause,
BroadcastReceiver, and Service.
-- makes sSharedPreferences keyed on name, not File, to avoid
unnnecessary allocations
-- documents and guarantees what thread
OnSharedPreferenceChangeListener callbacks run on
-- makes a few things in frameworks/base use startCommit(), notably
Preference.java (which was ignoring the return value anyway)
Change-Id: I1c8db60ad45643226fe6d246d3e513eeb7bd0ebd
- You can add arbitrary stuff at the bottom of the header list.
- You can associated an intent with a header to have that launched
when the header is clicked.
- You can change the current header when the header list is rebuilt
after the first time.
Change-Id: I889512beff0c2902a790434e5cde9ce6df74d0c2
* Make Header fields public so activities can write them
* Recycle views properly
* Also made the HeaderAdapter and HeaderViewHolder static inner classes
for a little extra efficiency.
Change-Id: If0a9276e4609e2e8568c7c5a6963f3ed3e25565f
- 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
This class has existed from before, so the doc does not mention
PreferenceFragment but only PreferenceActivity, while actually
the class can be used via PreferenceFragment.
Change-Id: Ie3756f7ff260cff829eff31a6ba99260c681bc2d
- 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
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
Currently when ListPreferences are used in a PreferenceActivity, the summary
values are set to the same as the current index in mEntryValue. This patch
adds the ability for a string substitution to be used in the summary
which points to the corresponding entry in mEntries to aid in
localization.
For example a preference may be named "color" with the following attributes
in the locale "de" (German):
mEntryValues = { "red", "green", "blue" }
mEntries = { "rot", "grün", "blau" }
mSummary = "Die Farbe ist %1$s."
getSummary() returns "Die Farbe ist grün."
Change-Id: Iea169ac3d1c9d6290d853fc7c67a7c4c8a11bb90
Raw types replaced. Added a asSubClass method in LayoutInflater which
will (correctly) throw a ClassCastException when the inflated class is
not a View subclass.
Reduced the number of warnings in GenericInflater, but those remaining
are valid. A lot of unsafe class casts happen between parent (P) and
item (T) types that will generate runtime errors if the XML is not valid.
Change-Id: I887fd67769a51ab54c6092e1270dbe3bfb6313ca
Added set support to XmlUtils; added Set<String> functions to SharedPreferences.
MultiSelectListPreference allows multiple selection and persistence of
string preferences. Addresses bug 2575634.
Change-Id: Icd56022d444b0ce43cccf819cd7d600fdb00e88a
This introduces problems when scrolling through preference screens, due
to a clash in this cache versus the ListView's cache.
This reverts commit 01dbc2ed55.
If layout id is specified for a Preference object, convertView is set to null
in its adapter which results in inflation of Preference view in getView each time the Preference object is laid out on the screen.
Just use an instance variable to cache the inflated view nulling it whenever the layout changes and use it in initing the convertView in getView.
More CPU speed stepping happening with newer devices, so we need
to qualify CPU time with the CPU speed, since power consumption
varies greatly by speed. Apps that peg the CPU should get a higher
penaltly.
Also, fix for 2062930: NPE at VolumePreference.onKey()
During orientation changes or homing, the volume is reverted. Also,
during pause/resume, the original and modified values are remembered and
restored if the dialog was up.