Merge "Move Call state into Call.Details" into sc-dev

This commit is contained in:
Tyler Gunn
2021-03-22 17:19:22 +00:00
committed by Android (Google) Code Review
3 changed files with 69 additions and 6 deletions

View File

@@ -39187,7 +39187,7 @@ package android.telecom {
method public android.telecom.Call getParent();
method public String getRemainingPostDialSequence();
method @Nullable public android.telecom.Call.RttCall getRttCall();
method public int getState();
method @Deprecated public int getState();
method public android.telecom.InCallService.VideoCall getVideoCall();
method public void handoverTo(android.telecom.PhoneAccountHandle, int, android.os.Bundle);
method public void hold();
@@ -39282,6 +39282,7 @@ package android.telecom {
method public android.net.Uri getHandle();
method public int getHandlePresentation();
method public android.os.Bundle getIntentExtras();
method public final int getState();
method public android.telecom.StatusHints getStatusHints();
method public int getVideoState();
method public static boolean hasProperty(int, int);

View File

@@ -137,6 +137,27 @@ public final class Call {
*/
public static final int STATE_SIMULATED_RINGING = 13;
/**
* @hide
*/
@IntDef(prefix = { "STATE_" },
value = {
STATE_NEW,
STATE_DIALING,
STATE_RINGING,
STATE_HOLDING,
STATE_ACTIVE,
STATE_DISCONNECTED,
STATE_SELECT_PHONE_ACCOUNT,
STATE_CONNECTING,
STATE_DISCONNECTING,
STATE_PULLING_CALL,
STATE_AUDIO_PROCESSING,
STATE_SIMULATED_RINGING
})
@Retention(RetentionPolicy.SOURCE)
public @interface CallState {};
/**
* The key to retrieve the optional {@code PhoneAccount}s Telecom can bundle with its Call
* extras. Used to pass the phone accounts to display on the front end to the user in order to
@@ -674,6 +695,7 @@ public final class Call {
// Next PROPERTY value: 0x00004000
//******************************************************************************************
private final @CallState int mState;
private final String mTelecomCallId;
private final Uri mHandle;
private final int mHandlePresentation;
@@ -868,6 +890,13 @@ public final class Call {
return builder.toString();
}
/**
* @return the state of the {@link Call} represented by this {@link Call.Details}.
*/
public final @CallState int getState() {
return mState;
}
/** {@hide} */
@TestApi
public String getTelecomCallId() {
@@ -1069,6 +1098,7 @@ public final class Call {
if (o instanceof Details) {
Details d = (Details) o;
return
Objects.equals(mState, d.mState) &&
Objects.equals(mHandle, d.mHandle) &&
Objects.equals(mHandlePresentation, d.mHandlePresentation) &&
Objects.equals(mCallerDisplayName, d.mCallerDisplayName) &&
@@ -1095,7 +1125,8 @@ public final class Call {
@Override
public int hashCode() {
return Objects.hash(mHandle,
return Objects.hash(mState,
mHandle,
mHandlePresentation,
mCallerDisplayName,
mCallerDisplayNamePresentation,
@@ -1117,6 +1148,7 @@ public final class Call {
/** {@hide} */
public Details(
@CallState int state,
String telecomCallId,
Uri handle,
int handlePresentation,
@@ -1136,6 +1168,7 @@ public final class Call {
String contactDisplayName,
int callDirection,
int callerNumberVerificationStatus) {
mState = state;
mTelecomCallId = telecomCallId;
mHandle = handle;
mHandlePresentation = handlePresentation;
@@ -1160,6 +1193,7 @@ public final class Call {
/** {@hide} */
public static Details createFromParcelableCall(ParcelableCall parcelableCall) {
return new Details(
parcelableCall.getState(),
parcelableCall.getId(),
parcelableCall.getHandle(),
parcelableCall.getHandlePresentation(),
@@ -1186,6 +1220,8 @@ public final class Call {
StringBuilder sb = new StringBuilder();
sb.append("[id: ");
sb.append(mTelecomCallId);
sb.append(", state: ");
sb.append(Call.stateToString(mState));
sb.append(", pa: ");
sb.append(mAccountHandle);
sb.append(", hdl: ");
@@ -1302,7 +1338,7 @@ public final class Call {
* @param call The {@code Call} invoking this method.
* @param state The new state of the {@code Call}.
*/
public void onStateChanged(Call call, int state) {}
public void onStateChanged(Call call, @CallState int state) {}
/**
* Invoked when the parent of this {@code Call} has changed. See {@link #getParent()}.
@@ -2171,9 +2207,11 @@ public final class Call {
/**
* Obtains the state of this {@code Call}.
*
* @return A state value, chosen from the {@code STATE_*} constants.
* @return The call state.
* @deprecated The call state is available via {@link Call.Details#getState()}.
*/
public int getState() {
@Deprecated
public @CallState int getState() {
return mState;
}
@@ -2551,6 +2589,30 @@ public final class Call {
final void internalSetDisconnected() {
if (mState != Call.STATE_DISCONNECTED) {
mState = Call.STATE_DISCONNECTED;
if (mDetails != null) {
mDetails = new Details(mState,
mDetails.getTelecomCallId(),
mDetails.getHandle(),
mDetails.getHandlePresentation(),
mDetails.getCallerDisplayName(),
mDetails.getCallerDisplayNamePresentation(),
mDetails.getAccountHandle(),
mDetails.getCallCapabilities(),
mDetails.getCallProperties(),
mDetails.getDisconnectCause(),
mDetails.getConnectTimeMillis(),
mDetails.getGatewayInfo(),
mDetails.getVideoState(),
mDetails.getStatusHints(),
mDetails.getExtras(),
mDetails.getIntentExtras(),
mDetails.getCreationTimeMillis(),
mDetails.getContactDisplayName(),
mDetails.getCallDirection(),
mDetails.getCallerNumberVerificationStatus()
);
fireDetailsChanged(mDetails);
}
fireStateChanged(mState);
fireCallDestroyed();
}

View File

@@ -399,7 +399,7 @@ public final class ParcelableCall implements Parcelable {
}
/** The current state of the call. */
public int getState() {
public @Call.CallState int getState() {
return mState;
}