diff options
Diffstat (limited to 'src/com/android/dialer/calllog/CallLogListItemViewHolder.java')
-rw-r--r-- | src/com/android/dialer/calllog/CallLogListItemViewHolder.java | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java index 361e1c7a3..0fa5e6d33 100644 --- a/src/com/android/dialer/calllog/CallLogListItemViewHolder.java +++ b/src/com/android/dialer/calllog/CallLogListItemViewHolder.java @@ -16,6 +16,7 @@ package com.android.dialer.calllog; +import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.content.Intent; @@ -29,18 +30,16 @@ import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; -import android.view.ViewTreeObserver; import android.widget.QuickContactBadge; import android.widget.ImageView; import android.widget.TextView; -import com.android.contacts.common.CallUtil; import com.android.contacts.common.ContactPhotoManager; import com.android.contacts.common.ContactPhotoManager.DefaultImageRequest; +import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.contacts.common.testing.NeededForTesting; import com.android.contacts.common.util.UriUtils; import com.android.dialer.R; -import com.android.dialer.calllog.CallLogAsyncTaskUtil; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.PhoneNumberUtil; import com.android.dialer.voicemail.VoicemailPlaybackPresenter; @@ -80,6 +79,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder public View addToExistingContactButtonView; public View sendMessageView; public View detailsButtonView; + public View callWithNoteButtonView; /** * The row Id for the first call associated with the call log entry. Used as a key for the @@ -100,12 +100,22 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder public String number; /** + * The formatted phone number to display. + */ + public String displayNumber; + + /** * The phone number presentation for the current call log entry. Cached here as the call back * intent is set only when the actions ViewStub is inflated. */ public int numberPresentation; /** + * The type of the phone number (e.g. main, work, etc). + */ + public String numberType; + + /** * The type of call for the current call log entry. Cached here as the call back * intent is set only when the actions ViewStub is inflated. */ @@ -131,6 +141,11 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder public CharSequence nameOrNumber; /** + * Whether this row is for a business or not. + */ + public boolean isBusiness; + + /** * The contact info for the contact displayed in this list item. */ public ContactInfo info; @@ -245,6 +260,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder detailsButtonView = actionsView.findViewById(R.id.details_action); detailsButtonView.setOnClickListener(this); + + callWithNoteButtonView = actionsView.findViewById(R.id.call_with_note_action); + callWithNoteButtonView.setOnClickListener(this); } bindActionButtons(); @@ -349,6 +367,13 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder sendMessageView.setTag(IntentProvider.getSendSmsIntentProvider(number)); mCallLogListItemHelper.setActionContentDescriptions(this); + + boolean supportsCallSubject = + mTelecomCallLogCache.doesAccountSupportCallSubject(accountHandle); + boolean isVoicemailNumber = + mTelecomCallLogCache.isVoicemailNumber(accountHandle, number); + callWithNoteButtonView.setVisibility( + supportsCallSubject && !isVoicemailNumber ? View.VISIBLE : View.GONE); } /** @@ -403,7 +428,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder String lookupKey = null; if (contactUri != null) { - lookupKey = ContactInfoHelper.getLookupKeyFromUri(contactUri); + lookupKey = UriUtils.getLookupKeyFromUri(contactUri); } DefaultImageRequest request = new DefaultImageRequest( @@ -423,6 +448,19 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder if (view.getId() == R.id.primary_action_button && !TextUtils.isEmpty(voicemailUri)) { mVoicemailPrimaryActionButtonClicked = true; mExpandCollapseListener.onClick(primaryActionView); + } else if (view.getId() == R.id.call_with_note_action) { + CallSubjectDialog.start( + (Activity) mContext, + info.photoId, + info.photoUri, + info.lookupUri, + (String) nameOrNumber /* top line of contact view in call subject dialog */, + isBusiness, + number, /* callable number used for ACTION_CALL intent */ + TextUtils.isEmpty(info.name) ? null : displayNumber, /* second line of contact + view in dialog. */ + numberType, /* phone number type (e.g. mobile) in second line of contact view */ + accountHandle); } else { final IntentProvider intentProvider = (IntentProvider) view.getTag(); if (intentProvider != null) { |