History log of /packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
57a0e98eed836b72dd3dc3540b9cac029266ed7c 25-Mar-2017 Wenyi Wang <wenyiw@google.com> Add isLoggable checks to all verbose and debug log outputs (1/2)

Bug: 6813854

Test: built apk and verified log is seen in logcat

Change-Id: Ib17cac0d2d9553276c4271221110305ab2d70a46
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
0a49afa2ad697307cc04ef4cb86570574fa720f2 06-Dec-2016 Gary Mai <garymai@google.com> Collapse common package (2/2)

Ran optimize imports on the project as well to re-order everything
which would have changed because of removing common.

Test: Built GoogleContacts, GoogleContactsTests, Contacts,
ContactsTests and ran unit tests.

Bug: 33252370
Change-Id: I881f0ba8b8fef002b6eeefa9a16b34f15b2fd2a9
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
69c182afb0e6d82a341a28b4317aa703af768906 05-Dec-2016 Gary Mai <garymai@google.com> Collapse common packages (1/?)

Move the majority of packages out of common. When trying to move
common.activity to activities every file switched from a rename to
separated deletes and adds. Will move tests and the rest of common
in a separate CL.

Test: Built GoogleContacts, Contacts, GoogleContactsTests,
ContactsTests.

Bug: 33252370
Change-Id: I9ffb20038dee255ef5f83002b7870265771b08c5
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
95246bb89a1c45459fe15eefdc6d924963247944 11-Nov-2016 Marcus Hagerott <mhagerott@google.com> DO NOT MERGE Add notification for SIM import

This provides feedback to the user if the import takes some time. Also
moved SIM import into it's own service instead of ContactSaveService
to prevent blocking the save service with a long-running operation.

Test
manually verified that notification is displayed when contacts are
imported from the SIM card

Bug 32781237

Change-Id: I8f26e524a08b62f69ff06ddb45cec2db5e98fe24
(cherry picked from commit ba47b41205ddcc3872d52bede1f6aaffb4c874b8)
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
c1321120bc6e8a13bebaeb21776760c1d54acd03 16-Nov-2016 James Laskey <laskey@google.com> Toast clarity when deleting (no name) and named
am: 56019ad8aa

Change-Id: I6e6516ccd8ee49369f628600929936d73d30502d
56019ad8aa25c50307bba9bdd0c56f72d2b03e36 15-Nov-2016 James Laskey <laskey@google.com> Toast clarity when deleting (no name) and named

Bug: 32243988
Test: Delete (no name) and normal contact to see "Contacts deleted"
toast.

Change-Id: I55d5cf8bea09977d7cf8c19fbbd179758d8a55a9
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
b9065ddb28a2040cabda251891be2062b5260217 08-Nov-2016 Gary Mai <garymai@google.com> Implement linked contact menu option

Remove unlink option from QuickContact.
Link now appears when the contact has only one raw contact.
Otherwise a new "View linked contacts" menu option appears.
This dialog shows all linked contacts (including read-only) and
has buttons for adding another contact or unlinking all of them.
Show progress dialogs for each of these actions.

Test: Manually verified:
* View linked contacts only appears when there are more than one
raw contacts
* Link appears otherwise
* Pressing add goes to the contact picker and correctly joins the
selected contact
* Pressing unlink opens the confirmation dialog
* Canceling or dismissing the confirmation closes everything
* Unlinking from the confirmation does the unlink
* Confirmed the above with rotating on each dialog and during the
progress dialogs

Bug: 32707898
Change-Id: I39435a07fefce4276e34ba302001ff3dab352516
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
7333c37e858802a02ae46c49e726ce9a2bf94c9e 07-Nov-2016 Marcus Hagerott <mhagerott@google.com> Add ability to detect that SIM import is in progress

SIM import might be long running so things may need to be updated
when it starts rather then when it completes.

Test
See Iae69fe2d96bae6d268f77515ca85eb572c2dfe9b

Bug 31781331
Change-Id: I9efdb181b97f3fdf49cd31ba5d3eae43bcad674c
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
66e8b228b4dc76bf63a138de3087574adf694e87 24-Oct-2016 Marcus Hagerott <mhagerott@google.com> Add better support for importing from multiple SIMs

For I102f4f14ae976e550f65c83ee695d7cdc241e4e1

Test
See I102f4f14ae976e550f65c83ee695d7cdc241e4e1

Bug 31781331
Change-Id: I849e441d1ab42bff135b300b34595eb8ed468005
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
f62b488f4f88a00aa932866e2a355f10aa0bc030 21-Oct-2016 James Laskey <laskey@google.com> Toast Fixes

Linking snackbar in duplicates respects name order.
(No Name) contact deletion in list view fix.
Linking toast for quick contacts.

Bug: 32243988
Test: Manual testing by selecting and linking toasts from quick contact
and duplicates.
Change-Id: I4fef5c250ab5bb960ffb34c04fec01062d6f1235
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e5a140a1b60854a08a0ea0dc2068e9bf7cb058e6 19-Oct-2016 James Laskey <laskey@google.com> Toast fixes for deletion and save

