• Home
  • History
  • Annotate
  • only in /packages/apps/Contacts/src/com/android/contacts/model/
History log of /packages/apps/Contacts/src/com/android/contacts/model/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
de8a66404acd36544e3559404f6542473224aa4a 14-Sep-2012 Marc Blank <mblank@google.com> Allow both AOSP and Google account types for Exchange

* Contacts app had hard-coded the single account type; why do we
have to hard-code these names?

Bug: 7162923
Change-Id: I7ea201fc961e7abc4e44aa138b8cc002fbb6ed33
ccountTypeManager.java
ccount/ExchangeAccountType.java
b5a4a1317f40cfdf84942064952a2eadfdc117bd 22-Aug-2012 Daniel Lehmann <lehmannd@google.com> Calculate the formatted number when upgrading to a full contact

Bug:7003015

Change-Id: Ic117ee803041c8883a3d91a93d9da0e17764921c
ontactLoader.java
10bf684e0c9022d80b04d9cc69665c6341677bea 15-Aug-2012 Maurice Chu <mochu@google.com> Enable parsing phone number in ContactLoader

A new flag has been added to the ContactLoader to compute
a formatted number based on the original phone number,
phone number in E164 format, and the default country code
iso. Only the ContactLoader for the contact detail card has
been enabled to compute this formatted number.

Bug: 6521929
Change-Id: I0a8eaaa49b7768e9ce2a177d64881562e6bec1d7
ontactLoader.java
awContact.java
ataitem/PhoneDataItem.java
db92b75087ee9d44b026dd1e220955f5d808dcc7 07-Aug-2012 Chiao Cheng <chiaocheng@google.com> Merge "Fixing mis-sorted modifiers." into jb-mr1-dev
9629ad2fa0de7c9cc4f6e8fc0131db09809073a2 06-Aug-2012 Chiao Cheng <chiaocheng@google.com> Fixed null pointer exception when mime entries are null.

Bug: 6929467
Change-Id: Id8aeeb94bb73b2c1290ba326c1c4e57253215fdc
awContactModifier.java
edd70c9596106e8cb36416f8b1a90737a80ad760 06-Aug-2012 Chiao Cheng <chiaocheng@google.com> Fixing mis-sorted modifiers.

Change-Id: I639ccefc8d111e3cf5bcc27d1567bdeeef9d0033
ontactLoader.java
59b83fa3647dd104df899953321a4c37945448a4 10-Jul-2012 Geobio Boo <geobio@google.com> Fix bug where IllegalArgumentException was thrown incorrectly in RawContact

Bug:6800450
Change-Id: I4383eb0f90f90260c680e66a0ec9b959e6f95db4
awContact.java
851222a96b5d68602fb361ea3527101e893f67e3 21-Jun-2012 Maurice Chu <mochu@google.com> Added thin object layer around contact data

This refactoring abstracts out the need to directly
refer to Contacts database columns throughout the code. Instead,
all of this information is retained in getter/setter methods
within the Contact, RawContact, and DataItem classes and
sub-classes.

ContactLoader.Result class has been pulled to the top level as
the Contact class.

The Entity class has been removed and replaced with a RawContact
class, with getters/setters to raw contact information.
Renamed EntityDelta to RawContactDelta for better understandability
as well as adding getters/setters for specific fields in the
ValuesDelta nested class within EntityDelta. EntityDeltaList
and EntityModifier have been renamed to RawContactDeltaList and
RawContactModifier with the methods using the RawContact class
directly rather than the Entity class.

Data items for a raw contact are represented by a DataItem object
with specialized getters/setters for subclasses of DataItem.
(e.g., EmailDataItem, PhoneDataItem. etc.). DataItem is a wrapper
around ContentValues. This abstracts away the ContactsContract
column fields into getters/setters.

The above refactoring is accompanied with changes throughout the
codebase to use the new Contact, RawContact, and DataItem classes.

Change-Id: I31c1dccd724e9652f9d0af78ca81feb6c5acd71d
ccountType.java
ccountTypeManager.java
ccountTypeWithDataSet.java
ccountWithDataSet.java
aseAccountType.java
ontact.java
ontactLoader.java
ataKind.java
ntityDelta.java
ntityDeltaList.java
ntityModifier.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
awContact.java
awContactDelta.java
awContactDeltaList.java
awContactModifier.java
ccount/AccountType.java
ccount/AccountTypeWithDataSet.java
ccount/AccountWithDataSet.java
ccount/BaseAccountType.java
ccount/ExchangeAccountType.java
ccount/ExternalAccountType.java
ccount/FallbackAccountType.java
ccount/GoogleAccountType.java
ataitem/DataItem.java
ataitem/DataKind.java
ataitem/EmailDataItem.java
ataitem/EventDataItem.java
ataitem/GroupMembershipDataItem.java
ataitem/IdentityDataItem.java
ataitem/ImDataItem.java
ataitem/NicknameDataItem.java
ataitem/NoteDataItem.java
ataitem/OrganizationDataItem.java
ataitem/PhoneDataItem.java
ataitem/PhotoDataItem.java
ataitem/RelationDataItem.java
ataitem/SipAddressDataItem.java
ataitem/StructuredNameDataItem.java
ataitem/StructuredPostalDataItem.java
ataitem/WebsiteDataItem.java
e0b2f1e2d01d1ac52ba207dc7ce76971d853298e 12-Jun-2012 Chiao Cheng <chiaocheng@google.com> Global import order fix.

Changed import order to be in accordance with style guide:
http://source.android.com/source/code-style.html#order-import-statements

Static imports will be placed at the top since most existing files used that
convention. It is also a style that can be handled by both eclipse and intellij.

Change-Id: Ia7013c7a2d88e5fefb8f4975d121f7fcd3fcc462
ccountType.java
ccountTypeManager.java
ccountTypeWithDataSet.java
ccountWithDataSet.java
aseAccountType.java
ataKind.java
ntityDelta.java
ntityDeltaList.java
ntityModifier.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
3e435f0e724cb3e88efce15f760e59b9bc08f0d3 12-Jun-2012 Chiao Cheng <chiaocheng@google.com> Change usages of com.google.android to com.google.common.

The people app contains usages of both com.google.android and com.google.common.
Changing code to use the later guava library since it will be needed to unbundle
the app in the future.

Change-Id: I2700126e020166ea1bbbd87c40e77428efde41f3
ccountType.java
ccountTypeManager.java
aseAccountType.java
ntityDelta.java
ntityDeltaList.java
xchangeAccountType.java
oogleAccountType.java
82a4f4408b74e193b43a12dc8e16c946a93bae4a 08-May-2012 Makoto Onuki <omakoto@google.com> Clarify AccountType.resPackageName/summaryResPackageName

Gave them clearer names and added javadoc.

And added a workaround for the fact that the view notification
service for the google account type is implemented in the sync
adapter, not in the authenticator.

This really needs further clean up.

Change-Id: I567656393fab30293c831fac802884dc84daf861
ccountType.java
ataKind.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
ac71b5305d49614f5560519509fa41ce9276a3f7 24-Apr-2012 Makoto Onuki <omakoto@google.com> Support adding phone/email to readonly contacts

If the selected contact has no editable raw_contacts, create one on the
first editable account found, and add the data to it.

We'll reuse the "contact is readonly" mode if there's no editable accounts
on the system. We could improve the message, but if there's no editable
accounts we shouldn't show the contact picker in the first place, so I
didn't change the message. Let's fix the picker instead.

Tested:
(Previously supported casses)
- Add a phone number to an existing editable contact.
- Add a phone number to an existing local-only contact.

(Newly supported cases)
- Add a phone number to an existing read-only contact.
- Try to add a phone number to an existing read-only contact, but no
editable accounts are set up.

Bug 5462347

Change-Id: I55db01610cebb60d3830e8ec4ac6bf1a3dfdad88
ntityDelta.java
a84cf9274905479f09eb01dd3e7c6fbc2c5c6145 24-Apr-2012 Makoto Onuki <omakoto@google.com> Tiny clean up for ConfirmAddDetailActivity

Also improved EntityDelta/EntityDeltaList.toString() and added a log
to buildDiff().

Change-Id: I1585467a0396cc6b1b6d5746ee8c02e217cc420a
ntityDelta.java
ntityDeltaList.java
e5d3f897689c8ba0f275c7679c72eacb190ae9b8 11-Apr-2012 Josh Gargus <jjosh@google.com> Fix regression; once again we can apply Gallery photo to contact.

The changes to support hi-res photos in Ic0cabaa5 were not applied to
AttachPhotoActivity. This CL makes the analogous changes, and many other
cleanups besides.

In addition, applying the Gallery photo works even if the AttachPhotoActivity
is killed (eg: when selecting a contact, or when cropping the photo); this
didn't work even before the regression.

The save-contact Intent which invokes the ContactSaveService no longer
needs to specify a callback Activity (it is OK to pass null if you don't
care about getting a callback).

The subclasses of PhotoSelectionHandler have been significantly simplified,
partly by pushing common behavior to the superclass, and also by directly
accessing state in their outer class instead making their own copies.

ContactLoader.Result.getEntityDeltaList() is a new instance method that
replaces more verbose incantations.

New utility class, ContactPhotoUtils. Helps with compressing Bitmaps, and
generating temp-file names used when saving hi-res photos to a contact.

Bug: 6298601
Change-Id: I2fe90c33c9fa81716f263d82ed80c0d6f63c6a7e
ntityDelta.java
ntityDeltaList.java
7b1255eab0729fd43a8aae9933bd79afa50a53a9 15-Feb-2012 Daniel Lehmann <lehmannd@google.com> Replace HashMap by SparseArray

Bug:6013599

Change-Id: Ia3592bf4a4e348bdee822e4f34180b4f64807d11
ntityModifier.java
a0290a4baab4297303cab3664c7abfd548f2e301 27-Jan-2012 Makoto Onuki <omakoto@google.com> Fix proguard flags

Removed problematic *ForTest and use NeededForTesting instead.

Change-Id: I61517b6ea30da2461f541ceca19f04f24f8624da
aseAccountType.java
ntityDelta.java
allbackAccountType.java
bda3e6c2d73a220910917b4dde6eefbee22a0d1d 21-Dec-2011 Katherine Kuan <katherinekuan@google.com> Make "mobile" be the default phone type for new Exchange contacts

Bug: 5377393
Change-Id: I3f64a24730687c784693eb0514813adb8b005128
xchangeAccountType.java
cb8d73fc8ea538d0b63dd77210c05c5b8de32f03 16-Dec-2011 Daniel Lehmann <lehmannd@google.com> Use ContactLoader in QuickContacts

Bug:5683257 Make QuickContact work with directory contacts
Bug:5276725 QuickContact needs to launch a view notification intent

Change-Id: Ia66200a0367c29617ba6ac06d82354ebe316ea9c
ccountType.java
aseAccountType.java
30c130305cb8871e99767981270557c4b62474cb 07-Dec-2011 Josh Gargus <jjosh@google.com> Centralize number of lines to display in DataKind.

The number of lines to display for different types of data is
currently specified in the view code. Instead, change this to
specify the values in DataKind, so that they can be used
elsewhere.

Bug: 5274415

Change-Id: If10cb680877f9b247620929f5cdf64ad8d9ffd85
aseAccountType.java
ataKind.java
6fa7384a1a5576ace18159de61af91c8b7c34dc6 28-Sep-2011 Dave Santoro <dsantoro@google.com> Allow adding/replacing a photo from contact card.

This involves a large refactoring of the photo handling code that
previously lived in ContactEditorFragment. The bulk of that logic
has been extracted out into PhotoSelectionHandler and
PhotoSelectionActivity classes.

As part of this change, also removed the selection highlighting when
tapping on the current tab header in multi-tab views.

Bug 5294297
Bug 5379389

Change-Id: Ic929e4b4a730d91f768a34367bb76967228ded17
ntityModifier.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
ccountTypeManager.java
f8ce15cc8a76ff536e1b5b19163589176adde58f 03-Nov-2011 Makoto Onuki <omakoto@google.com> Fix bug 5563362: failed to initialize external account type

The contacts.xml parser has had a bug that it processes each ContactsDataKind
tag twice,for START_TAG and for END_TAG.

When processing for END_TAG, because an end tag doesn't have attributes
it created an empty DataKind, with null mimetype. (This bug existed even
before the EditSchema change, meaning MR0 still has this issue.)

Before MR1 this null mimetype was just not used anywhere, so it was okay.
But in MR1 we have the duplicate mimetype check, and it will complain
if a contacts.xml has more than one ContactsDataKind therefore has multiple
"null" mimetype definitions.

Made sure to only process for START_TAG. Also cleaned up existing code
with a similar check.

Also included the package name in the error message for duplicated mimetypes.

Bug 5563362

Change-Id: Ib68fb0dca03784c4d7976ac8bf68b1dce5305b03
ccountType.java
aseAccountType.java
xternalAccountType.java
c641e62225a253373c08cdd9e3144df090162b60 08-Nov-2011 Makoto Onuki <omakoto@google.com> EditSchema: add mandatory check for "name" and "photo".

- The editor works fine without other fields.
- Also added test for missing supports* attributes for the name kind.
(for now, all the support* attributes must be true. Otherwise the
editor may not work properly.)
- Also fixed the default value for the support* attributes, which was
mistakenly set to true.

Bug 5578679

Change-Id: Iec5412feb3aa671b64f74d850ccf67daaa87c88e
aseAccountType.java
xternalAccountType.java
86ccb6ce2ff6078b06add93aab489951ef83bc72 19-Oct-2011 Makoto Onuki <omakoto@google.com> Follow up to EditSchema parser

- Now AccountType.addKind() throws DefinitionException instead of just logging.

- Now the test contacts.xml (= test_basic_contacts.xml) defines "event" and
"relationship" DataKinds too. BUA should be able to copy this file.

