diff options
author | Gilles Franck Mevaa <gillesd@google.com> | 2016-01-19 23:08:27 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-01-19 23:08:27 +0000 |
commit | 9fcecd08b3134bb02cbf8436f91b5a6d1eea1cd0 (patch) | |
tree | d937f32f32f3f16644bfc9ebb9ead4c5d86b6fa4 | |
parent | 0ad1e18c9f8fadcb2f8d1a3b1a6fd8cd886d31ea (diff) | |
parent | e9fd1cf0e3dde7b0f5f25dc195a25fb83b22c0de (diff) |
Merge "New Spam-related options in call log entries." into ub-contactsdialer-b-dev
am: e9fd1cf0e3
* commit 'e9fd1cf0e3dde7b0f5f25dc195a25fb83b22c0de':
New Spam-related options in call log entries.
4 files changed, 69 insertions, 1 deletions
diff --git a/res/layout/call_log_list_item_actions.xml b/res/layout/call_log_list_item_actions.xml index ca0040589..63385eef5 100644 --- a/res/layout/call_log_list_item_actions.xml +++ b/res/layout/call_log_list_item_actions.xml @@ -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"> 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. |