Commit Graph

77 Commits

Author SHA1 Message Date
Brad Fitzpatrick
d532d8d8c1 am ca1db5ae: am dd644c17: Fallback to SharedPreferences.commit() when no apply() exists.
Merge commit 'ca1db5ae68971779fd8af83c908128849f470ae0'

* commit 'ca1db5ae68971779fd8af83c908128849f470ae0':
  Fallback to SharedPreferences$Editor.commit() when no apply() exists.
2010-10-11 17:43:06 -07:00
Brad Fitzpatrick
ca1db5ae68 am dd644c17: Fallback to SharedPreferences.commit() when no apply() exists.
Merge commit 'dd644c179c1bf47d82d776d7f644e4fc1467159d' into gingerbread-plus-aosp

* commit 'dd644c179c1bf47d82d776d7f644e4fc1467159d':
  Fallback to SharedPreferences$Editor.commit() when no apply() exists.
2010-10-10 15:30:55 -07:00
Brad Fitzpatrick
dd644c179c Fallback to SharedPreferences$Editor.commit() when no apply() exists.
Gingerbread widened the SharedPreferences.Editor interface, adding an
apply() method.  Most people don't implement this interface
themselves, but a couple apps do.

A few spots in the core framework take a SharedPreferences[.Editor]
from apps, which might be a pre-Gingerbread implementation without an
apply() method.  This patch makes sure we never depend on the presence
of an apply() method, falling back to commit() if apply() isn't
available.

Change-Id: I32693ac9227a60b694526a26a30234fb17a40581
2010-10-10 15:26:24 -07:00
Chet Haase
9ff82bf2b3 Adding next/prev to fragment animations and to PreferenceActivity
Adding a new concept of "next" and "previous" to fragment.s Previously, fragments would
either be placed onto or taken off of the stack, or would just replace the current
fragment. The new next/prev capability gives the ability to run a transition that is
specific to next/previous operations, such as navigating forward and backward in a list.
New next/prev animations may be associated with a fragment replace operation to get the
next/prev animations built into the system (next animates things up, prev animates them
down).

Change-Id: Ia9f3663bac009376420d845b396ac51b8e4d1647
2010-10-05 15:13:24 -07:00
Amith Yamasani
05fbc31ed9 Make the headers pane disappear in no-headers mode, not just the ListView. 2010-09-26 13:29:01 -07:00
Amith Yamasani
82e7bc1134 Fix for Ringtones not being saved when using Preference fragments.
Bug: 2988732

RingtonePreference was calling startActivityForResult on Activity instead
of on Fragment, so the result was not being delivered to the fragment.

Setting a fragment owner on the PreferenceManager instance so that it can
be used instead of getActivity() for launching the intent.

Not exposing any new public APIs at this time.
2010-09-23 15:14:59 -07:00
Amith Yamasani
ed13cde1de Fix attribute parsing of PreferenceHeader_id 2010-09-17 16:59:26 -07:00
Dianne Hackborn
c6669ca632 Add API for showing breadcrumbs of fragment back stack.
This adds a simple API to have your back stack automatically
shown as bread crumbs in the action bar.  Introduces some APIs
to retrieve the current back stack.

Also fix a little bug in the "activated" state where it was
being propagated down the hierarchy as "selected". :p  And from
that, fix the standard colors to be reasonable when in the
activated state.

Finally PreferenceActivity is updated to take advantage of
bread crumbs to show your place in the preferences.

Change-Id: I9d633bedf8d7c6e4ed9b25cb9698faa66c7dd9a4
2010-09-16 18:36:04 -07:00
Dianne Hackborn
d0fa371f27 Add a new "activated" state to View.
Use this in ListView and GridView if the top view is not checkable.

This allows PreferenceActivity to now highlight the current heading
that is being shown.

Change-Id: I0d28aded9a61a42962b4aece420ae4058712d963
2010-09-15 11:00:44 -07:00
Dianne Hackborn
a21e3da559 Fix issue #2967969: Crash rotating screen on "delete account" dialog
- Have PreferenceActivity save and restore its header state.
- Keep track of the current header selection.
- When headers are updated, try to retain the current header selection.

Also fix issue #2995541: Cannot add new contact.  We were not allowing
fragment transactions in some cases.

