From a73844d34e1fa90184bf8ecf9fa672e8dcfa4648 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Sat, 28 Apr 2018 23:34:05 -0700 Subject: Implement "Add to favorites" option in suggestions menu. Bug: 77761183 Test: SpeedDialIntegrationTest PiperOrigin-RevId: 194687428 Change-Id: Ib542122c1ff3104fcb4c08cb7bcbb7f1deb20d76 --- .../dialer/speeddial/SpeedDialFragment.java | 37 +++++++++++++++++++++- .../dialer/speeddial/res/values/strings.xml | 3 ++ 2 files changed, 39 insertions(+), 1 deletion(-) (limited to 'java/com/android/dialer/speeddial') diff --git a/java/com/android/dialer/speeddial/SpeedDialFragment.java b/java/com/android/dialer/speeddial/SpeedDialFragment.java index 97a5facab..17591aa6c 100644 --- a/java/com/android/dialer/speeddial/SpeedDialFragment.java +++ b/java/com/android/dialer/speeddial/SpeedDialFragment.java @@ -350,7 +350,7 @@ public class SpeedDialFragment extends Fragment { modules.add(new DividerModule()); - // TODO(calderwoodra): add to favorites module + modules.add(new StarContactModule(speedDialUiItem)); // TODO(calderwoodra): remove from strequent module // Contact info module @@ -384,6 +384,41 @@ public class SpeedDialFragment extends Fragment { .setIsVideoCall(channel.isVideoTechnology())); } + private final class StarContactModule implements HistoryItemActionModule { + + private final SpeedDialUiItem speedDialUiItem; + + StarContactModule(SpeedDialUiItem speedDialUiItem) { + this.speedDialUiItem = speedDialUiItem; + } + + @Override + public int getStringId() { + return R.string.suggested_contact_bottom_sheet_add_favorite_option; + } + + @Override + public int getDrawableId() { + return R.drawable.context_menu_contact_icon; + } + + @Override + public boolean onClick() { + speedDialLoaderListener.listen( + getContext(), + UiItemLoaderComponent.get(getContext()) + .speedDialUiItemMutator() + .starContact( + Uri.withAppendedPath( + Phone.CONTENT_FILTER_URI, speedDialUiItem.defaultChannel().number())), + SpeedDialFragment.this::onSpeedDialUiItemListLoaded, + throwable -> { + throw new RuntimeException(throwable); + }); + return true; + } + } + private final class ContactInfoModule extends IntentModule { public ContactInfoModule(Context context, Intent intent, int text, int image) { diff --git a/java/com/android/dialer/speeddial/res/values/strings.xml b/java/com/android/dialer/speeddial/res/values/strings.xml index 59a0ab5d6..028f6a90c 100644 --- a/java/com/android/dialer/speeddial/res/values/strings.xml +++ b/java/com/android/dialer/speeddial/res/values/strings.xml @@ -55,4 +55,7 @@ Contact info + + + Add to favorites \ No newline at end of file -- cgit v1.2.3