History log of /packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
477366ac89828fcf85a94d63b76cda754a85d2ce 18-Nov-2011 Katherine Kuan <katherinekuan@google.com> Allow import from SIM when there are no contacts

Bug: 5639533

Change-Id: I96903021d6ff04b9bb007204284475bb37960f9e
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
24ef97235f6945b40f36231c5efe6bad76a4ccbe 14-Nov-2011 Katherine Kuan <katherinekuan@google.com> Merge "Selecting "Add to my contacts" on tablet can show wrong contact" into ics-mr1
e1cabcd0956f24a3d3cbe0777b430030f681a739 12-Nov-2011 Katherine Kuan <katherinekuan@google.com> Selecting "Add to my contacts" on tablet can show wrong contact

- The ALL_CONTACTS URI doesn't support sending a contact URI
in the intent as well. Hence, change intent action to
ACTION_VIEW.

- If you view a contact (selectedContactUri contains
that contact), if you modify the group it is in (i.e.
click the "Add to My Contacts" button OR edit contact
and remove them from the group you are currently
filtering your view with), then it's possible
it won't be in the list anymore.

In order to force a reload of the list, we need to have
mSelectionRequired = true, but it is never set to true
if the selected contact URI is the same as before. Thus,
we add a setSelectionRequired() method to force it to
require a selection if this is an incoming request on the
tablet. We don't want to modify the ContactBrowseListFragment
setSelectedContactUri code to set selection required = true
for all cases where the contact URI is equal because that
could lead to extra computation when the list reloads
and the selected contact is still the same.

- Don't compute selected position in adapter two times
(this is a linear search in the cursor). Just reuse the value
that was computed the first time.

Bug: 5478636
Change-Id: Ic5425d084df5492118a0e29cdc48a1c168e558e7
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
be79b8f05f45c4cddeea9106399521529ec27cae 10-Nov-2011 Katherine Kuan <katherinekuan@google.com> Intercept single contact mode and reset to last saved preference

Single contact mode is hard to get out of unless the user
changes the "contacts to display" filter setting.

Thus, whenever the PeopleActivity onStop() is called and the user
and reenters through onStart() - we reset the contact filter back
to the last saved filter according to SharedPreferences.

Since ContactListFilterController is a singleton, we have to
be careful in making sure the filter state is consistent with
the all fragment filter state because there can be multiple
PeopleActivity instances (i.e. another app launched People).

Bug: 5526485
Change-Id: I748ffc158a2de778dd9ecce4ab7f132af196b9a3
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
5c3a0a1440625fab859aab420cb08bc0276358a0 08-Nov-2011 Katherine Kuan <katherinekuan@google.com> Fix wrong contact being selected after editing (after a search)

- The problem is that after finding a contact via search
and editing that contact, we launch a VIEW intent to view
the contact. Then sometimes, that contact is not in the
current contact filter, so we may have to enter single contact
mode.

To avoid that, go back to the HC functionality of preserving
search mode. Now after editing, we return to the PeopleActivity
and preserve search mode if that's where we came from.
This was the relevant change from early ICS that is being
partially reverted:
Ibbaaccb03ac7961784dfa7b15c246b8d6f6489a4

The reason it was changed was to support viewing the contact
after editing a contact when the edit request came from a 3rd
party app. This still works with this change by adding
an intent extra in ContactEditorActivity.

- After the editing is done, only launch the VIEW intent
for the contact if we didn't come from the detail page for
that contact (on phone and tablet). We can just finish
the editor activity. This saves some time with setup / configuring
fragments because we don't have to resolve the VIEW intent
(i.e. On tablet, previously the VIEW intent launched the
ContactDetailActivity --> redirected to PeopleActivity -->
resolved intent to show the right contact.
Now we can just receive the onActivityResult and refresh
the page).

- Renamed ContactDetailActivity intent key to be consistent

Bug: 5542197
Change-Id: Ieaa9c147beeaa7c40f34fc1689858642b47fdbf9
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
9bd59f27cc5ad318b4bb78fc0576604e57f0b7a6 07-Nov-2011 Adam Powell <adamp@google.com> Follow framework API changes.

The Fragment#setStartDeferred method has been removed in favor of the
new setUserVisibleHint method. Update Contacts code that was using the
previous API in progress.

Change-Id: I9800a2c01f5343e4e732fb4649004f492c28ee97
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
b2a23189be94c824eadae9d0f7c5d58a7ee12fd0 02-Nov-2011 Daisuke Miyakawa <dmiyakawa@google.com> Fix possible NPE on People

mContactListFilterController may become null if People app just
redirects Intents to somewhere else (like contacts detail page).

Bug: 5557277
Change-Id: I3b1859ec3cd8f85a9ced0c926f7335772b03f70c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
f321386bd77e0bfdf659275540b2edd0442090c9 01-Nov-2011 Makoto Onuki <omakoto@google.com> Merge "Use new "deferred fragments" feature on People" into ics-mr1
746316a47c9ab982ebcc03edbc636019e9e34f40 31-Oct-2011 Makoto Onuki <omakoto@google.com> Use new "deferred fragments" feature on People

Apply the same technique which was recently introduced in
FragmentPagerAdapter in Ied454a6f.

Bug 5543639

Change-Id: If059589e0b1bfe2292c04eebb709800c1a41071a
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
7a700cf798a19a8452b8671f643a05336f63f611 28-Oct-2011 Katherine Kuan <katherinekuan@google.com> Launch quick contacts after selecting frequent contact on tablet

- Previously clicking on a frequently contacted person
would request the contact detail fragment to load that contact,
but the app wouldn't switch tabs or update the selected contact
in the contact list.

- Pass the Rect of the target view to the listener to launch quick
contacts

Bug: 5236515
Change-Id: Ic2d888ed02f8fd2b5a47d49f99cc96755bf55d37
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
f7689c377caba183daa41856d01a8c1a2f7ba811 24-Oct-2011 Katherine Kuan <katherinekuan@google.com> Show "no contacts" in frequent list on tablet

- This was already merged in master
https://android-git.corp.google.com/g/#/c/144789/
but needs to be cherry-picked to ics-mr1.
We can't mark it as "do not merge" because
it still needs to be merged to ics-mr1-plus-asop.
When submitting, I'll stand by to manually
say skip if the automerger detects a conflict
when merging to master.

- We need to show "no contacts" under the
"frequently contacted" header in the frequent
fragment in the People app on the tablet.

Since that header was originally the 0th item
in the ListView, to show an empty view we would
either have to:

1) Add a second fake item in the ListView that shows
"No contacts". This requires either returning
view type "empty view" or view type "frequent"
for position = 1 based on the cursor count.
Checking the cursor in getItemViewType()
would make this more than a UI change.

2) Move the "Frequently contacted" header
outside the ListView and make the ContactTileAdapter
show the empty view state when there are 0
frequently contacted people (instead of the
existing implementation which fakes it by returning
1 when the cursor count is 0).

- This CL uses the second option so that we don't
need to add a cursor dependency in getItemViewType()
of ContactTileAdapter.

- Added a TODO because UI changes like this highlight
the fact that we should do some refactoring to
ContactTileAdapter and ContactTileListFragment
so that it's easier to add specific functionality to
the favorites, frequent, or group list.

