diff options
author | calderwoodra <calderwoodra@google.com> | 2018-04-09 14:47:58 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-09 14:50:18 -0700 |
commit | 178b452d6ade018ebb7f2209ccc8233d4fa8acaa (patch) | |
tree | 4a65b25503a7a64ae7778e70167f7f3b394f29c9 /java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java | |
parent | 42099014f33bd5285be779689a581b6000a3e96b (diff) |
Autogenerate IDs for inserts and consolidate loader into one transaction.
Bug: 36841782,77724716,77725859
Test: implemented
PiperOrigin-RevId: 192191296
Change-Id: I7a22367b33c7555d014a29a2af2942f2eb76c0a5
Diffstat (limited to 'java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java')
-rw-r--r-- | java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java b/java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java index 257c74f58..13e5f8744 100644 --- a/java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java +++ b/java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java @@ -97,15 +97,9 @@ public final class SpeedDialUiItemLoader { List<SpeedDialEntry> entriesToUpdate = new ArrayList<>(); List<Long> entriesToDelete = new ArrayList<>(); - // Track the highest entry ID - // TODO(a bug): use auto-generated IDs - long maxId = 0L; - // Get all SpeedDialEntries and mark them to be updated or deleted List<SpeedDialEntry> entries = db.getAllEntries(); for (SpeedDialEntry entry : entries) { - maxId = Math.max(entry.id(), maxId); - SpeedDialUiItem contact = getSpeedDialContact(entry); // Remove contacts that no longer exist or are no longer starred if (contact == null || !contact.isStarred()) { @@ -138,11 +132,8 @@ public final class SpeedDialUiItemLoader { speedDialUiItems.add(contact); } else if (speedDialUiItems.stream().noneMatch(c -> c.contactId() == contact.contactId())) { - // Increment the ID so there aren't any collisions - maxId += 1; entriesToInsert.add( SpeedDialEntry.builder() - .setId(maxId) .setLookupKey(contact.lookupKey()) .setContactId(contact.contactId()) .setDefaultChannel(contact.defaultChannel()) @@ -153,10 +144,10 @@ public final class SpeedDialUiItemLoader { } } - // TODO(a bug): use a single db transaction - db.delete(entriesToDelete); - db.update(entriesToUpdate); - db.insert(entriesToInsert); + db.insertUpdateAndDelete( + ImmutableList.copyOf(entriesToInsert), + ImmutableList.copyOf(entriesToUpdate), + ImmutableList.copyOf(entriesToDelete)); return ImmutableList.copyOf(speedDialUiItems); } |