Allow contact insertion without account being specified, when default
account is not set. Contact insertion in this situation will continue to be
stored in the local account.

Bug: 370546019
Test: unit test and CTS test
Flag: android.provider.new_default_account_api_enabled

Contacts insertion without acccount being specified, historically stores
the contact in the local account. In Android B, while it is strongly discouraged to
insert contact without account being sepcified, CP2 should not forbid
this, or otherwise it might break the apps which already operates in this mode.

	modified:   src/com/android/providers/contacts/AccountResolver.java
	modified:   tests/src/com/android/providers/contacts/AccountResolverTest.java

Change-Id: I4a054ec21567b4c1dc0005e4ce1132c4d8e18bb2
2 files changed
tree: c282dc4acfbc8169ab0d4ae277596ce9b4c7e814
  1. qc/
  2. res/
  3. src/
  4. test_common/
  5. tests/
  6. tools/
  7. Android.bp
  8. AndroidManifest.xml
  9. CleanSpec.mk
  10. contactsprovider_flags.aconfig
  11. contactsproviderutils.sh
  12. logging.sh
  13. OWNERS
  14. PREUPLOAD.cfg
  15. proguard.flags
  16. README-tests.md
  17. README.md
  18. TEST_MAPPING
README.md

Debugging Tools

Enable all verbose logs

Running ./logging.sh will enable all verbose logs for the queries in the provider. More details in the script itself.

Querying the database

There are 2 different ways to easily query the database, qc and contatcsproviderutils.sh.

QC usage

qc queries the deivce directly. For usage, append the query in single quotes after the command:

e.g.

qc/qc 'select * from raw_contacts'

or to get all the tables

qc/qc '.tables'

QC support SQLite language, but it might have some limitations working with complex nested queries.

contactsproviderutils.sh usage

This script downlaods the database locally and logins into a local version. It is also possible to push any change back to the device.

  • Add tools to path
    source contactsproviderutils.sh
    
  • Pull contacts2.db and query:
    sqlite3-pull
    
    This will open a sql terminal with rlwrap which can be easily used for queries.
  • Pull contacts2.db and query with a graphical interface:
    sqlitebrowser-pull
    
  • Push local updates to the device:
    sqlite3-push