From 687390732d6253903141d89d734113373d0e3c13 Mon Sep 17 00:00:00 2001 From: Nancy Chen Date: Mon, 12 Oct 2015 20:45:44 -0700 Subject: New layout for business call context. Add smaller photo in primary call content so that the photo that is obscured by the context information is visible somewhere. Update the "business info" header to be in line with the new mocks. Bug: 23351559 Change-Id: I98fc2b192bc1fa9452a4d7b5299c98162af232a9 --- .../com/android/incallui/CallCardPresenter.java | 32 ++++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) (limited to 'InCallUI/src/com/android/incallui/CallCardPresenter.java') diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java index 9c47a93d7..aa022f448 100644 --- a/InCallUI/src/com/android/incallui/CallCardPresenter.java +++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java @@ -24,6 +24,7 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; +import android.location.Address; import android.net.Uri; import android.os.Bundle; import android.telecom.Call.Details; @@ -35,6 +36,7 @@ import android.telecom.TelecomManager; import android.telecom.VideoProfile; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; +import android.view.View; import android.view.accessibility.AccessibilityManager; import android.widget.ListAdapter; @@ -227,7 +229,8 @@ public class CallCardPresenter extends Presenter secondary = getCallToDisplay(callList, primary, true); } - if (mInCallContactInteractions != null) { + if (mInCallContactInteractions != null && + (oldState == InCallState.INCOMING || newState == InCallState.INCOMING)) { ui.showContactContext(newState != InCallState.INCOMING); } @@ -593,14 +596,18 @@ public class CallCardPresenter extends Presenter private void updateContactInteractions() { if (mPrimary != null && mPrimaryContactInfo != null && mPrimaryContactInfo.locationAddress != null) { - setInCallContactInteractionsType(true); + + // TODO: This is hardcoded to "isBusiness" because functionality to differentiate + // between business and personal has not yet been added. + if (setInCallContactInteractionsType(true /* isBusiness */)) { + getUi().setContactContextTitle( + mInCallContactInteractions.getBusinessListHeaderView()); + } mInCallContactInteractions.setBusinessInfo( mPrimaryContactInfo.locationAddress, mDistanceHelper.calculateDistance(mPrimaryContactInfo.locationAddress)); - getUi().setContactContext( - null, - mInCallContactInteractions.getListAdapter()); + getUi().setContactContextContent(mInCallContactInteractions.getListAdapter()); getUi().showContactContext(mPrimary.getState() != State.INCOMING); } } @@ -610,14 +617,18 @@ public class CallCardPresenter extends Presenter * * @param isBusiness {@code true} if the interaction is a business interaction, {@code false} if * it is a personal contact. + * + * @return {@code true} if this is a new type of contact interaction (business or personal). + * {@code false} if it hasn't changed. */ - private void setInCallContactInteractionsType(boolean isBusiness) { + private boolean setInCallContactInteractionsType(boolean isBusiness) { if (mInCallContactInteractions == null) { mInCallContactInteractions = new InCallContactInteractions(mContext, isBusiness); - } else { - mInCallContactInteractions.setIsBusiness(isBusiness); + return true; } + + return mInCallContactInteractions.switchContactType(isBusiness); } private void updateContactEntry(ContactCacheEntry entry, boolean isPrimary) { @@ -741,6 +752,8 @@ public class CallCardPresenter extends Presenter mPrimaryContactInfo.photo, mPrimaryContactInfo.isSipCall, showContactPhoto); + + updateContactInteractions(); } else { // Clear the primary display info. ui.setPrimary(null, null, false, null, null, false, false); @@ -1031,7 +1044,8 @@ public class CallCardPresenter extends Presenter public interface CallCardUi extends Ui { void setVisible(boolean on); - void setContactContext(String title, ListAdapter listAdapter); + void setContactContextTitle(View listHeaderView); + void setContactContextContent(ListAdapter listAdapter); void showContactContext(boolean show); void setCallCardVisible(boolean visible); void setPrimary(String number, String name, boolean nameIsNumber, String label, -- cgit v1.2.3