- Added another xml, contacts_fallback.xml, to the test apk.
This defines what's equivalent to the fallback type. Unittests load this file
directly and compares the result to the fallback account type.

- Cleaned up existing account definitions in order to make sure
contacts_fallback.xml is really identical to the fallback type. This includes:

** Now structured name, display name, phonetic name, and phone DataKinds
all have 'kind.typeOverallMax = 1'.

** The "assistant" phone type is no longer a custom column. It's only used for
the fallback type and I don't think it's too critical.

- Also, NameKindBuilder no longer re-order phonetic fields, because no
other account types do this. In the previous CL I did it because I thought
that'd be more "correct", but on the second thought it's probably not a good
idea to make too many non-critical changes at this point.

Bug 5381810

Change-Id: Ie6a4eb3b876ab22a3dcdb6a9c278e387f8166125
ccountType.java
ccountTypeManager.java
aseAccountType.java
ataKind.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
d25f31898f887bedceabd0ccac45fa61c64485af 19-Oct-2011 Makoto Onuki <omakoto@google.com> Merge "EditSchema parser for ExternalAccountType"
dcf751d75ad5d31620a4216d8c53fd59525e8bd8 18-Oct-2011 Makoto Onuki <omakoto@google.com> EditSchema parser for ExternalAccountType

This also includes:
- Removed getHeaderColor/getSideBarColor from AccountType

- Implemented a test authenticator/sync adapter in the test apk.
This defines a test account type "com.android.contacts.tests.authtest.basic".
We could potentially add more account types to the test apk to test different
edit schema variations, but at this point this is impossible, as
ExternalAccountType doesn't have a way to tell which contacts.xml belongs
to which account type. The current contacts.xml defined here builds
the fallback account type equivalent.

The sync adapter is pretty rudimentary; it doesn't clear the isDirty flag
on modified raw contacts or delete raw contacts with isDeleted set. At
this point this doesn't seem to be necessary to test EditSchema.

Note:
For now it's still not meant to be public API. Right now it's only manually
tested with the edit schema defition in the test apk described above.

Bug 5381810

Change-Id: Ifefdb969b4e08775125924b1366d24effc4db2f2
ccountType.java
ccountTypeManager.java
aseAccountType.java
ataKind.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
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
ccountTypeManager.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
ccountTypeManager.java
ccountTypeWithDataSet.java
50a27b70581b0191995969c63edd1f6a3db3d1b7 07-Oct-2011 Makoto Onuki <omakoto@google.com> Clean up account definition

Removed:
- DataKind.isList. Use typeOverallMax = 1 instead
- DataKind.textAppearanceResourceId. Always use medium
- EditField.isFullName. Wasn't used.

Bug 5381810

Change-Id: I5ff109c075a5edb80ff97737432c78589570a1ea
ccountType.java
aseAccountType.java
ataKind.java
ntityModifier.java
xchangeAccountType.java
oogleAccountType.java
ee05dcdd4b066ad909322c10919fb1812214673b 06-Oct-2011 Katherine Kuan <katherinekuan@google.com> Cleanup of chat capability icon and primary icon in DataKind

- Add content description to chat capability icon for
accessibility

- Remove primary icon from DataKind because we don't display
it anymore in the UI (it's an unused field since we only
display secondary action icons now)

Bug: 5416674
Change-Id: I6587dd9186af68b0e794d3e73cbc3dad9fdac332
aseAccountType.java
ataKind.java
xchangeAccountType.java
xternalAccountType.java
oogleAccountType.java
22c3d41492fb24dbb61e7fdeeaa06a0d9229d3a1 08-Oct-2011 Makoto Onuki <omakoto@google.com> Merge "Fix duplicated DataKinds for external account types"
e099fbf70e6b3908388a1d87a1209f05932eb673 07-Oct-2011 Makoto Onuki <omakoto@google.com> Fix duplicated DataKinds for external account types

Bug 5430460

Change-Id: I99228b7dcfaa7bc7af0c2eaac2210398ebaa2e1e
xternalAccountType.java
131e6ac666868645b48ae6932575d85751ff57c0 05-Oct-2011 Makoto Onuki <omakoto@google.com> Ensure not to use "local" account when there are accounts

Bug 5409438

Change-Id: I30e72bb686ed0ccbd9c7c42d4331c4ce418efdc4
ccountWithDataSet.java
fbb876392608a36ec1d23704f29d8b46d5d23991 01-Oct-2011 Daniel Lehmann <lehmannd@google.com> Add missing copyright headers

Bug:5399509
Change-Id: Iba658e35cd0bf71a9320037ddb80257003f780c7
ataKind.java
2e13dae8f2b52441b3eef947e1207fcc67e26975 29-Sep-2011 Daniel Lehmann <lehmannd@google.com> Merge "Allow sync adapter to rename the "View Updates" button"
d7dfdee089842b5c8cf65f9d4251fb428ad79aa2 29-Sep-2011 Daniel Lehmann <lehmannd@google.com> Allow sync adapter to rename the "View Updates" button

Bug:5382678
Change-Id: Id848c018788d31927b27863ea86d45159aa31040
ccountType.java
xternalAccountType.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
ccountTypeManager.java
558669dab4109afebd19eade1f95a396215fb44d 23-Sep-2011 Makoto Onuki <omakoto@google.com> Utility methods for new contact editor flow

- shouldShowAccountChangedNotification() to see if we need to show the dialog.

- saveDefaultAndAllAccounts() should be called when saving a newly created
contact, with the account used to save it. This saves all writable accounts
and the default accounts to the preferences.

- getDefaultAccount() to get the default account.

- createAddWritableAccontIntent() to launch the account setup wizard.
- getCreatedAccount() to interpret the result from the wizard.

- Also implemented Parcelable for AccountWithDataSet, so now it can be
put in a Bundle.

Bug 5355671

Change-Id: Ifb86c931b43fa307b65756cf24cbef4350374c67
ccountTypeManager.java
ccountWithDataSet.java
38959cf5b4689d4cdb35f037b1aab0e5e9c42a3d 22-Sep-2011 Daniel Lehmann <lehmannd@google.com> DO NOT MERGE Make third party sync adapters editable

Bug:3093621

Change-Id: If3bb34f7d29bea4bd873342232bea3c1a77bcd2a
ccountType.java
ntityModifier.java
xternalAccountType.java
96e87fd6e808e9d853263ffeb5104f3253a18639 21-Sep-2011 Daniel Lehmann <lehmannd@google.com> Use existence of editor as indicator whether source is editable.

Bug:3093621

Change-Id: I3ba344667ce1b0f2da6847d783c0ac90f36ebd8f
ccountType.java
ccountTypeManager.java
aseAccountType.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
c90f95e63684363d10ffe5ef8f08f2159fb5bfc0 08-Sep-2011 Dave Santoro <dsantoro@google.com> Fix re-parenting for modifications to the profile.

Bug 5274218

Change-Id: Icbeed88032dcdab643aaa85216fb4363473cc80b
ntityDeltaList.java
9db59fe67d9f2624120c718499a74eab7fea3c03 06-Sep-2011 Katherine Kuan <katherinekuan@google.com> Alignment tweaks in contact editor

- Multi-line address edit text field should now be
aligned with the spinner beside it

- Other misc alignment fixes

Bug: 5250070

Change-Id: I92b4b0d13cd1346227b95e7326a1c37ec68b066d
aseAccountType.java
454e272a976671d357a6d3945eca5ccf9483ccef 03-Sep-2011 Dave Santoro <dsantoro@google.com> Fix data update/delete URIs for profiles.

If the contact update being performed is in the scope of a profile
contact, the base URI for data operations must also be a profile
URI.

Bug 5249062
Bug 5201592

Change-Id: I19197b338745cf8748339c650c958ba22f580620
ntityDelta.java
68c03dc9166ef64d5d567835f2487e7e275fe4a2 02-Sep-2011 Isaac Katzenelson <isaack@android.com> Merge "Fix contact editor account header"
d525aee2dbea0e002f8e499b3ef1d42e503d0059 01-Sep-2011 Daisuke Miyakawa <dmiyakawa@google.com> Layout read-only contacts correctly

- remove unnecessary headers between multiple phones/emails
- modify the layout a bit

Bug: 5149895
Change-Id: I9bbccd8a68d2ffe3d0ed7bbbb8af0f93ffccc4f7
ntityDelta.java
2cb71bd0d6096f48d9d8c6d66a753b164468abb2 01-Sep-2011 Isaac Katzenelson <isaack@android.com> Fix contact editor account header

Bug: 5179920 Google+ profile should say "My Google+ profile"

Reverted default account type name changes
Flipped account name and type usage that was wrong
Vertically aligned the headers.

Change-Id: Icc279fcba5d426d1afaf32b59bec30ed5d739907
aseAccountType.java
allbackAccountType.java
d124d99339a6a3a7dc0bfa016263988120ea2a4c 30-Aug-2011 Makoto Onuki <omakoto@google.com> Don't log AccountType.getInviteContactActionLabel()

This requires loading external APKs, which hugely affects performance
measurement.

Bug 5195464

Change-Id: I44f40c5eda04ceb33b56956e7040952da2909cd8
ccountTypeManager.java
ac76896f811ea35b842769cf037d577b942822f6 30-Aug-2011 Makoto Onuki <omakoto@google.com> Merge "Don't preload AsYouTypeFormatter"
63f80f8f1235110354f0413ad2bf09bca332b7a0 30-Aug-2011 Daniel Lehmann <lehmannd@google.com> Merge "Use framework style for section headers and visual tweaks"
66c1ae914fa8e71ff6ca0a5c9659ad760b5a5484 25-Aug-2011 Mindy Pereira <mindyp@google.com> Swap local profile string to corrected string.

Fixes Bug:5179592 Local profile card string should be "My local profile"

Change-Id: I5b75cfba12978765a87e37ceaeafae96cca9b03d
aseAccountType.java
allbackAccountType.java
e598332967106e3db63b73c701f21902d169efef 27-Aug-2011 Makoto Onuki <omakoto@google.com> Don't preload AsYouTypeFormatter

- This took 200ms of startup time at least, and a lot more under heavy load,
especially when the flash is busy. (200ms is mostly disk I/O.)

- Instead, make sure we always use AsyncTask to create
PhoneNumberFormattingTextWatcher, which wass the only thing that uses
AsYouTypeFormatter.

- DialpadFragment already had an AsnycTask. Moved it to the new class UiUtils
and use it in TextFieldsEditorView, which is the only other callsite.

- Also improved the logging for account loading. We used to log only CPU
time, but what we really care is the actual wall time. Because
account loading involves a lot of file access (e.g. loading 3rd party
apks), only measuring CPU time is not too useful.
(In fact, on my phone, loading accounts takes only 50ms CPU time but
>500ms wall time.)

Bug 5195464

Change-Id: I2b51e864d75831bdbb9e424aa846133d49d6ef94
ccountTypeManager.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
ccountTypeManager.java
5a7b563bdf571ebc14a1fa5f91f9a393948461cf 09-Aug-2011 Katherine Kuan <katherinekuan@google.com> Use framework style for section headers and visual tweaks

- Use list separator style from framework for the blue headers
in our app (frequent header, recent header, kind type headers)
--> this allows us to get reduce the number of views in our
view tree because the divider is now an asset and part of the
TextView background.

- Adjust padding so it lines up with the new headers now

- Minor visual tweaks

Bug: 5136189
Change-Id: I7b10cc7e608b809d1a97ad8d8c59e31ab9d77e11
aseAccountType.java
3ae114e72617f2faea281d82f7f4ee026d8c5674 25-Aug-2011 Makoto Onuki <omakoto@google.com> Two fixes for custom filter activity.

- Filter out extension accounts with no data.

- Added a couple of convenient methods to AccountTypeManager.

Bug 5160471

Change-Id: Ie6afbfc97927074ec0b57226576e4734bafa5732
ccountTypeManager.java
ccountWithDataSet.java
3df110b9689b6b7b3a214bfdebc19a68a4c4968e 24-Aug-2011 Makoto Onuki <omakoto@google.com> Merge "Contacts to display: hide accounts without raw contacts"
b5e4419f4ba06d630331669a08613936889f34df 23-Aug-2011 Makoto Onuki <omakoto@google.com> Contacts to display: hide accounts without raw contacts

- Hide extension accounts with no raw contacts.

- Now that building the list hits the database we need to use AsyncTaskLoader.

- Did a little refactoring (e.g. moving mFilter to the adpter) so the code will
work better with a loader.

Bug 5160471

Change-Id: I780985a73325d4d453962e8ea5dca0d68c3c869e
ccountType.java
ccountTypeManager.java
xternalAccountType.java
1792b08c500ed528e7d21401affd936b3a7b3dc6 24-Aug-2011 Daniel Lehmann <lehmannd@google.com> Fix various Quick Contact visuals

Also fixed a bug where the secondary action can be tapped even though
it doesn't exist (crashes)

This also fixes pushed states, which have been filed a couple of times

Bug:5137515

Change-Id: I810d12a79f0088a0770a0eaf9225fe7906ebd8e7
aseAccountType.java
ataKind.java
8545ec4d78e5bdaec87b0ae59c448acc96856b4c 17-Aug-2011 Makoto Onuki <omakoto@google.com> Only load extension packages with contacts.xml

It's still okay for non-extension packages to not have contacts.xml.
Enforcing it for them may break backward compatibility.

Bug 5173717

Change-Id: I1ff914f24f08f5bba9cb956e516a78de8144bd2b
ccountTypeManager.java
xternalAccountType.java
638274a83fee56d14aa1ac4c81e87a7e98afd680 16-Aug-2011 Makoto Onuki <omakoto@google.com> Fix NPE caused by Id96aea69

I added an explicit null check for account type, but null was actually used for
the fallback account type.

Bug 5171336