Bug: 32243988
Test: Save contact from editor in alternative display mode.
Test: Delete contact from editor in alternative display mode.
Test: Save contact from editor with only phonetic or email or company.
Test: Delete contacts from list view with default and alternative
display mode.

Change-Id: I82df2377692ea129a54a3f0f00948201d4d1411e
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3a0b483ff715959b88d7ef20877a7c89d211fde2 12-Oct-2016 Walter Jang <wjang@google.com> Send feedback for some caught contacts app exceptions (1/2)

Test: see ag/I9c9222c8429df8ea654571fb88328394e303c900
Bug: 31308027
Change-Id: I6432c3ca7cf496a3053bb4c752068f8c1110eb84
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
819214d472fdadf3d69cb4580e238506194ed30e 29-Sep-2016 Marcus Hagerott <mhagerott@google.com> Create new SIM contacts import screen.

This is needed since SIM import is going be surfaced more prominently via an
assistant.

Test
Automated: Ran GoogleContactsTests
Manual: verify that contacts are imported when launched from settings

Bug 31781331

Change-Id: I55ea078056038d348d5b6f05f91f5159e1ee39d3
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
363af60ea23e5a3b945005712a16564ab69db18b 28-Sep-2016 Gary Mai <garymai@google.com> Rename editor files

Drop the Compact prefix since we only have one editor now.
Remove KindSectionDataList since it's now unused.

Test:
Tested build

Bug: 31088704
Change-Id: Ia5ac295804a14f79d0c837b151e33aabc60aa3d0
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
d3caf162097f870306945e07bc37bc630b0b3d52 14-Sep-2016 John Shao <johnshao@google.com> Display error when failed to link some contacts
am: a3c507a226

Change-Id: If8ca4b977d10f324ba4b98b83088dbeb3744f0b2
a3c507a2262848b9de45c306f7cd1a4a56da2850 13-Sep-2016 John Shao <johnshao@google.com> Display error when failed to link some contacts

SIM Raw contacts are unlinkable on some OEM devices
like samsung s4 and s5. Their native contact app disables
the feature but we still support it for Nexus and newer
devices like s7. Show error toast when failing to link
these contacts instead of showing a success toast.

Test: manual
- Link "unlinkable" contacts and see new error message
- Link linkable contacts and see success path
- Link sim contacts and see error message on s5

Bug:28637870
Bug:28622373

Change-Id: Ia124f4f2a842c8b8ad3b57367a19edea9fc0fbab
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
8d45cdbd4e1e0b37d705fd1dca3d8f941f75e772 01-Sep-2016 Walter Jang <wjang@google.com> Merge base and compact editor activities (1/2)

* The ContactEditorBaseActivity.ContactEditor interface
and subinterfaces are moved w/o modification except
ununecassay modifiers (public, public final static)
were removed.

* Base class members were moved w/o only visibilty
changed to private. The ContactEditorBaseFragment.Listener
mFragmentListener implementation was unchanged.

* Base class Methods were moved directly over with only
slight changes (a few finals added). onCreate and
onBackPressed were just moved inline into the corresponding
CompactContactEditorActivity where the super method
was being invoked.

Test: Manually tested the following editor scenarios:
1) new contact
2) edit other contact
3) edit writable raw contact
4) edit read-only raw contact (joins a new writable raw contact to it)
5) edit aggregate w/ 1 writable and 1 read-only raw contact
6) edit aggregate w/ 2 writable raw contacts
7) edit local me raw contact
8) edit local me raw contact joined with a read-only raw contact

Test: Also tested that duplicate culusters are updated are after a
quick contact edit

Bug: 31088704
Change-Id: I620c345fc6339b6b0807a44bafbac3201ca7b81f
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
8bac28bebae51e53885a404cdf2dd4991000ba42 30-Aug-2016 Walter Jang <wjang@google.com> Remove full editor (1/2)

Test: Tested the following editor scenarios:
1) new contact
2) edit other contact
3) edit writable raw contact
4) edit read-only raw contact (joins a new writable raw contact to it)
5) edit aggregate w/ 1 writable and 1 read-only raw contact
6) edit aggregate w/ 2 writable raw contacts
7) edit local me raw contact
8) edit local me raw contact joined with a read-only raw contact

Bug: 31088704
Change-Id: I1fce2873facefa39d7b468f1deda02acc674e3e1
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
6bb8718b04da174f3642fbdcefea0fee6086db3d 22-Aug-2016 Walter Jang <wjang@google.com> Replace @NeededForTesting w/ proguard keep flags (1/2)

* Replace -keep of entire c.a.c.common package
with individual classes
* Remove all use of @NeededForTesting annotations
(and the file itself since @VisibleForTesting
accomplishes the same thing)

Test: Ran user build ContactsTests on Nexus 5 MOB30H

Bug: 30976481

Change-Id: I8d9a4d6b3409a159a108b39c1c4837a19e2325ca
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
6f5fd2119158840f3ffa09ef4aa2a17cff78a095 19-Aug-2016 Walter Jang <wjang@google.com> Add @NeededForTesting to GroupsDao

Test: Ran user build GoogleContacts tests on
Nexus 5 LMY49R, MOB30H, and Nexus 6P NDR90M

