/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 src/org/waxworlds/importcontacts/Importer.java

  • Committer: edam
  • Date: 2009-01-13 06:35:26 UTC
  • Revision ID: edam@waxworlds.org-20090113063526-l9t1s9git4bav60a
- new contact's phone numebrs and email addresses are added to the caches after those contacts are updated to account for the situation where the same contact is imported again from another file (or the contact exists twice in the same file!?)

Show diffs side-by-side

added added

removed removed

465
465
                Long contactId = ContentUris.parseId( contactUri );
466
466
                Uri contactPhonesUri = Uri.withAppendedPath( contactUri,
467
467
                                Contacts.People.Phones.CONTENT_DIRECTORY );
468
 
 
469
 
                // add phone numbers
470
468
                Set phonesKeys = phones.keySet();
 
469
 
 
470
                // add phone numbers
471
471
                Iterator i = phonesKeys.iterator();
472
472
                while( i.hasNext() ) {
473
473
                        ContactData.PhoneData phone = phones.get( i.next() );
491
491
                        if( phone._isPreferred ) values.put( Contacts.Phones.ISPRIMARY, 1 );
492
492
                        _doit.getContentResolver().insert( contactPhonesUri, values );
493
493
                }
 
494
 
 
495
                // now add those phone numbers to the cache to prevent the addition of
 
496
                // duplicate data from another file
 
497
                i = phonesKeys.iterator();
 
498
                while( i.hasNext() ) {
 
499
                        ContactData.PhoneData phone = phones.get( i.next() );
 
500
 
 
501
                        String number = sanitisePhoneNumber( phone._number );
 
502
                        if( number != null ) {
 
503
                                HashSet< String > numbers = _contactNumbers.get( contactId );
 
504
                                if( numbers == null ) {
 
505
                                        _contactNumbers.put( contactId, new HashSet< String >() );
 
506
                                        numbers = _contactNumbers.get( contactId );
 
507
                                }
 
508
                                numbers.add( number );
 
509
                        }
 
510
                }
494
511
        }
495
512
 
496
513
        private void importContactEmails( Uri contactUri,
499
516
                Long contactId = ContentUris.parseId( contactUri );
500
517
                Uri contactContactMethodsUri = Uri.withAppendedPath( contactUri,
501
518
                                Contacts.People.ContactMethods.CONTENT_DIRECTORY );
502
 
 
503
 
                // add phone numbers
504
519
                Set emailsKeys = emails.keySet();
 
520
 
 
521
                // add email addresses
505
522
                Iterator i = emailsKeys.iterator();
506
523
                while( i.hasNext() ) {
507
524
                        ContactData.EmailData email = emails.get( i.next() );
523
540
                        _doit.getContentResolver().insert( contactContactMethodsUri,
524
541
                                        values );
525
542
                }
 
543
 
 
544
                // now add those email addresses to the cache to prevent the addition of
 
545
                // duplicate data from another file
 
546
                i = emailsKeys.iterator();
 
547
                while( i.hasNext() ) {
 
548
                        ContactData.EmailData email = emails.get( i.next() );
 
549
 
 
550
                        String address = sanitiseEmailAddress( email.getAddress() );
 
551
                        if( address != null ) {
 
552
                                HashSet< String > addresses = _contactEmails.get( contactId );
 
553
                                if( addresses == null ) {
 
554
                                        _contactEmails.put( contactId, new HashSet< String >() );
 
555
                                        addresses = _contactEmails.get( contactId );
 
556
                                }
 
557
                                addresses.add( address );
 
558
                        }
 
559
                }
526
560
        }
527
561
 
528
562
        synchronized protected void checkAbort() throws AbortImportException