Change-Id: Ia0b98d0e9451eb3fc33d52db09feaff390875e33
ccountTypeWithDataSet.java
dfce573f25614c356a982ac25bb4a403eef11699 16-Aug-2011 Makoto Onuki <omakoto@google.com> Merge "Friend intent: Proper support for dataSet"
6ad227f990265254864a04d3289292ca42330c71 15-Aug-2011 Makoto Onuki <omakoto@google.com> Friend intent: Proper support for dataSet

- Introduce AccountTypeWithDataSet to encapsulate accountType + dataSet
and use it instead of the "account type + '/' + dataset" string,
for better type safety.

Bug 5162267

Change-Id: Id96aea69804bb1151b612838f3fdc24841e5f527
ccountType.java
ccountTypeManager.java
ccountTypeWithDataSet.java
ccountWithDataSet.java
dd19fd696a8d173ae36cd8325686c85eba5010e0 15-Aug-2011 Daniel Lehmann <lehmannd@google.com> Merge "Renaming com.google.i18n.phonenumbers to com.android.i18n.phonenumbers to avoid name collision."
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
ccountType.java
xternalAccountType.java
8cebd7f86f952729bc83c7601ba101a705cdeab3 12-Aug-2011 Shaopeng Jia <shaopengjia@google.com> Renaming com.google.i18n.phonenumbers to com.android.i18n.phonenumbers
to avoid name collision.

Bug: 5157607
Change-Id: I8569776c3c4ae1ba9b346495e51b846fbe065f74
ccountTypeManager.java
57c0a9a96f969e8a4952bce8c04d711cd781b841 10-Aug-2011 Jeff Hamilton <jham@android.com> Merge changes I37292676,I324a0544

* changes:
Move the notification logic out to a listener so there can be an Activity based version of the listener as well for NFC VCARD imports.
Fix a BroadcastReceiver leak.
1a106bab1e314b0c4ea78ceeaed009d492b90588 09-Aug-2011 Daniel Lehmann <lehmannd@google.com> Merge "Start service intent when contact is being displayed"
3ef27fb18a2fe075c43131b653cd2e6306e187e2 09-Aug-2011 Daniel Lehmann <lehmannd@google.com> Start service intent when contact is being displayed

Bug:5138185
Change-Id: I84dbf0f933d575b4910b220fe9743a47f46d5762
ccountType.java
xternalAccountType.java
3572293500a7406813e61e6fedd63ca606debc19 09-Aug-2011 Jeff Hamilton <jham@android.com> Fix a BroadcastReceiver leak.

The AccountTypeManager singleton is registered
in the ContactsApplication's getSystemService()
but the call to get the singleton was using the
given context not its .getApplicationContext().
thereby leaking when it was passed an Activity.

This fix seems cleaner then making sure each
caller passes the proper type of context.

Change-Id: I324a05449770e35bfaffb6773a394d63e9ddfb59
ccountTypeManager.java
1ebbd5bbe71814123b80df702b474bcd7196cbb7 05-Aug-2011 Katherine Kuan <katherinekuan@google.com> Pixel perfect for tablet contact editor

- Remove a bunch of files because now the tablet should
look like the phone layout

- Fix padding / margins

- Don't allow phonetic name to be deletable (it would
just clear the field) so that the structured name
and phonetic name now line up (UX decision)

- Make text in editable fields centered by
setting a specific height on the edit text field
if it's not multi-line text

Bug: 5096927
Change-Id: If5d27752d79680cd40316428c7aa9ec30af6e320
ccountType.java
ead19c5eafee0ffb43b02a4ae75ac5244ad3f853 30-Jul-2011 Isaac Katzenelson <isaack@android.com> Support for local profile

Bug: 5121834 Support local profile
5086184 Account name is overlapped by number of contacts
5082317 Text is chopped on the top in contact list

1. New headers were added at the top of the contact list to
present an empty local profile.
2. Clicking the empty local profile opens the editor to allow
the user to create a local profile.
3. Profiles are shown at the top of the contacts list with the
"ME" header and the number of contatcs.
4. "Add to contacts" button and the starred button were removed
from the details view when it is a profile.
5. Fixed a problem with a header view that remained when you had
a profile or was in search mode.
6. Fixed problem with contacts count apearing in search mode

Change-Id: I45615616e03a603759888d9e7169a853b3328b14
ntityDelta.java
6cb8be1e8b92ec2713010b068fbaf47d89372c98 05-Aug-2011 Katherine Kuan <katherinekuan@google.com> New assets for action bar

- Plus other miscellaneous assets
- Modified some files to reference the new assets
- TODO: Clean up unused assets again

Bug: 5121276
Bug: 5128825

Change-Id: Ib3996bfefc58c02cbf81a32dea890beb9711d935
aseAccountType.java
5226abf2ee19f53b9d9bf63109138aff79c7a222 03-Aug-2011 Dave Santoro <dsantoro@google.com> Avoid adding uninitialized external account types.

Bug 5112257

Change-Id: If5e89194d995cec9caee3308931ea1e33285a6ee
ccountTypeManager.java
d28eaaa2b5b4e4ae8a79b08073d49208979fdee4 01-Aug-2011 Dave Santoro <dsantoro@google.com> Allow external account types to parse any package.

This allows for external account types to be managed via a package
that isn't a sync adapter, so long as the package contains a service
that provides the necessary contacts metadata.

Bug 5077096

Change-Id: Ic2b545a276421b45d55d512f3901df8ff75d05fe
xternalAccountType.java
8473de7e6da9a33c5a8c128f88ae9e493a52ece4 01-Aug-2011 Dmitri Plotnikov <dplotnikov@google.com> Declaring the Google+ data set as an extension of Google Contacts

Change-Id: I6b1d7e5ea86c854f3312bccd8f3fbfaef406d149
oogleAccountType.java
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
ccountType.java
ccountTypeManager.java
ccountWithDataSet.java
aseAccountType.java
ntityModifier.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
edb576aab33efff623691a89ace3c76cb2ff12d1 28-Jul-2011 Daniel Lehmann <lehmannd@google.com> Implement new QuickContact design

- Also removes default-functionality
- Fixes the flicker when dismissing (Bug:5025418)

Change-Id: I46cf0fbdb2dcbf002612672e5e8f81a9b1ab6939
aseAccountType.java
ataKind.java
2179037e606ef55fa2d6bfa009371eaa522906f1 25-Jul-2011 Daniel Lehmann <lehmannd@google.com> Show type OTHER again

Bug:4689649
Change-Id: Ia513a3be6cb1a6ede92533afe430c8b1ad1d845f
ccountType.java
aseAccountType.java
c234d2573ee41f7056c9886ccbcbfa453071fed5 24-Jul-2011 Makoto Onuki <omakoto@google.com> Merge ""Invite" part 2"
69b4a886bdc8e36b7529122b5a97d9e4fd1ddf11 22-Jul-2011 Makoto Onuki <omakoto@google.com> "Invite" part 2

- ContactLoader now loads invitable account types, which are account types
that supports the invite feature and don't contribute to the loaded
contact.
- Add AccountType.DisplayLabelComparator

Bug 5061956

Change-Id: Icadffac9e5e3b739e70f59d709cfdd67909c9a41
ccountType.java
398e3805b4278310250e5fd1007e2e73b9453d0f 22-Jul-2011 Katherine Kuan <katherinekuan@google.com> Fix "Add new" strings in contact editor

- Instead of using type-specific strings like "Add new
phone number" just use "Add new" since we have labels
for kind sections now.

Change-Id: I0e386ae29330193fec18b62f3949c46e095a872c
aseAccountType.java
ataKind.java
xchangeAccountType.java
oogleAccountType.java
a66642330b5c4a62c8b7ce438ccff57c3b017eb1 21-Jul-2011 Katherine Kuan <katherinekuan@google.com> Show more fields above the keyboard in contact editor

- For the phone
- Small visual fixes that will allow as many fields as
possible to be visible when the keyboard is up
* Smaller icons, fonts
* Change some colors
* Remove the "+" icon
* Make address field default to min height 1 line
instead of 3

Bug: 4382255

Change-Id: Icc665c866e4c1cfaa0ba8de7dae9a0c1cbd1b575
aseAccountType.java
xchangeAccountType.java
9aa9e846dec6c2958be6ce120e138e484fdba330 21-Jul-2011 Makoto Onuki <omakoto@google.com> Add fields to AccountType for the new "invite" feature

- Add two attributes, inviteContactActivity and inviteContactActionLabel,
to the contacts.xml file, in addition to the existing ones such as
editContactActivity.

e.g.
<ContactsAccountType
xmlns:android="http://schemas.android.com/apk/res/android"
inviteContactActivity="com....editor.InviteContactActivity"
inviteContactActionLabel="@string/invite_action_label">

- Add two methods to AccountType to obtain the new attributes.
(getInviteContactActionLabel() will return a localized string)

- Add AccountTypeManager.getInvitableAccountTypes() which returns
AccountType's which define the invite activity and have one or more account.

Change-Id: I545b47a7e4957765684314870739085ea0355a98
ccountType.java
ccountTypeManager.java
xternalAccountType.java
a007e442687d3836d6a9f0d0ddcea527fa1481ac 07-Jul-2011 Katherine Kuan <katherinekuan@google.com> Add ContentProvider operation logging for saving a contact

- To help with figuring out ContentProvider operations for group editor
- Taken from this CL in HCMR2 that was never merged:
https://android-git.corp.google.com/g/#change,111357,patchset=7

Change-Id: Iee2f6dff95d74a03c83f92f61cdb90f7fa5fcea6
ntityModifier.java
fd33cc3ab956222dffa6b669a13a614747a5cdff 26-Jun-2011 Katherine Kuan <katherinekuan@google.com> Add flag to AccountType for ability to edit group membership

- Needed for the group editor feature (upcoming CL)
- Only Google and Exchange group membership lists can be edited,
all other groups from other sources are not editable (for ICS at
least)

Change-Id: I8f2ab08a6ff0cebcce0b182e4793dfbc645a5412
ccountType.java
aseAccountType.java
xchangeAccountType.java
oogleAccountType.java
da5bf1cf60beef3de5e651a569fa544293683926 03-May-2011 Dave Santoro <dsantoro@google.com> Modifications to bold contacts' first names.

For lists and headers, this is calculated by using a similar technique as we
use in the list view for highlighting text when the sort order and display
order do not match - we look for the overlap point between the display name
and the alternate display name, and bold the leading or trailing part, based
on the display order.

For the edit view, we convert the display name into a structured name (via an
API extracted from the structured name editor code that calls into the provider
to handle splitting), and then bold the span corresponding to the contact's
given name.

This also fixes an issue with the alternate display order in which we weren't
honoring that preference on the contact details view.

Change-Id: I6af048725541996cb303810a56a1ad79fc276e11
ccountType.java
aseAccountType.java
ntityModifier.java
d37a891cb44cd17083c06d7be693c469403d16df 27-Mar-2011 Daisuke Miyakawa <dmiyakawa@google.com> Enable account switcher in contact creation

- remove account selection step before contact creation
- (phone) put account info on the right side of photos
instead of having "header" for it
-- renamed header_* ids for account stuffs as they may not be
part of header any more.
- add migration functionality to EntityModifier
- add test for it
- no optimal layout

Bug: 4184675
Change-Id: I0e777f9aa37a7c9145bd430f897f8068b0bede56
ccountType.java
ntityDelta.java
ntityModifier.java
a2d4a9652fb4db9ee222abc7a637366c6c50427c 07-May-2011 Katherine Kuan <katherinekuan@google.com> Fix font sizing and spacing in editor

- Remove name labels
- Remove extra divideres

Bug:4382255
Change-Id: I59c5b91e699b7386690e6df58e58b247d3086c99
aseAccountType.java
ataKind.java
xchangeAccountType.java
oogleAccountType.java
2591436971bad3050c85929c8e0c5a8d48111f88 30-Apr-2011 Katherine Kuan <katherinekuan@google.com> Fix "add field" logic

- Only update "add field" footer when field goes empty --> non-empty
and vice versa, fix the case for 4 line addresses in Exchange contacts
- Add property in DataKind class for "add field" string
- Remove hash map of mime types --> string resource IDs in
KindSectionView
- Remove "add internet call" string

Bug: 4363151
Bug: 4371568
Change-Id: Id2fec743a7c3e68d8404591cc61de20487245b0a
aseAccountType.java
ataKind.java
xchangeAccountType.java
oogleAccountType.java
63ffb90935d8aec295e4a8f62af6c77dafe1899f 27-Apr-2011 Katherine Kuan <katherinekuan@google.com> Refactor to inflate views from XML

- This is part 1 of getting the contact editor up to par with
the UI mocks, there are some known issues that will be fixed
in coming CLs (i.e. add button functionality)
- This way, the field editors can be vertically stacked
on the phone and horizontally stacked on the tablet.
- Get rid of duplicate labels by using the hint text in the field
or spinner as the title

Change-Id: Ia00a1a65ad0bbd7a4bc05ccb93dd1b1496bca5df
ataKind.java
xchangeAccountType.java
oogleAccountType.java
33706130c52373382e840bdd6aa94776de706081 29-Mar-2011 Daisuke Miyakawa <dmiyakawa@google.com> Merge "Move DataKind outside AccountTypes"
405671a7b42d97ebf7ae7c0eeb4721f881139673 29-Mar-2011 Daisuke Miyakawa <dmiyakawa@google.com> Move DataKind outside AccountTypes

Bug: 4184675
Change-Id: Ibb20cb8b38d0272963fc5330c738bd17c61a5542
ccountType.java
ccountTypeManager.java
ataKind.java
ntityModifier.java
056305838b1381a45f751a6894c0fcb802abd5ac 29-Mar-2011 Daniel Lehmann <lehmannd@google.com> Support the phone type MAIN

Bug:4091157
Change-Id: Icb8d2ef1b653736e1ebd19afaa1e2223fa85eedb
oogleAccountType.java
de0898f0337d3c6ea818237b0a94acf1f15b6299 09-Mar-2011 Daniel Lehmann <lehmannd@google.com> Don't ignore "update to empty" when checking whether the state is dirty

