summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/incall/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/incall/protocol')
-rw-r--r--java/com/android/incallui/incall/protocol/InCallScreenDelegate.java4
-rw-r--r--java/com/android/incallui/incall/protocol/PrimaryCallState.java50
-rw-r--r--java/com/android/incallui/incall/protocol/PrimaryInfo.java9
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);
}
}