Bug: 30976481

Change-Id: I14afa38ca481064ae7e5b031723d148f415133f5
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
bea2b8508930630a4665d83bc2e95a4ddf9557cc 11-Aug-2016 Marcus Hagerott <mhagerott@google.com> Show snackbar with "undo" action when deleting group.

Bug 28955365
Bug 30223734
Change-Id: I16f175835815600e7fdb9d49794bb79002723ac0
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3bb8514aa11f24f81c508871248b81c3eb5a4087 29-Jul-2016 Marcus Hagerott <mhagerott@google.com> Return display_name after joining multiple contacts.

The ContactSaveService includes the display name of the resulting
contact in the data bundle when several contacts are joined.

Bug: 29687036
Change-Id: I14c0ae151178d279a4c0c71f574247cc645cfea9
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
53fe0d2793af48b1b2aeeca49c72ad6645fb527a 27-Jul-2016 Gary Mai <garymai@google.com> Remove aggregation exceptions when undo-ing link from dupes view

Instead of setting the exceptions to TYPE_KEEP_SEPARATE, make it
TYPE_AUTOMATIC, making undo link a true undo instead of an unlink.

Bug: 30277501
Change-Id: I3198ede94294dbfa58af73a5bf918fa5bdc9b8e6
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
31d572e245d49ad0f879bcedfe5d8c7670004873 03-Jun-2016 Gary Mai <garymai@google.com> Return error for bad arguments from ContactSaveService

Let the result receiver know when a request is bad.

Bug: 28968298
Change-Id: Ia28988f0e8ec407ca20c3cf9ba862170a14e0fda
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
72f9988a76fcc06e68b9ffa9fc9075b58fc7302f 26-May-2016 Walter Jang <wjang@google.com> Address various groups TODOs and small bug fixes

* Style the group name edit dialog with standard min
width style. Also restrict names to be a single
line and add a hint to the EditText. Finally,
bring up the keyboard when the dialog is first created.
* Change the "edit" group menu option name to "rename",
remove the icon, and keep it under the overflow.
* Sort groups consistently on the main list and contact
editor spinnner.
* Don't load deleted groups. We don't need to handle
deleted groups in the members loader because the metadata
loader omits them in the selection clause.
* Show a toast after deleting a group. Also don't prompt
for confirmation when deleting if the group is empty.
* Remove some unnecessary header binding in the group member
list adapter.

Bug 28955365
Bug 28936603
Bug 18641067

Change-Id: Icec1e1d3bbafb7e1e94a7e841860836d256177f1
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
7efa9947476021bf0fe0a6fc0d819256a9f5afcd 12-May-2016 Gary Mai <garymai@google.com> Implement undoing ContactSaveService join operation

Add intent for splitting a newly joined contact into its previous
groupings of rawContactIds.
Join several contacts intent accepts a receiver, and will send it
the rawContactids of the contacts that were joined.

Bug:28622101
Change-Id: I748ab7b817396be4ad42d0094e0adab1cc7192ee
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
f8c8ac348cf217766a6626a5b7191a0de11f06d3 20-Feb-2016 Walter Jang <wjang@google.com> Revert "Don't pass read-only portions of RawContactDeltaList to contact save service"

This reverts commit e5bac73a8b241a43143e5780c07597cd6fa9230f.

Revert "Don't prune read only contacts in SaveService for joins and splits"

This reverts commit I717717a3c8b55315dcf3dde026af4c267f62e709.

Bug 27108237
Bug 27250533
Bug 23896510

Change-Id: If52f514c01f0d346fddc4083c710b7147761dd7d
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
0ae4a9330924726e3e06f9de96e81566e4fea635 20-Feb-2016 Walter Jang <wjang@google.com> Don't prune read only contacts in SaveService for joins and splits

Bug 27108237

Change-Id: I717717a3c8b55315dcf3dde026af4c267f62e709
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e5bac73a8b241a43143e5780c07597cd6fa9230f 03-Feb-2016 Wenyi Wang <wenyiw@google.com> Don't pass read-only portions of RawContactDeltaList to contact save service

Bug 23896510

Change-Id: Ie50aa5c0581779c12861072ec838f26d444fb549
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
aac0e66fb100b329d6010637998849048efadca9 19-Dec-2015 Wenyi Wang <wenyiw@google.com> Backport ContactsContract.PinnedPositions and create compat package

This class was unhidden in API level 21 and the undemote method was
added in API level 21 as well.

Bug: 25629359
Change-Id: I7eecd28338a8f14fca7b8249599c3f7eac70442c
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
dd7d456a080f48d93aa3a9f9b04da0f17a8833a7 08-Dec-2015 Wenyi Wang <wenyiw@google.com> Catch exception in starting ContactSaveService

This CL follows ag/798285 and adds try/catch blocks for all the places
that start ContactSaveService using static methods in ContactSaveService.

Bug: 23896510
Change-Id: Ie35cf0d213386a81a662777a5b37d6f3a3fc5633
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
67addcce8b54636c9e38f18db3bd262861aa3040 23-Nov-2015 Wenyi Wang <wenyiw@google.com> Backport isInsert() using wrapper class for ContentProviderOperation (1/2)

