From cded3beaf28a703e1ef8f71bbc6836e6806c3736 Mon Sep 17 00:00:00 2001 From: Tobias Thierer Date: Fri, 9 Jun 2017 14:16:05 +0000 Subject: Revert "Update AOSP Dialer source from internal google3 repository at cl/158012278. am: 91ce7d2a47" This reverts commit c67d658e7daa453fe9ad9fd1a37f81eaf2048c44. Reason for revert: This CL broke the sailfish-userdebug_javac-all target on master. Change-Id: I9b54333a654c00154ca84f4ece84bea4f07cc19b --- java/com/android/incallui/CallCardPresenter.java | 88 +++++++++++++++++------- 1 file changed, 63 insertions(+), 25 deletions(-) (limited to 'java/com/android/incallui/CallCardPresenter.java') diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java index cd06793ce..c2b99c1d1 100644 --- a/java/com/android/incallui/CallCardPresenter.java +++ b/java/com/android/incallui/CallCardPresenter.java @@ -47,6 +47,9 @@ import com.android.dialer.common.Assert; import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.compat.ActivityCompat; +import com.android.dialer.enrichedcall.EnrichedCallComponent; +import com.android.dialer.enrichedcall.EnrichedCallManager; +import com.android.dialer.enrichedcall.Session; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.multimedia.MultimediaData; @@ -82,7 +85,8 @@ public class CallCardPresenter InCallDetailsListener, InCallEventListener, InCallScreenDelegate, - DialerCallListener { + DialerCallListener, + EnrichedCallManager.StateChangedListener { /** * Amount of time to wait before sending an announcement via the accessibility manager. When the @@ -372,11 +376,6 @@ public class CallCardPresenter @Override public void onInternationalCallOnWifi() {} - @Override - public void onEnrichedCallSessionUpdate() { - updatePrimaryDisplayInfo(); - } - /** Handles a change to the child number by refreshing the primary call info. */ @Override public void onDialerCallChildNumberChange() { @@ -419,6 +418,12 @@ public class CallCardPresenter updatePrimaryCallState(); } + @Override + public void onEnrichedCallStateChanged() { + LogUtil.enterBlock("CallCardPresenter.onEnrichedCallStateChanged"); + updatePrimaryDisplayInfo(); + } + private boolean shouldRefreshPrimaryInfo(boolean primaryChanged) { if (mPrimary == null) { return false; @@ -470,8 +475,7 @@ public class CallCardPresenter mPrimary.getConnectTimeMillis(), CallerInfoUtils.isVoiceMailNumber(mContext, mPrimary), mPrimary.isRemotelyHeld(), - isBusiness, - supports2ndCallOnHold())); + isBusiness)); InCallActivity activity = (InCallActivity) (mInCallScreen.getInCallScreenFragment().getActivity()); @@ -501,15 +505,6 @@ public class CallCardPresenter && !mIsFullscreen; } - private boolean supports2ndCallOnHold() { - DialerCall firstCall = CallList.getInstance().getActiveOrBackgroundCall(); - DialerCall incomingCall = CallList.getInstance().getIncomingCall(); - if (firstCall != null && incomingCall != null && firstCall != incomingCall) { - return incomingCall.can(Details.CAPABILITY_HOLD); - } - return true; - } - @Override public void onCallStateButtonClicked() { Intent broadcastIntent = Bindings.get(mContext).getCallStateButtonBroadcastIntent(mContext); @@ -671,8 +666,26 @@ public class CallCardPresenter boolean hasWorkCallProperty = mPrimary.hasProperty(PROPERTY_ENTERPRISE_CALL); MultimediaData multimediaData = null; - if (mPrimary.getEnrichedCallSession() != null) { - multimediaData = mPrimary.getEnrichedCallSession().getMultimediaData(); + if (mPrimary.getNumber() != null) { + EnrichedCallManager manager = EnrichedCallComponent.get(mContext).getEnrichedCallManager(); + + EnrichedCallManager.Filter filter; + if (mPrimary.isIncoming()) { + filter = manager.createIncomingCallComposerFilter(); + } else { + filter = manager.createOutgoingCallComposerFilter(); + } + + Session enrichedCallSession = + manager.getSession(mPrimary.getUniqueCallId(), mPrimary.getNumber(), filter); + + mPrimary.setEnrichedCallSession(enrichedCallSession); + mPrimary.setEnrichedCallCapabilities(manager.getCapabilities(mPrimary.getNumber())); + + if (enrichedCallSession != null) { + enrichedCallSession.setUniqueDialerCallId(mPrimary.getUniqueCallId()); + multimediaData = enrichedCallSession.getMultimediaData(); + } } if (mPrimary.isConferenceCall()) { @@ -683,8 +696,7 @@ public class CallCardPresenter mInCallScreen.setPrimary( new PrimaryInfo( null /* number */, - CallerInfoUtils.getConferenceString( - mContext, mPrimary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)), + getConferenceString(mPrimary), false /* nameIsNumber */, null /* location */, null /* label */, @@ -868,8 +880,7 @@ public class CallCardPresenter mInCallScreen.setSecondary( new SecondaryInfo( true /* show */, - CallerInfoUtils.getConferenceString( - mContext, mSecondary.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE)), + getConferenceString(mSecondary), false /* nameIsNumber */, null /* label */, mSecondary.getCallProviderLabel(), @@ -961,7 +972,7 @@ public class CallCardPresenter } /** Gets the name to display for the call. */ - private String getNameForCall(ContactCacheEntry contactInfo) { + String getNameForCall(ContactCacheEntry contactInfo) { String preferredName = ContactDisplayUtils.getPreferredDisplayName( contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences); @@ -971,6 +982,19 @@ public class CallCardPresenter return preferredName; } + /** Gets the number to display for a call. */ + String getNumberForCall(ContactCacheEntry contactInfo) { + // If the name is empty, we use the number for the name...so don't show a second + // number in the number field + String preferredName = + ContactDisplayUtils.getPreferredDisplayName( + contactInfo.namePrimary, contactInfo.nameAlternative, mContactsPreferences); + if (TextUtils.isEmpty(preferredName)) { + return contactInfo.location; + } + return contactInfo.number; + } + @Override public void onSecondaryInfoClicked() { if (mSecondary == null) { @@ -1011,6 +1035,15 @@ public class CallCardPresenter return mPrimary != null && mPrimary.getState() == DialerCall.State.ACTIVE; } + private String getConferenceString(DialerCall call) { + boolean isGenericConference = call.hasProperty(Details.PROPERTY_GENERIC_CONFERENCE); + LogUtil.v("CallCardPresenter.getConferenceString", "" + isGenericConference); + + final int resId = + isGenericConference ? R.string.generic_conference_call_name : R.string.conference_call_name; + return mContext.getResources().getString(resId); + } + private boolean shouldShowEndCallButton(DialerCall primary, int callState) { if (primary == null) { return false; @@ -1030,6 +1063,7 @@ public class CallCardPresenter @Override public void onInCallScreenResumed() { + EnrichedCallComponent.get(mContext).getEnrichedCallManager().registerStateChangedListener(this); updatePrimaryDisplayInfo(); if (shouldSendAccessibilityEvent) { @@ -1038,7 +1072,11 @@ public class CallCardPresenter } @Override - public void onInCallScreenPaused() {} + public void onInCallScreenPaused() { + EnrichedCallComponent.get(mContext) + .getEnrichedCallManager() + .unregisterStateChangedListener(this); + } static boolean sendAccessibilityEvent(Context context, InCallScreen inCallScreen) { AccessibilityManager am = -- cgit v1.2.3