Bug: 4026427
Change-Id: Ia13ad1d7e0901e3a89aa53c21e70ce0becd51d94
ntityModifier.java
5ec40b04041818bc042c0671cb1a43b54f650e25 02-Mar-2011 Dmitri Plotnikov <dplotnikov@google.com> Modernizing phonetic name support

Bug: 3497894

Change-Id: I5aaa77275bbe1921af2d7ef034d2319691f8abf7
ccountType.java
aseAccountType.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
c77f48947093d5f84b7df661a29b8b45d573cc10 01-Mar-2011 Dmitri Plotnikov <dplotnikov@google.com> Fixing parsing of intent extras for Exchange contacts

Bug: 2969875
Change-Id: Ifd7f1ba2e794ebf24626c53e5ed3a14ae9adc791
ntityModifier.java
c863b0171f2a54a0ee71b34b33034aeea2464cca 25-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Remove confirmation dialog when cancel empty new contact

Bug: 3487518
Change-Id: I3d47b9249efd634e2ce21e6fbea19fe68f3d3ccd
ntityModifier.java
f3cdeca5e0b3a7f9411b6babad5de2925623372a 25-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Fix saving contact when the only thing that changed is photo

Bug: 3485535
Change-Id: I5e79faa4c5a8fd87223aeb219fe88076fbaa3ca1
ntityModifier.java
fb53547ccc23fa70699c7bd654e0b1a4ee6568b1 16-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Ensuring that a contact is saved after item deletion

Bug: 3462241
Change-Id: Id0698a42885975a671257efb01c643b9ed0d74d2
ntityModifier.java
a011414b12955a91c8f3efe528f374654d930098 15-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Moving contact saving to the service

Bug: 3220304
Bug: 3452739
Change-Id: If4124096a24e5dd302feb5338efaaa8398b2cb6b
ntityDeltaList.java
ntityModifier.java
27e78563c1f04490ffa8b850a0442715482d1f2c 14-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Fixing order of phonetic names in contact editor

They should unconditionally follow the family-middle-given order

Change-Id: I23405198afdba459a4c97f16143be0600963bb02
aseAccountType.java
xchangeAccountType.java
1dc28bef7d5353310359c3711b6cdac390d8a2e0 11-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Restoring full functionality of no-account contacts

Bug: 3339401
Change-Id: I2c185ee6e1189b89fce875f59b55ccd68edf6313
ccountTypeManager.java
aseAccountType.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
179c9960e50019608d91661cfbcbb3cc8bc48093 10-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Fixing NPE in ImportVCardActivity

Change-Id: I29312bede3f02dc5849ec7bdd75d4fc9ac88c91c
ccountTypeManager.java
efad62dfde0be65acff2af0bbf9cb2a7b765fe83 09-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Removing an unused parameter

Change-Id: I67b62a03baec7715be799bf6026027a11ca877a6
ccountType.java
ccountTypeManager.java
6f667b55687bf9193323802e8f3234f0ab254388 09-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Turning AccountTypeManager into a "system" service.

It's really not a system service proper. It just
uses the same API and the same dependency injection
mechanism as for system services.

Change-Id: I56e24e0f16642a5ab25e809ee12906d965845379
ccountTypeManager.java
a07fa5f37031e4c5cd2933de02d2db41ec153e2b 09-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Renaming AccountTypes to AccountTypeManager.

The intent is to turn it into a "system service" of sorts.

Change-Id: I047d70a2e59978c05916965ef0c0d9f18abc55e6
ccountType.java
ccountTypeManager.java
ccountTypes.java
ntityModifier.java
43fd1e84de5e28639062c20d35ba7bfec8a07001 09-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Fixing ContactDeletionInteractionTest

Bug: 3330176
Change-Id: I6726e74440cd7cb8c16d169a97da5042f77c9463
ccountTypes.java
29996f299a7022b3592bdd68ef37fab283b7cadd 07-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Removing an obsolete test. Fixing a broken test (ContactLoaderTest)

Change-Id: Ifd655315cff18956b13516edcaa42d5542ec6c26
ccountTypes.java
b77be6d2ad06edfd8751f55043e4aa9fd9f36015 04-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Removing inflation levels from AccountType.

Also, fixing asynchronous update and concurrency issues.

Bug: 3140873

Change-Id: Ie9d342d23ee4a8d23405ef4145c54d7673b2cbe9
ccountType.java
ccountTypes.java
ntityModifier.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
69f9e6f0cd9b5401da55f251e9bd98e69643d7df 04-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Renaming fields and variables from "source" to "accountType"

Change-Id: Ie41036e35a45fc7d9a8c934a3cbe68399c567ad6
ccountTypes.java
ntityModifier.java
09546dcaf7422e41eecf4e7c5d763fdc7e2d3372 28-Dec-2010 Dmitri Plotnikov <dplotnikov@google.com> Fixing account type meta-data refresh.

Bug: 3313829
Change-Id: I58d7162e7c0160689b451189b299403c1d394c38
ntityModifier.java
xchangeAccountType.java
oogleAccountType.java
fff6f07a02d3e3bbeff2ecf94a703782b71aea66 22-Dec-2010 Dmitri Plotnikov <dplotnikov@google.com> Adding support for 3rd party contact editing

Change-Id: I0379f7392a23aea68d0f59a9869bb72275f5bddb
ccountType.java
xternalAccountType.java
3b3b497409ad86017ea378801f85b1ae3d57f00a 10-Dec-2010 Dmitri Plotnikov <dplotnikov@google.com> Ignoring unchanged values on contact save

Change-Id: I558208056889b68e8aff6e140e05dc4aa2f4a1af
ntityDelta.java
b3dbf292e19a9e26ad5c48d02e025509ae6e18ca 05-Dec-2010 Jean-Baptiste Queru <jbq@google.com> am de62d9bc: am ff8bcc1d: am 2cbec492: Merge "Make sure unmatched autenticator/account-types doesn\'t crash Contacts."

* commit 'de62d9bc43a746c434da533165f5e5ad4bfd4f17':
Make sure unmatched autenticator/account-types doesn't crash Contacts.
ff8bcc1d4af9135107d287cc54a29cb00bacdc52 05-Dec-2010 Jean-Baptiste Queru <jbq@google.com> am 2cbec492: Merge "Make sure unmatched autenticator/account-types doesn\'t crash Contacts."

* commit '2cbec492d03e7b5db7b7a1d5277fc7264cac3241':
Make sure unmatched autenticator/account-types doesn't crash Contacts.
18ffaa2561cc7dd2e3ef81737e6537931c0a9a11 03-Dec-2010 Dmitri Plotnikov <dplotnikov@google.com> Renaming a couple of packages

Change-Id: I2c0f86b51baa622df629206f8b79ef1d0df09119
xchangeAccountType.java
oogleAccountType.java
32d64e590d4f9302d204d9a96960ca5739807500 29-Sep-2010 Nicklas Shamlo <nicklas.shamlo@sonyericsson.com> Make sure unmatched autenticator/account-types doesn't crash Contacts.

If the Contacts-app didn't find a valid authenticator for a specific
account-type, it would previously throw an exception and crash.
Now the account-type is silently ignored.

Installing an app with unmatching authenticator/accounts like, e.g:

<account-authenticator
xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="com.abc.def"
android:icon="@drawable/icon"
android:smallIcon="@drawable/icon"
android:label="@string/label"
/>

<sync-adapter
xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="com.android.contacts"
android:accountType="com.abc.ghi"
android:supportsUploading="true"
/>

would otherwise crash Contacts.

Change-Id: Idefa3266e1624246de97d1eae6612747b52f8c60
ources.java
169ff2ab666eb0cf5414b3a5eb8333ec4ddc669a 30-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Pushing initialization of phone number formatter to background thread

Bug: 3228687
Change-Id: Ib797383b2af3608876956ed365026b1522bc0f6c
ccountTypes.java
56c55827a83eef9ebafbb68beb3656c2506c1e0f 30-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Performing all account meta-data loading on background thread.

Bug: 3228687
Change-Id: Id66989ed9a4e671019b931c172de254b8b055a4f
ccountTypes.java
b5cd5959f0f0c5aa8ce50d3e872c0dcec12af9d4 29-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Moving package installation and account update listeners in the bg

Bug: 3228687
Change-Id: Id082dac2c2b21f09ccfc30afb5f734e8c36cb2d8
ccountTypes.java
174eb0ac54a0b483fee05013a2eb5e538d4b6d0b 23-Nov-2010 Daniel Lehmann <lehmannd@google.com> Use Mipmap for icon to support big screen

Change-Id: I65da1da18af01a1529b3d1a8ef656f5249a45f9f
allbackAccountType.java
0615664636b9201d97360cbba32bb99755eee3c5 23-Nov-2010 Daniel Lehmann <lehmannd@google.com> New assets

Change-Id: Ic65a3921db6d7ec18a0aa1d79bceeb26b8293158
allbackAccountType.java
f64f21896cfdc65d05c04df31a8adea5826a5825 19-Nov-2010 Daniel Lehmann <lehmannd@google.com> Asset drop

Change-Id: I36313cb930aa03c14cdd00f17eedad32537d0ecf
allbackAccountType.java
17aa9d58cdf2eddcffa94d1d8b3c7cbba3d71211 15-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Fixing twitter profile display

Bug: 3197162
Change-Id: I24f5156b5f639733e49338f7f467b03aabf2bc81
xternalAccountType.java
28ac584a3d156086b3e6350605767d13deab0ac7 15-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Hiding the type OTHER

Bug: 3143954
Change-Id: I9d5e19394b56f4ea667c3fa1dda5d182d3ef2c18
ccountType.java
allbackAccountType.java
4597c92d655d45447780b32c7572acef110b6ed1 15-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Renaming BaseAccountType to AccountType

Change-Id: Iff47bac0e1a118f4a5319526304df16cb89bd0cd
ccountType.java
ccountTypes.java
aseAccountType.java
ntityModifier.java
xchangeAccountType.java
xternalAccountType.java
allbackAccountType.java
oogleAccountType.java
3f26e24c0cbc988b32d274b7a4e88c994355ef4f 13-Nov-2010 Daniel Lehmann <lehmannd@google.com> Simplify IM types to be consistent with Exchange

Bug:2473310
Change-Id: I79dfd5d919504d434f5ba3629c92c53226c8ea24
xchangeAccountType.java
f8d1407dcb4e3fbb461922aa8059cb98775aa9cc 03-Nov-2010 Daisuke Miyakawa <dmiyakawa@google.com> Remove verbose log showing all accounts.

Bug: 3127620
Change-Id: I3f6d34aa019fd9ba27e35923186cbf0943a355df
ccountTypes.java
fa6f60d0c34de5840a92cea936e5d5b6e5dd8f21 02-Nov-2010 Daisuke Miyakawa <dmiyakawa@google.com> Add one more log for account info.

Bug: 3127620
Change-Id: I8314838154b38a20a8524332504cdde288df76bc
ccountTypes.java
392ccec3b56e8074a5a028af28106134b39f64bc 02-Nov-2010 Daniel Lehmann <lehmannd@google.com> Provide support for events (birthdays)

Bug:3134950

Change-Id: I9194dca403496a6f3a72bb45f69b16d8f530b15d
aseAccountType.java
xchangeAccountType.java
allbackAccountType.java
oogleAccountType.java
99811726a81c28c5ba8d5b847743f8f1381c3b18 02-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Excluding accounts that don't support contact sync

Bug: 2663372
Change-Id: I11958cdb9461e94b176bcb7b118bd5f027b5549a
ccountTypes.java
bd0c12c63bb0adbc78715d9d13ba588c8ae61839 02-Nov-2010 Dmitri Plotnikov <dplotnikov@google.com> Changing layout and behavior of aggregation suggestions.

Bug: 3098963

Change-Id: I50c8d56bf97b1af15200ce416afc6810899f16d7
ntityDeltaList.java
0540f8b74a44f5d1da519cc54e598d75f0e572dd 29-Oct-2010 Daniel Lehmann <lehmannd@google.com> Support the contact field "Relation"

Also removed the "secondary" flag (was unused)
Also removed the inflate function from GoogleAccountType (was doing exactly the same as the base class)

Bug:3134946
Change-Id: I587e96e61ef15d8c87ac8749c852caa3138aeb60
aseAccountType.java
allbackAccountType.java
oogleAccountType.java
811ed694d6700ca7c166e8941991bf23af1a1824 20-Oct-2010 Daniel Lehmann <lehmannd@google.com> Merge "Move Organization up to the top in the Editor"
23938cc780c3f466c6fa8b883bf36d2e7ab5d745 20-Oct-2010 Daniel Lehmann <lehmannd@google.com> Move Organization up to the top in the Editor

Change-Id: I8cb32521232e324ccbb76eb2a0e2e56f67957e1a
allbackAccountType.java
7db699be6eac9e24f7bc53d641a5bdc9f5496c0b 20-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Merge "Combining data when switching to an aggregation suggestion"
916cf2661ada41a83556884d8f5b322d32ef452b 20-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Combining data when switching to an aggregation suggestion

Now if you start creating a new contact and
enter some data, then follow an aggregation suggestion
by hitting "Edit" on it, the data you have entered
so far will be carried over to the suggested contact.

Also fixes bug: 3034215

Change-Id: Ic811a289a69fd6573b8735dcf2a7f5920332ce46
ntityModifier.java
26c63d201628140b07ed5bcf1aaad251aef95476 20-Oct-2010 Daniel Lehmann <lehmannd@google.com> Remove custom label from Exchange assistant (it was not synced...)

... and caused confusion

Bug:2604139
Change-Id: Ie55e1e3402cfca13402ed0e17eb834be39283cce
xchangeAccountType.java
52c102fcce20f03098f34d1db7d676079d9446fe 19-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Restoring support for external contacts account type XML