Bug: 25629359
Change-Id: I86bf1ec37feee4ecf56197e23dcf642c613046b8
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
ccdf69cb069764a971bf0173f3440cdbece58be3 30-Oct-2015 Wenyi Wang <wenyiw@google.com> Apply contact save ops before we reach the max batch op threshold

In order to test the special case handled by this CL, you may want
to use a contact consisting of at least 23 contacts.

Bug: 22986058
Change-Id: Ic141a7b52907be930d898d1710e95aa5ffe9be8a
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e3373dceb689209533e95a2cfbfbf1d9008ab6f6 27-Oct-2015 Walter Jang <wjang@google.com> Don't save editor before showing join suggestions

This requires us to pass the raw contact ID of the
contact to join to both the (new) confirmation
dialog and the contact save service so that we
have it to do the join after the save completes.

Bug 25314004
Bug 21956248

Change-Id: Icdcb2165a0e599dfa3745fe8a919b208d4a48b43
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
687d218928bd188a13cc32a3c553590fe0d564b1 29-Oct-2015 Wenyi Wang <wenyiw@google.com> Show "Link" item when applicable and show correct toast for deletion.

b/25165853 is about the "Link" item. And this CL also does the following
things:

1. show toast for deleting 1/multiple contacts from PeopleActivity.
2. show toast when deletion happens in QuickContact and contact editor.

Bug: 25165853
Change-Id: Ia8ecb6b4118ecff3bc3ba50ac98ffadf337db52c
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
28a27279554af7b1e5ff664d3da97954c462a797 20-Sep-2015 Walter Jang <wjang@google.com> Revert moving between the compact and full editors (E5)

We are reverting most of the changes made to fix
b/19624360 in MNC. The reason to do this is to reduce
the massive complexity moving between the two editors
introduced.

Since the compact editor now expands in place, the full
editor will likely only used to view read-only raw
contacts now.

Bug 23589603

Change-Id: Idfcc07d8aae65295d4b3f0a0e3e7f5eb701a46c4
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
7eb9d6f12e91b357c1c5453756a31361f62a52fb 29-Jul-2015 Jay Shrauner <shrauner@google.com> am bd714841: am 36906900: am c05c6597: am 615ed9c5: Check for WRITE_CONTACTS permission

* commit 'bd7148418a8089a795eb321087afe81ed90cbe2f':
Check for WRITE_CONTACTS permission
615ed9c5e89f06a56ed6ad30244a9f6cb495e85c 29-Jul-2015 Jay Shrauner <shrauner@google.com> Check for WRITE_CONTACTS permission

Bug:22801513
Change-Id: I5cd85527423be34a3c8c93f0e234c74dc274e691
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
568bc9a7e7c913fb9254cf042af2385d95f9e27b 27-Jul-2015 Walter Jang <wjang@google.com> am 8485e3c3: am 857df2e9: am 07d1a77c: am 0653de3d: Apply contact join ops before we reach the max batch op threshold

* commit '8485e3c3bc6acf98f4d18ccb30c28eee591a29a1':
Apply contact join ops before we reach the max batch op threshold
0653de3dbac5b4f4a41332f09a2275a96dab4c8e 24-Jul-2015 Walter Jang <wjang@google.com> Apply contact join ops before we reach the max batch op threshold

Splitting the join operations across several batches "could" lead
to some parts of the join being applied and the remaining parts
not applied because of some error.

Our new UX to join more than two contacts also increases the
possibility that the joins take a long time. This is especially
true when a contact involved in the joined is composed of many
raw contacts since the current contact save logic creates an
operation between every pair of raw contacts.

Bug 22480225

Change-Id: Icab836f587808e018bd59909864dfd9de0d53776
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
7631eefa4d37e1466a4e8994130fb75291600d0c 27-May-2015 Walter Jang <wjang@google.com> am 05ba2eca: am 24498d61: Merge "Distinguish between editor back button presses and framework stopage" into mnc-dev

* commit '05ba2eca39c84f55a04e213c25a7417bcb6ab8ec':
Distinguish between editor back button presses and framework stopage
3e76408e47ca135c092b5eee73ae49d8697b0a10 22-May-2015 Walter Jang <wjang@google.com> Distinguish between editor back button presses and framework stopage

We carry whether the editor fragment is being stopped
because of a back button press or because the framework
stopped the hosting Activity all the way through the various
editor fragment callbacks and the ContactSaveService because
it is not until ContactEditorBaseActivity.onSaveFinished
where we start the next Intent -- starting it causes a
"flash" if recents is clicked and follwed by an immediate
starting of the next editor Activity, which is the bug
that was filed.

With this change, we only use the ContactSaveService
resultIntent to go back to the compact editor on back
presses. The expected behavior/tested scenarios are
described at go/b21198041

Bug 21198041
Bug 19624360

Change-Id: Ic350e12aa447cff81747e003f504f25100bd5c60
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
c4698fbe3a5a94de639f91b01c2cb02b61d51331 30-Apr-2015 Jay Shrauner <shrauner@google.com> resolved conflicts for merge of 5f35f34f to mnc-dev-plus-aosp

