summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2018-04-09 14:47:58 -0700
committerCopybara-Service <copybara-piper@google.com>2018-04-09 14:50:18 -0700
commit178b452d6ade018ebb7f2209ccc8233d4fa8acaa (patch)
tree4a65b25503a7a64ae7778e70167f7f3b394f29c9 /java/com/android/dialer/speeddial/SpeedDialUiItemLoader.java
parent42099014f33bd5285be779689a581b6000a3e96b (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.java17
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);
}