Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 60b2d299 authored by calderwoodra's avatar calderwoodra Committed by Copybara-Service
Browse files

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
parent 47d9f4fb
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.dialer.common.Assert;
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 @@ public final class ShortcutRefresher {
        .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;

+4 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ import com.android.dialer.historyitemactions.IntentModule;
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 @@ public class SpeedDialFragment extends Fragment {
                }),
        new DefaultFutureCallback<>(),
        DialerExecutorComponent.get(getContext()).backgroundExecutor());
    ShortcutRefresher.refresh(
        getContext(),
        ShortcutRefresher.speedDialUiItemsToContactEntries(adapter.getSpeedDialUiItems()));
  }

  @Override