Bug: 5485640
Change-Id: Ib365543892f452cc9c87406ed2d04c1b5aad4b2c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
34b901ca7781cf7fdd4f6275ef98ae73c95749c2 18-Oct-2011 Daisuke Miyakawa <dmiyakawa@google.com> Filter and header refactoring.

- have AccountFilterUtil to unify account filter implementations.
- modify account header on top of search screens
Now it is bigger than before (40dip > 32dip), and uses people's
blue text color instead of gray (issue 5451033)
- introduce ContactListSeparatorTextViewStyle and use it everywhere

Bug: 5269692
Bug: 5451033
Bug: 5429203
Change-Id: Ibe810ff9adaafc74d53b0dcf171a3853f4be039a
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
966cc74cb9cff62cf19d7870dd1e2e849de44424 20-Oct-2011 Makoto Onuki <omakoto@google.com> Merge "Fix the double query issue on phone"
1db00f68b34f6cf7e9d19fedb559cf12f8c05e9c 19-Oct-2011 Makoto Onuki <omakoto@google.com> Fix the double query issue on phone

The issue was that fragments had separate methods for search: setSearchMode()
and setQueryString(). But now that fragments will never be in search mode
when query is empty, there's no need to expose both methods.

Changed setSearchMode() to non-public, and let setQueryString() call it
when necessary, so now we don't have to issue unnecessary queries.

Note this CL doesn't modify adapters, so they still have setSearchMode()
and setQueryString() as separate, public methods.

Also did a bit of cleaning up on how PeopleActivity handles search mode.
(When I worked on it first time I wasn't too familiar with the code, so was
afraid to change existing code too much, which left the code unnecessarily
complicated.)

Also removed all fragment.setSearchMode()/setQueryString() calls in
ContactSelectionActivity.configureListFragment(). As far as I checked
there's no way to invoke this activity with reqeust.isSearchMode/getQueryText
set.

Also removed ContactEntryListFragment.get/setContactRequest, which weren't used
anywhere.

Bug 5274171

Change-Id: I794db7ed54cb6b8f45d69430ec2f77e7fa83fb8c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
aaadf9393e98b04a40d249cd97ec758047268ed9 20-Oct-2011 Katherine Kuan <katherinekuan@google.com> Use text (instead of icons) for action bar tabs on tablet

Bug: 5345494
Change-Id: Id83008d868be9fba1d1bfe8c8d60adf0bff0cdcf
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
fa9b1587b8233bc8bd420c1c1abca0bdde58c2aa 19-Oct-2011 Makoto Onuki <omakoto@google.com> Merge "Make LIST_GROUP really open the group tab."
a012aec6f22dd6a37c518c895db45b173e186ef4 16-Oct-2011 Daisuke Miyakawa <dmiyakawa@google.com> Make a Singleton for ContactListFilterController

Better fix for issue 5165507 "Contacts to Display filter loses its
setting when going from People to Phone app". Now the whole app
has one instance and People and Phone UIs share it. All notification
will be delivered to both Activities, and thus no hack on onStart()
will be needed.

Also fixes issue 5299160 "Account filter header not updated when account
is removed from device". We need to update filter after
AccountTypeManager finishes its reload operation.

Now filter settings should be saved only from the controller, so this
change removes the code saving filter settings to SharedPreferences from
Activity/Fragment.

Bug: 5165507
Bug: 5299160
Change-Id: I4118271f1a78976af6cb3d432b1dd7b30c18eb7a
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
56b10f65d5f3dfd2ab80510f27371b57821c7f6d 19-Oct-2011 Makoto Onuki <omakoto@google.com> Make LIST_GROUP really open the group tab.

Let's just drop the support for the GROUP_NAME_EXTRA_KEY parameter defned in
the legacy Contacts.java.

Bug 5222596

Change-Id: Id91280df170a34378b5c7d41fb857c1df3b6cf78
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
08bcf715d5ea7f07ce18a282d9850ac70552ca9d 09-Oct-2011 Katherine Kuan <katherinekuan@google.com> Only show "add connection" button if relevant

- We don't want to present the user with the "add connection"
button if the user doesn't use the account that provides the
service

- Check if app contributing the account type is disabled or not

- Check if there is an activity to handle the "add connection"
intent

- Check if there are raw contacts in the database with that
account type

- Store this in a cache, and refresh it after a certain
period of time (i.e. 1 second) using an AsyncTask.
This is to prevent computing the list each time the contact
is loaded (which can happen many times especially when looking
at a detail page during a sync).

- Make sure public AccountTypeManager methods
first check ensureAccountsLoaded()

Bug: 5398529
Change-Id: I004f9562a587035a3168aaddb6eb43710fd201e6
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
33d64bae650e8e0ec45f1ad1f31c759c8a8704be 07-Oct-2011 Daniel Lehmann <lehmannd@google.com> Set type to filter to prevent spell-checker

Bug:5404735
Change-Id: I700a7f4ee7ba6a76d0b016e0a0fb9824c357c1af
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
6f74c0f3313cbb08ee8a8fbb79bfefc5b03fe215 27-Sep-2011 Makoto Onuki <omakoto@google.com> Fix account list for group editing (for master)

- Don't use contact writable account list to populate the
account picker when creating new groups, instead check for
isGroupMembershipEditable() on the account type

- Repeat the same for determining whether the "new group"
button should appear in the PeopleActivity or not

Bug: 5360120
Change-Id: Ifd2fd1cf4ea7bf02d4dcba3e9c023bd7041fab83
Original-Id: Ia1ec62eff3fe4fd5b495548218c58f238ff49788
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
48b526d9f63df121e1ee54188cc860732056c53d 15-Sep-2011 Isaac Katzenelson <isaack@android.com> Fixed missing "No Contacts" message

Bug: 5299100 Sometimes the "no contacts" message disappears
Change-Id: I372cd2edafe19213ef025481ca471878fe871182
when there are no accounts
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
aaa2ad5d450d1923dae4fdf76cd050cd8a069040 02-Sep-2011 Katherine Kuan <katherinekuan@google.com> Use standardized no account screen on first launch

- If there are no accounts on the device, then launch
an intent to show the prompt (check that there is no
flag in SharedPreferences preventing the prompt from
being shown).

- Only when the user explicitly selects "Not now" from
the no account screen, do we store a flag that says
we should never show the prompt again.

- Add "Manage accounts" permission in order to
perform AccountManager.addAccount, which gives us access
to the "no account" screen.

Bug: 5250360
Change-Id: I2f925c838bc0e7003a8dbb3280e5a22ed8680670
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
7a330308196e8f75d6ec5e449a0dd28813cfc373 07-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Make filter header clickable"
124e5cbea97366d4db1fa5ffe59efedd5913aded 07-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Make filter header clickable

Bug: 5160689
Change-Id: If2f9435bf0090f8bfc138a45fe2c9c04eec08091
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
53d303dc4a74ee266a0711d35eb4327c793b7a24 07-Sep-2011 Makoto Onuki <omakoto@google.com> Phone: don't crash when unsupported filter is set

- Unsupported filters, such as FILTER_TYPE_STARRED, could be applied
with deprecated public intents, such as LIST_STARRED_ACTION.

- Don't crash when these are set. Just treat them as the all filter.
Besides, some of these are 100% valid and there's no reason the
app should crash. (e.g. FILTER_TYPE_WITH_PHONE_NUMBERS_ONLY)