Change-Id: I817a2ca1a3111fc1b06375e06294f27bddf75cd6
5f35f34f019bba6ff705521b28affbfdb75abd7b 30-Apr-2015 Jay Shrauner <shrauner@google.com> Merge "Pop-up "couldn't save contact changes" while switch ap during change the contact photo."
511561dd8ef9e6cac3c62e138193ef48e6d79760 02-Apr-2015 Jay Shrauner <shrauner@google.com> Fix IllegalStateException in saveContact

Don't throw exception if unable to determine raw contact id for image
insertion.

Bug:20052719
Change-Id: I9654fe0b37ea9245950c1086a64b43dd69a3e137
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
0809978e5d3f87687e1fd986130897deca1f74cd 25-Mar-2015 Jay Shrauner <shrauner@google.com> Fix NPE when EXTRA_CONTACT_STATE not set

Bug:19931085
Change-Id: I679ea5382ed6b1bb1bdd99a5c03d9c7bcb023417
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e320c0bcd539f9426db9b694147e845fe0e2d59d 05-Mar-2015 Jay Shrauner <shrauner@google.com> Check for empty contact lookup keys

Bug:19588470
Change-Id: I1b0b262483a316a0a84a051e2a4225c68523e47e
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
1e8801bc9bc60bdd1c95f582c460590272cfad64 10-Mar-2015 Walter Jang <wjang@google.com> Pass full res contact photos between the compact and full editors

Bug 19624360
Bug 19655206

Change-Id: I590ec7ecec75a9af95b824f5db9cda8f8aeda675
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e986c6b5954f7b9fea58cfb11c86b61d3defa271 06-Mar-2015 Brian Attwell <brianattwell@google.com> Improvements to multi select toasts

Bug: 19549465
Change-Id: Ie42db78d0aa9cc93765337fbb5af794dfb52413f
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
d3946cae17273ed1c2fceb507990882e3f828ba9 03-Mar-2015 Brian Attwell <brianattwell@google.com> Batch join contacts

* Add new action to ContactSaveService to support joining more than
two contacts toghether.
* Add new dialog fragment for the join

Bug: 19549465
Change-Id: Ib0b1d5e7652e429f8e78d81dd3d98d03b3129e1e
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
d2962a3bb669a381d31a586df3b906033a8fa571 02-Mar-2015 Brian Attwell <brianattwell@google.com> Batch deletion

Also: when re-opening the Activity from the launcher, clear the
mIsInSelectionMode variable in memory.

Bug: 19549465
Change-Id: If589983d3d84c9c18066da08f9879c22db1a75ed
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
548f5c658547041feb50cdfbe6f48e900558c00c 28-Jan-2015 Brian Attwell <brianattwell@google.com> Remove use of NAME_VERIFIED. P1/4

Instead use IS_SUPER_PRIMARY to accomplish
approximately the same thing.

Bug: 18777272
Change-Id: Ib13d26a7d575724e2badf231a871f3e6e5ca3efa
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
13f94e1c52f553a7137e6730c09c4d28c3f54c9f 23-Jan-2015 Brian Attwell <brianattwell@google.com> Avoid hidden ContentProviderOperation type

Instead of using hidden ContentProviderOperation fields,
use the accessors I added in ag/616035.

Bug: 18777272
Change-Id: I6be5f325bbf6fbeb7817e9b1f7fa1a1ae2002e0b
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
2d88efaf9efa059c70783acffb6ec3055e1b883b 18-Dec-2014 Brian Attwell <brianattwell@google.com> Don't reference UNDEMOTE_METHOD

Instead use ContactsContract.undemote(), which accomplishes
the exact same thing.

Manual test: star/unstar a contact. Verify the change persists.

Bug: 18777272
Change-Id: Ia92e06190e891e313bca1d4ae24e7aa5e174b552
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3a7cc76a5fdd41af0b8da0e6e27adbba51b73e52 02-Dec-2014 Jay Shrauner <shrauner@google.com> Fix NPE in onHandleIntent

Catch null intents.

Bug:18579403
Change-Id: I4ee3baf97c8767f0b166f122c13f8abab3a75a4f
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
568f4e72711908455ccd20fbb04c1017b10d7e1c 26-Nov-2014 Jay Shrauner <shrauner@google.com> Fix NPE in getInsertedRawContactId

Bug:18532368
Change-Id: I5758ac9c4ce9c95c38b92c0153f7b39bee8e0a98
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
c12a280b496e6a997ab972641fb8e50e1eb8736c 24-Nov-2014 Jay Shrauner <shrauner@google.com> Fix NPE in ContactSaveService

Check for null cursors before accessing.

Bug:18504067
Change-Id: I9945adfd45671d296ad64cd57aa4985a94d18144
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3d7edc3ef4f2521639bae91c93a8238e5a9509c1 10-Nov-2014 Jay Shrauner <shrauner@google.com> Fix ArrayIndexOutOfBoundsException crash

Bug:18305135
Change-Id: I8a562bebb217d278c84662b5057e786e62ce8a3f
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
0a90373fd7d704c6b711e9eadc3a34ae3bcb3127 15-Sep-2014 Yorke Lee <yorkelee@google.com> Remove CallerInfoCache update broadcast intent