Change-Id: I4aa4c703ed5f4ecf9f425cd7eeea4740c6360ce9
2010-09-13 22:49:54 -07:00
Dianne Hackborn
3e449ce00e 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
2010-09-12 17:10:04 -07:00
Brad Fitzpatrick
4f3c5589c8 am 9eb32c96: am a2f2141c: Merge "More SharedPreferences commit() -> apply() changes." into gingerbread
Merge commit '9eb32c96c872512c8aedc8627a4b96e9ea2a1a28'

* commit '9eb32c96c872512c8aedc8627a4b96e9ea2a1a28':
  More SharedPreferences commit() -> apply() changes.
2010-09-03 13:27:51 -07:00
Brad Fitzpatrick
9eb32c96c8 am a2f2141c: Merge "More SharedPreferences commit() -> apply() changes." into gingerbread
Merge commit 'a2f2141c84923e34e003bec92b7435ea79b02ee8' into gingerbread-plus-aosp

* commit 'a2f2141c84923e34e003bec92b7435ea79b02ee8':
  More SharedPreferences commit() -> apply() changes.
2010-09-03 12:49:44 -07:00
Brad Fitzpatrick
fa8e271636 More SharedPreferences commit() -> apply() changes.
Change-Id: Ibc844d72d463434722a349f5bbc02889a9feb0ee
2010-09-03 11:18:28 -07:00
Andrew Stadler
aa904f48cf Add startPreferenceFragment()
This allows sub-fragments to be started directly via API

Change-Id: I6c8b86a911c8731068459eb9cdd3d37970fc9d0e
2010-09-02 14:50:08 -07:00
Brad Fitzpatrick
02f4f0eb49 am 734d2707: am bb660d7e: Merge "Renaming SharedPreferences.startCommit to apply" into gingerbread
Merge commit '734d270769c609c7d3a1f2ec46e1d329d9682ab4'

* commit '734d270769c609c7d3a1f2ec46e1d329d9682ab4':
  Renaming SharedPreferences$Editor.startCommit to apply
2010-08-30 18:25:02 -07:00
Brad Fitzpatrick
734d270769 am bb660d7e: Merge "Renaming SharedPreferences.startCommit to apply" into gingerbread
Merge commit 'bb660d7e1bed3a07a1804bd9641d9634bfaa4972' into gingerbread-plus-aosp

* commit 'bb660d7e1bed3a07a1804bd9641d9634bfaa4972':
  Renaming SharedPreferences$Editor.startCommit to apply
2010-08-30 18:18:54 -07:00
Brad Fitzpatrick
66fce5068a Renaming SharedPreferences$Editor.startCommit to apply
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
2010-08-30 18:10:49 -07:00
Brad Fitzpatrick
7f7ce40f90 resolved conflicts for merge of 28130bae to master
Change-Id: I13df8dc12092c3d2536e12216df9130d5914380a
2010-08-27 16:11:27 -07:00
Brad Fitzpatrick
28130baefb resolved conflicts for merge of 6b50986a to gingerbread-plus-aosp
Change-Id: I7c5ec7ae717e75ad242e2c1ad4537052e4eea718
2010-08-27 12:08:40 -07:00
Brad Fitzpatrick
333b8cba99 SharedPreferences$Editor.startCommit()
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
2010-08-27 09:10:11 -07:00
Dianne Hackborn
5c769a47ae Some new preferences features.
- 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
2010-08-26 17:43:49 -07:00
Amith Yamasani
59f3a757b5 Merge "Make getListView() public and hidden, as it is needed for WifiSettings." 2010-08-18 10:42:39 -07:00
Dianne Hackborn
291905e34a Maybe fix #2925641: calling onCreateOptionsMenu before attached activity
Also add some APIs to PreferenceActivity.

