diff options
Diffstat (limited to 'java/com/android/incallui/incall/protocol')
3 files changed, 54 insertions, 9 deletions
diff --git a/java/com/android/incallui/incall/protocol/InCallScreenDelegate.java b/java/com/android/incallui/incall/protocol/InCallScreenDelegate.java index 98c3e0f31..c491eab78 100644 --- a/java/com/android/incallui/incall/protocol/InCallScreenDelegate.java +++ b/java/com/android/incallui/incall/protocol/InCallScreenDelegate.java @@ -16,8 +16,6 @@ package com.android.incallui.incall.protocol; -import android.graphics.drawable.Drawable; - /** Callbacks from the module out to the container. */ public interface InCallScreenDelegate { @@ -40,6 +38,4 @@ public interface InCallScreenDelegate { void onInCallScreenResumed(); void onInCallScreenPaused(); - - Drawable getDefaultContactPhotoDrawable(); } diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java index 2ae6a18e5..fe80276c9 100644 --- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java +++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java @@ -17,13 +17,33 @@ package com.android.incallui.incall.protocol; import android.graphics.drawable.Drawable; +import android.support.annotation.IntDef; +import android.support.annotation.Nullable; import android.telecom.DisconnectCause; +import android.text.TextUtils; +import com.android.dialer.common.Assert; import com.android.incallui.call.DialerCall; +import com.android.incallui.call.DialerCall.State; import com.android.incallui.videotech.utils.SessionModificationState; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.Locale; /** State of the primary call. */ public class PrimaryCallState { + + /** + * Button state that will be invisible if not supported, visible but invalid if disabled, or + * visible if enabled. + */ + @Retention(RetentionPolicy.SOURCE) + @IntDef({ButtonState.NOT_SUPPORT, ButtonState.DISABLED, ButtonState.ENABLED}) + public @interface ButtonState { + int NOT_SUPPORT = 0; + int DISABLED = 1; + int ENABLED = 2; + } + public final int state; public final boolean isVideoCall; @SessionModificationState public final int sessionModificationState; @@ -44,11 +64,20 @@ public class PrimaryCallState { public final boolean isVoiceMailNumber; public final boolean isRemotelyHeld; public final boolean isBusinessNumber; + public final boolean supportsCallOnHold; + public final @ButtonState int swapToSecondaryButtonState; + public final boolean isAssistedDialed; + @Nullable public final String customLabel; // TODO: Convert to autovalue. b/34502119 public static PrimaryCallState createEmptyPrimaryCallState() { + return createEmptyPrimaryCallStateWithState(DialerCall.State.IDLE, null); + } + + public static PrimaryCallState createEmptyPrimaryCallStateWithState( + int state, String customLabel) { return new PrimaryCallState( - DialerCall.State.IDLE, + state, false, /* isVideoCall */ SessionModificationState.NO_REQUEST, new DisconnectCause(DisconnectCause.UNKNOWN), @@ -67,7 +96,11 @@ public class PrimaryCallState { 0, false /* isVoiceMailNumber */, false /* isRemotelyHeld */, - false /* isBusinessNumber */); + false /* isBusinessNumber */, + true /* supportsCallOnHold */, + ButtonState.NOT_SUPPORT /* swapToSecondaryButtonState */, + false /* isAssistedDialed */, + customLabel); } public PrimaryCallState( @@ -90,7 +123,11 @@ public class PrimaryCallState { long connectTimeMillis, boolean isVoiceMailNumber, boolean isRemotelyHeld, - boolean isBusinessNumber) { + boolean isBusinessNumber, + boolean supportsCallOnHold, + @ButtonState int swapToSecondaryButtonState, + boolean isAssistedDialed, + @Nullable String customLabel) { this.state = state; this.isVideoCall = isVideoCall; this.sessionModificationState = sessionModificationState; @@ -111,6 +148,13 @@ public class PrimaryCallState { this.isVoiceMailNumber = isVoiceMailNumber; this.isRemotelyHeld = isRemotelyHeld; this.isBusinessNumber = isBusinessNumber; + this.supportsCallOnHold = supportsCallOnHold; + this.swapToSecondaryButtonState = swapToSecondaryButtonState; + this.isAssistedDialed = isAssistedDialed; + if (!TextUtils.isEmpty(customLabel)) { + Assert.checkArgument(state == State.CALL_PENDING); + } + this.customLabel = customLabel; } @Override diff --git a/java/com/android/incallui/incall/protocol/PrimaryInfo.java b/java/com/android/incallui/incall/protocol/PrimaryInfo.java index c1709501d..7fe0a0f6a 100644 --- a/java/com/android/incallui/incall/protocol/PrimaryInfo.java +++ b/java/com/android/incallui/incall/protocol/PrimaryInfo.java @@ -41,6 +41,7 @@ public class PrimaryInfo { // Used for consistent LetterTile coloring. @Nullable public final String contactInfoLookupKey; @Nullable public final MultimediaData multimediaData; + public final boolean showInCallButtonGrid; public final int numberPresentation; // TODO: Convert to autovalue. b/34502119 @@ -61,6 +62,7 @@ public class PrimaryInfo { false, null, null, + true, -1); } @@ -80,6 +82,7 @@ public class PrimaryInfo { boolean shouldShowLocation, @Nullable String contactInfoLookupKey, @Nullable MultimediaData multimediaData, + boolean showInCallButtonGrid, int numberPresentation) { this.number = number; this.name = name; @@ -96,6 +99,7 @@ public class PrimaryInfo { this.shouldShowLocation = shouldShowLocation; this.contactInfoLookupKey = contactInfoLookupKey; this.multimediaData = multimediaData; + this.showInCallButtonGrid = showInCallButtonGrid; this.numberPresentation = numberPresentation; } @@ -104,13 +108,14 @@ public class PrimaryInfo { return String.format( Locale.US, "PrimaryInfo, number: %s, name: %s, location: %s, label: %s, " - + "photo: %s, photoType: %d, isPhotoVisible: %b", + + "photo: %s, photoType: %d, isPhotoVisible: %b, MultimediaData: %s", LogUtil.sanitizePhoneNumber(number), LogUtil.sanitizePii(name), LogUtil.sanitizePii(location), label, photo, photoType, - isContactPhotoShown); + isContactPhotoShown, + multimediaData); } } |