Bug: 17499855
Change-Id: I3d7cacf1418d3df21da3abcb7d69bb5441633640
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
de1c78c417fa95e989d7c2ae277d03011b527a57 19-Jun-2014 Yorke Lee <yorkelee@google.com> Follow new PinnedPositions API changes (2/2)

Bug: 15593967

Change-Id: Ie78300e15e4289323be8324daf3f9cfa8056915d
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3b6c628fc9e717a41c2954b1101c3a04ad382c55 13-Feb-2014 Brian Attwell <brianattwell@google.com> Include original exception to ease debugging

Pass the original OperationApplicationException exception
into the thrown exception in order to make the following
Feedback issue easier to debug. This is in case we are
unable to fix this bug by MR2.

Bug: 12996134
Change-Id: Ib26d473574f1c0788d80fef0ceb4ef4748ec11e1
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
57fca1851e5371f259d4dd6bdf322e20c606c975 17-Jan-2014 Jay Shrauner <shrauner@google.com> Fix crash on missing mimetype

Fix so ContactSaveService shows a toast instead of crashing if called
with malformed intent.

Bug:12622453
Change-Id: I0495649574a90eeb1960de65b22f051a1dc78c78
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3a4e7a282867bfe4803940eca40e35094507605b 08-Jan-2014 benny.lin <benny634@gmail.com> Pop-up "couldn't save contact changes" while switch ap during change the contact photo.

Photo file will be deleted while switch ap during change the contact photo. When savemode is close state, photo will be deleted.

Change-Id: I78be2f9bfa5ad6e9543b28b8293ff2240428f242
Signed-off-by: benny.lin <benny634@gmail.com>
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
cd321f65f1e50409812976380ad1f0fdb3fa35cb 28-Oct-2013 Yorke Lee <yorkelee@google.com> Move ContactLoader related code to ContactsCommon

This CL simply moves classes from Contacts into ContactsCommon.

This is needed so that Dialer can use ContactLoader related code
for b/11294679. A ContactLoader will also be needed in the future
to allow InCallUI to download hi-res photos while in call.
Bug: 11294679

Change-Id: Ia033f3ea2406a907a4e71290c9ce810a5583dab8
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
bbb8c99a34061911c800bbd1981b74fb7f5b5a9d 24-Sep-2013 Yorke Lee <yorkelee@google.com> Fix crash when starring the user's profile

Bug: 10897667
Change-Id: I61b11ff7aea0fa7b1b76bdf7c1780a2189070570
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
637a38ec9de6b1f434d7a13105f2e747faae5107 14-Sep-2013 Yorke Lee <yorkelee@google.com> Make contacts photo pickers compatible with new documents UI

The old contacts photo picker code was using unguaranteed behavior
(that Intent.GET_CONTENT would support MediaStore.EXTRA_OUTPUT) and this
caused it to not work anymore with the new document picker.

This CL changes all usages of files to instead use URIs.

Also, a FileProvider has been added to Contacts, to allow us to pass in
URI pointing to our private cache in intent.setClipData with
Intent.FLAG_GRANT_WRITE_URI_PERMISSION and Intent.FLAG_GRANT_READ_URI_PERMISSION
so we no longer have to reply on the MediaStore.EXTRA_OUTPUT being parsed
and supported. The use of the FileProvider also prevents unauthorized access
to temporary files during the caching process.

Bug: 10745342

Change-Id: Iaee3d7d112dd124a2f5596c4b9704ea75d3b3419
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e8e3fb83f3805d0636e5757a4d91db74796518e3 13-Sep-2013 Yorke Lee <yorkelee@google.com> Undemote contact when starring

Bug: 10727765
Change-Id: Icc661cd01f52fbde5ab9354415b5d929165a8bd1
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
7f42b90f870d8df1b12dc90162775ef5f3b31b85 09-Jan-2013 Jay Shrauner <shrauner@google.com> Fix ArrayBounds exception in joinContacts

Fix ArrayBounds exception: detect when there are no RawContacts to join.

Bug:7970480
Change-Id: I2cee8bbb0c712f52bf616a227595d2ec94ec7bdb
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
0d5588da244d0992c3ff8f25d0875fdf95a8c644 27-Nov-2012 Chiao Cheng <chiaocheng@google.com> Move AccountTypeManager to ContactsCommon.

Moving AccountTypeManager to ContactsCommon so it can be shared by Contacts
and Dialer.

Bug: 6993891
Change-Id: I9526ac7cda758290caecabfcaebe620238d8dd6b
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
428f008513d1591cc08fcfe2cf0c9237fb313241 14-Nov-2012 Chiao Cheng <chiaocheng@google.com> Move dependencies of AccountTypeManager into ContactsCommon.

Moving dependencies in preparation to move AccountTypeManager.

Bug: 6993891
Change-Id: I804cdbe64b9b8111ed286037943d593e11dc4044
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
d7ca03e23948c3b2d5f97ec5598d8b50e3fc0b25 25-Oct-2012 Chiao Cheng <chiaocheng@google.com> Move dependencies in prep for PhoneNumberInteraction move.