Change-Id: I3333fcc16312d8d593396f61019ada83f26c5f8d
xternalAccountType.java
6a91292251913b3c0c8add733326cc70eae4cf51 19-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Fixing broken build.

Change-Id: I5c56e2ba9cc8fc439ee37a156d1a6b247ed7e07c
ntityDelta.java
ntityModifier.java
1ad4d1ba1dcc473e1591e049da417dea009a33d6 19-Oct-2010 Daniel Lehmann <lehmannd@google.com> Show organization in header-view; Allow only one organization per contact

Change-Id: I89b99dbdf2148b3628b82b52bbbabea25052b10e
xchangeAccountType.java
allbackAccountType.java
35769b804fbfd5a1fc0b2c36cd0a786d662c4334 19-Oct-2010 Daniel Lehmann <lehmannd@google.com> Renamed Sources to AccountTypes

Change-Id: I088c7d9cd66fd4d38e93bc97a6644247f72037ef
ccountTypes.java
aseAccountType.java
ontactsSource.java
ntityModifier.java
xchangeAccountType.java
xchangeSource.java
xternalAccountType.java
xternalSource.java
allbackAccountType.java
allbackSource.java
oogleAccountType.java
oogleSource.java
ources.java
afeae64e9a9bb39c918202a5775c4904e2f0d92e 18-Oct-2010 Daniel Lehmann <lehmannd@google.com> Move Editor-related files into views.editor

Change-Id: I61d68295c6af2a5ccf018dab4b9d50c0aa601fcd
ditor.java
45b4402f0c05b21312dd8d647ae549d43057537d 16-Oct-2010 Dmitri Plotnikov <dplotnikov@google.com> Improving display of birthdays

Change-Id: I1a098c52e2b6c8968ce811b795611ab028609658
xchangeSource.java
allbackSource.java
oogleSource.java
f2ba95daf860137f854ecec70c943159e2b11a7d 13-Oct-2010 Daniel Lehmann <lehmannd@google.com> Asset drop; only use icons in Detail-View for actionable items

Change-Id: Ib5d16754295c8218cdff8a569db78d6328ee5adc
allbackSource.java
4fa54fa5e5731ad2bb75c28edd5775f53e753a78 11-Oct-2010 Jean-Baptiste Queru <jbq@google.com> manual merge of b7f16623 from gingerbread-plus-aosp

Change-Id: I892570586bfe3a5d5a330cb38a6ec7c3ddd69b11
b7f166233534b9d9f7039b0f2eeb2dcef0bf3dff 11-Oct-2010 Jean-Baptiste Queru <jbq@google.com> am 0c4a0fab: Merge "Fix crash when separating multiple empty raw contacts"

Merge commit '0c4a0fab6dc91f93aacc8787efb6ac0c0587c3eb' into gingerbread-plus-aosp

* commit '0c4a0fab6dc91f93aacc8787efb6ac0c0587c3eb':
Fix crash when separating multiple empty raw contacts
e843f916942fff482ec162eee2a23914e32182cf 17-Sep-2010 Dmitri Plotnikov <dplotnikov@google.com> Adding groups to contact editor

Change-Id: I724b075506ed6949d92c319d2155e2896ee89d6e
ntityDelta.java
xchangeSource.java
allbackSource.java
oogleSource.java
327c8a12a57e1bf546176c43419b74e97c1b6054 08-Sep-2010 David Brown <dab@google.com> am 44ee4164: am da1ae37b: Clean up SIP-specific TODO comments.

Merge commit '44ee416419654bf3c1bceb035e66ea9ff9dfb89c'

* commit '44ee416419654bf3c1bceb035e66ea9ff9dfb89c':
Clean up SIP-specific TODO comments.
44ee416419654bf3c1bceb035e66ea9ff9dfb89c 08-Sep-2010 David Brown <dab@google.com> am da1ae37b: Clean up SIP-specific TODO comments.

Merge commit 'da1ae37bd6c81e66ac8865593f5c6477ee7697ab' into gingerbread-plus-aosp

* commit 'da1ae37bd6c81e66ac8865593f5c6477ee7697ab':
Clean up SIP-specific TODO comments.
da1ae37bd6c81e66ac8865593f5c6477ee7697ab 07-Sep-2010 David Brown <dab@google.com> Clean up SIP-specific TODO comments.

Now that SIP calls have a special icon in the Quick Contacts widget (see
change https://android-git.corp.google.com/g/64976) here's a change to
clean up a couple of left-over TODO comments in the apps/Contacts code.

Bug: 2969763

Change-Id: Ia52f5e9965afdb4b16d771471ef4a4edab73dc33
allbackSource.java
4423ca5a213476ddef361062f4252cdf2cf40bd8 31-Aug-2010 David Brown <dab@google.com> Add SipAddress to Contacts UI in master

In gingerbread, change https://android-git.corp.google.com/g/62847 added
SIP addresses to the Contacts app.

This is that same change, manually applied to master. (I didn't let it
auto-merge because that would have failed: the ViewContactActivity class
is totally gone in master.)

This change is identical to https://android-git.corp.google.com/g/62847
except that the change to ViewContactActivity.java is now applied to
ContactDetailFragment.java. (The actual code change is identical,
though.)

Bug: 2942998
Change-Id: I18baf54966022d66d387d42d07fe2fdd5c1539f0
allbackSource.java
oogleSource.java
e17b1e52e6895f8177b4192f34126000fcb3f983 02-Sep-2010 Daniel Lehmann <lehmannd@google.com> Fix add from third party apps via Intent

- Fixes the issue where intent parameters are not passed after account selection
- Fixes the issue where Name and Address weren't correctly imported

Bug: 2883449
Change-Id: Ie9f3d88194d9731b66d1551dcf8c9dcca1de28c2
ntityModifier.java
6a434ec52f8b97fe91c9e1816310d79ed1e1df3d 27-Aug-2010 David Brown <dab@google.com> am 9694d372: Add SipAddress to Contacts UI. DO NOT MERGE.

Merge commit '9694d37206416feaee0119cf7e620c7ae97f0a50' into gingerbread-plus-aosp

* commit '9694d37206416feaee0119cf7e620c7ae97f0a50':
Add SipAddress to Contacts UI. DO NOT MERGE.
12c32901edf1f277f9695c5aee2f8ab550e6ab6b 24-Aug-2010 Murillo, Roberto <roberto.murillo@garmin.com> Fix crash when separating multiple empty raw contacts

This changes the back reference logic a little bit to prevent
adding back references where there is nothing to back reference.
This fixes weird cases where a user could hit "new contact" twice
without saving data and then try to separate the two dummy
contacts.

Change-Id: I1a6b4e1a6bda99f5d8ee07ea57cace75a6bed4ab
ntitySet.java
9694d37206416feaee0119cf7e620c7ae97f0a50 24-Aug-2010 David Brown <dab@google.com> Add SipAddress to Contacts UI. DO NOT MERGE.

Update the contacts app to display and edit the new SipAddress field.
(See https://android-git.corp.google.com/g/62672 for the corresponding
ContactsContract change.)

The details:

- Updated ViewContactActivity to display the SIP address if present,
and to handle a click by firing off a CALL_PRIVILEGED intent with
the address in a sip: URI.

(Note: this code is wildly different in master, and the automerger
is guaranteed to fail, so I'm marking this change DO NOT MERGE.
I'll apply it manually in master as a separate change.)

- Updated FallbackSource and GoogleSource to know about SipAddress.

A SIP address is displayed using a regular "phone call" icon for now,
but we'll eventually want a SIP-specific variant. (I'll separately
ask the UI dudes for that.) The SIP address field is edited using the
"email address" style IME.

Note I didn't touch the ExchangeSource class, which means that (for
Exchange-synced contacts) we just won't allow editing this field.
(Alternatively, we *could* allow the user to edit SIP addresses, and
just have them silently not synced. I'll check with the product
guys about this.)

Also cleaned up a bunch of unnecessary method overrides in
GoogleSource.java.

- Updated QuickContactWindow to handle SIP addresses just like regular
phone numbers, except that they fire off a sip: intent rather than a
tel: intent.

I still need to figure out how to make the "call SIP" icon different
from the regular "call phone" icon though.

Bug: 2942998

Change-Id: I4f67641ef134be406606a99d9f9f07baeaadbf88
allbackSource.java
oogleSource.java
18be2b55cd809a428ef5dcdea466ab8b9e6368ce 19-Aug-2010 Hung-ying Tyan <tyanh@google.com> Fix build.

Change-Id: Ibcb867c6cc7ecc551035ed78e150fad1f960b103
allbackSource.java
b5954e8d3e45c169eda7fa80b97833d6da55bc27 20-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Postal address in one field

Change-Id: I590371b87aaa62d8918e7d10a7aeaa812f91c704
allbackSource.java
d25f958595b190586bd838d50718b1a2a3f0d417 20-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Some minor improvements to Contact Editor design

- Can supply a custom editor class for a specific data kind
- Can have a field that fills up a row instead of leaving
whitespace at the bottom
- Convenience method isChanged that checks if a specific
field has been changed.

Change-Id: I7dcc4ba1a3100675362e1fc69b4afc3e6793f373
ontactsSource.java
ditor.java
ntityDelta.java
41f026d52e0277e21236787b10f76129a8bc6fa4 19-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Switching contact name editor to single field by default

Change-Id: I7157a99a9a51fa05188cc50b90f37bb55c15793a
ontactsSource.java
ditor.java
ntityDelta.java
allbackSource.java
oogleSource.java
f491ae914769f1062a4d9c31fcbec5ff0e01e4e6 16-Aug-2010 Dmitri Plotnikov <dplotnikov@google.com> Adding aggregation suggestions to the contact editor

Change-Id: Ie2db4c1c02301a46ca045d17914f68d4701d9db2
ntityDeltaList.java
a35a7e2aabc4edfafb9b4171e279bdb4c0c03d44 04-Aug-2010 Daniel Lehmann <lehmannd@google.com> Redo dialogs with DialogFragment and fix Join/Seperate

Change-Id: Ied997ad6ba3cf260eb2a04b8882184f1f800140c
ntityDeltaList.java
5976403e238d61a36091bca7267fea359dc80575 28-Jul-2010 Daniel Lehmann <lehmannd@google.com> Merge "Sources.get() can be safely called from the UI thread. Updated source."
db1f79cf40d2eebaf893b2c24b2d842a11d3ab80 28-Jul-2010 Daniel Lehmann <lehmannd@google.com> Sources.get() can be safely called from the UI thread. Updated source.

Change-Id: I5157f581fe078c7cd73044a1595b7295a202d96e
ources.java
3e7436450f0fdd5ad939c3b46e7176e082c9ee11 28-Jul-2010 Daniel Lehmann <lehmannd@google.com> Don't show Note and Nickname if they are empty database rows; some clean up

Change-Id: If60b76d73c27f53529ef45254140a412658891b1
ntityDelta.java
ca98444277723c60be83062cf5a25ec7ca1fdb34 14-Jul-2010 Daniel Lehmann <lehmannd@google.com> Instant save in the Editor; renamed EntitySet to EntityDeltaList

Change-Id: Ib4b57e76db346bec38dcf294d895f13d4b2fc6d3
ntityDeltaList.java
ntityDiff.java
ntityModifier.java
ntitySet.java
bb11be3f5867453e7561cdc7bebe6a380eff6881 29-Jun-2010 Daniel Lehmann <lehmannd@google.com> Re-use the Detail-Loader in the Editor

Change-Id: Ia2f910d9f9097cfd7246f379e2abe23ea8b52d06
ntitySet.java
14e58c8bac7ae357120d93e181986a5d7382aa7c 21-Jun-2010 The Android Open Source Project <initial-contribution@android.com> am f0812395: merge from froyo-plus-aosp

Merge commit 'f081239537fd7cfc42b7171973a5aa679213aa54'

* commit 'f081239537fd7cfc42b7171973a5aa679213aa54':
Disabled verbose logging
ec486124286ab16faae07e548163f1029528e5aa 15-Jun-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: Ica186e494a0a2693a5498639448c36d17bb2959f
cdef2b60aa87b1178033fdc964a3402386c03d7c 07-Jun-2010 Daniel Lehmann <lehmannd@google.com> Modal field editors

Bug:2680726
Change-Id: I167b02c50653abfa22ed72023993c9dd31f752a9
allbackSource.java
49e168be624734306bcb0402d6813a0dfef8b752 05-Jun-2010 Christian Mehlmauer <FireFart@gmail.com> Disabled verbose logging

Change-Id: I22d4175a9ba233809ba56481d9bde234ff44dcd1
ntityDelta.java
b9fe03d7059d7c66d02fad6bd9bd1b5a1b863734 13-Apr-2010 Fred Quintana <fredq@google.com> move favorites and my contacts group handling to the
provider and sync adapter

Change-Id: Ib05ecb9347f6470d2b5e1bb440407585044c820c
oogleSource.java
bbd03c02507cadd13b38f1035ce236469eeea27f 31-Mar-2010 Martin Hibdon <mah@android.com> Cherry-pick 78bc8a3d70c65973fed80ee5cb628f7aa21e14d0 into
the Froyo branch.
xchangeSource.java
3c6862102b6b1fbd1939d786c29c14dcafea75b4 02-Apr-2010 Fred Quintana <fredq@google.com> am 7a51b14c: Merge "revert the stripping of System Group: from the names of google system groups" into froyo
9f26ce5718f08fa96f2bc0cbdc27831c9942b06a 01-Apr-2010 Fred Quintana <fredq@google.com> revert the stripping of System Group:
from the names of google system groups