- Also, make PeopleActivity not set a filter for LIST_FREQUENT_ACTION,
LIST_STREQUENT_ACTION and LIST_STREQUENT_ACTION. Just showing the favorites
tab should be enough. (These are all public, but deprecated intents.)

Bug 5265438

Change-Id: I6c6d0ec3279f174907844706ef3527f10bf47bbd
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
49627cc3f606085d001397ebba93dcb52bf67a5c 28-Aug-2011 Makoto Onuki <omakoto@google.com> Add log to measure startup performance

Use this to enable log:

adb shell setprop log.tag.ContactsPerf VERBOSE

Bug 5195464

Change-Id: I76dc99343763532ebf18f41b75628c4d0c468e9d
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
e1316f0168f27107f46fa0161a2e9b9baac66f05 26-Aug-2011 Katherine Kuan <katherinekuan@google.com> Remove "new" label from new group and new contact buttons on tablet

Bug: 5205257
Change-Id: I90df89c2ef3be78592d32bbd0b54e63a7f34b669
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
c897f0213aec9dc589ea81fe53ccee444101f232 26-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Let Phone UI reload filter on onStart()"
cbe05df145b800118f3ca45f61ea486fad1cca08 25-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Let Phone UI reload filter on onStart()

This is workaround for bug 5165507: Contacts to Display filter loses
its setting when going from People to Phone app

- call ContactListFilterController#onStart() or its variant.
Not calling it is an apparent bug in DialpadActivity
- instead of checking local filter cache, load it from preferences
every time, only on Phone UI

The root problem is that People and Phone UI don't share one
controller insntance and thus they don't receive the same
filter change event. When the user changes the filter in People,
Phone UI won't receieve the event, for example.

On Phone UI, back button doesn't introduce Activity#finish(), which
makes the whole issue more prominent in People -> Phone case
(set filter on People, and go to Phone), but it does exist in the
opposite case (set filter on Phone, and go to People). The latter
case causes the problem only when People is in background (with
Home button, for example).

This will fix:
- display filter change isn't reflected in Phone, when going from
People to Phone (what reported in bug 5165507)

This won't fix:
- display filter change isn't reflected when it is modified in
Phone UI, while People is in background (with Home button event)
(what caused by the root problem behind that bug)

A more fundementaly fix would be to share one single
ContactListFilterController, which would be more complicated and
a bit too risky at this point.

Bug: 5165507
Change-Id: Ie7968deb99c07597c35e3bb1531461f0a42c326a
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
4b25da79091157935042d2942a8961ceba92166f 25-Aug-2011 Minh Pham <phamm@google.com> Change commit() to commitAllowingStateLoss()

- Following the pattern in Email and Gmail, we change all commit() to commitAllowingStateLoss().
At least this will stop the monkey ISE.
Bug: 5167769
Bug: 5179918

Change-Id: Ibee8380a0f854aeb30bc3c4359fb706faf4efb4b
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
a359f29a8da2a3d1f4eaafaff1bb180d7980ea21 25-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Use the older way to cope with onInvalidSelection()"
fab516143c60565b9cc0d18fbe0af33902764546 24-Aug-2011 Katherine Kuan <katherinekuan@google.com> Fix blank screen on contact card after extended screen lock

- After viewing the contact card for someone with social
updates and waiting for an extended screen lock (3+ mins),
unlocking the screen brings up a blank contact card.

- Don't set retain instance state = true for ContactLoaderFragment
so that it follows the normal Fragment lifecycle
(and we already take care of saving/restoring state
anyways in that fragment).

- Don't set the contact data to null onLoaderReset() in
COntactLoaderFragment

- Don't show the "updates" header in the updates fragment
if there are no stream items

Bug: 5141991
Change-Id: Icd8693154f756cf423b64524ffcbd850f1c55d9b
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
b9225e3753f128c80d9643d04faba5354ca263da 22-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Use the older way to cope with onInvalidSelection()

Although we're showing "all contacts" list when the selected
contact isn't in the current filtered list, we don't explicitly
select the contact, thus detail page ends up to showing
previously selected contact.

We can partly achieve it, by selecting the contact uri programatically
after showing "all contacts" list, but then, the next problem would be,
what should be done when even the "all contacts" list does not have
the requested contact.

The case is super rare (since "all contacts" should include almost all
contacts users usually want) but still possible, and there's no easy way
to determine the edge case.

One possible workaround for this rare case is to try to show "all
contacts" once and fall-back to single contact mode if the requested
contact isn't there. Though it sounds feasible, the change would become
a bit too risky at this point. For example, it may be very slow with
larger database.

Let's just show single contact for now, and show correct directory
header.

See also Ica75178d10b4a9b95c44cc4f75f56b65fbc67da8 for the code
introducing single contact mode.

TESTED (on phone):
- This change should not affect People UI for Phone.

TESTED (on tablet):
- set custom filter with no contacts, and create a contact.
We should show the contact both in the list and detail.
- set custom filter with no contacts, launch quick contact
via favorite screen, and open contact detail via the quick
contact.
We should show the contact both in the list and detail.
- set custom filter with no contacts, launch the other app
which relies on quick contact, and open contact detail the
quick contact.
We should show the contact both in the list and detail.

Bug: 5193999
Change-Id: I233162572e25acb737c9eae787dfc146879a0dc2
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
050c3893fadaf6d02951a3fe29684f4cd94fa9c9 22-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Show empty detail screen (on tablet) on nothing loaded

