Update dynamic shortcuts to match speed dial pinned positions.
6. App shortcut list should refresh when changes are made to
favorites, does not do so currently.
Bug: 79873008
Test: manual
PiperOrigin-RevId: 197073422
Change-Id: Ia72bdfab39a11daf8811cb122e819964ec37594f
diff --git a/java/com/android/dialer/shortcuts/ShortcutRefresher.java b/java/com/android/dialer/shortcuts/ShortcutRefresher.java
index 3201d59..7776aa9 100644
--- a/java/com/android/dialer/shortcuts/ShortcutRefresher.java
+++ b/java/com/android/dialer/shortcuts/ShortcutRefresher.java
@@ -25,6 +25,7 @@
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.concurrent.DialerExecutor.Worker;
import com.android.dialer.common.concurrent.DialerExecutorComponent;
+import com.android.dialer.speeddial.loader.SpeedDialUiItem;
import java.util.ArrayList;
import java.util.List;
@@ -52,6 +53,20 @@
.executeSerial(new ArrayList<>(contacts));
}
+ public static List<ContactEntry> speedDialUiItemsToContactEntries(List<SpeedDialUiItem> items) {
+ List<ContactEntry> contactEntries = new ArrayList<>();
+ for (SpeedDialUiItem item : items) {
+ ContactEntry entry = new ContactEntry();
+ entry.id = item.contactId();
+ entry.lookupKey = item.lookupKey();
+ // SpeedDialUiItem name's are already configured for alternative display orders, so we don't
+ // need to account for them in these entries.
+ entry.namePrimary = item.name();
+ contactEntries.add(entry);
+ }
+ return contactEntries;
+ }
+
private static final class RefreshWorker implements Worker<List<ContactEntry>, Void> {
private final Context context;
diff --git a/java/com/android/dialer/speeddial/SpeedDialFragment.java b/java/com/android/dialer/speeddial/SpeedDialFragment.java
index a645fb8..c48eb8d 100644
--- a/java/com/android/dialer/speeddial/SpeedDialFragment.java
+++ b/java/com/android/dialer/speeddial/SpeedDialFragment.java
@@ -56,6 +56,7 @@
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.precall.PreCall;
+import com.android.dialer.shortcuts.ShortcutRefresher;
import com.android.dialer.speeddial.ContextMenu.ContextMenuItemListener;
import com.android.dialer.speeddial.FavoritesViewHolder.FavoriteContactsListener;
import com.android.dialer.speeddial.HeaderViewHolder.SpeedDialHeaderListener;
@@ -209,6 +210,9 @@
}),
new DefaultFutureCallback<>(),
DialerExecutorComponent.get(getContext()).backgroundExecutor());
+ ShortcutRefresher.refresh(
+ getContext(),
+ ShortcutRefresher.speedDialUiItemsToContactEntries(adapter.getSpeedDialUiItems()));
}
@Override