Change-Id: Ifbcd4b15738631e2062a92da7513b3376f83dba3
http://b/issue?id=2558197
oogleSource.java
06e7f00bc51bdc8fb2715df6cff052a2e3ce930b 31-Mar-2010 Martin Hibdon <mah@android.com> Merge "Fix the way ExchangeSource determines what order to display names in"
78bc8a3d70c65973fed80ee5cb628f7aa21e14d0 31-Mar-2010 Martin Hibdon <mah@android.com> Fix the way ExchangeSource determines what order to display names in

In some locales, names should be displayed given name first,
family name second. In other locales, this is reversed.
All ContactsSources except ExchangeSource base this choice
upon a resource config. The ExchangeSource was putting family
name first only if the default language was Japanese.
First of all, this is wrong because it should also behave
this way in China and Korea, and secondly, it's just not
clean way to do this when can use a resource instead.

Now the ExchangeSource works the same as all other ContactsSources
in this regard.

Change-Id: I8a640d191b3311487e2aaf92bb7450f72f82afb8
xchangeSource.java
6013973b1556e216c53d2bee29831c5cac21cb1e 31-Mar-2010 Fred Quintana <fredq@google.com> some changes due to an API review
- make EntityIterator extend Iterator and thus not throw a
RemoteException, instead converting it into a RuntimeException.
- rename ActiveSyncInfo to SyncInfo
- change getActiveSync to getCurrentSync
- remove the accessors in SyncInfo and instead make the final
fields publicly accessible

Change-Id: Id67bc22b34f3c0d8bf59a70c38c2e4622dd83e29
http://b/issue?id=2553539
http://b/issue?id=2553541
ntitySet.java
cc17912485cdf0f999c506e29885e8b8dfbcf49c 25-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Reflecting the rename of System Group: My Contacts

Bug: 2534587
Change-Id: Ia14ed88f5d8012a0ed60be53367edff63aa756dc
oogleSource.java
74d69d1c451688d73876392a91cae3349179447d 18-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Fixing aggregation mode for inserted contacts

Change-Id: I716d742c72607c84e382b0c4baf3e2bea757d7c8
ntityDelta.java
489399674e43dbb7365f56058c3c1a41a55eb3c7 16-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Disabling aggregation of new contacts

When the contact is created on the phone, don't aggregate
immediately. In the future, will show aggregation suggestions
after saving the contact.

Bug: 2480793
Change-Id: I9db1299d939ad93eaa2b9bd00a5b61cac153ed6b
ntityDelta.java
cebe835d42e187b1ab6e73495374d23f49a3888f 15-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Passing non-null class loader to readParcelable

Bug: 2512038
Change-Id: I5c1e20f1fb40e81949c3c88e7f3210d11fcb31f0
ntityDelta.java
e23c9e1380c1489901c95d34c6974d1848120416 10-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Handle notifications for apps on sd

Change-Id: I91b631ec9377b996b40594c4930243b868fa1ac6
ources.java
10a71f3300d7d6387a6de9a05be69f18b02c9421 10-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> A shot at fixing bug in parceling of EntitySet

We'll need to keep watching for this bug, because I could
not reproduce it. The fix is just the best guess after
and armchair investigation.

Bug: 2498937
Change-Id: Ic42cecc5ce79504e645bd07fb80d3ac0f53b3bed
ntitySet.java
7fa5bb3948c58e1b539bd12d8a9ab9977024dc1d 10-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Fixing order of contact editors for CJK locales

Bug: 2498855
Change-Id: Idcacb05ad29a5898dc8a5626a90294a145c6eb57
allbackSource.java
1e349d136d0162ce82a2d51b8a3724972e20bd7c 09-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Fixing a resource loading issue.

Bug: 2500266
Change-Id: I3ae726c20cf222fa19d4b2fdbd18c961f4004504
ources.java
3dd365f695ab3540bc636e0d726e3f57a80c6ce5 08-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Proper ordering of names in the contact editor for China and Korea.

Change-Id: Ie21d48fe40dd631dbcd3055c0c66da499252a899
allbackSource.java
32904f58ea5b9a675554a50b9c85db47a54f397a 08-Mar-2010 Dmitri Plotnikov <dplotnikov@google.com> Added Context to inflate... methods used by EditContactActivity.

Change-Id: Ie481a8f9bb7b3b9cae56e7f7ba69ea349623c720
xchangeSource.java
xternalSource.java
allbackSource.java
oogleSource.java
da5fd9039bd303f5e4634a31ed9a00d58d679b39 26-Feb-2010 Daniel Lehmann <lehmannd@google.com> Converted lists with a maximum of one entry into single-item-lists. Also made "Notes" and "Nicknames" single-item-list because that is what GMail expects.
Bug: 2472403

Change-Id: I4dd767fb6cf1112e57a6343a14a7ab6303daaeae
ontactsSource.java
xchangeSource.java
allbackSource.java
8579e25faeedbb1d00ee295da4c74e45bd782573 07-Dec-2009 Fred Quintana <fredq@google.com> changed to use the new EntityIterator interface
ntitySet.java
f4ac04628763d8df783768b86d5e7b162a9a3d38 24-Nov-2009 Daisuke Miyakawa <dmiyakawa@google.com> Make Contacts app refresh cached EditFields when Locale is changed, and
change the display order of elements of StructuredName and StructuredPostal
in accordance with the current locale.

Especially in Japan, the way how to display name and postal addresses is
different from US's. For example, "Family Middle Given" is usual in Japan,
while "Given Middle Family" is usual in US and perhaps the other countries.

Internal issue number: 2275764
xchangeSource.java
allbackSource.java
ources.java
16c364a557d619a0396ed35249478dcf2c1ffba5 12-Nov-2009 Jeff Sharkey <jsharkey@android.com> Parse organization and notes from intent extras.

Fixes http://b/2256272
ntityModifier.java
b1590e172e3d4e7bafb478926f4ff8834bef973d 19-Nov-2009 Neel Parekh <neel@google.com> Move IM to the "more" section.

Bug: 2267141
allbackSource.java
4b722a93f1ecdeb2890fb7e5db4c22794bccfdcd 02-Nov-2009 Makoto Onuki <omakoto@google.com> EditContactActivity: Restore focus when the screen rotates.

Assign unique but consistent IDs to the EditText on EditContactActivity, so that focus is restored when we recreate the activity.
Also assign IDs to other views, such as GenericEditorView as well. This will be used to restore views' visibility.

This fixes b/2151340.

Also, set focus at the new EditText when you add a new field by clicking on the "+" button.

This fixes b/2223543.
ditor.java
ntityDelta.java
93640fa2b864d83ce15d22f349144972765647a3 30-Oct-2009 Jeff Sharkey <jsharkey@android.com> Avoid NPE in isEmpty() when no EditFields defined.

Fixes http://b/2226220
ntityModifier.java
dbeb965d19a3c03e78cd54d9fbe7337b4fbb06f2 30-Oct-2009 Jeff Sharkey <jsharkey@android.com> Avoid NPE in isEmpty() when no EditFields defined.

Fixes http://b/2226220
ntityModifier.java
5bd82f693788c39c2b2225ac49b38cb8be5d1d18 28-Oct-2009 Jeff Sharkey <jsharkey@android.com> When reparenting, prefer GROUP_ROW_ID but allow fallback.

When a GROUP_SOURCE_ID is the only value provided, usually
while a sync is still going on, allow it to remain when a
valid ROW_ID is present. Fixes http://b/2222283
ntityDelta.java
4c82d3b7323b498e2a21daf94505daf0cd32d212 09-Oct-2009 Jeff Sharkey <jsharkey@android.com> Handle external sources that request both social and detail.

When a source requests social summary, allow them to still
provide a fallback detail value when no social summary is
available. (Otherwise the data row would be invisible.)

Partially fixes http://b/2176892
xternalSource.java
e31dac84479a4c7b356edfc062a447cdfb5efc69 08-Oct-2009 Jeff Sharkey <jsharkey@android.com> Trim edit fields that don't contain printable values.

When persisting edit changes, trim data rows that have no
printable characters. Also wrote unit tests for new method
and building of IM intents to check Uri escaping.

Fixes http://b/2173811
ntityModifier.java
7173705177c421e0b2a3bc4579b2f8910a38a668 07-Oct-2009 Jeff Sharkey <jsharkey@android.com> Ignore transient rows during re-parenting.

When editing, we create template rows such as StructuredName
and Photo, which may be trimmed before persisting if they
remain empty. When a background change occurs and we need
to re-parent the users changes, we didn't handle this
special case, and treated these trimmed rows as inserts,
which triggered the reported missing MIME-type exception.

This change watches for "transient" rows that didn't exist
previously, but were inserted and then deleted during the
process of editing. When encountered, they are ignored
during re-parenting, instead of turning into inserts.

Added a unit test to verify correct behavior, and also wrote
values-level verification for the existing unit tests.

Fixes http://b/2167925
ntityDelta.java
1fb6275a57318261cb6dba511954cb754cd17fa2 07-Oct-2009 Jeff Hamilton <jham@android.com> Updates to the edit contact UI.

- Updated account colors and color layout
- Updated display in read-only mode
- Clearer strings to identify accounts
- Sort the contacts to edit so read-only ones
always are at the bottom.

Fixes 2163539 and a good portion of 2163519.

Change-Id: Ib2afc992a8623f2a253d2a52a0b5c50ee866e5d8
xchangeSource.java
xternalSource.java
oogleSource.java
624ddc3cce02e3d9216e87564766fd86e814675d 02-Oct-2009 Jeff Sharkey <jsharkey@android.com> Include Google Talk presence, even when missing Im rows.

When inserting Google Talk presence updates, we match on
both Im and Email rows. This change adds presence "dots"
to individual Im rows, and creates in-memory Im rows when
Email entries have presence.

This loads status details through a second query and holds
back building UI until both queries finish. This change
also generalizes logic for building Im intents borrowed
from FastTrack code.

This change also fixes a regression that was dropping third-
party data rows. The second-query approach above allows us
to remove a large chunk of code that was using old API.

Fixes http://b/2161796
ontactsSource.java
xternalSource.java
e86b928be36bb3e7136796ad519e736325d1d2b1 05-Oct-2009 Megha Joshi <mjoshi@google.com> Prevents empty focus contacts without photo from being created.

Bug: 2133257
Dr No: TS
ntityModifier.java
8e55e0daa3967dbfdada4a42bec51a0435bc3384 03-Oct-2009 Fred Quintana <fredq@google.com> account manager api review changes
ources.java
5297c6af41f3fd2f08cff5b84105af4efd1ab79f 01-Oct-2009 Jeff Hamilton <jham@android.com> New edit UI, now without tabs.

Make ExternalSource derive from FallbackSource
and add photo and name to the list of sources
since they're not optional.

Change-Id: I043db076a001a711e56dd6e5e6ee32c4c0c9477a
ontactsSource.java
xchangeSource.java
xternalSource.java
allbackSource.java
oogleSource.java
735e8b11d8e370f24e9b8ac5329a1985c879bbf2 30-Sep-2009 Jeff Sharkey <jsharkey@android.com> Single query with social, IM rows, heavy recycling, large.

Moved to a single query when showing FastTrack, instead of
previous three. This change also limits photos so we only
request when needed for large mode, and even then only the
super-primary photo. Helps fix http://b/2134623

New query also brings in new social status API along with
attribution lines, fixing http://b/2149038

Change also adds any IM rows under contact, or treats
Email entries with presence as Google Talk IM rows, which
fixes http://b/2087402

When selecting chiclet icons, prefer a specific set of
built-in platform and system apps. This does /not/ replace
the system intent dialog to actually select an app when
there are multiple matches. Fixes http://b/2139517

Heavy recycling strategies for preserving layouts. This
uses a ActivityManager trick to keep FastTrack pre-warmed
behind any other tasks. It also recycles inflated chiclets
between showings. With these and other optimizations, we
now show 60% faster. Fixes http://b/2134623

Implements large FastTrack layout, fixing http://b/2126683

Switched import/export icons to correct DPI, corrected HDPI
FastTrack shadow asset, and fixed dialog launching logic in
ContactsListView.
ntityDelta.java
xternalSource.java
60d19a75d3cc28a0ff5ca2b875109b6236fe02a5 01-Oct-2009 Fred Quintana <fredq@google.com> show events in the UI
allbackSource.java
oogleSource.java
384277a8921247495b2b954e7b2437d748c4fcf2 01-Oct-2009 Dmitri Plotnikov <dplotnikov@google.com> Moving contact split functionality to contact Edit

Change-Id: I1172406d9eaed9b996d0376ff23413c8d7848d06
ntitySet.java
47673e82f210e3b2d38d49652726b51770e71230 22-Sep-2009 Neel Parekh <neel@google.com> Hookup building the contact header widget from deltas.

Bug: 2126659
ditor.java
ntityDelta.java
ntitySet.java
386dd954869544581f8825148ac41ed15d465ab2 30-Sep-2009 Costin Manolache <costin@google.com> Remove GAIA string
oogleSource.java
3649fd86996bb8051ea0239863b3db3c0ccc3a92 29-Sep-2009 Jeff Sharkey <jsharkey@android.com> Remove TYPE_CUSTOM from EAS source.

Helps fix http://b/2127721
xchangeSource.java
ae8e5769a19aecb877406b0df251e7bff5c3e398 29-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change I60a8f5d0 into eclair

* changes:
Disable labels, fields and add button for readonly contacts in edit contact view.
99b1db73e9db33aa76883a7f60feafbc38e2860a 28-Sep-2009 Jeff Sharkey <jsharkey@android.com> Invalidate sources cache when accounts change.

This change listens for AccountManager changes, such as
when an account is added. Fixes http://b/2115977
ources.java
92525ff51e2cb06531447a7dcde5e22334669c8e 27-Sep-2009 Megha Joshi <mjoshi@google.com> Disable labels, fields and add button for readonly
contacts in edit contact view.

Fixes 2139627.
ditor.java
d2fdb9095e0009408b89e24048154ea7a8a14413 27-Sep-2009 Megha Joshi <mjoshi@google.com> Prevents empty contacts from being saved.