TESTED:
- People on Phone should work as we expect.
(this change shouldn't affect Phone experience at all)
- People on Tablet, landscape and portrait
-- nothing should be shown when no contact is selected
on boot
-- detail should be shown when a contact is selected
-- nothing should be shown when filter has changed and
no contact is selected
-- detail should be shown when filter has changed and
a contact is selected after that
-- orientation change should not cause any problem

Bug: 5084998
Change-Id: Ieed0b551655b7ee3b3872117eca50af90df30021
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
f70053496b23f7e2163abc8c56279de36b826584 19-Aug-2011 Isaac Katzenelson <isaack@android.com> Merge "Fix empty state layouts"
a1bbf6139bb1e0d30078fe6c99effaf45f7416ef 16-Aug-2011 Isaac Katzenelson <isaack@android.com> Fix empty state layouts

Bug: 5074806 Fix empty state layouts
Bug: 5109507 During loading group, we show "no groups"
instead of "loading groups"

- Changed the layout of contacts_unavailable_fragment to Marco's specs.
- Added a secondary message for empty state.
- Aligned layouts of empty state of each specific fragment to match the
full empty state.
- Removed "No Groups" message when group list fragment is loading the
group list

Change-Id: I5cea254e5892955906127599374dc706d2aca91b
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
2e177304ab03e8521e951b710460906ec49c07d2 15-Aug-2011 Makoto Onuki <omakoto@google.com> Fix for "Can not perform this action after onSaveInstanceState"

We seem to be getting a view pager event after onSaveInstanceState.
Clear the view pager listener in onSaveInstanceState to avoid this,
which is what we do with ActionBarAdapter too.

Bug 5161276

Change-Id: Ic20188c4f6ee0b60c6b6c9ea98709039a68d8073
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
d78ee90c0d4d93b82ad440396e87ae4f47f53e93 15-Aug-2011 Daniel Lehmann <lehmannd@google.com> Several DB changes as requested by ES

- Switch from resource ids to names to prevent breakage on package upgrade
Bug:5135277
- Add SYNC1...SYNC4 columns to StreamItems and StreamItemPhotos
Bug:5119385
- Remove ACTION, ACTION_URI from Groups, StreamItems and StreamItemPhotos
(this reduces db size and prevents click intercepting)
Bug:5135808
- Add some raw-contact fields to the StreamItem and StreamItemPhotos query
Bug:5134081

Doing those changes in one block to prevent too many db upgrade steps

Change-Id: I4c90742580c86203a1686bb625c026438ed19b8f
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
e668051b61d05c267a8e3c1bfd2fe9b034aa6ae1 12-Aug-2011 Makoto Onuki <omakoto@google.com> New search behavior for empty query

It's a very lightweight change to implment the new spec, which says:
- Don't start searching until the user types the first letter
- But if the search view is shown, make the ALL tab current, and disable swipe

With this CL,
- No changes to ActionBarAdapter.isSearchMode(). It still returns true
if the search view is visible, even if it's empty.
- However, in order to make the all fragment show the normal list for
empty query, only turn the fragment into the search mode if the query is
non-empty.

Also reverts I25908651 as we no longer do a search with empty query.

Bug 5104010

Change-Id: I50038994c6d65aab71ceefdf9218f3c7ad2bc6a4
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
06c3ca10faa9eeb96596b5bb724cc190bce81a28 11-Aug-2011 Makoto Onuki <omakoto@google.com> Merge "Remove STOPSHIP regarding hiding options menu"
946070f67043bf0be82a15e3904c7dfb219290cd 10-Aug-2011 Makoto Onuki <omakoto@google.com> Remove STOPSHIP regarding hiding options menu

This was a workaroudn for a framework issue, which has been fixed.
Now this is enough to hide all options menu when there's no contacts.

Bug 5030449

Change-Id: Ib5235a3c37132a73f545e8399cc7fd22f7e6448c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
af0a9d47e9ac629266884b902bcc480bed5e2b1b 10-Aug-2011 Makoto Onuki <omakoto@google.com> Don't show overflow menu options in search mode on phone

Hide "display options", "import/export" and "accounts" in search mode.

Bug 5144098

Change-Id: I86784a9fba3e61cb13cae1a8b7614b840dca4052
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
692cb6a2eb863afd3f8e4b4b1d2e1bda8f8a53e1 01-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Show all contacts on invalid contact selection

Happens when a contact is created but it isn't shown due to
contact fliter (e.g. the contact is for the account A while the
filter shows only contacts for the account B). Single contact
mode is just confusing in that case, so now let's show all contacts
and notify the change to the user.

Bug: 5031526
Change-Id: Ica75178d10b4a9b95c44cc4f75f56b65fbc67da8
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
8f59c2b18b73df6af3c808802620839f0a6a61d4 04-Aug-2011 Daisuke Miyakawa <dmiyakawa@google.com> Reflect recent UX design changes around filter capability

Include several related changes

- introduce filter option in phone search
-- have limited filter support in PhoneNumberListAdapter. There's
no easy way to share the logic for filtering as People UI
is taking care of Contacts/RawContacts table while Phone UI
needs to take care of Data table, though we may be able to have
some utility library for filter operations.
- have additonal layouts for filtered phone search. Along with it,
also introduce some pixel-perfect design for Phone/People apps
both for phone and tablet
- add "up" capability for CustomContactListFilterActivity
- launch CustomContactListFilterActivity directly from
AccountFilterActivity instead of relying on
their parent Activities (PeopleActivity and DialtactsActivity).
-- In the current structure, IME is shown during migrating
from AccountFilterActivity to CustomContactListFilterActivity
"only in Phone UI", as SearchView temporarily has a focus

FUTURE TODO:
Currently devices without hard menu key show overflow menu in
Phone search mode, while we want soft button on the right side
of search view.

Bug: 5104984
Bug: 5081251
Bug: 5121569
Change-Id: If935f13b33b105884a914b207fd096588825226e
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
3bbd9a0c3e85262365376ae212f9a8bc521e37d4 04-Aug-2011 Katherine Kuan <katherinekuan@google.com> Fix NPE on tablet contact card with social updates

- In tablet portrait, instead of having 3 fragments
on screen (2 fragments for the view pager and
1 detail fragment for contact with no updates), just
have 2 fragments where the view pager adapter has
count = 1 when there are no updates (which disables
the swipe).

- Store whether or not the contact has updates in
the save instance state bundle so it can be
restored in onCreate()

- Set retain instance = true for the ContactLoaderFragment

- There should always be a ContactDetailFragment and
ContactDetailUpdatesFragment after onCreate() of the
PeopleActivity on the tablet

- Basically apply similar logic from the phone CL:
https://android-git.corp.google.com/g/#change,125585

- TODO: Take out duplicated code from ContactDetailLayoutController
and ContactDetailActivity

Bug: 5106878
Bug: 5082871

Change-Id: I3af08bf84072d3d94e4f3a6bc1d01faf3432e3e7
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
8b1fe76ff6d68b79427acfb4498bed0986a6518c 28-Jul-2011 Katherine Kuan <katherinekuan@google.com> Merge "Use new search pattern in People app"
2b3f3c54d3beb017b2f59f19e9ce0ecc3e039dbc 27-Jul-2011 Dave Santoro <dsantoro@google.com> App changes for account types with data sets.

This is primarily a replacement of the Android Account object in most
parts of the app with a new AccountWithDataSet object that extends
Account (by adding an additional attribute, the data set).

This also includes a major refactoring of the AccountTypeManager,
both to allow it to handle data sets and to allow for
non-sync-adapter packages to be referenced by the sync adapters for
an account and registered as sources of contact data. Attributes of
the sync adapter that would typically come from the authenticator
can be parsed out of the Contacts XML for these packages.

Bug 5077096

Change-Id: I88f311c64eae78c88e9999bff6f7de8538e62157
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
d8a61b7296bf7388505f0211d7ef44700e766193 27-Jul-2011 Katherine Kuan <katherinekuan@google.com> Use new search pattern in People app

- Magnifying glass should go inside the EditText field
- "Done" button on keyboard should hide the keyboard
- When going to a search result (contact card),
the "up" button should return to the search results
and not relaunch PeopleActivity

Bug: 5081198
Change-Id: I32e103c39c40da26bfd12f1fa8cef000f33ee1c9
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
d510f8a8e03ed67cf5a9a686fd67ab9a19d6ab8f 27-Jul-2011 Isaac Katzenelson <isaack@android.com> Merge "Options Menu layout changes"
b76ab8b32e141ccf93a751885177342e5750f755 27-Jul-2011 Isaac Katzenelson <isaack@android.com> Merge "Adding "empty" message in empty state"
66606b648d7eee16b6e5a55506bbee141887b55e 23-Jul-2011 Isaac Katzenelson <isaack@android.com> Adding "empty" message in empty state

Added the message "No Contacts"/"No Favorites"/"No Groups" when
There are no accounts and no contacts on the device according to
the tab selected.
Added a message on the groups view when no accounts are on the
device and a button to add a new account

Bug 5071818: Empty state when no accounts added to device

Change-Id: If736899f4549554693f832f78a1f22798f2beae2
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
683b57e1fbf27c81c9973de814fc8bb1852e6df8 21-Jul-2011 Isaac Katzenelson <isaack@android.com> Options Menu layout changes

Show correct buttons for each tab
Show correct buttons for contact viewer and editor
Removed ContactOptions activity and now showing ringtone picker
directly.
Removed all "contact options" from XMLs.

Bug: 5062002

Change-Id: Ic52eaacdc5d9b5aab55fde37181c6ad6d7154b74
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
bed71bedbaae4d6b26b2b64db476bffa710753e5 26-Jul-2011 Makoto Onuki <omakoto@google.com> Don't execute Runnables after host activity is destroyed

Use Activity.isFinishing() to detect if an activity is (or will soon
be) destroyed.

Also use FragmentTransaction.commitAllowingStateLoss() instead of commit()
in ContactDetailLayoutController.initialize(), which can be called from
Handler.post().
(And removed TODOs related to this.)

Bug 5032952

Change-Id: Ib5598a3e0a94adeaafd0497ac54518f2c6634603
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
ea14605e56c98fcaa93f2f1e4186ce9db5e2f159 25-Jul-2011 Makoto Onuki <omakoto@google.com> Make LIST_XXX intents open corresponding tab

Also, make Contacts Intents send the correct intent for LIST_DEFAULT.

Bug 5071627
Bug 5073681

Change-Id: Id28f85c0adef085417472c2211c29bcd5193aa58
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
93f625d8f2825575b4f63f4cf78ecbb7b56354eb 21-Jul-2011 Katherine Kuan <katherinekuan@google.com> Don't commit transactions after onSaveInstanceState()

- On the tablet portrait view, once the contact details are loaded,
a runnable is posted to a handler to properly setup the fragments
(by showing/hiding the ContactDetailFragment or ViewPager/Tab carousel)
- Since it's posted to a handler, we need to make sure that
onSaveInstanceState has not already been called or at least allow
the fragment transaction to be lost if it has been
- Prevent the runnable from doing anything if the activity is already
destroyed

Bug: 5011890

Change-Id: Ib43278f21eee390202ffe4b7ed4057482c34e61c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
789bc596877861da26ca862c699a269783d8d42a 21-Jul-2011 Isaac Katzenelson <isaack@android.com> Fix Options Menu buttons

Rename settings to display options
Remove "contacts to display" in search mode

Change-Id: Iafe03965aee27373dde7612fcb6c0852e49e83f4
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
727f1222e681a91ac96a41c7ac92da4e92bf8e54 20-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "(1-pane) Do smooth transition when switching between tabs"
41164239bf48685394b1aff7b807ea8983feda81 20-Jul-2011 Makoto Onuki <omakoto@google.com> (1-pane) Do smooth transition when switching between tabs

Bug 5044832

Change-Id: I574549ac5a55a45008f0c3d77dfe0225cdccef73
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
01358ef6f7e39a160c8df816108bf8c7d6fbecbb 20-Jul-2011 Isaac Katzenelson <isaack@android.com> Merge "Remove "new group" button when there are no accounts"
5649a12fe551855f00c8dbeacfc96511c2a5fb71 20-Jul-2011 Katherine Kuan <katherinekuan@google.com> Go to contact card after editing

- In PeopleActivity, get rid of startActivityForResult to launch editor
because the editor will take care of launching the
contact card itself (instead of relying on the PeopleActivity
in the tablet to reload the contact details)

Bug: 4769324
Change-Id: Ibbaaccb03ac7961784dfa7b15c246b8d6f6489a4
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
49917b3ed3272dd0e26112d8403a3891fbc48ce1 20-Jul-2011 Isaac Katzenelson <isaack@android.com> Remove "new group" button when there are no accounts

Bug 5044446: Crash in People app while tapping group icon
When starting the People app with no accounts with at least one
contact, adding a group throws an exception.
To prevent the exception, I removed the "new group" button when
there are no accounts on the device.

Change-Id: I6ef6a34a57b0ca18a22bb5d4686442ca15546a7c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
fbac52efa6d07113b6758cf1cb1f19c68c42c7e6 19-Jul-2011 Frank Sposaro <sposaro@google.com> Merge "ContactTiles are using new phone only Uris."
0c07935a3d838ed24db7d20df839be97fe4c625a 19-Jul-2011 Frank Sposaro <sposaro@google.com> ContactTiles are using new phone only Uris.

Bug: 4904403
Change-Id: Ib597ceee7f26ca77f8e5f050bfbfccd421a675a5
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
703cda7119b710446f7abc38843043b7cbbf3a47 16-Jul-2011 Katherine Kuan <katherinekuan@google.com> Show group source on group detail page

- Show group source button as:
* scrolling header item in ListView for phone portrait
* non-scrolling header outside of ListView for tablet landscape
and portrait (b/c can't addHeaderView on ListView after
the adapter is set and we reuse the GroupDetailFragment
on the tablet)
* custom action bar button in phone landscape
- Tested by inserting an action and action_uri for one group

Change-Id: I29abad130dac57e3077fd4f3e546a451f579b394
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
ff64220c681b48d54ff9cb3d82687fc53e2139e5 19-Jul-2011 Makoto Onuki <omakoto@google.com> Keep the search result after orientation change

Clearing the search string when entering to the sarch mode was causing the
issue.

After orientation change, ActionBarAdapter restores the previous state
(the search mode and the query term) and kicks onAction(START_SEARCH_MODE).
If we don't clear the query term here, everything will go fine.
(as far as I can tell...)

Bug 5042558

Change-Id: Iba85393caafe491fd37f4d5b477a7703eb9e62e9
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
20c92756218ff3a43ae369404108463c9de4b31e 19-Jul-2011 Daniel Lehmann <lehmannd@google.com> Merge "Flatten the categories on the phone"
edc0992377a76f385102249e29a9c48e82f2dbf7 19-Jul-2011 Daniel Lehmann <lehmannd@google.com> Flatten the categories on the phone

Unfortunately, we can't execute this on the tablet due to b/5045558

Bug:5039229
Change-Id: I7fe3ced6321eb4d5a17f3a088da6e107d7d0adf2
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
7979ea27c046dfc2d9305b3282233046acef6ec4 15-Jul-2011 Frank Sposaro <sposaro@google.com> Enhanced performance in ContactTileAdapter.

-Contacts Load faster because now saving cursor and not copying into ArrayList.
-ContactTileLoader factory performs more optimized queries.

Bug: 4901406
Change-Id: I91902a99252e99db081d4437066a74f9fa21f5d1
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
53b427b3dc6f04340133b2da135b3f5efea4de11 17-Jul-2011 Makoto Onuki <omakoto@google.com> Make search less magical

- Remove PeopleActivity.mSearchMode. Instead, always ask ActionBarAdapter
the current mode.

- Don't use the default search behavior (i.e. send a new intent) on 1-pane.
Now 1-pane and 2-pane go through the same path for the search menu item
and for the search key.
i.e. when search key is pressed, show the search view (only on 1-pane),
set focus, turn the "all" list into the search mode too.
(and the "all" list should initially show all contantacts eventually, but
it's another issue which hasn't been fixed yet.)

- Remove dead branches.

- Instead of startSearch, override onSearchRequested(), which is the preferred
way of implementing a custom search action.

Change-Id: I4fd15a7f3164a3832df21b8fa1fb215e53d1a3e1
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
6d9befe1de956c50e31e4d1c22809fe9826f680c 17-Jul-2011 Makoto Onuki <omakoto@google.com> Add debug flag and debug log to PeopleActivity

Change-Id: Ib570aab76090e6b0f4fa649767cdfb7c2b0ccc66
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
417ca4983c7fd76ce6086db5b66f10a95ff9b7d6 15-Jul-2011 Makoto Onuki <omakoto@google.com> Fix bug 5033564 intent tests crash (e.g. LIST_ALL_CONTACTS)

Was caused by the swipe CL Ic6c8a2b8.

- Now that some of the fragments are created at runtime using
FragmentTransaction, we can't assume that all fragments have views
in onCreate().

(The framework calls Fragment.onCreateView() AFTER Activity.onCreate()
if a fragment is dynamically created. If a fragment is inflated
from a layout,onCreateView() IS called during the inflation.)

- So the initialization that may touch fragment views now has to be
done after onCreate().

- Also extract out the request intialization code from configureContentView().
Now onNewIntent() calls only this new method, but configureContentView().

Bug 5033564

Change-Id: Ibcfcef4b20132536d736dd5db15af9122c01b643
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
a4505fc31c7a1072d1aee1781cd86710207d6c79 15-Jul-2011 Makoto Onuki <omakoto@google.com> Fix bug 5036399 (2-pane) Opening a contact from quick

... contact won't update current view.

The issue is that when quick contact opens the activity's
onSaveInstanceState() gets called, where we clear the action bar adapter
listener.
Then, when the user selects "contacts" on quick contact, onNewIntent()
gets called and we update the current tab there.
However, because it's onResume() where we restore the listener and onResume()
is called after onNewIntent(), the activity misses the current tab change
callback.

Fix is easy -- just always call updateFragmentsVisibility() in onResume()
when we restore the listener to make sure fragments visibility matchs
the current tab.

(updateFragmentsVisibility() is virtually no-op if there's no changes, so
always calling it is not inefficient.)

Change-Id: I64aa229cbb1aa37114fce73e83849fbb2098acc7
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
a023ddd7788bc7cde35ca7bbeaf3edb99ff34441 14-Jul-2011 Makoto Onuki <omakoto@google.com> Remove unnecessary invalidateOptionsMenu() call...

when switching tabs.

Change-Id: Ifa1c70f58cf210621ffb1e0175707e0c6e9f6dfd
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
71e372c222ed5156573f935f5758eb4df85437b6 14-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "2-pane: Make sure to hide "edit contact" on non "all" tabs"
c1eed6d4fe14599fb89644d460c45020057789be 14-Jul-2011 Makoto Onuki <omakoto@google.com> Fix bug 5031013 Crash after searching a contact from...

Only in onDestroy() mActionBarAdapter can be null because
we may finish() People activity in configureContentView() before initializing
mActionBarAdapter when redirecting to another activity.

Change-Id: Ibf4417b2604a4b85944a23022aef578ec94faaf9
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
9c0e8ac3a90e01ebca4b83f1f8ef78e9e98a9922 14-Jul-2011 Makoto Onuki <omakoto@google.com> 2-pane: Make sure to hide "edit contact" on non "all" tabs

(also other options such as "delete conact" and "share copntact")

These menu items are actually owned by ContactLoaderFragment, so we need to
show/hide the fragment as well even though it's invisible.

Bug 5028965

Change-Id: I302ee49a2a549c0397bee6a657e04c291c3e8b3c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
e0c66aff27473d0edbd95660b95f0f2a80ab63ec 13-Jul-2011 Makoto Onuki <omakoto@google.com> Show the "UP" icon on the search mode.

- On both 1-pane and 2-pane.
- Also just use a bool resource instead of styles to get
the "should show the home icon" setting.
- Also clean up how we set action bar display options.

Bug 4983521

Change-Id: I81f61a98bfc6695784a323cb28e05d7e3f7f932d
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
8811b7c3fe518246b8ee2aa00a90319dfafd10c6 14-Jul-2011 Makoto Onuki <omakoto@google.com> Make sure to update menu options when switching tabs

Also removed unnecessarily complicated code to invalidate menu options
when entering/exiting the search mode.

Bug 5027867

Change-Id: I0ee24975d327b775c64952abfbdcbcf32e618a0d
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
25f9b3dcefa76017598eb8d713187f6eaf3a7e44 13-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "People: Enable split action bar on 1-pane"
c0b5f8aa0c634bbd3148965ad9c263bc16424b91 13-Jul-2011 Makoto Onuki <omakoto@google.com> People: Enable split action bar on 1-pane

- Also fixes bug 5023543: (1pane) Search menu item will be gone forever
- Also removed onCreatePanelMenu() and onPreparePanel(). With the action
bar, returning false from onCreateOptionsMenu() is enough to hide
all menu itesm.
HOWEVER, because of a bug in the action bar, we can't simply return
false from it... I put workaround code which should be removed
once the action bar bug is fixed.

Bug 4689447
Bug 5023543

Change-Id: I46c34df127fb777fc9019b99783377c2ee15f7d1
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
2cc3b3e8e08b484fa6b228dcdf8025aa8ea99c08 11-Jul-2011 Makoto Onuki <omakoto@google.com> PeopleActivity: Remove context menu code

We don't use it any more, do we?

Change-Id: Id9afd3d9ea45a5de0f36065b054ee05d0974c6f4
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
adc1df97d7cb78bf3d9ec6effd8fbaf7391cc7a1 13-Jul-2011 Makoto Onuki <omakoto@google.com> Merge "PeopleActivity: Swipe!"
250ce43794cdf6820f7a13ef0195a566bd0c8c64 13-Jul-2011 Makoto Onuki <omakoto@google.com> PeopleActivity: Swipe!

I was originally planning to create a set up classes to abstract out the
logic to controll fragment visibilities, but with the last refactoring on
ActionBarAdapter() I think it's managable without them...

Change-Id: Ic6c8a2b87005bc0cd3ab41dee7ac99db794274eb
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
05b1600927a903b833c3c31a85bd23449d41e535 13-Jul-2011 Makoto Onuki <omakoto@google.com> Renamed updateFragmentVisibility.

I've just added a method with an almost same name (updateFragmentsVisibility).
Let's give it a more descriptive name.

Change-Id: I96ede4333179258cb414906f76633d2bc25eba69
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
4e2bb32000f391ceb0de7309a159bee5d8e04fc5 12-Jul-2011 Frank Sposaro <sposaro@google.com> Pressing a group member on phone takes you to contact card.

Bug: 5016808
Change-Id: I59990fd0301bfa4934f8add568b40b080eb70e02
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
4d788fc27ac855bd6e0cec17dff39a18564f0089 12-Jul-2011 Makoto Onuki <omakoto@google.com> People: Action bar tab refactoring

- Now ActionBarAdapter manages the action bar tabs.
- Now ActionBarAdapter.setCurrentTab() should always be used to select
a tab programmatically, rather than directly calling
ActionBar.setSelectedNavigationItem().

- Do not re-create/re-initialize ActionBarAdapter/ActionBar for new
intents.

- Simplify fragment visibility update logic in PeopleActivity.

- Do not clear ActionBarAdapter.Listener in PeopleActivity.onPause;
do this only in onDestroy.
Activity is paused when we're processing onNewIntent(), but we still want to
get callbacks during this.

Change-Id: I93ec35e569e1854923503734693b6404cff92f50
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
50445e9d1efb1fa046d9a1232c973b4c96e1f52d 12-Jul-2011 Makoto Onuki <omakoto@google.com> Retry: Set up fragments just after setContentView().

Redo of I9e0ad079 with fix for crash on portrait.

I9e0ad079 crashed if you launched the app on portrait, because contact details
fragments don't exist in the layout.
(It worked when you rotated from landscape to portrait, because the fragment
manager would recrate them even though the layout didin't have them.)

The only change from I9e0ad079 is that we still use onAttachFragment to
initialize details fragments.

* Original CL description:

... except for ContactsUnavailableFragment, which is not in the layout.
(we dynamically create it.)

It's part of refactoring to prepare for ViewPager.

This also fixes the "mFavoritesFragment and mFrequentFragment are both
StrequentContactListFragment but we always assume StrequentContactListFragment
is Favorites in onAttachFragment" issue.

Change-Id: If30611039d8cdaa8f91676454eba67e89fcbdcc8
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
4959ca3d0093a798859660f2914003d0da777645 12-Jul-2011 Makoto Onuki <omakoto@google.com> Revert "Set up fragments just after setContentView()."

It crashed on 2-pane portrait. Seems like there's no ContactDetailFragment in the layout...

This reverts commit 0dafecbe5dbf810d83f9cf0ce590e8e055c53a48
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
0dafecbe5dbf810d83f9cf0ce590e8e055c53a48 12-Jul-2011 Makoto Onuki <omakoto@google.com> Set up fragments just after setContentView().

... except for ContactsUnavailableFragment, which is not in the layout.
(we dynamically create it.)

It's part of refactoring to prepare for ViewPager.

This also fixes the "mFavoritesFragment and mFrequentFragment are both
StrequentContactListFragment but we always assume StrequentContactListFragment
is Favorites in onAttachFragment" issue.

Change-Id: I9e0ad079714813a5bef898a51eb49cc88a78dbf2
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
9e095d2ffc4a94d2fb925d19df6db12bc2b1e124 08-Jul-2011 Frank Sposaro <sposaro@google.com> Added QuickContacts.

Change-Id: I0bf3b536da73c2f9862a958ff0275ef8404def4f
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
553c8893a37ce11ec7a46eed4048921b196fc91b 10-Jul-2011 Makoto Onuki <omakoto@google.com> People: Use PhoneCapabilityTester.isUsingTwoPanes ...

instead of mContentPaneDisplayed.

I'm trying to clean up the fragment stuff. Using isUsingTwoPanes()
seems cleaner than using the old flag, which gets updated in onAttachFragment.

Change-Id: Id894d5679d4d3928794d5f67d87967a7ae849cf5
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
95c5c2a8f8ab17688af10d2ff01bcb5b9ce760b0 08-Jul-2011 Daisuke Miyakawa <dmiyakawa@google.com> Two cleanups in People UI

- remove mListFragment
-- this is actually same as mContactsFragment
- stop letting TabListener remember Fragments
-- onAttachFragment() may make those Fragments obsolete
- Let Tab remember its TabState

Change-Id: I83cc0006bd84ae40bf5ace3685b4d74757cf3b84
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
495db43f0a08bd71ba28a42f89b80d38af15afec 07-Jul-2011 Katherine Kuan <katherinekuan@google.com> Bring back account filter

- ContactListFilterController no longer loads accounts and groups,
to display in the action bar drop down menu. Now it just stores
current filter and saves it to preferences.
- ContactListFilterLoader is no longer needed because we're not
loading groups anymore
- Move adapter from ContactListFilterController to the
AccountFilterActivity
- AccountFilterActivity loads a list of accounts and returns
a ContactListFilter as an activity result based on the account
selected
- If "customize" is selected, then the CustomContactListFilterActivity
will be launched.
- Show header in contacts list according to what account filter
was selected
- Update filter activities to holo theme

- TODO: Remove the "display phones only" option in the
customize menu on the phone

Change-Id: I45e0bdee80e7885d39bf09183a66ec50d81d1982
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
2c9eb83444a4569fb8279dbaf4c17ad83e368d72 09-Jul-2011 Daniel Lehmann <lehmannd@google.com> Merge "Rename tab "Contacts" to "All""
6e6c24190257fd77d99b4ab385501795537f6eff 09-Jul-2011 Daniel Lehmann <lehmannd@google.com> Rename tab "Contacts" to "All"

Bug:4983441
Change-Id: I14e2c1afe6e9d71e7f7837635886fe4b60d0c07f
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
4ba903cdf132a6be2e5efa33187b18ca8446e503 08-Jul-2011 Makoto Onuki <omakoto@google.com> Fix for search view/IME issues

- Set the search view as the custom action bar view on tablet too,
(not as an acition view of a menu item.)
- Add a dummy view to the action bar to prevent the search view from
getting the initial focus.
- Call SearchView.setIconified(false) to make sure the IME will pop up
when setting focus on the search view.

Fix for:
- tablet: Keyboard keeps popping up upon app launch.
- tablet: Keyboard keeps going away after each character is typed.
- tablet: Have the search view request focus again.
- phone: Keyboard won't pop up when the search view is shown

Note:
- The width of the search view on the tablet is temporary until we
get redlines.

Bug 4691469

Change-Id: I70d1dddebf63120e8fbbafd6a0548d8553a8927c
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
58fc577bd7966e6566cdcac09589a0d3e05128e7 04-Jul-2011 Katherine Kuan <katherinekuan@google.com> Contact card on tablet

- Two-column layout in landscape
- ViewPager and tab carousel in portrait
- Views with and without social updates
- Use ContactDetailLayoutController which controls hiding/showing
fragments based on orietnation and contact data
- Move options menu into the loader fragment because there can
be multiple ContactDetailFragments on the screen now at one time
or it can be dynamically created by the ViewPagerAdapter and
we won't have a reference to that in the PeopleActivity

TODO: Use ContactDetailLayoutController in ContactDetailActivity
so there isn't duplicated code. But just make it work now and do
cleanup later.

Change-Id: Ibf8eb317c6e19bc3d98eb9ce46a45cccb237c631
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
e5d06f534d58baa27fe6b1091b9724f81fd258c9 07-Jul-2011 Frank Sposaro <sposaro@google.com> ContactTile column counts are now dynamically adjusted.

Bug: 4969044
Change-Id: I5185b93ea3e7720136c929ce4c8ab820d7b4dfc9
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
72a8e70ef935935fdbb26c53f760be59bbdfe824 04-Jul-2011 Katherine Kuan <katherinekuan@google.com> Group editor for phone

- Instead of a 2-column page, make all the fields stack vertically
for the phone layout
- Since new intents for groups will not be supported in this release,
we can just call into GroupEditorActivity directly

Change-Id: I6b81b26b030ce9815d5f2c2c0d52e10d842970b6
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
971116e466757434f4979a61d4f58ea0deac1ea4 05-Jul-2011 Katherine Kuan <katherinekuan@google.com> New group disambiguation dialog

- Since switching accounts in the group editor is difficult
(i.e. we need to wipe all added group members when accounts
are switched), it's easier to just have an account disambig
dialog when you first create the group
- The disambig happens as a popupwindow anchored to the
action bar "New group" button if it's a wide screen
- Otherwise the disambig is a dialog that comes from
the GroupEditorFragment

Change-Id: Ibd75607b326e600c412f4bd04eb4cc72534aed72
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
2eb969cc399d87b659a45568fa951d394c216917 28-Jun-2011 Katherine Kuan <katherinekuan@google.com> Contact card with and without social updates

- This is for the phone (landscape and portrait)
- Some tweaks were done to the tablet to prevent regression
but it's not quite ready yet
- No social updates means a single scrolling list of details
- Having social updates means a tab carousel and ViewPager
- Add invisible contact loader fragment
- Now the loader fragment loads the contact --> passes to
ContactDetailActivity --> passes to all necessary fragments /
carousels (no matter the configuration)
- Get rid of ContactDetailAboutFragment and move those changes
into the ContactDetailFragment

Change-Id: I7be55ae7205bbcb8106bf2f2e4ae8dd6ce2c6a78
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
c6b8afe730255537978f2c938cca6986cae63c34 23-Jun-2011 Katherine Kuan <katherinekuan@google.com> Group editor on tablet

- Allow autocomplete to add new members which presents
the user with suggestions from the raw_contacts table
with the same account name and type as the group
- Hook up the "new" and "edit" group buttons on the tablet
- Once the user exits the editor, update the group list
and scroll the group list to the group that was just edited
- Allow rename of groups (make the names of read-only groups
not editable)
- Allow removal of members
- Hook up the done / cancel / up / back buttons

- TODO: Be able to create a new group + add new members
in the same transaction. Then the new group editor
will allow adding members at the same time. Currently
you can only add a name to a new group. Once it's created,
then you can go and edit the membership.

- TODO: Bulk add/remove members in one transaction when the
user exits the editor. Currently it's saving the change
after you modify the membership list (even before you hit
the "Done" button in the editor).

- TODO: Add member status message and chat presence

- TODO: Add UI for non-editable groups

Change-Id: I1f32a28862c358b8bd1469666743cd240d28f80b
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
aa2dfcdf9e7a4701f3954413f1cd75b8e1a26910 30-Jun-2011 Frank Sposaro <sposaro@google.com> Fix NPE in People App on phone when search is pressed.

Bug: 4980842
Change-Id: Ida527a877c22354c447726e900336f050fa74aee
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
f00ff8b91e6c452839bb80c195bc8616797b9a0c 29-Jun-2011 Frank Sposaro <sposaro@google.com> Favorites on Tablet are ContactTiles.

-Redesigned fragment sizes on favorites tablet.
-Frequent ContactTiles are now shown as a list.

Change-Id: I6dbce53e867619665df551cb85afc9960c76c0fa
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
ee179470c986594ac8f8cbacb7bdddff332ecfc7 25-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Add listener to "favorites" fragment.

Bug: 4948919
Change-Id: I43c0ef977cbb732d910091482d467228379b952f
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
b1f0e5e8a4de69bd80276742900441e930fa4c86 22-Jun-2011 Daisuke Miyakawa <dmiyakawa@google.com> Show dialog if multiple candidates exist

In GB we show a list of phone number to call in Favorites
screen, while we don't now.

Also refrain PhoneNumberInteraction from showing a dialog
by itself but let a nested class do instead. showDialog() is now
obsolete and we should use DialogFragment instead.

Bug: 4743008
Change-Id: I202963c2f03424f07ee386bd9713fde4091a0ae2
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
79700889dad553dcde9e22a2fd23df768f68080f 15-Jun-2011 Katherine Kuan <katherinekuan@google.com> Add tabs to contact card

- Since the ContactHeaderView and ContactDetailFragment will still be used
for contacts without updates, leave this code in. Temporarily make all
contact cards have the about and update tabs.
- Use ViewPager for contact details
- Move name and job to action bar
- Add about fragment and updates fragment
- Add carousel for "about" and "updates" tab
- Create utils class for converting ContactLoader results into
strings for display since the ContactHeaderView will no longer
be the only customer for this data

Change-Id: I84ff759ee09daefcc7e7514564c180f27f0400b6
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
1ee9df6facd2340416d6a33aeb739707643d2fc3 12-Jun-2011 Katherine Kuan <katherinekuan@google.com> Fix search view on phone

- Take SearchView out of the action bar on the phone
and put it into the overflow menu
- Hide menu item if already in search mode

Bug: 4575326
Change-Id: I63003bb2c31712510ffa30eadb65b8a511f42011
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
8268bbe65440c70db46b4c505433fac1fdc36e58 11-Jun-2011 Katherine Kuan <katherinekuan@google.com> Add group menu options in group details fragment

- Move "new contact" and "new group" menu items into
list fragment (instead of details fragment or
people activity), so it works according to the current
tab esp for the phone
- Move group menu items into group detail fragment
- Remove custom "new contact" button
- Add some fixes for menu items / fragments going into and
out of search mode

Change-Id: I1f2a4d7e90b4e5d438bb271f0a66e21d8069b189
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
0ff0e317cbf788adc4dce38257d27691e032d6ca 09-Jun-2011 Katherine Kuan <katherinekuan@google.com> Group list headers and selection

- Sort groups according to account
- Add headers to groups in same account with # of groups in that account
- Add "selection" background on list item in tablet, but disable it on
the phone
- Misc: enable fast scroll, move icon to right

Change-Id: I1c83aa686de2431b3483a1591ecad7e9e6893cdc
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
5e684a424e7036ba3d379221d1889b4dd7265021 10-Jun-2011 Dave Santoro <dsantoro@google.com> Update references to ContactBrowserActivity.

The activity was moved to PeopleActivity - references in comments
and test were not all updated.

Change-Id: Ie01e514323a05c4316d4f42c9af75f7759434352
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
be18de05d6f6a107c552e369bce58f51c946fde7 07-Jun-2011 Katherine Kuan <katherinekuan@google.com> Add group detail fragment on tablet

- Add action bar on GroupDetailActivity, title, and subtitle
- Make everything use the groupUri instead of passing around
account name, type, group Id, and group title
- Fix some of the callback listeners between the group fragments
and group activities
- Add factory methods to ContactListFilter

Change-Id: I63066ea6eefde1e57562b6396d6dc590ed023c84
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
b5760b94bbf56ce348876ec36f4669d20a1530f5 02-Jun-2011 Katherine Kuan <katherinekuan@google.com> Add tabs to People app

- Move account filter into overflow menu
- Use action bar in tab and standard mode so the SearchView
is right aligned and part of the options menu instead of the
custom view in the action bar
- Make visibility of action bar home icon a style so the icon
can be hidden on the phone
- TODO: Make physical search button work on the phone so the
search box can be removed from the action bar
- TODO: Fix SearchView focus problems

Change-Id: I7b3ba49f80e1911fb4a096679a00560967584426
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java
9856fcee477d04f51bdbcbfdf632876c6b8a1173 01-Jun-2011 Katherine Kuan <katherinekuan@google.com> New People activity

- This is part 1 of bringing up the new People app
- Rename ContactBrowserActivity and related XMLs to PeopleActivity
- Change Contacts to People app launcher icon
- Create new task affinity for phone app activities
- Get rid of ContactsFrontDoor activity because it doesn't need
to distinguish between Dialtacts and ContactBrowserActivity anymore

Change-Id: I8c5e1ed540b294c1bda85409ca1499f88d4459ee
/packages/apps/Contacts/src/com/android/contacts/activities/PeopleActivity.java