Committing this change first which is a pre-factor to moving
PhoneNumberInteraction into Dialer completely.

Bug: 6993891
Change-Id: I8a8f2d2d54b1aa8268e8ac9bd7d97d165a3e55c2
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
47b6f70eadb118d815b4aaf5426c070bd75a38fb 08-Sep-2012 Chiao Cheng <chiaocheng@google.com> Refactor RawContact to be parcelable.

- Re-work of RawContact to be a real data container and removed un-necessary
dependencies.
- Removed un-necessary circular dependency between RawContact and DataItem.
- Cleaned up and made DataItem more compartmentalized by removing un-related
account methods.
- Implemented Parcelable for RawContact and NamedDataItem.

Bug: 6406182
Change-Id: Icd84f34d85e1349a86e473708cc7f8fece12349f
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
ebc17929007ecf12f25b8e90023766e8a083d11e 05-May-2012 Josh Gargus <jjosh@google.com> Don't stash cropped photos in /sdcard/DCIM.

Every time we choose a new contact photo (either an existing one from
the gallery or a new one from the camera), we write the cropped image
/sdcard/DCIM. As a result, the cropped image (eventually) appears in
the gallery, is uploaded to G+, etc.

The new behavior is to write the cropped photo to a temp directory,
and to clear it when we're done with it.

Revert some of the changes from Ib7037a66; we still need to persist
properties in onSaveInstanceState() in case ContactEditorFragment is
killed while the user interacts with the camera/gallery.

Bug: 6423139
Change-Id: Icf8cb5b4824e3d8757ff483ef128527ac9132e72
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
2f21c44104f4c1376ef2147c472555f43990af26 23-Mar-2012 Daisuke Miyakawa <dmiyakawa@google.com> Send Intent when CallerInfoCache should be updated

