Loading res/layout/call_log_list_item_actions.xml +5 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,11 @@ </LinearLayout> <ViewStub android:id="@+id/spam_actions_container" android:layout_width="match_parent" android:layout_height="wrap_content"/> <LinearLayout android:id="@+id/details_action" style="@style/CallLogActionStyle"> Loading src/com/android/dialer/calllog/CallLogListItemViewHolder.java +31 −1 Original line number Diff line number Diff line Loading @@ -55,10 +55,16 @@ import com.android.dialer.filterednumber.BlockNumberDialogFragment; import com.android.dialer.filterednumber.FilteredNumbersUtil; import com.android.dialer.logging.Logger; import com.android.dialer.logging.ScreenEvent; import com.android.dialer.service.SpamButtonRenderer; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.PhoneNumberUtil; import com.android.dialer.voicemail.VoicemailPlaybackLayout; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; import com.android.dialerbind.ObjectFactory; import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.List; /** * This is an object containing references to views contained by the call log list item. This Loading Loading @@ -199,6 +205,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder private final int mPhotoSize; private ViewStub mSpamViewStub; private SpamButtonRenderer mSpamButtonRenderer; private View.OnClickListener mExpandCollapseListener; private boolean mVoicemailPrimaryActionButtonClicked; Loading Loading @@ -403,6 +412,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder callWithNoteButtonView = actionsView.findViewById(R.id.call_with_note_action); callWithNoteButtonView.setOnClickListener(this); mSpamViewStub = (ViewStub) actionsView.findViewById(R.id.spam_actions_container); mSpamButtonRenderer = ObjectFactory.newSpamButtonRenderer(mContext, mSpamViewStub); } bindActionButtons(); Loading Loading @@ -532,6 +544,24 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mCallLogCache.isVoicemailNumber(accountHandle, number); callWithNoteButtonView.setVisibility( supportsCallSubject && !isVoicemailNumber ? View.VISIBLE : View.GONE); if(mSpamButtonRenderer != null){ List<View> completeLogListItems = Lists.newArrayList( createNewContactButtonView, addToExistingContactButtonView, sendMessageView, callButtonView, callWithNoteButtonView, detailsButtonView, voicemailPlaybackView); List<View> blockedNumberVisibleViews = new ArrayList<>(); List<View> spamNumberVisibleViews = Lists.newArrayList(detailsButtonView); mSpamButtonRenderer.setCompleteListItemViews(completeLogListItems); mSpamButtonRenderer.setFilteredNumberViews(blockedNumberVisibleViews); mSpamButtonRenderer.setSpamFilteredViews(spamNumberVisibleViews); mSpamButtonRenderer.render(number, countryIso); } } /** Loading src/com/android/dialer/service/SpamButtonRenderer.java 0 → 100644 +23 −0 Original line number Diff line number Diff line package com.android.dialer.service; import android.view.View; import java.util.List; /** * Interface responsible for rendering spam buttons. */ public interface SpamButtonRenderer { /** * Renders buttons for a phone number. */ void render(String number, String countryIso); void setCompleteListItemViews(List<View> views); void setSpamFilteredViews(List<View> views); void setFilteredNumberViews(List<View> views); } src/com/android/dialerbind/ObjectFactory.java +10 −0 Original line number Diff line number Diff line Loading @@ -19,12 +19,16 @@ package com.android.dialerbind; import static com.android.dialer.calllog.CallLogAdapter.CallFetcher; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; import com.android.dialer.calllog.CallLogAdapter; import com.android.dialer.calllog.ContactInfoHelper; import com.android.dialer.list.RegularSearchFragment; import com.android.dialer.logging.Logger; import com.android.dialer.service.CachedNumberLookupService; import com.android.dialer.service.SpamButtonRenderer; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; /** Loading @@ -41,6 +45,12 @@ public class ObjectFactory { return "com.android.dialer.database.filterednumberprovider"; } public static SpamButtonRenderer newSpamButtonRenderer( Context context, ViewStub stub) { return null; } /** * Create a new instance of the call log adapter. * @param context The context to use. Loading Loading
res/layout/call_log_list_item_actions.xml +5 −0 Original line number Diff line number Diff line Loading @@ -129,6 +129,11 @@ </LinearLayout> <ViewStub android:id="@+id/spam_actions_container" android:layout_width="match_parent" android:layout_height="wrap_content"/> <LinearLayout android:id="@+id/details_action" style="@style/CallLogActionStyle"> Loading
src/com/android/dialer/calllog/CallLogListItemViewHolder.java +31 −1 Original line number Diff line number Diff line Loading @@ -55,10 +55,16 @@ import com.android.dialer.filterednumber.BlockNumberDialogFragment; import com.android.dialer.filterednumber.FilteredNumbersUtil; import com.android.dialer.logging.Logger; import com.android.dialer.logging.ScreenEvent; import com.android.dialer.service.SpamButtonRenderer; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.PhoneNumberUtil; import com.android.dialer.voicemail.VoicemailPlaybackLayout; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; import com.android.dialerbind.ObjectFactory; import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.List; /** * This is an object containing references to views contained by the call log list item. This Loading Loading @@ -199,6 +205,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder private final int mPhotoSize; private ViewStub mSpamViewStub; private SpamButtonRenderer mSpamButtonRenderer; private View.OnClickListener mExpandCollapseListener; private boolean mVoicemailPrimaryActionButtonClicked; Loading Loading @@ -403,6 +412,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder callWithNoteButtonView = actionsView.findViewById(R.id.call_with_note_action); callWithNoteButtonView.setOnClickListener(this); mSpamViewStub = (ViewStub) actionsView.findViewById(R.id.spam_actions_container); mSpamButtonRenderer = ObjectFactory.newSpamButtonRenderer(mContext, mSpamViewStub); } bindActionButtons(); Loading Loading @@ -532,6 +544,24 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder mCallLogCache.isVoicemailNumber(accountHandle, number); callWithNoteButtonView.setVisibility( supportsCallSubject && !isVoicemailNumber ? View.VISIBLE : View.GONE); if(mSpamButtonRenderer != null){ List<View> completeLogListItems = Lists.newArrayList( createNewContactButtonView, addToExistingContactButtonView, sendMessageView, callButtonView, callWithNoteButtonView, detailsButtonView, voicemailPlaybackView); List<View> blockedNumberVisibleViews = new ArrayList<>(); List<View> spamNumberVisibleViews = Lists.newArrayList(detailsButtonView); mSpamButtonRenderer.setCompleteListItemViews(completeLogListItems); mSpamButtonRenderer.setFilteredNumberViews(blockedNumberVisibleViews); mSpamButtonRenderer.setSpamFilteredViews(spamNumberVisibleViews); mSpamButtonRenderer.render(number, countryIso); } } /** Loading
src/com/android/dialer/service/SpamButtonRenderer.java 0 → 100644 +23 −0 Original line number Diff line number Diff line package com.android.dialer.service; import android.view.View; import java.util.List; /** * Interface responsible for rendering spam buttons. */ public interface SpamButtonRenderer { /** * Renders buttons for a phone number. */ void render(String number, String countryIso); void setCompleteListItemViews(List<View> views); void setSpamFilteredViews(List<View> views); void setFilteredNumberViews(List<View> views); }
src/com/android/dialerbind/ObjectFactory.java +10 −0 Original line number Diff line number Diff line Loading @@ -19,12 +19,16 @@ package com.android.dialerbind; import static com.android.dialer.calllog.CallLogAdapter.CallFetcher; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; import com.android.dialer.calllog.CallLogAdapter; import com.android.dialer.calllog.ContactInfoHelper; import com.android.dialer.list.RegularSearchFragment; import com.android.dialer.logging.Logger; import com.android.dialer.service.CachedNumberLookupService; import com.android.dialer.service.SpamButtonRenderer; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; /** Loading @@ -41,6 +45,12 @@ public class ObjectFactory { return "com.android.dialer.database.filterednumberprovider"; } public static SpamButtonRenderer newSpamButtonRenderer( Context context, ViewStub stub) { return null; } /** * Create a new instance of the call log adapter. * @param context The context to use. Loading