Fixes 2128988
ntityDelta.java
ntityModifier.java
oogleSource.java
9893cfe05a915db0378052c47981250f85a3ae19 26-Sep-2009 Jeff Sharkey <jsharkey@android.com> Rewrite display groups to persist changes in transaction.

In a previous change we relied on now-removed query
parameters to delay visibility updates until forced through
a specific update. This would leave the contacts list in
a stale state when the user left the Activity through
non-typical methods, such as notification or home key.

This change keeps all user edits in memory, reusing code
from our edit UI, and persisting them in as a single
transaction when finished. This also adds a button bar
to help confirm or revert changes. Fixes http://b/2075275

In addition, this change cleans up inefficient code where
we had been previously joining together up to 3 cursors for
each account to match a given UI spec.
ntityDelta.java
d458983e6293b6fa07b85f8e2a5fc317021e954e 25-Sep-2009 Fred Quintana <fredq@google.com> - fix a crash that happens when reparenting a change
- fix a bug wher to Longs are compared using == instead of equals
ntityDelta.java
a6ff67e83082c7953d3b70181549ff4cabce2eba 25-Sep-2009 Fred Quintana <fredq@google.com> don't delete photo rows that have an empty photo
ntityModifier.java
2a53badf9e15996e75584ecc81734a409b8b89e9 24-Sep-2009 Daisuke Miyakawa <dmiyakawa@google.com> Make SDCard/SIM importer allows import into "phone-local" account.

Also make importer try to create "My Contacts" group if it does not exist in
the Google account.

Note that the code for the issue 2138187 is also added but temporaly commented out.
I agree this is not clean change, but please ignore these now.
I'll comment in them soon...

Internal issue number: 2141766
oogleSource.java
7e1690ae43dc2cf310031e75a78b6d372adb7c0c 24-Sep-2009 android-build SharedAccount <android-build@sekiwake.mtv.corp.google.com> Revert "clear PHOTO column instead of deleting the row for focus"

This reverts commit a3c1b8beda9a79727690889647fdb9f234c760eb, as per Fred.
ntityModifier.java
edb54bc2bc74a2c6be8e51dfdd0f1ac26ffcf3e0 24-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26813 into eclair

* changes:
Compare rawContactIds using actual number value.
e09266e133fb6cf870d24e9c971d70d28a261833 24-Sep-2009 Jeff Sharkey <jsharkey@android.com> Compare rawContactIds using actual number value.
ntitySet.java
54c69bbd8517c3414402bec9191bb9fb823c6d44 24-Sep-2009 Jeff Sharkey <jsharkey@android.com> Bring back EAS assistant name editor.
xchangeSource.java
adedd75b1900c4c794a9e5702d9f43bdba4cea7c 24-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26655 into eclair

* changes:
clear PHOTO column instead of deleting the row for focus
3ef91edb750cee8c7843a0702134bec90b8baef4 23-Sep-2009 Jeff Sharkey <jsharkey@android.com> Populate default types for nickname and website.

Fixes http://b/2138153
allbackSource.java
a3c1b8beda9a79727690889647fdb9f234c760eb 23-Sep-2009 Fred Quintana <fredq@google.com> clear PHOTO column instead of deleting the row for focus
ntityModifier.java
3bf0eb4512f8d8da1fabf6d71da2961bb8f2eb31 23-Sep-2009 Jeff Sharkey <jsharkey@android.com> Only allow 1 organization for EAS contacts.

Fixes http://b/2139188
xchangeSource.java
88d00c2450a0a16bf1dd35e9f3c9ba843a97ec62 23-Sep-2009 Jeff Sharkey <jsharkey@android.com> Hook up logic for re-parenting of user edits, unit tests.

When persisting edits, we assert that RawContacts.VERSION
has remained consistent. When this check fails, it usually
means that a server change has changed the underlying data,
and instead of dropping user edits, we "re-parent" their
changes after re-reading the base data.

This change finishes up the re-parenting logic to run over
an entire EntitySet, and also has a nice pile of unit tests
to verify behavior. Fixes http://b/2115136
ntityDelta.java
ntitySet.java
2e6148fe7d8a3e724d8a8f10780d7e5571780279 23-Sep-2009 Jeff Sharkey <jsharkey@android.com> Use specific columns when building IM strings.

Fixes http://b/2138429
allbackSource.java
16d6b342bcedb2bc047788eae248eb70cf94a458 22-Sep-2009 Jeff Sharkey <jsharkey@android.com> Set readOnly flag based on SyncAdapterType.
ources.java
ab066931efd4b6408b5f57026b421eb4a7934a39 21-Sep-2009 Jeff Sharkey <jsharkey@android.com> Split sources, partial inflation, third-party support.

This change splits HardCodedSources into separate classes
so they could borrow helpers from fallback. This also
finishes up FallbackSource so it handles all new types
supported by ContactsContract. The view inflaters now
handle showing all types, even if not supported as a choice
during edit. This approach also allows us to partially
inflate sources, speeding up view and FastTrack. Fixes
http://b/2116999 and http://b/2126675 and makes progress
towards fixing http://b/2134623

This change also fixes on-phone contacts, meaning we
always have fallback sources, fixing http://b/2119637 and
http://b/2123401

Repurpose code from StyleManager for Sources inflation of
third-party data sources, fixing http://b/2126691

Fix FastTrack chicklet bug so we uncheck when switching
between tabs. Since all types are in framework, we borrow
those strings here, and also clean up our descriptions for
translation.
ontactsSource.java
xchangeSource.java
xternalSource.java
allbackSource.java
oogleSource.java
ardCodedSources.java
ources.java
d4e87b6188dd12e0cd81e186f59e1d4de4ab3bf1 16-Sep-2009 Neel Parekh <neel@google.com> Create group when it doesn't exist.

Bug: 2096844
ardCodedSources.java
be406ff7902e622021c702ada9720c0b93ac3af4 17-Sep-2009 Neel Parekh <neel@google.com> Allow EditContactActivity to use a picker

Few fixes... when creating a contact, it returns to the List. The list converts
the raw_contact into a contact and returns that (same as if you selected a contact).

Then changed AttachImage to use the new style of contacts.

Bug: 2092559
ntitySet.java
6164461a80cf46ecc4b9d4de21a8c2662d5ac220 18-Sep-2009 Jeff Sharkey <jsharkey@android.com> When parsing extras, use best type when none provided.

When the caller doesn't pass any type, use the best for the
selected ContactsSource, instead of TYPE_CUSTOM.

Indirectly helps http://b/2129074
ntityModifier.java
c7ab59e212ce4b7d2b23143ebbdce2c0aedd1187 16-Sep-2009 Evan Millar <emillar@google.com> Fix http://b/issue?id=2085793

-Also fixes problems with the call button divider not disappearing when
the call button was gone.

-Also populates the typeList for the "fallback" source, for phone,
email, and postal DataKinds. The type lists are the unions of the focus
and exchange typeLists.

Change-Id: Idd68760d852e4accdcf3043007253e122bd5534b
ardCodedSources.java
e5ac076343e401ec1bafae74270273617017f863 17-Sep-2009 Jeff Sharkey <jsharkey@android.com> Finish up using Contract phone types for EAS.

Fixes http://b/2092744
ardCodedSources.java
e50d64d1e9eb321735c94a15b1a20a59a19cc421 16-Sep-2009 Jeff Sharkey <jsharkey@android.com> Separate tab and state models, fix delete issues, dialogs.

Maintain a separate model for tabs and the underlying state
so that we hide tabs for RawContacts deleted during the
edit session. Also bail out when the last tab deleted.

Manage dialogs so we don't leak activities. Parse legacy
IM types. Fixes http://b/2122838
ntityModifier.java
ntitySet.java
7f86847eddbec5dff4d87ac9243d839593582e42 16-Sep-2009 Jeff Sharkey <jsharkey@android.com> Prevent unstateful edits, empty trimming, INSERT edge cases.

Monkeys found some edge cases that could perform actions
when editor was in an invalid state. Added validity checks
in about a dozen places to prevent. Fixes http://b/2121368
and http://b/2115921

Hook up trimming of extra empty fields that users have
left blank, including dropping of entire RawContact if no
valid fields remain. Also wrote a pile of unit tests to
verify behavior. Fixes http://b/2112915

Don't CCO when inserting bundles that use CharSequence
instead of Strings. Don't NPE when inserting bundles and
we encounter a DataKind that the chosen ContactsSource isn't
able to handle. Fixes http://b/2105737 and http://b/2118580

Insert bundles for INSERT_AND_EDIT cases where user chose
to edit an existing contact. Fixes http://b/2098856 and
http://b/1645578

Adopted new framework back key API from hackbod.
ontactsSource.java
ntityDelta.java
ntityModifier.java
ources.java
a62e6db031a02bb04a57049839545e378d3b72c2 15-Sep-2009 Neel Parekh <neel@google.com> Fix the address coming from maps.

Bug: 2101939
ntityModifier.java
d35b3906a81e564011b2cee950e274afea3205d9 11-Sep-2009 Jeff Sharkey <jsharkey@android.com> Add StructuredPostal editor for EAS. Fixes http://b/2111725
ardCodedSources.java
6f8d46b5fb96c2bead1317aae93a73fc89b093ab 11-Sep-2009 Jeff Sharkey <jsharkey@android.com> Insert, update, delete photos. Trim empty fields.

Allow photo changes when the ContactsSource allows Photo
entries. This change also trims out any inserted or updated
fields that are now "empty" according to their respective
DataKind fields. Wrote unit tests for field trimming to
ensure wiping works. Fixes http://b/2050549
ditor.java
ntityDelta.java
ntityModifier.java
ntitySet.java
ardCodedSources.java
360aa68d9d1451290ff7448b2a6bffdede5cb9d0 10-Sep-2009 Jeff Hamilton <jham@android.com> Fix the hardcoded sources for Facebook. The fallback sources don't do what I thought they did.

Change-Id: I3383ac47b32b82f7b34acc114b0e9b61746a525e
ardCodedSources.java
49d17b3e7692ae9442c342db236fa93d4a837c28 07-Sep-2009 Jeff Sharkey <jsharkey@android.com> Lookup uris, delete, aggregation rules, untyped, sharing.

ContactsListView: combined together various import/export
menus under single dialog, hiding SIM import when no ICC
present. Switched almost all cases to use soft "lookup"
uris, especially for pick and operation cases. Brought
back delete in long-press menu, and pick modes needed for
SHOW_OR_CREATE. These partially fix http://b/2096050 and
http://b/2096870 and http://b/2102632

ViewContactActivity: changed menus to inflate from XML,
added "Share" option to replace barcode. Confirmed that it
sends vCard through Gmail, other apps can match MIME-type
to begin appearing in picker. Changed EAS rules back to
untyped for Email and IM, which now allows use to use IM
type as protocol picker. Fixes http://b/2072731 and
http://b/2092744 and http://b/2088935

EditContactActivity: restructured editing to front-load all
version assertions, and perform as single batch to prepare
for reparenting. Correctly generate AggregationExceptions
using new API from dplotnikov, especially in cases where we
create multiple RawContacts from scratch. Unit tests to
verify exceptions built correctly for edge cases. Also
showing toast when saving failed. These changes were mostly
untracked, but fixes http://b/2099211

Various untracked NPE related to untyped HardCodedSources
and cleanup of "tel" "smsto" and SMS MIME-type constants.
ntityDelta.java
ntityModifier.java
ntitySet.java
ardCodedSources.java
29d48e7bb03d5a75049cbbc7b9bd51a3001dcbb8 05-Sep-2009 Evan Millar <emillar@google.com> Show organization company and postion instead of "Organization" and position.

Fixes bug 2101949

Change-Id: Ia6c96eb05b95bac3a7510a8d9d9312bd2ac9209d
ardCodedSources.java
320c34a674bcb3209ce8e7a22d58c17cd0259da2 04-Sep-2009 Evan Millar <emillar@google.com> Fix for bug 2100165.

Change-Id: Id147518259b94b1f398e538d0b7b509afd346006
ardCodedSources.java
0f0d55414e3952a674a1d95295116cda6ff000b6 08-Sep-2009 Jeff Hamilton <jham@android.com> Fix the display of social updates in the fast track, and the hard coded Facebook sources.

Change-Id: Ifbb429ad5714bdd78a5571c4adc575b74f928649
ardCodedSources.java
985585b0557d277ee2ae3e8093cd577d0d1d59b1 03-Sep-2009 Jeff Sharkey <jsharkey@android.com> Correctly change aggregation mode in all cases, unit tests.

Fixed broken unit tests, and in the process corrected an
issue where we changed aggregation mode in some cases where
is wasn't needed. (When updating but no values change.)
ntityDelta.java
49714ee0ffc830f9bcd1116e74d61116dedd190f 03-Sep-2009 Evan Millar <emillar@google.com> Add Organization and Note kinds to Exchange viewing/editing

Also add placeholder "chat" string to show as label for exchange im
items.

Fixes bug 2072710 and 2092920

Change-Id: I5c3ba0c73160f93b6d06b5b6a2ca20a84f56da18
ardCodedSources.java
11d628c52c16a18c0caf40df0ce43396e7592ffc 02-Sep-2009 Evan Millar <emillar@google.com> Use ContactsSource in View

Combine BaseContactCardActivity and ViewContactActivity, since
EditContactActivity isn't using it anyway.

Use Entity querying, and ContactsSource in ViewContactActivity.

Change-Id: Idc0fb4d5d4e2637f5a345461362d55d4bfcb6cf2
ontactsSource.java
ntityModifier.java
ardCodedSources.java
3a243f26d69113eb61359c8a6ec8ca8c4a8ad5e3 03-Sep-2009 Jeff Sharkey <jsharkey@android.com> Specify editors for fallback StructuredName.