The cache should be updated when:
- custom ringtone is set,
- send-to-voicemail is set,
- a contact is edited and the change is submitted
(discard shouldn't cause cache update)
- contacts are joined, or separated

Bug: 1735194
Change-Id: Icd4fea5fd09cc3adcffc5364705ab40e92f4e6e4
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
18958a29b3eddb6fc42cf651ec0eed27103f534d 29-Feb-2012 Daniel Lehmann <lehmannd@google.com> Replaced HashMaps with LongSparseArray

- Also fixed a compiler warning in SuggestedMemberListAdapter
- Fixed two hints in ContactSaveService

Change-Id: Ia1d8ad7efba5f54f94c762a779f7b228e79ca978
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
c42ea4eca298419484444a57bfc2da2c83e7adb7 17-Feb-2012 Daniel Lehmann <lehmannd@google.com> Use pushed-state on "star"

On phone layouts, it is now a proper actionbar button (not custom anymore)
On tablet layouts, it is now an ImageView, so that we can center the icon

Bug:6008899

Change-Id: Ida56f959d129480e799fa8a4c477272e4de70eac
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
ef15c8e4a1093ac9d6bb0e9aed10a130e8e79be5 31-Jan-2012 Josh Gargus <jjosh@google.com> Fix failure to save a new contact with a photo.

When saving a new contact, we don't know the raw-contact id and
therefore use a "random" negative number. If the new contact has a
photo, we attempt to save it at a bogus path generated from this id.

This manifests as a NullPointerException due to a bug in our
exception-handling code. However, fixing this bug isn't enough
because we still need the photo to save properly.

To achieve this, we check for a negative raw-contact id before saving
the photo. If we detect one, we replace it with the newly-generated
id that we just obtained when we first saved the raw-contact.

Bug: 5937734
Change-Id: Icba2be0e21885fcb418ea9c8c12ebc9820f33bfd
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
e692e010ca02200087997280e7c239ebf94aa8f9 18-Jan-2012 Josh Gargus <jjosh@google.com> Support for high-resolution contact photos.

Rather than getting a bitmap directly from the gallery app, with
this change we create a temporary file and request that the photo
be stored there. This avoids running into bundle size limits when
passing large, uncompressed bitmaps back from the gallery.

After reading the photo out into the Contacts app, we use the
openAssetFile API to stream the large photo data into the
Contacts Provider. Note that we do this rather than having Gallery
write directly to the provider because we have no guarantee that
the Gallery (or substitute) app has WRITE_CONTACTS permission.

In the Contact Editor, the image is not permanently stored until
the contact is saved. This avoids needing special logic to handle
the case where the contact is newly-created.

Fix bug 5907233 en passant... the vestiges of some partially-
expunged code were causing the ContentEditorFragment to not
apply a selected photo.

Bug: 5786849
Bug: 5907233
Change-Id: Ic0cabaa50c08d6a9a0b730698c92f4092192438a
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
36d24d7ede42a252c82c4aa783b2231c5e2eea79 26-Sep-2011 Dave Santoro <dsantoro@google.com> Avoid showing error if contact removed on save.

Because removing all data from a local contact can actually cause
the raw contact and contact to be deleted, we need to track that
case so that the caller does not consider the lack of a lookup
URI to be an error.

Also made "Me" header all-caps for no-profile case.

Bug 5346614
Bug 5354364

Change-Id: If1e1d67da9c14eb8782be05b2e39ece19b5ac026
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
162b7e34fb581d0fa279957af5136d190c40759f 21-Sep-2011 Erik <epastern@google.com> b/5317367 Check if cursor is empty before reading

Change-Id: I09f07eda5b0d1eaf20eae9e210eabb6e90612810
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
7c34c0a46434b2669b0fdba2c9e0e4cce5675f94 12-Sep-2011 Dave Santoro <dsantoro@google.com> Handle removal of local raw contact in profiles.

Bug 5284316

Change-Id: I40160543af3cb717791ee8109f0cbf5d06327111
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
c90f95e63684363d10ffe5ef8f08f2159fb5bfc0 08-Sep-2011 Dave Santoro <dsantoro@google.com> Fix re-parenting for modifications to the profile.

Bug 5274218

Change-Id: Icbeed88032dcdab643aaa85216fb4363473cc80b
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
a831c0b539cdc120655856074d4621e8e60a843b 13-Aug-2011 Hugo Hudson <hugohudson@google.com> Use CopyOnWriteArrayList for listeners.

- We were previously using a list of Listener objects, specifically a
LinkedList, and synchronizing on the list to maintain thread-safety.
- This cl replaces the LinkedList with a CopyOnWriteArrayList, which is
specifically made for this kind of situation.

A bit more background:
- During the notify period, we had the classic anti-pattern of holding
the lock whilst calling foreign methods (the listener
onServiceCompleted methods).
- It's very evil to call foreign methods with a lock held, since this
can easily lead to deadlock. In this case, if any of our Listener
implementations or any future Listener implementations yet to be
written were to block until some other thread registers or unregisters
a listener, we will have deadlock.
- CopyOnWriteArrayList needs no explicit synchronization - see its
javadoc.

Change-Id: If2251e740a9f266e28956ac5acc52054debb3461
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
683b57e1fbf27c81c9973de814fc8bb1852e6df8 21-Jul-2011 Isaac Katzenelson <isaack@android.com> Options Menu layout changes

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

Bug: 5062002

Change-Id: Ic52eaacdc5d9b5aab55fde37181c6ad6d7154b74
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
717e343811088da922cd84fb0d196de85fba7fe9 14-Jul-2011 Katherine Kuan <katherinekuan@google.com> Add members when creating new group

- Enable adding new members at group creation time
- Modify the existing createNewGroup methods in
ContactSaveService to take an array of raw contact IDs
- Note: adding the contact to the group must be
done with applyBatch instead of a single insert
to the data table because otherwise the raw contact
version will not increase

Change-Id: I474758110840b8cad144e6c1b90d09558a7e9478
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
2d851cc895ffc7afd322298c7d4391ca5bea1a2d 06-Jul-2011 Katherine Kuan <katherinekuan@google.com> Batch add and remove group members in group editor

- Create save intent in ContactSaveService to update
the group name, add a list of new members, and remove
a list of existing members

- Add raw contact ID column to GroupMemberLoader so that
the raw contact IDs can be used in ContactSaveService

- Remove old code that would do the database save one at a
time for each contact member when the action was taken
(and remove the step that would load the full contact because
we now only need the raw contact ID)

- TODO: General cleanup to just use raw contact IDs everywhere
and have one Member class (get rid of SuggestedMember)

- TODO: Allow users to add contacts for new groups (still
can only change the name), but this should be straightforward
after this change

Bug: 4961845
Change-Id: I8a2f1086feecbb63dc6eb3d1e985bccabe28b803
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.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
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
c6b8afe730255537978f2c938cca6986cae63c34 23-Jun-2011 Katherine Kuan <katherinekuan@google.com> Group editor on tablet

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

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

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

- TODO: Add member status message and chat presence

- TODO: Add UI for non-editable groups

Change-Id: I1f32a28862c358b8bd1469666743cd240d28f80b
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
3a6a905a39e6cbb3b2dc99835cdf28c84437691a 02-Mar-2011 Dmitri Plotnikov <dplotnikov@google.com> Fixing callback delivery for ContactSaveService

Bug: 3500229
Change-Id: Ia50aa5878344f182e33141ba891c3dea56a170ec
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
a011414b12955a91c8f3efe528f374654d930098 15-Feb-2011 Dmitri Plotnikov <dplotnikov@google.com> Moving contact saving to the service

Bug: 3220304
Bug: 3452739
Change-Id: If4124096a24e5dd302feb5338efaaa8398b2cb6b
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
886d3d6de4a6f7202b1871f5af9944e8650413df 03-Jan-2011 Dmitri Plotnikov <dplotnikov@google.com> Showing toast on the UI thread.

Apparently, it's not a good idea to kick off a toast from
a background thread.

Bug: 3308302
Change-Id: Ifbd3268ec06c9ebbfec14ff5cbea09ffda9e6bac
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java
18ffaa2561cc7dd2e3ef81737e6537931c0a9a11 03-Dec-2010 Dmitri Plotnikov <dplotnikov@google.com> Renaming a couple of packages

Change-Id: I2c0f86b51baa622df629206f8b79ef1d0df09119
/packages/apps/Contacts/src/com/android/contacts/ContactSaveService.java