Loading java/com/android/dialer/app/calllog/CallLogAdapter.java +0 −22 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter.OnVoicemailDe import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; import com.android.dialer.calldetails.CallDetailsEntries; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.calllogutils.CallbackActionHelper.CallbackAction; import com.android.dialer.calllogutils.PhoneCallDetails; import com.android.dialer.common.Assert; Loading Loading @@ -407,28 +406,7 @@ public class CallLogAdapter extends GroupingListAdapter } } expandViewHolderActions(viewHolder); if (isDuoCallButtonVisible(viewHolder.videoCallButtonView)) { CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } } private boolean isDuoCallButtonVisible(View videoCallButtonView) { if (videoCallButtonView == null) { return false; } if (videoCallButtonView.getVisibility() != View.VISIBLE) { return false; } IntentProvider intentProvider = (IntentProvider) videoCallButtonView.getTag(); if (intentProvider == null) { return false; } return DuoComponent.get(activity) .getDuo() .getIntentType(intentProvider.getIntent(activity)) .isPresent(); } }; Loading java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +17 −47 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.dialer.app.calllog; import android.Manifest.permission; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.Resources; Loading Loading @@ -51,7 +50,6 @@ import android.view.ViewStub; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.dialer.app.DialtactsActivity; import com.android.dialer.app.R; Loading Loading @@ -96,7 +94,6 @@ import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.util.CallUtil; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.UriUtils; import com.google.common.base.Optional; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; Loading Loading @@ -550,7 +547,8 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder case CallbackAction.DUO: if (showDuoPrimaryButton()) { CallIntentBuilder.increaseLightbringerCallButtonAppearInCollapsedCallLogItemCount(); primaryActionButtonView.setTag(IntentProvider.getDuoVideoIntentProvider(number)); primaryActionButtonView.setTag( IntentProvider.getDuoVideoIntentProvider(number, isNonContactEntry(info))); } else { primaryActionButtonView.setTag(IntentProvider.getReturnVideoCallIntentProvider(number)); } Loading Loading @@ -684,14 +682,17 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder boolean identifiedSpamCall = isSpamFeatureEnabled && isSpam; if (duo.isReachable(context, number)) { videoCallButtonView.setTag(IntentProvider.getDuoVideoIntentProvider(number)); videoCallButtonView.setTag( IntentProvider.getDuoVideoIntentProvider(number, isNonContactEntry(info))); videoCallButtonView.setVisibility(View.VISIBLE); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } else if (duo.isActivated(context) && !identifiedSpamCall) { if (ConfigProviderBindings.get(context) .getBoolean("enable_call_log_duo_invite_button", false)) { inviteVideoButtonView.setTag(IntentProvider.getDuoInviteIntentProvider(number)); inviteVideoButtonView.setVisibility(View.VISIBLE); Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_INVITE_SHOWN); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } else if (duo.isEnabled(context) && !identifiedSpamCall) { if (!duo.isInstalled(context)) { Loading @@ -701,6 +702,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder setUpVideoButtonView.setVisibility(View.VISIBLE); Logger.get(context) .logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_INSTALL_SHOWN); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } else { if (ConfigProviderBindings.get(context) Loading @@ -709,6 +711,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder setUpVideoButtonView.setVisibility(View.VISIBLE); Logger.get(context) .logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_ACTIVATE_SHOWN); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } } Loading Loading @@ -782,7 +785,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder callComposeButtonView.setVisibility(isCallComposerCapable ? View.VISIBLE : View.GONE); updateBlockReportActions(isVoicemailNumber); updateBlockReportActions(canPlaceCallToNumber, isVoicemailNumber); } private boolean isFullyUndialableVoicemail() { Loading Loading @@ -1024,20 +1027,13 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder if (intentProvider == null) { return; } intentProvider.logInteraction(context); final Intent intent = intentProvider.getIntent(context); // See IntentProvider.getCallDetailIntentProvider() for why this may be null. if (intent == null) { return; } // We check to see if we are starting a Duo intent. The reason is Duo // intents need to be started using startActivityForResult instead of the usual startActivity Optional<Duo.IntentType> duoIntentType = DuoComponent.get(context).getDuo().getIntentType(intent); if (duoIntentType.isPresent()) { startDuoActivity(intent, duoIntentType.get()); } else if (OldCallDetailsActivity.isLaunchIntent(intent)) { if (OldCallDetailsActivity.isLaunchIntent(intent)) { PerformanceReport.recordClick(UiAction.Type.OPEN_CALL_DETAIL); ((Activity) context) .startActivityForResult(intent, ActivityRequestCodes.DIALTACTS_CALL_DETAILS); Loading @@ -1046,9 +1042,6 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder && intent.getIntExtra(TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE, -1) == VideoProfile.STATE_BIDIRECTIONAL) { Logger.get(context).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_CALL_LOG); } else if (intent.filterEquals( DuoComponent.get(context).getDuo().getInstallDuoIntent().orNull())) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_INSTALL); } DialerUtils.startActivityWithErrorToast(context, intent); Loading @@ -1062,32 +1055,6 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder return false; } private void startDuoActivity(Intent intent, Duo.IntentType intentType) { switch (intentType) { case CALL: Logger.get(context) .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG); if (isNonContactEntry(info)) { Logger.get(context) .logImpression( DialerImpression.Type.LIGHTBRINGER_NON_CONTACT_VIDEO_REQUESTED_FROM_CALL_LOG); } break; case INVITE: Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_INVITE); break; case ACTIVATE: Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_ACTIVATE); break; } try { Activity activity = (Activity) context; activity.startActivityForResult(intent, ActivityRequestCodes.DIALTACTS_DUO); } catch (ActivityNotFoundException e) { Toast.makeText(context, R.string.activity_not_available, Toast.LENGTH_SHORT).show(); } } private DialerContact buildContact() { DialerContact.Builder contact = DialerContact.newBuilder(); contact.setPhotoId(info.photoId); Loading Loading @@ -1172,14 +1139,15 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder } } private void updateBlockReportActions(boolean isVoicemailNumber) { private void updateBlockReportActions(boolean canPlaceCallToNumber, boolean isVoicemailNumber) { // Set block/spam actions. blockReportView.setVisibility(View.GONE); blockView.setVisibility(View.GONE); unblockView.setVisibility(View.GONE); reportNotSpamView.setVisibility(View.GONE); String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso); if (isVoicemailNumber if (!canPlaceCallToNumber || isVoicemailNumber || !FilteredNumbersUtil.canBlockNumber(context, e164Number, number) || !FilteredNumberCompat.canAttemptBlockOperations(context)) { return; Loading Loading @@ -1260,7 +1228,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso); boolean isVoicemailNumber = callLogCache.isVoicemailNumber(accountHandle, number); if (!isVoicemailNumber boolean canPlaceCallToNumber = PhoneNumberHelper.canPlaceCallsTo(number, numberPresentation); if (canPlaceCallToNumber && !isVoicemailNumber && FilteredNumbersUtil.canBlockNumber(context, e164Number, number) && FilteredNumberCompat.canAttemptBlockOperations(context)) { boolean isBlocked = blockId != null; Loading java/com/android/dialer/app/calllog/IntentProvider.java +36 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.duo.DuoComponent; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.precall.PreCall; import com.android.dialer.util.IntentUtil; import java.util.ArrayList; Loading Loading @@ -93,11 +95,26 @@ public abstract class IntentProvider { }; } public static IntentProvider getDuoVideoIntentProvider(String number) { public static IntentProvider getDuoVideoIntentProvider(String number, boolean isNonContact) { return new IntentProvider() { @Override public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getCallIntent(number).orNull(); return PreCall.getIntent( context, new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG) .setIsDuoCall(true) .setIsVideoCall(true)); } @Override public void logInteraction(Context context) { Logger.get(context) .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG); if (isNonContact) { Logger.get(context) .logImpression( DialerImpression.Type.LIGHTBRINGER_NON_CONTACT_VIDEO_REQUESTED_FROM_CALL_LOG); } } }; } Loading @@ -108,6 +125,11 @@ public abstract class IntentProvider { public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getInstallDuoIntent().orNull(); } @Override public void logInteraction(Context context) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_INSTALL); } }; } Loading @@ -117,6 +139,11 @@ public abstract class IntentProvider { public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getActivateIntent().orNull(); } @Override public void logInteraction(Context context) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_ACTIVATE); } }; } Loading @@ -126,6 +153,11 @@ public abstract class IntentProvider { public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getInviteIntent(number).orNull(); } @Override public void logInteraction(Context context) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_INVITE); } }; } Loading Loading @@ -244,4 +276,6 @@ public abstract class IntentProvider { } public abstract Intent getIntent(Context context); public void logInteraction(Context context) {} } java/com/android/dialer/calldetails/CallDetailsActivityCommon.java +5 −19 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.dialer.calldetails; import android.Manifest.permission; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.os.Bundle; Loading @@ -35,7 +34,6 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.Toast; import com.android.dialer.assisteddialing.ui.AssistedDialingSettingActivity; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.callintent.CallInitiationType; Loading @@ -48,9 +46,6 @@ import com.android.dialer.common.concurrent.DialerExecutor.Worker; import com.android.dialer.common.concurrent.DialerExecutorComponent; import com.android.dialer.common.concurrent.UiListener; import com.android.dialer.common.database.Selection; import com.android.dialer.constants.ActivityRequestCodes; import com.android.dialer.duo.Duo; import com.android.dialer.duo.DuoComponent; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult; Loading @@ -63,7 +58,6 @@ import com.android.dialer.postcall.PostCall; import com.android.dialer.precall.PreCall; import com.android.dialer.rtt.RttTranscriptActivity; import com.android.dialer.rtt.RttTranscriptUtil; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.i18n.phonenumbers.NumberParseException; Loading Loading @@ -327,19 +321,11 @@ abstract class CallDetailsActivityCommon extends AppCompatActivity { public void placeDuoVideoCall(String phoneNumber) { Logger.get(getActivity()) .logImpression(DialerImpression.Type.CALL_DETAILS_LIGHTBRINGER_CALL_BACK); Duo duo = DuoComponent.get(getActivity()).getDuo(); Optional<Intent> intentOptional = duo.getCallIntent(phoneNumber); if (!duo.isReachable(getActivity(), phoneNumber) || !intentOptional.isPresent()) { placeImsVideoCall(phoneNumber); return; } try { getActivity() .startActivityForResult(intentOptional.get(), ActivityRequestCodes.DIALTACTS_DUO); } catch (ActivityNotFoundException e) { Toast.makeText(getActivity(), R.string.activity_not_available, Toast.LENGTH_SHORT).show(); } PreCall.start( getActivity(), new CallIntentBuilder(phoneNumber, CallInitiationType.Type.CALL_DETAILS) .setIsDuoCall(true) .setIsVideoCall(true)); } @Override Loading java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java +7 −1 Original line number Diff line number Diff line Loading @@ -190,7 +190,13 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder .loadQuickContactBadge(contactPhoto, headerInfo.getPhotoInfo()); nameView.setText(headerInfo.getPrimaryText()); if (!headerInfo.getSecondaryText().isEmpty()) { numberView.setVisibility(View.VISIBLE); numberView.setText(headerInfo.getSecondaryText()); } else { numberView.setVisibility(View.GONE); numberView.setText(null); } setCallbackAction(callbackAction); } Loading Loading
java/com/android/dialer/app/calllog/CallLogAdapter.java +0 −22 Original line number Diff line number Diff line Loading @@ -64,7 +64,6 @@ import com.android.dialer.app.voicemail.VoicemailPlaybackPresenter.OnVoicemailDe import com.android.dialer.blocking.FilteredNumberAsyncQueryHandler; import com.android.dialer.calldetails.CallDetailsEntries; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.calllogutils.CallbackActionHelper.CallbackAction; import com.android.dialer.calllogutils.PhoneCallDetails; import com.android.dialer.common.Assert; Loading Loading @@ -407,28 +406,7 @@ public class CallLogAdapter extends GroupingListAdapter } } expandViewHolderActions(viewHolder); if (isDuoCallButtonVisible(viewHolder.videoCallButtonView)) { CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } } private boolean isDuoCallButtonVisible(View videoCallButtonView) { if (videoCallButtonView == null) { return false; } if (videoCallButtonView.getVisibility() != View.VISIBLE) { return false; } IntentProvider intentProvider = (IntentProvider) videoCallButtonView.getTag(); if (intentProvider == null) { return false; } return DuoComponent.get(activity) .getDuo() .getIntentType(intentProvider.getIntent(activity)) .isPresent(); } }; Loading
java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +17 −47 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.dialer.app.calllog; import android.Manifest.permission; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.res.Resources; Loading Loading @@ -51,7 +50,6 @@ import android.view.ViewStub; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.android.contacts.common.dialog.CallSubjectDialog; import com.android.dialer.app.DialtactsActivity; import com.android.dialer.app.R; Loading Loading @@ -96,7 +94,6 @@ import com.android.dialer.telecom.TelecomUtil; import com.android.dialer.util.CallUtil; import com.android.dialer.util.DialerUtils; import com.android.dialer.util.UriUtils; import com.google.common.base.Optional; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; Loading Loading @@ -550,7 +547,8 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder case CallbackAction.DUO: if (showDuoPrimaryButton()) { CallIntentBuilder.increaseLightbringerCallButtonAppearInCollapsedCallLogItemCount(); primaryActionButtonView.setTag(IntentProvider.getDuoVideoIntentProvider(number)); primaryActionButtonView.setTag( IntentProvider.getDuoVideoIntentProvider(number, isNonContactEntry(info))); } else { primaryActionButtonView.setTag(IntentProvider.getReturnVideoCallIntentProvider(number)); } Loading Loading @@ -684,14 +682,17 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder boolean identifiedSpamCall = isSpamFeatureEnabled && isSpam; if (duo.isReachable(context, number)) { videoCallButtonView.setTag(IntentProvider.getDuoVideoIntentProvider(number)); videoCallButtonView.setTag( IntentProvider.getDuoVideoIntentProvider(number, isNonContactEntry(info))); videoCallButtonView.setVisibility(View.VISIBLE); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } else if (duo.isActivated(context) && !identifiedSpamCall) { if (ConfigProviderBindings.get(context) .getBoolean("enable_call_log_duo_invite_button", false)) { inviteVideoButtonView.setTag(IntentProvider.getDuoInviteIntentProvider(number)); inviteVideoButtonView.setVisibility(View.VISIBLE); Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_INVITE_SHOWN); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } else if (duo.isEnabled(context) && !identifiedSpamCall) { if (!duo.isInstalled(context)) { Loading @@ -701,6 +702,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder setUpVideoButtonView.setVisibility(View.VISIBLE); Logger.get(context) .logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_INSTALL_SHOWN); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } else { if (ConfigProviderBindings.get(context) Loading @@ -709,6 +711,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder setUpVideoButtonView.setVisibility(View.VISIBLE); Logger.get(context) .logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_ACTIVATE_SHOWN); CallIntentBuilder.increaseLightbringerCallButtonAppearInExpandedCallLogItemCount(); } } } Loading Loading @@ -782,7 +785,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder callComposeButtonView.setVisibility(isCallComposerCapable ? View.VISIBLE : View.GONE); updateBlockReportActions(isVoicemailNumber); updateBlockReportActions(canPlaceCallToNumber, isVoicemailNumber); } private boolean isFullyUndialableVoicemail() { Loading Loading @@ -1024,20 +1027,13 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder if (intentProvider == null) { return; } intentProvider.logInteraction(context); final Intent intent = intentProvider.getIntent(context); // See IntentProvider.getCallDetailIntentProvider() for why this may be null. if (intent == null) { return; } // We check to see if we are starting a Duo intent. The reason is Duo // intents need to be started using startActivityForResult instead of the usual startActivity Optional<Duo.IntentType> duoIntentType = DuoComponent.get(context).getDuo().getIntentType(intent); if (duoIntentType.isPresent()) { startDuoActivity(intent, duoIntentType.get()); } else if (OldCallDetailsActivity.isLaunchIntent(intent)) { if (OldCallDetailsActivity.isLaunchIntent(intent)) { PerformanceReport.recordClick(UiAction.Type.OPEN_CALL_DETAIL); ((Activity) context) .startActivityForResult(intent, ActivityRequestCodes.DIALTACTS_CALL_DETAILS); Loading @@ -1046,9 +1042,6 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder && intent.getIntExtra(TelecomManager.EXTRA_START_CALL_WITH_VIDEO_STATE, -1) == VideoProfile.STATE_BIDIRECTIONAL) { Logger.get(context).logImpression(DialerImpression.Type.IMS_VIDEO_REQUESTED_FROM_CALL_LOG); } else if (intent.filterEquals( DuoComponent.get(context).getDuo().getInstallDuoIntent().orNull())) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_INSTALL); } DialerUtils.startActivityWithErrorToast(context, intent); Loading @@ -1062,32 +1055,6 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder return false; } private void startDuoActivity(Intent intent, Duo.IntentType intentType) { switch (intentType) { case CALL: Logger.get(context) .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG); if (isNonContactEntry(info)) { Logger.get(context) .logImpression( DialerImpression.Type.LIGHTBRINGER_NON_CONTACT_VIDEO_REQUESTED_FROM_CALL_LOG); } break; case INVITE: Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_INVITE); break; case ACTIVATE: Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_ACTIVATE); break; } try { Activity activity = (Activity) context; activity.startActivityForResult(intent, ActivityRequestCodes.DIALTACTS_DUO); } catch (ActivityNotFoundException e) { Toast.makeText(context, R.string.activity_not_available, Toast.LENGTH_SHORT).show(); } } private DialerContact buildContact() { DialerContact.Builder contact = DialerContact.newBuilder(); contact.setPhotoId(info.photoId); Loading Loading @@ -1172,14 +1139,15 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder } } private void updateBlockReportActions(boolean isVoicemailNumber) { private void updateBlockReportActions(boolean canPlaceCallToNumber, boolean isVoicemailNumber) { // Set block/spam actions. blockReportView.setVisibility(View.GONE); blockView.setVisibility(View.GONE); unblockView.setVisibility(View.GONE); reportNotSpamView.setVisibility(View.GONE); String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso); if (isVoicemailNumber if (!canPlaceCallToNumber || isVoicemailNumber || !FilteredNumbersUtil.canBlockNumber(context, e164Number, number) || !FilteredNumberCompat.canAttemptBlockOperations(context)) { return; Loading Loading @@ -1260,7 +1228,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso); boolean isVoicemailNumber = callLogCache.isVoicemailNumber(accountHandle, number); if (!isVoicemailNumber boolean canPlaceCallToNumber = PhoneNumberHelper.canPlaceCallsTo(number, numberPresentation); if (canPlaceCallToNumber && !isVoicemailNumber && FilteredNumbersUtil.canBlockNumber(context, e164Number, number) && FilteredNumberCompat.canAttemptBlockOperations(context)) { boolean isBlocked = blockId != null; Loading
java/com/android/dialer/app/calllog/IntentProvider.java +36 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ import com.android.dialer.callintent.CallInitiationType; import com.android.dialer.callintent.CallIntentBuilder; import com.android.dialer.dialercontact.DialerContact; import com.android.dialer.duo.DuoComponent; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.precall.PreCall; import com.android.dialer.util.IntentUtil; import java.util.ArrayList; Loading Loading @@ -93,11 +95,26 @@ public abstract class IntentProvider { }; } public static IntentProvider getDuoVideoIntentProvider(String number) { public static IntentProvider getDuoVideoIntentProvider(String number, boolean isNonContact) { return new IntentProvider() { @Override public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getCallIntent(number).orNull(); return PreCall.getIntent( context, new CallIntentBuilder(number, CallInitiationType.Type.CALL_LOG) .setIsDuoCall(true) .setIsVideoCall(true)); } @Override public void logInteraction(Context context) { Logger.get(context) .logImpression(DialerImpression.Type.LIGHTBRINGER_VIDEO_REQUESTED_FROM_CALL_LOG); if (isNonContact) { Logger.get(context) .logImpression( DialerImpression.Type.LIGHTBRINGER_NON_CONTACT_VIDEO_REQUESTED_FROM_CALL_LOG); } } }; } Loading @@ -108,6 +125,11 @@ public abstract class IntentProvider { public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getInstallDuoIntent().orNull(); } @Override public void logInteraction(Context context) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_INSTALL); } }; } Loading @@ -117,6 +139,11 @@ public abstract class IntentProvider { public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getActivateIntent().orNull(); } @Override public void logInteraction(Context context) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_SET_UP_ACTIVATE); } }; } Loading @@ -126,6 +153,11 @@ public abstract class IntentProvider { public Intent getIntent(Context context) { return DuoComponent.get(context).getDuo().getInviteIntent(number).orNull(); } @Override public void logInteraction(Context context) { Logger.get(context).logImpression(DialerImpression.Type.DUO_CALL_LOG_INVITE); } }; } Loading Loading @@ -244,4 +276,6 @@ public abstract class IntentProvider { } public abstract Intent getIntent(Context context); public void logInteraction(Context context) {} }
java/com/android/dialer/calldetails/CallDetailsActivityCommon.java +5 −19 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.dialer.calldetails; import android.Manifest.permission; import android.annotation.SuppressLint; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.os.Bundle; Loading @@ -35,7 +34,6 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.Toast; import com.android.dialer.assisteddialing.ui.AssistedDialingSettingActivity; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.callintent.CallInitiationType; Loading @@ -48,9 +46,6 @@ import com.android.dialer.common.concurrent.DialerExecutor.Worker; import com.android.dialer.common.concurrent.DialerExecutorComponent; import com.android.dialer.common.concurrent.UiListener; import com.android.dialer.common.database.Selection; import com.android.dialer.constants.ActivityRequestCodes; import com.android.dialer.duo.Duo; import com.android.dialer.duo.DuoComponent; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult; Loading @@ -63,7 +58,6 @@ import com.android.dialer.postcall.PostCall; import com.android.dialer.precall.PreCall; import com.android.dialer.rtt.RttTranscriptActivity; import com.android.dialer.rtt.RttTranscriptUtil; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.i18n.phonenumbers.NumberParseException; Loading Loading @@ -327,19 +321,11 @@ abstract class CallDetailsActivityCommon extends AppCompatActivity { public void placeDuoVideoCall(String phoneNumber) { Logger.get(getActivity()) .logImpression(DialerImpression.Type.CALL_DETAILS_LIGHTBRINGER_CALL_BACK); Duo duo = DuoComponent.get(getActivity()).getDuo(); Optional<Intent> intentOptional = duo.getCallIntent(phoneNumber); if (!duo.isReachable(getActivity(), phoneNumber) || !intentOptional.isPresent()) { placeImsVideoCall(phoneNumber); return; } try { getActivity() .startActivityForResult(intentOptional.get(), ActivityRequestCodes.DIALTACTS_DUO); } catch (ActivityNotFoundException e) { Toast.makeText(getActivity(), R.string.activity_not_available, Toast.LENGTH_SHORT).show(); } PreCall.start( getActivity(), new CallIntentBuilder(phoneNumber, CallInitiationType.Type.CALL_DETAILS) .setIsDuoCall(true) .setIsVideoCall(true)); } @Override Loading
java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java +7 −1 Original line number Diff line number Diff line Loading @@ -190,7 +190,13 @@ public class CallDetailsHeaderViewHolder extends RecyclerView.ViewHolder .loadQuickContactBadge(contactPhoto, headerInfo.getPhotoInfo()); nameView.setText(headerInfo.getPrimaryText()); if (!headerInfo.getSecondaryText().isEmpty()) { numberView.setVisibility(View.VISIBLE); numberView.setText(headerInfo.getSecondaryText()); } else { numberView.setVisibility(View.GONE); numberView.setText(null); } setCallbackAction(callbackAction); } Loading