Fixes http://b/2096580
ardCodedSources.java
ad40a919d318c7aa26f252d3f0fe541e2c44a211 01-Sep-2009 Jeff Sharkey <jsharkey@android.com> Older EAS types, new Email field, fix count and INSERT bugs.

The EAS sync-adapter isn't ready to handle type-less Email
and IM entries yet, so bring back the original strongly-
typed editors. Partially fixes http://b/2089080

Provide a second edit field for Email.DISPLAY_NAME when
editing EAS contacts. Partially fixes http://b/2092744

Correct count when determining canInsert() for fields that
have typeOverallMax constraints. Fixes http://b/2089132

Correctly build incoming StructuredName using existing
field, and check for empty fields to fix http://b/2078726
ntityDelta.java
ntityModifier.java
ardCodedSources.java
aad8848282f51d73ad308e9ad3ebcef592fa153f 30-Aug-2009 Jeff Sharkey <jsharkey@android.com> Expandable structured support, organize editors, much more.

Wrote expandable editor support, so that StructuredName and
StructuredPostal could be displayed compactly on smaller
screens, but still expanded to edit all possible fields.

Reorganized editors to directly inflate classes instead of
using ViewHolder pattern. This helps us prepare for focus
saving logic coming soon, and also required that each data
row have getViewId() to be uniquely identified.

When editing EAS contacts, don't use separate types for
"Email 1", "Email 2", etc, and instead use a single overall
limit on type-less values. (This is dependant on
http://b/2065904 being resolved.)

Defined fallback "on-phone" account separately to prevent
confusion with Google account, also limited the possible
data types that could be entered.

Suspend aggregation while persisting RawContacts updates
to prevent possible re-aggregation and user confusion when
returning to View activity. Also correctly generate
AggregationExceptions when inserting new RawContacts under
an existing aggregate. Fixes http://b/2087517

When inserting Google contacts, add GroupMembership for
"My Contacts" to help visibility, fixing http://b/2070479

Don't reprompt for account when rotating during INSERT,
fixing http://b/2084585 and hide editor until finished
with async loading. Ensure that specific rows exist so
we always have StructuredName to edit, and have waiting
Phone and Email fields for INSERT.

Used better method of creating generic ArrayList/HashMap.
ontactsSource.java
ditor.java
ntityDelta.java
ntityModifier.java
ardCodedSources.java
ources.java
4908891ab62d8c8217fa499643ddefbae51c6961 30-Aug-2009 Jeff Sharkey <jsharkey@android.com> When dismissing Fast-Track, don't let touch fall through.

Instead of being NOT_TOUCH_MODAL and relying on the window
manager to mark ACTION_OUTSIDE touch events, detect the
events ourselves so we don't let them fall through to any
window behind us.

Also clean up some verbose logcat when loading resources.
ardCodedSources.java
73714ff71b3955cca3d9f5c6424c333ae063da61 24-Aug-2009 Jeff Sharkey <jsharkey@android.com> Iteration on Fast-Track, new assets drop, account menu icon.

New asset drop for Fast-Track with new style disambig with
"set default" checkbox, will be hooked up soon. Cleanup of
legacy API references in some places.

Adjust action building to query against PackageManager,
which now brings in best-matching app icons. Previously
the data provider needed to supply icons. This solves the
case where people use third-party apps for SMS, etc.

We also use the ResolveInfo to populate the content
description for the track icons so that Fast-Track actions
use the system accessibility APIs.
ontactsSource.java
ardCodedSources.java
d9798aefc844dd9ce29da085cb8ab7e769f63e75 25-Aug-2009 Jeff Sharkey <jsharkey@android.com> Fixed up intent MIME-types, add Accounts menu, clean unused.

Cleaned up <intent-filter> entries for INSERT_OR_EDIT and
EDIT to watch for more MIME-types after legacy change-over.

Finished clean-up from display groups by removing deprecated
edit sync groups UI, and unused menu. Changed
ContactsListActivity to use XML-based menus and added an
"Accounts" link that replaces the edit sync groups.

Finally, hooked up the INSERT case to read extras from any
incoming intents to help with SHOW_OR_CREATE intent testing.
ntityDelta.java
ntityModifier.java
170f775211dc7c682c7a0b509d6a73ffb9d1edb1 16-Aug-2009 Jeff Sharkey <jsharkey@android.com> Iteration on display groups UI, was neglected for awhile.

Switched to using Accounts metadata provided through
Sources cache. Also added long-press and menu item to serve
as our "edit sync groups" in the same UI.

Need to iterating to show all accounts regardless of group
existance, and persist DEFAULT_SHOULD_SYNC values.
ontactsSource.java
ources.java
b5f40208255bf1d326e70716d5916e463bec397e 20-Aug-2009 Jeff Hamilton <jham@android.com> Fix the source icons when viewing a contact.
ources.java
3f0b7b87cd41b5a9cd631b6fcf29ea5025905e18 12-Aug-2009 Jeff Sharkey <jsharkey@android.com> Use AccountManager for details, handle INSERT cases.

Connected Sources to use AccountManager and inflate details
through registered sync adapters. Each ContactsSource now
has a "level" of inflation, since deeper levels aren't
always needed right away. Several places we're making
blocking calls into other processes that are tied to the UI
thread. (This would take a large effort to fix.)

Turned most background Edit activity operations into
WeakAsyncTask, which helps finish background tasks while
preventing leaked Contexts. This allows us to hold the UI
thread while saving, but release it just before ANR,
allowing the background operation to complete.

Enabled INSERT case, both from overall list and when already
editing an aggregate. Finally, cleaned up the manifest
intent-filters to directly match authorities.
ontactsSource.java
ntityDelta.java
ntityModifier.java
ardCodedSources.java
ources.java
84293ad8b251ee53ffcf4e071a4693e791ee02d2 17-Aug-2009 Fred Quintana <fredq@google.com> accounts api change
ources.java
5f4af705cef8c914d5875983900e5cf5a5524b68 11-Aug-2009 Evan Millar <emillar@google.com> Show tab icons in view activity.

-Add an asynchronous request api to Sources, to allow for
asynchronous binding of autheticator data to the Sources object. The old
getInstance() api has been changed to getPartialInstance(), as not all
clients of Sources need the authenticator data bound.

-BaseContactProvider uses Sources to get the source icons. This behavior
still needs to be added to EditContactActivity.
ntityModifier.java
ources.java
d4c41d5c553745fb1126e01334319f05f0808eb3 11-Aug-2009 Jeff Sharkey <jsharkey@android.com> Unique strings for labels and actions, SMS as alternate.

To prepare for strings in various languages, make unique
strings for each combination of "action" and EditType, for
example, "Call home" and "Email work" as unique strings.

Also added iconAltRes and actionAltRes to handle alternate
actions on data rows, such as SMS for phone numbers. These
changes allow Fast-Track to show correct labels.
ontactsSource.java
ources.java
0b45a58fad48888fee36eb0edf50705e0aa00e30 11-Aug-2009 Jeff Sharkey <jsharkey@android.com> Connect photo and name editors, super primary dialog.

This change connects up the photo and display name editors
to show the values from the selected RawContact. This also
persists StructuredName.DISPLAY_NAME changes back.

Also connects up the long-press menu for selecting a
super-primary display name for an aggregate.
ntityDelta.java
14f61ab769f6e178a540a7579e446a010fb836da 06-Aug-2009 Jeff Sharkey <jsharkey@android.com> Switch edit UI to tabs, TYPE_ASSERT for version, cleanup.

Integrated with the tabs and header widget built by
emillar, kept separate from BaseContactCardActivity since
I'm handling EDIT/INSERT intents differently. Added hooks
to pick primary photo/name from header.

Cleaned up the colorful testing UI, added padding to match
mocks, and initial pass at collapsed secondary area. Added
back menu items and confirmation toast.

Changed to new TYPE_ASSERT ContentProviderOperation for
asserting RawContacts.VERSION number during updates.
ontactsSource.java
ntityDelta.java
ntityDiff.java
ources.java
ed4f47de16d91054b60ba615f8523fe1049604f6 11-Aug-2009 Fred Quintana <fredq@google.com> remove the table name specifications, which no longer work with the view changes
ntityDelta.java
802b205ac677ffbde9aaf4fa3cfa9b94e8c98a44 04-Aug-2009 Jeff Sharkey <jsharkey@android.com> Bring back Fast-Track with yummy assets and animations.

Fast-Track had been quite neglected, so brought it back up
to speed with ContactsContract changes. Also rearranged
the Action launching logic to use ContactsSource.DataKind
for any icons and label generation. Wrote slide animation
that looks awesome.

Added Fast-Track triggering to normal contacts list, since
it has photos now. Also supports being launching in various
modes, which for now are three sizes.
ontactsSource.java
ntityModifier.java
ources.java
d046a039e41deab0635c3327cd40c3896e39acad 03-Aug-2009 Jeff Sharkey <jsharkey@android.com> Delta parceling, valid types bugfix, INSERT parsing.

Made EntityDelta and ValuesDelta directly Parcelable to
pass across configuration changes. Moved the re-parenting
code to separate EntityDelta.mergeAfter() method. Fixed
getValidTypes() bug that didn't handle typeOverallMax
in "unlimited" cases. Wrote INSERT parsing code to merge
incoming extras bundle into a new or existing EntityDelta,
also handles any source constraints.

Initial hook-up of edit UI to persist changed data, only
shows first Entity because not connected to tabs yet.
ntityDelta.java
ntityModifier.java
ources.java
8d9767d79f9fe2a09ee6e981b1fede7e9863d62a 02-Aug-2009 Jeff Sharkey <jsharkey@android.com> Refactor "Augmented" to "Delta" to make meaning clearer.
ugmentedEntity.java
ntityDelta.java
ntityModifier.java
07c2e41b5ce7abeb9dd14e5d700a8fb928723330 30-Jul-2009 Jeff Sharkey <jsharkey@android.com> Bulk of constraint enforcement code, "best" suggestions.

Wrote getValidTypes() which builds a list of EditTypes that
can be inserted given a AugmentedEntity state, which is our
mechanism for enforcing ContactsSource constraints. This
also drives canInsert(), which provides the enabled state
for our "add" buttons.

This change also reintroduces "suggested" types, used to
pick the default EditType for newly added entries. It picks
the first primary type that doesn't already appear, or
otherwise picks the last primary type. (This gives us a
nice "add" transition down the list of possible types.)

Finally, this change connects all of this logic into the
UI, picking available labels and enabling "add" according
to any constraints. Also wrote unit tests to verify the
above code is producing the expected results. These tests
exercise the backbone of our constraint-enforcement logic.
ugmentedEntity.java
ontactsSource.java
ntityModifier.java
e731d426eda3692402f3cecdc29421fcf7f1fb54 29-Jul-2009 Jeff Sharkey <jsharkey@android.com> Fixed VERSION check, persist changed values, IM changes.

Moved the buildDiff() VERSION assertion to the first
operation, since otherwise the value has already changed
when we reach it.

Added the few lines needed to start persisting any edited
data. Still need to write the back-off and retry when we
encounter a VERSION failure.

Cleaned up our hard-coded data types, added support for
StructuredPostal and IM editors. Standardized the EditText
flags for IME between the sources. Based on a pending
framework change, moved to using two fields for IM to mirror
how we handle TYPE values.
ugmentedEntity.java
ontactsSource.java
ntityModifier.java
ources.java
309e89f36aeca6d6a81e13ea95b7e4af6e491073 28-Jul-2009 Jeff Sharkey <jsharkey@android.com> Add AugmentedEntity.buildDiff() code, with unit tests.

Another step along the way to editing contacts, this change
implements building the ContentProviderOperations needed
to "diff" an existing Entity to match an edited state.

Most work is done by AugmentedValues.buildDiff(), which
builds the insert, update, or delete operation needed to
match its internal "after" state. AugmentedEntity builds
up the list of all operations from its direct values and
any children.

When changes are made, an "enforcement" action is added to
verify that the RawContacts.VERSION matches the "before"
Entity. If this test fails, someone else (probably a sync)
has touched the Contact, and our entire operation is rolled
back, allowing us to re-read the base Entity and retry.

This approach also handles inserting an entirely new
RawContact, which removes the need for separate create() and
save() methods in our edit UI.

Finally, two batches of unit tests have been added. The
first batch verifies the Parcel'ing of AugmentedEntity
objects, which is used across configuration changes, and
when applying changes over a re-read Entity. The second
batch verifies the expected ContentProviderOperations that
various buildDiff() calls should produce.
ugmentedEntity.java
ontactsSource.java
2ae666ec99ae9318936a9326e5243987e4e1c586 22-Jul-2009 Jeff Sharkey <jsharkey@android.com> Checkpoint of new edit contact UI, work in progress.

This change introduces several new concepts which are
summarized below. One major change is a MMVC approach that
has two models: the structured Contacts data, and the
data-source constraints model. Another is augmenting an
Entity using a specific set of actions.

First, each data source is defined through a ContactsSource
that describe how it handles data, both for rendering and
editing cases, such as the Data.MIMETYPE it handles, what
types are allowed, and the fields required for editing. In
this change, ContactsSource objects for Google and Exchange
are hard-coded, but an initial XML version will need to be
finalized for supporting third-party apps that show custom
icons and strings.

Second, AugmentedEntity allows us to keep the edit changes
separate from the initial data and build a "diff" between
the current Entity state and the desired changes, which is
represented as a set of ContentProviderOperations. If the
data changed while the user was editing, we can easily swap
in the new Entity and apply the edits on top. In the worst
case, this may end up creating duplicated data, but won't
lose the users changes.

Finally, this change starts splitting the UI and modeling
code into different sub-packages. The UI is split into
multiple ViewHolders to mirror the structure on screen.

There are dozens of TODOs littered throughout the code,
which I'm following up on shortly. This is a checkpoint to
start a code review on the core structure.
ugmentedEntity.java
ontactsSource.java
ntityDiff.java
ntityModifier.java
ources.java