From 2f95ddbda20c8271ed9a2469e36b1cc8e3184c82 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 26 Apr 2017 13:28:27 +0100 Subject: [PATCH] Import: Fix address book import. The import code assumed there can be only one address book, and that it's the main one. This commit fixes that wrong assumption. --- .../etesync/syncadapter/ui/importlocal/ImportFragment.java | 4 ++-- .../ui/importlocal/LocalContactImportFragment.java | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.java b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.java index c52f9f70..0ca5e770 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/ImportFragment.java @@ -307,7 +307,7 @@ public class ImportFragment extends DialogFragment { finishParsingFile(contacts.length); ContentProviderClient provider = getContext().getContentResolver().acquireContentProviderClient(ContactsContract.RawContacts.CONTENT_URI); - LocalAddressBook localAddressBook = new LocalAddressBook(getContext(), account, provider); + LocalAddressBook localAddressBook = LocalAddressBook.findByUid(getContext(), provider, account, info.uid); for (Contact contact : contacts) { try { @@ -332,7 +332,7 @@ public class ImportFragment extends DialogFragment { } catch (FileNotFoundException e) { result.e = e; return result; - } catch (InvalidCalendarException | IOException e) { + } catch (InvalidCalendarException | IOException | ContactsStorageException e) { result.e = e; return result; } diff --git a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.java b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.java index 74332951..487a19e6 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/importlocal/LocalContactImportFragment.java @@ -152,8 +152,9 @@ public class LocalContactImportFragment extends Fragment { private ResultFragment.ImportResult importContacts(LocalAddressBook localAddressBook) { ResultFragment.ImportResult result = new ResultFragment.ImportResult(); try { - LocalAddressBook addressBook = new LocalAddressBook(getContext(), account, - getContext().getContentResolver().acquireContentProviderClient(ContactsContract.RawContacts.CONTENT_URI)); + LocalAddressBook addressBook = LocalAddressBook.findByUid(getContext(), + getContext().getContentResolver().acquireContentProviderClient(ContactsContract.RawContacts.CONTENT_URI), + account, info.uid); LocalContact[] localContacts = localAddressBook.getAll(); int total = localContacts.length; progressDialog.setMax(total);