Change-Id: I85894a3eb9cd3e5adb78b82e85454c0d74773178
2010-08-17 18:53:19 -07:00
Amith Yamasani
9ae5473eae Make getListView() public and hidden, as it is needed for WifiSettings. 2010-08-17 16:49:58 -07:00
Andrew Stadler
468c3230da Fix two bugs in PreferenceActivity headers
* 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
2010-08-17 16:16:42 -07:00
Dianne Hackborn
def1537e9e 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
2010-08-15 17:20:59 -07:00
Daisuke Miyakawa
52a50782d5 Make the doc for PreferenceScreen aware of PreferenceFragment.
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
2010-08-13 13:20:04 -07:00
Jean-Baptiste Queru
72dc780f57 Fix build: tweak documentation links
Change-Id: I9c9c8615086b7173f4ad68b5183e7699275c7a2d
2010-08-13 09:25:19 -07:00
Dianne Hackborn
b7a2e47722 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
2010-08-12 17:23:48 -07:00
Freeman Ng
09dbf18440 add a Skip option
Change-Id: I21dca8feb1dedc362350c41e95a12463e6e4bc61
2010-08-11 15:45:01 -07:00
Dianne Hackborn
b3cf10ffa8 Add facility to switch to new fragments from preferences.
Change-Id: I009315b59cf81b4962e9c5a4490f0f82743ed64a
2010-08-03 17:07:45 -07:00
Dianne Hackborn
b1ad5977bc 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
2010-08-03 11:18:23 -07:00
Dianne Hackborn
42c2936f3c Add PreferenceFragment.
Change-Id: I9b87ec2c15822cca5b460a9a2d589fc24e21a789
2010-07-28 16:06:58 -07:00
The Android Open Source Project
506e6e0882 am 3a94ab02: merge from open-source master
Merge commit '3a94ab026f0434624f233e99b1a0aadb9152a09a'

* commit '3a94ab026f0434624f233e99b1a0aadb9152a09a':
  Allow ListPreference summary to use entry
2010-07-16 13:56:16 -07:00
Kenny Root
ba636df784 Allow ListPreference summary to use entry
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
2010-07-13 10:28:44 -07:00
The Android Open Source Project
39ccc0811f am 56d4bcd8: am 627356ce: am d6c0bb0f: merge from open-source master 2010-05-19 08:36:58 -07:00
The Android Open Source Project
d6c0bb0f0f merge from open-source master
Change-Id: I0598edad283a177a5ddcc30e20d2284503e6038e
2010-05-19 08:28:32 -07:00
Christian Mehlmauer
746a95ab71 Removed Calls to deprecated APIs
Change-Id: I3f9b6a8d3c8a050156a6cc7ea0eb9de33b82f79a
2010-05-17 21:16:20 +02:00
Gilles Debunne
76f0ce1fe4 Revert "Merge "Raw types warnings removed.""
This reverts commit 9794ca60d7, reversing
changes made to d3f9051c85.

Change-Id: I39cebc7e92d3604941d66b09bd7b899d06f703fb
2010-05-03 18:51:28 -07:00
Gilles Debunne
9afed28629 Raw types warnings removed.
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
2010-04-27 15:05:16 -07:00
Adam Powell
212db7d3f8 Added MultiSelectListPreference
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
2010-04-15 10:18:17 -07:00
Freeman Ng
19ea2e0d78 Give all PreferenceActivity subclasses ability to be launched in wizard mode with Back/Next buttons
Change-Id: Ifc8c22c70e808629a9a889406f17a962615e2574
2010-03-31 11:10:41 -07:00
Adam Powell
e7fea45863 Fix bug 2520540
PreferenceActivity will now persist view hierarchy state properly.

Change-Id: I4e7fe036d0d0bced78e58e2a15808facf502e449
2010-03-18 17:08:15 -07:00
Owen Lin
d6cc0343c9 Revert I3fdda2588a7c612d7c9cfb4f25d9aedd1d609162 which open two functions
in preference manager.

Change-Id: I910ccd3794771da9ec1eb4809b3d1a2a6633f4b1
2010-01-25 13:45:52 -08:00
Amith Yamasani
58bb107f2a Workaround for a database update callback that claims that the data doesn't exist.
It's probably some intermediate state when updating the volumes that's causing
the row to be missing.
2010-01-21 09:58:01 -08:00
Romain Guy
980a938c1c Deprecate fill_parent and introduce match_parent.
Bug: #2361749.
2010-01-08 15:11:38 -08:00
Amith Yamasani
a98129b911 Fix preference caching to increase recycling of preference views.
Add extra safety measures - no recycling of derived preferences as
they may override onCreateView or getView
2009-10-05 15:31:47 -07:00
Amith Yamasani
bae6fc2447 Fix for 2155255: Revert "Cache inflated view to avoid inflation of layouts in preferences"
This introduces problems when scrolling through preference screens, due
to a clash in this cache versus the ListView's cache.

This reverts commit 01dbc2ed55.
2009-09-30 14:11:57 -07:00
Suchi Amalapurapu
01dbc2ed55 Cache inflated view to avoid inflation of layouts in preferences
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.
2009-09-28 00:46:05 -07:00