/android/import-contacts

To get this branch, use:
bzr branch http://bzr.ed.am/android/import-contacts

« back to all changes in this revision

Viewing changes to TODO

  • Committer: edam
  • Date: 2012-12-19 17:50:33 UTC
  • Revision ID: tim@ed.am-20121219175033-61acsxzjulqpnian
made contacts backend throw exceptions when it can't create contacts on the device; specified Locale in lower/upper case conversions; stripped old Contacts types from Importer (and replaced with our own types, which are now converted in the backend; switched using Integer() constructors to Integer.valueOf(); rewrote the main importer routine a bit

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
* VcardImporter.Vcard.finaliseParsing() should be renamed to finalise() to
2
 
        override Importer.ContactData.finalise(), if Java will permit us to do that
3
 
        (fnaliseParsing() throws stuff that finalise() doesn't), and should call
4
 
        super.finalise().
5
 
* rename Importer.isImportRequired() to checkForDuplicate() and make it private.
6
 
        This should be called from Importer.importContact(), which should then call
7
 
        skipContact() to update the UI and return if checkForDuplicate() returns
8
 
        false.
9
 
* ContactData.finalise should create a ContactsCache.CacheIdentifier and throw
10
 
        ContactCannotBeIdentifiedException() if that fails, which can be picked up
11
 
        in Vcard.finalise(). Importer.importContact() and the renamed
12
 
        Importer.checkForDuplicates() should use the ContactData's CacheIdentifier
13
 
        and not create their own. This will also ensure that ContactData.finalise()
14
 
        has been correctly called (or the identifier would be null).
15
 
* import a crap-load of contacts before release!
 
1
IMMEDIATE (for next release)
 
2
 
 
3
* re-import all the test data, having added a TEL to one of the contacts,
 
4
        merging dupes, so we can test merging with cached contacts
 
5
* add support for arbitrary notes in vCards
 
6
* add ContactsContract backend
 
7
        ? enumerate different account name/type combos and assign them an id
 
8
        ? with each cached contact, store the account that it comes from
 
9
        ? change contactscache to store names as "associated" data
 
10
        ? change contacts cache so that names, organisations, primary phones and
 
11
                emails map to an array of ids (ContactsContract can store multiple
 
12
                contacts with the same identifying detail, the old backend can't)
 
13
        ? add selection of account to create contacts in
 
14
 
 
15
FUTURE
 
16
 
 
17
* add a logfile facility
 
18
* add facility to enter a group name, that any imported contacts are added to
16
19
* change some public final static ints, that aren't really consts, in to enums
17
 
* create a back-end object to read/write to android. This can be overridden to
18
 
        use the new ContractsContacts API.
19
20
* add warnings when email addresses, phone numbers, etc, fail sanitisation (and
20
 
        are ignored) during the import
 
21
        are ignored) during the import (see TODO comments in the code)
21
22
* add base64 decoding to support (even if to ignore) vcards with image data
22
23
* possible bug: when displaying "aborting import" toaster, make sure the back
23
24
        button is enabled and the abort button is hidden (as if abort were pressed)
24
25
        since this can happen if, say, the alarm goes off.
25
26
* add facility to be asked whether to import all contacts, not just those that
26
27
        are duplicates.
27
 
* in the long term, we need to save/restore state from doit/importer
 
28
* add facility to import a duplicate contact as a new contact
 
29
        - is this possible? can you have two contacts with the same name in Android?
 
30
        - how would future duplicate merging be handled? you'd have to select which
 
31
                one you wanted to merge in to!
 
32
* in the long term, we probably need to save/restore state from doit/importer
 
33
        and stop preventing screen rotation on some activities