summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/CallCardPresenter.java
diff options
context:
space:
mode:
authorTobias Thierer <tobiast@google.com>2017-06-09 14:16:05 +0000
committerTobias Thierer <tobiast@google.com>2017-06-09 14:16:05 +0000
commitcded3beaf28a703e1ef8f71bbc6836e6806c3736 (patch)
treec1b5e8199b5996fc848e7455d04126b9cdbb3c39 /java/com/android/incallui/CallCardPresenter.java
parentc67d658e7daa453fe9ad9fd1a37f81eaf2048c44 (diff)
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
Diffstat (limited to 'java/com/android/incallui/CallCardPresenter.java')
-rw-r--r--java/com/android/incallui/CallCardPresenter.java88
1 files changed, 63 insertions, 25 deletions
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 =