diff options
author | Gilles Franck Mevaa <gillesd@google.com> | 2016-01-19 23:03:36 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-01-19 23:03:36 +0000 |
commit | e9fd1cf0e3dde7b0f5f25dc195a25fb83b22c0de (patch) | |
tree | 13508cbadacd91941582bb155b0b24c31344e154 /src | |
parent | 637a013d366fd9300fa7a9efb5024ac592bca537 (diff) | |
parent | ebd3643240df89e0e9e3bb649ae7bd16cae912db (diff) |
Merge "New Spam-related options in call log entries." into ub-contactsdialer-b-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogListItemViewHolder.java | 32 | ||||
-rw-r--r-- | src/com/android/dialer/service/SpamButtonRenderer.java | 23 | ||||
-rw-r--r-- | src/com/android/dialerbind/ObjectFactory.java | 10 |
3 files changed, 64 insertions, 1 deletions
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java index 7e1471953..f76312db1 100644 --- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java +++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java @@ -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 @@ -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; @@ -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(); @@ -501,7 +513,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder } else { detailsButtonView.setVisibility(View.VISIBLE); detailsButtonView.setTag( - IntentProvider.getCallDetailIntentProvider(rowId, callIds, null)); + IntentProvider.getCallDetailIntentProvider(rowId, callIds, null)); } if (info != null && UriUtils.isEncodedContactUri(info.lookupUri)) { @@ -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); + } } /** diff --git a/src/com/android/dialer/service/SpamButtonRenderer.java b/src/com/android/dialer/service/SpamButtonRenderer.java new file mode 100644 index 000000000..843bc55d5 --- /dev/null +++ b/src/com/android/dialer/service/SpamButtonRenderer.java @@ -0,0 +1,23 @@ +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); + +} diff --git a/src/com/android/dialerbind/ObjectFactory.java b/src/com/android/dialerbind/ObjectFactory.java index f346a7e30..d06d55e86 100644 --- a/src/com/android/dialerbind/ObjectFactory.java +++ b/src/com/android/dialerbind/ObjectFactory.java @@ -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; /** @@ -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. |