Merge "Change id type to string and extract control enum" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
ea854aec00
@@ -25,7 +25,7 @@ message Telecom {
|
|||||||
// Next index: 6
|
// Next index: 6
|
||||||
message Call {
|
message Call {
|
||||||
// UUID representing this call
|
// UUID representing this call
|
||||||
int64 id = 1;
|
string id = 1;
|
||||||
|
|
||||||
message Origin {
|
message Origin {
|
||||||
// Caller's name and/or phone number; what a user would see displayed when receiving an
|
// Caller's name and/or phone number; what a user would see displayed when receiving an
|
||||||
@@ -48,6 +48,9 @@ message Telecom {
|
|||||||
}
|
}
|
||||||
Status status = 3;
|
Status status = 3;
|
||||||
|
|
||||||
|
repeated Control controls = 4;
|
||||||
|
}
|
||||||
|
|
||||||
enum Control {
|
enum Control {
|
||||||
UNKNOWN_CONTROL = 0;
|
UNKNOWN_CONTROL = 0;
|
||||||
ACCEPT = 1;
|
ACCEPT = 1;
|
||||||
@@ -61,8 +64,6 @@ message Telecom {
|
|||||||
REJECT_AND_BLOCK = 9;
|
REJECT_AND_BLOCK = 9;
|
||||||
IGNORE = 10;
|
IGNORE = 10;
|
||||||
}
|
}
|
||||||
repeated Control controls = 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The list of active calls.
|
// The list of active calls.
|
||||||
repeated Call calls = 1;
|
repeated Call calls = 1;
|
||||||
|
|||||||
@@ -128,9 +128,9 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
|
|
||||||
private static final class CallMetadataSyncConnectionIdentifier {
|
private static final class CallMetadataSyncConnectionIdentifier {
|
||||||
private final int mAssociationId;
|
private final int mAssociationId;
|
||||||
private final long mCallId;
|
private final String mCallId;
|
||||||
|
|
||||||
CallMetadataSyncConnectionIdentifier(int associationId, long callId) {
|
CallMetadataSyncConnectionIdentifier(int associationId, String callId) {
|
||||||
mAssociationId = associationId;
|
mAssociationId = associationId;
|
||||||
mCallId = callId;
|
mCallId = callId;
|
||||||
}
|
}
|
||||||
@@ -139,7 +139,7 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
return mAssociationId;
|
return mAssociationId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getCallId() {
|
public String getCallId() {
|
||||||
return mCallId;
|
return mCallId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,9 +161,7 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
|
|
||||||
private abstract static class CallMetadataSyncConnectionCallback {
|
private abstract static class CallMetadataSyncConnectionCallback {
|
||||||
|
|
||||||
abstract void sendCallAction(int associationId, long callId, int action);
|
abstract void sendCallAction(int associationId, String callId, int action);
|
||||||
|
|
||||||
abstract void sendStateChange(int associationId, long callId, int newState);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class CallMetadataSyncConnection extends Connection {
|
private static class CallMetadataSyncConnection extends Connection {
|
||||||
@@ -184,7 +182,7 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
mCallback = callback;
|
mCallback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getCallId() {
|
public String getCallId() {
|
||||||
return mCall.getId();
|
return mCall.getId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -205,22 +203,22 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final Bundle extras = new Bundle();
|
final Bundle extras = new Bundle();
|
||||||
extras.putLong(CrossDeviceCall.EXTRA_CALL_ID, mCall.getId());
|
extras.putString(CrossDeviceCall.EXTRA_CALL_ID, mCall.getId());
|
||||||
putExtras(extras);
|
putExtras(extras);
|
||||||
|
|
||||||
int capabilities = getConnectionCapabilities();
|
int capabilities = getConnectionCapabilities();
|
||||||
if (mCall.hasControl(android.companion.Telecom.Call.PUT_ON_HOLD)) {
|
if (mCall.hasControl(android.companion.Telecom.PUT_ON_HOLD)) {
|
||||||
capabilities |= CAPABILITY_HOLD;
|
capabilities |= CAPABILITY_HOLD;
|
||||||
} else {
|
} else {
|
||||||
capabilities &= ~CAPABILITY_HOLD;
|
capabilities &= ~CAPABILITY_HOLD;
|
||||||
}
|
}
|
||||||
if (mCall.hasControl(android.companion.Telecom.Call.MUTE)) {
|
if (mCall.hasControl(android.companion.Telecom.MUTE)) {
|
||||||
capabilities |= CAPABILITY_MUTE;
|
capabilities |= CAPABILITY_MUTE;
|
||||||
} else {
|
} else {
|
||||||
capabilities &= ~CAPABILITY_MUTE;
|
capabilities &= ~CAPABILITY_MUTE;
|
||||||
}
|
}
|
||||||
mAudioManager.setMicrophoneMute(
|
mAudioManager.setMicrophoneMute(
|
||||||
mCall.hasControl(android.companion.Telecom.Call.UNMUTE));
|
mCall.hasControl(android.companion.Telecom.UNMUTE));
|
||||||
if (capabilities != getConnectionCapabilities()) {
|
if (capabilities != getConnectionCapabilities()) {
|
||||||
setConnectionCapabilities(capabilities);
|
setConnectionCapabilities(capabilities);
|
||||||
}
|
}
|
||||||
@@ -248,8 +246,8 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
|
|
||||||
int capabilities = getConnectionCapabilities();
|
int capabilities = getConnectionCapabilities();
|
||||||
final boolean hasHoldControl = mCall.hasControl(
|
final boolean hasHoldControl = mCall.hasControl(
|
||||||
android.companion.Telecom.Call.PUT_ON_HOLD)
|
android.companion.Telecom.PUT_ON_HOLD)
|
||||||
|| mCall.hasControl(android.companion.Telecom.Call.TAKE_OFF_HOLD);
|
|| mCall.hasControl(android.companion.Telecom.TAKE_OFF_HOLD);
|
||||||
if (hasHoldControl != ((getConnectionCapabilities() & CAPABILITY_HOLD)
|
if (hasHoldControl != ((getConnectionCapabilities() & CAPABILITY_HOLD)
|
||||||
== CAPABILITY_HOLD)) {
|
== CAPABILITY_HOLD)) {
|
||||||
if (hasHoldControl) {
|
if (hasHoldControl) {
|
||||||
@@ -258,7 +256,7 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
capabilities &= ~CAPABILITY_HOLD;
|
capabilities &= ~CAPABILITY_HOLD;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final boolean hasMuteControl = mCall.hasControl(android.companion.Telecom.Call.MUTE);
|
final boolean hasMuteControl = mCall.hasControl(android.companion.Telecom.MUTE);
|
||||||
if (hasMuteControl != ((getConnectionCapabilities() & CAPABILITY_MUTE)
|
if (hasMuteControl != ((getConnectionCapabilities() & CAPABILITY_MUTE)
|
||||||
== CAPABILITY_MUTE)) {
|
== CAPABILITY_MUTE)) {
|
||||||
if (hasMuteControl) {
|
if (hasMuteControl) {
|
||||||
@@ -268,7 +266,7 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
mAudioManager.setMicrophoneMute(
|
mAudioManager.setMicrophoneMute(
|
||||||
mCall.hasControl(android.companion.Telecom.Call.UNMUTE));
|
mCall.hasControl(android.companion.Telecom.UNMUTE));
|
||||||
if (capabilities != getConnectionCapabilities()) {
|
if (capabilities != getConnectionCapabilities()) {
|
||||||
setConnectionCapabilities(capabilities);
|
setConnectionCapabilities(capabilities);
|
||||||
}
|
}
|
||||||
@@ -276,12 +274,12 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAnswer(int videoState) {
|
public void onAnswer(int videoState) {
|
||||||
sendCallAction(android.companion.Telecom.Call.ACCEPT);
|
sendCallAction(android.companion.Telecom.ACCEPT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReject() {
|
public void onReject() {
|
||||||
sendCallAction(android.companion.Telecom.Call.REJECT);
|
sendCallAction(android.companion.Telecom.REJECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -296,33 +294,28 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSilence() {
|
public void onSilence() {
|
||||||
sendCallAction(android.companion.Telecom.Call.SILENCE);
|
sendCallAction(android.companion.Telecom.SILENCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHold() {
|
public void onHold() {
|
||||||
sendCallAction(android.companion.Telecom.Call.PUT_ON_HOLD);
|
sendCallAction(android.companion.Telecom.PUT_ON_HOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUnhold() {
|
public void onUnhold() {
|
||||||
sendCallAction(android.companion.Telecom.Call.TAKE_OFF_HOLD);
|
sendCallAction(android.companion.Telecom.TAKE_OFF_HOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMuteStateChanged(boolean isMuted) {
|
public void onMuteStateChanged(boolean isMuted) {
|
||||||
sendCallAction(isMuted ? android.companion.Telecom.Call.MUTE
|
sendCallAction(isMuted ? android.companion.Telecom.MUTE
|
||||||
: android.companion.Telecom.Call.UNMUTE);
|
: android.companion.Telecom.UNMUTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDisconnect() {
|
public void onDisconnect() {
|
||||||
sendCallAction(android.companion.Telecom.Call.END);
|
sendCallAction(android.companion.Telecom.END);
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStateChanged(int state) {
|
|
||||||
mCallback.sendStateChange(mAssociationId, mCall.getId(), state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendCallAction(int action) {
|
private void sendCallAction(int action) {
|
||||||
|
|||||||
@@ -33,14 +33,14 @@ import java.util.Set;
|
|||||||
/** A read-only snapshot of an {@link ContextSyncMessage}. */
|
/** A read-only snapshot of an {@link ContextSyncMessage}. */
|
||||||
class CallMetadataSyncData {
|
class CallMetadataSyncData {
|
||||||
|
|
||||||
final Map<Long, CallMetadataSyncData.Call> mCalls = new HashMap<>();
|
final Map<String, CallMetadataSyncData.Call> mCalls = new HashMap<>();
|
||||||
final List<CallMetadataSyncData.Call> mRequests = new ArrayList<>();
|
final List<CallMetadataSyncData.Call> mRequests = new ArrayList<>();
|
||||||
|
|
||||||
public void addCall(CallMetadataSyncData.Call call) {
|
public void addCall(CallMetadataSyncData.Call call) {
|
||||||
mCalls.put(call.getId(), call);
|
mCalls.put(call.getId(), call);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasCall(long id) {
|
public boolean hasCall(String id) {
|
||||||
return mCalls.containsKey(id);
|
return mCalls.containsKey(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ class CallMetadataSyncData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class Call implements Parcelable {
|
public static class Call implements Parcelable {
|
||||||
private long mId;
|
private String mId;
|
||||||
private String mCallerId;
|
private String mCallerId;
|
||||||
private byte[] mAppIcon;
|
private byte[] mAppIcon;
|
||||||
private String mAppName;
|
private String mAppName;
|
||||||
@@ -67,7 +67,7 @@ class CallMetadataSyncData {
|
|||||||
|
|
||||||
public static Call fromParcel(Parcel parcel) {
|
public static Call fromParcel(Parcel parcel) {
|
||||||
final Call call = new Call();
|
final Call call = new Call();
|
||||||
call.setId(parcel.readLong());
|
call.setId(parcel.readString());
|
||||||
call.setCallerId(parcel.readString());
|
call.setCallerId(parcel.readString());
|
||||||
call.setAppIcon(parcel.readBlob());
|
call.setAppIcon(parcel.readBlob());
|
||||||
call.setAppName(parcel.readString());
|
call.setAppName(parcel.readString());
|
||||||
@@ -82,7 +82,7 @@ class CallMetadataSyncData {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeToParcel(Parcel parcel, int parcelableFlags) {
|
public void writeToParcel(Parcel parcel, int parcelableFlags) {
|
||||||
parcel.writeLong(mId);
|
parcel.writeString(mId);
|
||||||
parcel.writeString(mCallerId);
|
parcel.writeString(mCallerId);
|
||||||
parcel.writeBlob(mAppIcon);
|
parcel.writeBlob(mAppIcon);
|
||||||
parcel.writeString(mAppName);
|
parcel.writeString(mAppName);
|
||||||
@@ -94,7 +94,7 @@ class CallMetadataSyncData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setId(long id) {
|
void setId(String id) {
|
||||||
mId = id;
|
mId = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ class CallMetadataSyncData {
|
|||||||
mControls.add(control);
|
mControls.add(control);
|
||||||
}
|
}
|
||||||
|
|
||||||
long getId() {
|
String getId() {
|
||||||
return mId;
|
return mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ class CallMetadataSyncData {
|
|||||||
@Override
|
@Override
|
||||||
public boolean equals(Object other) {
|
public boolean equals(Object other) {
|
||||||
if (other instanceof CallMetadataSyncData.Call) {
|
if (other instanceof CallMetadataSyncData.Call) {
|
||||||
return ((Call) other).getId() == getId();
|
return mId != null && mId.equals(((Call) other).getId());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ import java.util.stream.Collectors;
|
|||||||
public class CallMetadataSyncInCallService extends InCallService {
|
public class CallMetadataSyncInCallService extends InCallService {
|
||||||
|
|
||||||
private static final String TAG = "CallMetadataIcs";
|
private static final String TAG = "CallMetadataIcs";
|
||||||
private static final long NOT_VALID = -1L;
|
|
||||||
|
|
||||||
private CompanionDeviceManagerServiceInternal mCdmsi;
|
private CompanionDeviceManagerServiceInternal mCdmsi;
|
||||||
|
|
||||||
@@ -71,7 +70,7 @@ public class CallMetadataSyncInCallService extends InCallService {
|
|||||||
callMetadataSyncData.getRequests().iterator();
|
callMetadataSyncData.getRequests().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
final CallMetadataSyncData.Call call = iterator.next();
|
final CallMetadataSyncData.Call call = iterator.next();
|
||||||
if (call.getId() != 0) {
|
if (call.getId() != null) {
|
||||||
// The call is already assigned an id; treat as control invocations.
|
// The call is already assigned an id; treat as control invocations.
|
||||||
for (int control : call.getControls()) {
|
for (int control : call.getControls()) {
|
||||||
processCallControlAction(call.getId(), control);
|
processCallControlAction(call.getId(), control);
|
||||||
@@ -81,41 +80,41 @@ public class CallMetadataSyncInCallService extends InCallService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processCallControlAction(long crossDeviceCallId,
|
private void processCallControlAction(String crossDeviceCallId,
|
||||||
int callControlAction) {
|
int callControlAction) {
|
||||||
final CrossDeviceCall crossDeviceCall = getCallForId(crossDeviceCallId,
|
final CrossDeviceCall crossDeviceCall = getCallForId(crossDeviceCallId,
|
||||||
mCurrentCalls.values());
|
mCurrentCalls.values());
|
||||||
switch (callControlAction) {
|
switch (callControlAction) {
|
||||||
case android.companion.Telecom.Call.ACCEPT:
|
case android.companion.Telecom.ACCEPT:
|
||||||
if (crossDeviceCall != null) {
|
if (crossDeviceCall != null) {
|
||||||
crossDeviceCall.doAccept();
|
crossDeviceCall.doAccept();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.REJECT:
|
case android.companion.Telecom.REJECT:
|
||||||
if (crossDeviceCall != null) {
|
if (crossDeviceCall != null) {
|
||||||
crossDeviceCall.doReject();
|
crossDeviceCall.doReject();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.SILENCE:
|
case android.companion.Telecom.SILENCE:
|
||||||
doSilence();
|
doSilence();
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.MUTE:
|
case android.companion.Telecom.MUTE:
|
||||||
doMute();
|
doMute();
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.UNMUTE:
|
case android.companion.Telecom.UNMUTE:
|
||||||
doUnmute();
|
doUnmute();
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.END:
|
case android.companion.Telecom.END:
|
||||||
if (crossDeviceCall != null) {
|
if (crossDeviceCall != null) {
|
||||||
crossDeviceCall.doEnd();
|
crossDeviceCall.doEnd();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.PUT_ON_HOLD:
|
case android.companion.Telecom.PUT_ON_HOLD:
|
||||||
if (crossDeviceCall != null) {
|
if (crossDeviceCall != null) {
|
||||||
crossDeviceCall.doPutOnHold();
|
crossDeviceCall.doPutOnHold();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case android.companion.Telecom.Call.TAKE_OFF_HOLD:
|
case android.companion.Telecom.TAKE_OFF_HOLD:
|
||||||
if (crossDeviceCall != null) {
|
if (crossDeviceCall != null) {
|
||||||
crossDeviceCall.doTakeOffHold();
|
crossDeviceCall.doTakeOffHold();
|
||||||
}
|
}
|
||||||
@@ -171,12 +170,12 @@ public class CallMetadataSyncInCallService extends InCallService {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
CrossDeviceCall getCallForId(long crossDeviceCallId, Collection<CrossDeviceCall> calls) {
|
CrossDeviceCall getCallForId(String crossDeviceCallId, Collection<CrossDeviceCall> calls) {
|
||||||
if (crossDeviceCallId == NOT_VALID) {
|
if (crossDeviceCallId == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
for (CrossDeviceCall crossDeviceCall : calls) {
|
for (CrossDeviceCall crossDeviceCall : calls) {
|
||||||
if (crossDeviceCall.getId() == crossDeviceCallId) {
|
if (crossDeviceCallId.equals(crossDeviceCall.getId())) {
|
||||||
return crossDeviceCall;
|
return crossDeviceCall;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import android.graphics.Bitmap;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
import android.graphics.drawable.BitmapDrawable;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.telecom.Call;
|
import android.telecom.Call;
|
||||||
import android.telecom.CallAudioState;
|
import android.telecom.CallAudioState;
|
||||||
import android.telecom.VideoProfile;
|
import android.telecom.VideoProfile;
|
||||||
@@ -34,7 +33,7 @@ import com.android.internal.annotations.VisibleForTesting;
|
|||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.UUID;
|
||||||
|
|
||||||
/** Data holder for a telecom call and additional metadata. */
|
/** Data holder for a telecom call and additional metadata. */
|
||||||
public class CrossDeviceCall {
|
public class CrossDeviceCall {
|
||||||
@@ -45,9 +44,7 @@ public class CrossDeviceCall {
|
|||||||
"com.android.companion.datatransfer.contextsync.extra.CALL_ID";
|
"com.android.companion.datatransfer.contextsync.extra.CALL_ID";
|
||||||
private static final int APP_ICON_BITMAP_DIMENSION = 256;
|
private static final int APP_ICON_BITMAP_DIMENSION = 256;
|
||||||
|
|
||||||
private static final AtomicLong sNextId = new AtomicLong(1);
|
private final String mId;
|
||||||
|
|
||||||
private final long mId;
|
|
||||||
private Call mCall;
|
private Call mCall;
|
||||||
@VisibleForTesting boolean mIsEnterprise;
|
@VisibleForTesting boolean mIsEnterprise;
|
||||||
@VisibleForTesting boolean mIsOtt;
|
@VisibleForTesting boolean mIsOtt;
|
||||||
@@ -64,14 +61,14 @@ public class CrossDeviceCall {
|
|||||||
CallAudioState callAudioState) {
|
CallAudioState callAudioState) {
|
||||||
this(packageManager, call.getDetails(), callAudioState);
|
this(packageManager, call.getDetails(), callAudioState);
|
||||||
mCall = call;
|
mCall = call;
|
||||||
final Bundle extras = new Bundle();
|
call.putExtra(EXTRA_CALL_ID, mId);
|
||||||
extras.putLong(EXTRA_CALL_ID, mId);
|
|
||||||
call.putExtras(extras);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CrossDeviceCall(PackageManager packageManager, Call.Details callDetails,
|
CrossDeviceCall(PackageManager packageManager, Call.Details callDetails,
|
||||||
CallAudioState callAudioState) {
|
CallAudioState callAudioState) {
|
||||||
mId = sNextId.getAndIncrement();
|
final String predefinedId = callDetails.getIntentExtras() != null
|
||||||
|
? callDetails.getIntentExtras().getString(EXTRA_CALL_ID) : null;
|
||||||
|
mId = predefinedId != null ? predefinedId : UUID.randomUUID().toString();
|
||||||
mCallingAppPackageName =
|
mCallingAppPackageName =
|
||||||
callDetails.getAccountHandle().getComponentName().getPackageName();
|
callDetails.getAccountHandle().getComponentName().getPackageName();
|
||||||
mIsOtt = (callDetails.getCallCapabilities() & Call.Details.PROPERTY_SELF_MANAGED)
|
mIsOtt = (callDetails.getCallCapabilities() & Call.Details.PROPERTY_SELF_MANAGED)
|
||||||
@@ -145,7 +142,7 @@ public class CrossDeviceCall {
|
|||||||
if (mStatus == android.companion.Telecom.Call.RINGING) {
|
if (mStatus == android.companion.Telecom.Call.RINGING) {
|
||||||
mStatus = android.companion.Telecom.Call.RINGING_SILENCED;
|
mStatus = android.companion.Telecom.Call.RINGING_SILENCED;
|
||||||
}
|
}
|
||||||
mControls.remove(android.companion.Telecom.Call.SILENCE);
|
mControls.remove(android.companion.Telecom.SILENCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@@ -156,26 +153,26 @@ public class CrossDeviceCall {
|
|||||||
mControls.clear();
|
mControls.clear();
|
||||||
if (mStatus == android.companion.Telecom.Call.RINGING
|
if (mStatus == android.companion.Telecom.Call.RINGING
|
||||||
|| mStatus == android.companion.Telecom.Call.RINGING_SILENCED) {
|
|| mStatus == android.companion.Telecom.Call.RINGING_SILENCED) {
|
||||||
mControls.add(android.companion.Telecom.Call.ACCEPT);
|
mControls.add(android.companion.Telecom.ACCEPT);
|
||||||
mControls.add(android.companion.Telecom.Call.REJECT);
|
mControls.add(android.companion.Telecom.REJECT);
|
||||||
if (mStatus == android.companion.Telecom.Call.RINGING) {
|
if (mStatus == android.companion.Telecom.Call.RINGING) {
|
||||||
mControls.add(android.companion.Telecom.Call.SILENCE);
|
mControls.add(android.companion.Telecom.SILENCE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mStatus == android.companion.Telecom.Call.ONGOING
|
if (mStatus == android.companion.Telecom.Call.ONGOING
|
||||||
|| mStatus == android.companion.Telecom.Call.ON_HOLD) {
|
|| mStatus == android.companion.Telecom.Call.ON_HOLD) {
|
||||||
mControls.add(android.companion.Telecom.Call.END);
|
mControls.add(android.companion.Telecom.END);
|
||||||
if (callDetails.can(Call.Details.CAPABILITY_HOLD)) {
|
if (callDetails.can(Call.Details.CAPABILITY_HOLD)) {
|
||||||
mControls.add(
|
mControls.add(
|
||||||
mStatus == android.companion.Telecom.Call.ON_HOLD
|
mStatus == android.companion.Telecom.Call.ON_HOLD
|
||||||
? android.companion.Telecom.Call.TAKE_OFF_HOLD
|
? android.companion.Telecom.TAKE_OFF_HOLD
|
||||||
: android.companion.Telecom.Call.PUT_ON_HOLD);
|
: android.companion.Telecom.PUT_ON_HOLD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mStatus == android.companion.Telecom.Call.ONGOING && callDetails.can(
|
if (mStatus == android.companion.Telecom.Call.ONGOING && callDetails.can(
|
||||||
Call.Details.CAPABILITY_MUTE)) {
|
Call.Details.CAPABILITY_MUTE)) {
|
||||||
mControls.add(mIsMuted ? android.companion.Telecom.Call.UNMUTE
|
mControls.add(mIsMuted ? android.companion.Telecom.UNMUTE
|
||||||
: android.companion.Telecom.Call.MUTE);
|
: android.companion.Telecom.MUTE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,7 +209,7 @@ public class CrossDeviceCall {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getId() {
|
public String getId() {
|
||||||
return mId;
|
return mId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ public class CrossDeviceSyncController {
|
|||||||
while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
|
while (pis.nextField() != ProtoInputStream.NO_MORE_FIELDS) {
|
||||||
switch (pis.getFieldNumber()) {
|
switch (pis.getFieldNumber()) {
|
||||||
case (int) Telecom.Call.ID:
|
case (int) Telecom.Call.ID:
|
||||||
call.setId(pis.readLong(Telecom.Call.ID));
|
call.setId(pis.readString(Telecom.Call.ID));
|
||||||
break;
|
break;
|
||||||
case (int) Telecom.Call.ORIGIN:
|
case (int) Telecom.Call.ORIGIN:
|
||||||
final long originToken = pis.start(Telecom.Call.ORIGIN);
|
final long originToken = pis.start(Telecom.Call.ORIGIN);
|
||||||
@@ -336,7 +336,7 @@ public class CrossDeviceSyncController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Create a call control message. */
|
/** Create a call control message. */
|
||||||
public static byte[] createCallControlMessage(long callId, int control) {
|
public static byte[] createCallControlMessage(String callId, int control) {
|
||||||
final ProtoOutputStream pos = new ProtoOutputStream();
|
final ProtoOutputStream pos = new ProtoOutputStream();
|
||||||
pos.write(ContextSyncMessage.VERSION, CURRENT_VERSION);
|
pos.write(ContextSyncMessage.VERSION, CURRENT_VERSION);
|
||||||
final long telecomToken = pos.start(ContextSyncMessage.TELECOM);
|
final long telecomToken = pos.start(ContextSyncMessage.TELECOM);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class CallMetadataSyncDataTest {
|
|||||||
@Test
|
@Test
|
||||||
public void call_writeToParcel_fromParcel_reconstructsSuccessfully() {
|
public void call_writeToParcel_fromParcel_reconstructsSuccessfully() {
|
||||||
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
|
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
|
||||||
final long id = 5;
|
final String id = "5";
|
||||||
final String callerId = "callerId";
|
final String callerId = "callerId";
|
||||||
final byte[] appIcon = "appIcon".getBytes();
|
final byte[] appIcon = "appIcon".getBytes();
|
||||||
final String appName = "appName";
|
final String appName = "appName";
|
||||||
|
|||||||
@@ -47,24 +47,24 @@ public class CallMetadataSyncInCallServiceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getCallForId_invalid() {
|
public void getCallForId_invalid() {
|
||||||
when(mMockCrossDeviceCall.getId()).thenReturn(-1L);
|
when(mMockCrossDeviceCall.getId()).thenReturn(null);
|
||||||
final CrossDeviceCall call = mSyncInCallService.getCallForId(-1L,
|
final CrossDeviceCall call = mSyncInCallService.getCallForId(null,
|
||||||
List.of(mMockCrossDeviceCall));
|
List.of(mMockCrossDeviceCall));
|
||||||
assertWithMessage("Unexpectedly found a match for call id").that(call).isNull();
|
assertWithMessage("Unexpectedly found a match for call id").that(call).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getCallForId_noMatch() {
|
public void getCallForId_noMatch() {
|
||||||
when(mMockCrossDeviceCall.getId()).thenReturn(5L);
|
when(mMockCrossDeviceCall.getId()).thenReturn("123abc");
|
||||||
final CrossDeviceCall call = mSyncInCallService.getCallForId(1L,
|
final CrossDeviceCall call = mSyncInCallService.getCallForId("abc123",
|
||||||
List.of(mMockCrossDeviceCall));
|
List.of(mMockCrossDeviceCall));
|
||||||
assertWithMessage("Unexpectedly found a match for call id").that(call).isNull();
|
assertWithMessage("Unexpectedly found a match for call id").that(call).isNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getCallForId_hasMatch() {
|
public void getCallForId_hasMatch() {
|
||||||
when(mMockCrossDeviceCall.getId()).thenReturn(5L);
|
when(mMockCrossDeviceCall.getId()).thenReturn("123abc");
|
||||||
final CrossDeviceCall call = mSyncInCallService.getCallForId(5L,
|
final CrossDeviceCall call = mSyncInCallService.getCallForId("123abc",
|
||||||
List.of(mMockCrossDeviceCall));
|
List.of(mMockCrossDeviceCall));
|
||||||
assertWithMessage("Unexpectedly did not find a match for call id").that(call).isNotNull();
|
assertWithMessage("Unexpectedly did not find a match for call id").that(call).isNotNull();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,9 +62,9 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.RINGING);
|
.isEqualTo(android.companion.Telecom.Call.RINGING);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.ACCEPT,
|
.isEqualTo(Set.of(android.companion.Telecom.ACCEPT,
|
||||||
android.companion.Telecom.Call.REJECT,
|
android.companion.Telecom.REJECT,
|
||||||
android.companion.Telecom.Call.SILENCE));
|
android.companion.Telecom.SILENCE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -77,9 +77,9 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.END,
|
.isEqualTo(Set.of(android.companion.Telecom.END,
|
||||||
android.companion.Telecom.Call.MUTE,
|
android.companion.Telecom.MUTE,
|
||||||
android.companion.Telecom.Call.PUT_ON_HOLD));
|
android.companion.Telecom.PUT_ON_HOLD));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -92,8 +92,8 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.ON_HOLD);
|
.isEqualTo(android.companion.Telecom.Call.ON_HOLD);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.END,
|
.isEqualTo(Set.of(android.companion.Telecom.END,
|
||||||
android.companion.Telecom.Call.TAKE_OFF_HOLD));
|
android.companion.Telecom.TAKE_OFF_HOLD));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -106,8 +106,8 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.END,
|
.isEqualTo(Set.of(android.companion.Telecom.END,
|
||||||
android.companion.Telecom.Call.MUTE));
|
android.companion.Telecom.MUTE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -120,8 +120,8 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.END,
|
.isEqualTo(Set.of(android.companion.Telecom.END,
|
||||||
android.companion.Telecom.Call.PUT_ON_HOLD));
|
android.companion.Telecom.PUT_ON_HOLD));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -134,17 +134,17 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status for ringing state").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status for ringing state").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.RINGING);
|
.isEqualTo(android.companion.Telecom.Call.RINGING);
|
||||||
assertWithMessage("Wrong controls for ringing state").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls for ringing state").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.ACCEPT,
|
.isEqualTo(Set.of(android.companion.Telecom.ACCEPT,
|
||||||
android.companion.Telecom.Call.REJECT,
|
android.companion.Telecom.REJECT,
|
||||||
android.companion.Telecom.Call.SILENCE));
|
android.companion.Telecom.SILENCE));
|
||||||
crossDeviceCall.updateCallDetails(createCallDetails(Call.STATE_ACTIVE,
|
crossDeviceCall.updateCallDetails(createCallDetails(Call.STATE_ACTIVE,
|
||||||
Call.Details.CAPABILITY_HOLD | Call.Details.CAPABILITY_MUTE));
|
Call.Details.CAPABILITY_HOLD | Call.Details.CAPABILITY_MUTE));
|
||||||
assertWithMessage("Wrong status for active state").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status for active state").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
||||||
assertWithMessage("Wrong controls for active state").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls for active state").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.END,
|
.isEqualTo(Set.of(android.companion.Telecom.END,
|
||||||
android.companion.Telecom.Call.MUTE,
|
android.companion.Telecom.MUTE,
|
||||||
android.companion.Telecom.Call.PUT_ON_HOLD));
|
android.companion.Telecom.PUT_ON_HOLD));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -158,8 +158,8 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.RINGING_SILENCED);
|
.isEqualTo(android.companion.Telecom.Call.RINGING_SILENCED);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.ACCEPT,
|
.isEqualTo(Set.of(android.companion.Telecom.ACCEPT,
|
||||||
android.companion.Telecom.Call.REJECT));
|
android.companion.Telecom.REJECT));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -173,9 +173,9 @@ public class CrossDeviceCallTest {
|
|||||||
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
assertWithMessage("Wrong status").that(crossDeviceCall.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
.isEqualTo(android.companion.Telecom.Call.ONGOING);
|
||||||
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
assertWithMessage("Wrong controls").that(crossDeviceCall.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.END,
|
.isEqualTo(Set.of(android.companion.Telecom.END,
|
||||||
android.companion.Telecom.Call.MUTE,
|
android.companion.Telecom.MUTE,
|
||||||
android.companion.Telecom.Call.PUT_ON_HOLD));
|
android.companion.Telecom.PUT_ON_HOLD));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class CrossDeviceSyncControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void processTelecomDataFromSync_createCallUpdateMessage_hasCalls() {
|
public void processTelecomDataFromSync_createCallUpdateMessage_hasCalls() {
|
||||||
when(mMockCrossDeviceCall.getId()).thenReturn(5L);
|
when(mMockCrossDeviceCall.getId()).thenReturn("123abc");
|
||||||
final String callerId = "Firstname Lastname";
|
final String callerId = "Firstname Lastname";
|
||||||
when(mMockCrossDeviceCall.getReadableCallerId(anyBoolean())).thenReturn(callerId);
|
when(mMockCrossDeviceCall.getReadableCallerId(anyBoolean())).thenReturn(callerId);
|
||||||
final String appName = "AppName";
|
final String appName = "AppName";
|
||||||
@@ -90,9 +90,9 @@ public class CrossDeviceSyncControllerTest {
|
|||||||
when(mMockCrossDeviceCall.getCallingAppIcon()).thenReturn(appIcon.getBytes());
|
when(mMockCrossDeviceCall.getCallingAppIcon()).thenReturn(appIcon.getBytes());
|
||||||
when(mMockCrossDeviceCall.getStatus()).thenReturn(android.companion.Telecom.Call.RINGING);
|
when(mMockCrossDeviceCall.getStatus()).thenReturn(android.companion.Telecom.Call.RINGING);
|
||||||
final Set<Integer> controls = Set.of(
|
final Set<Integer> controls = Set.of(
|
||||||
android.companion.Telecom.Call.ACCEPT,
|
android.companion.Telecom.ACCEPT,
|
||||||
android.companion.Telecom.Call.REJECT,
|
android.companion.Telecom.REJECT,
|
||||||
android.companion.Telecom.Call.SILENCE);
|
android.companion.Telecom.SILENCE);
|
||||||
when(mMockCrossDeviceCall.getControls()).thenReturn(controls);
|
when(mMockCrossDeviceCall.getControls()).thenReturn(controls);
|
||||||
final byte[] data = mCrossDeviceSyncController.createCallUpdateMessage(
|
final byte[] data = mCrossDeviceSyncController.createCallUpdateMessage(
|
||||||
new HashSet<>(List.of(mMockCrossDeviceCall)),
|
new HashSet<>(List.of(mMockCrossDeviceCall)),
|
||||||
@@ -103,35 +103,33 @@ public class CrossDeviceSyncControllerTest {
|
|||||||
callMetadataSyncData.getCalls()).hasSize(1);
|
callMetadataSyncData.getCalls()).hasSize(1);
|
||||||
final CallMetadataSyncData.Call call =
|
final CallMetadataSyncData.Call call =
|
||||||
callMetadataSyncData.getCalls().stream().findAny().orElseThrow();
|
callMetadataSyncData.getCalls().stream().findAny().orElseThrow();
|
||||||
assertWithMessage("Wrong id").that(call.getId()).isEqualTo(5L);
|
assertWithMessage("Wrong id").that(call.getId()).isEqualTo("123abc");
|
||||||
assertWithMessage("Wrong app icon").that(new String(call.getAppIcon())).isEqualTo(appIcon);
|
assertWithMessage("Wrong app icon").that(new String(call.getAppIcon())).isEqualTo(appIcon);
|
||||||
assertWithMessage("Wrong app name").that(call.getAppName()).isEqualTo(appName);
|
assertWithMessage("Wrong app name").that(call.getAppName()).isEqualTo(appName);
|
||||||
assertWithMessage("Wrong caller id").that(call.getCallerId()).isEqualTo(callerId);
|
assertWithMessage("Wrong caller id").that(call.getCallerId()).isEqualTo(callerId);
|
||||||
assertWithMessage("Wrong status").that(call.getStatus())
|
assertWithMessage("Wrong status").that(call.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.RINGING);
|
.isEqualTo(android.companion.Telecom.Call.RINGING);
|
||||||
assertWithMessage("Wrong controls").that(call.getControls()).isEqualTo(controls);
|
assertWithMessage("Wrong controls").that(call.getControls()).isEqualTo(controls);
|
||||||
assertWithMessage("Unexpectedly has requests").that(
|
|
||||||
callMetadataSyncData.getRequests()).isEmpty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void processTelecomDataFromMessage_createCallControlMessage_hasCallControlRequest() {
|
public void processTelecomDataFromMessage_createCallControlMessage_hasCallControlRequest() {
|
||||||
final byte[] data = CrossDeviceSyncController.createCallControlMessage(
|
final byte[] data = CrossDeviceSyncController.createCallControlMessage(
|
||||||
/* callId= */ 5L, /* status= */ android.companion.Telecom.Call.ACCEPT);
|
/* callId= */ "123abc", /* status= */ android.companion.Telecom.ACCEPT);
|
||||||
final CallMetadataSyncData callMetadataSyncData =
|
final CallMetadataSyncData callMetadataSyncData =
|
||||||
mCrossDeviceSyncController.processTelecomDataFromSync(data);
|
mCrossDeviceSyncController.processTelecomDataFromSync(data);
|
||||||
assertWithMessage("Wrong number of requests").that(
|
assertWithMessage("Wrong number of requests").that(
|
||||||
callMetadataSyncData.getRequests()).hasSize(1);
|
callMetadataSyncData.getRequests()).hasSize(1);
|
||||||
final CallMetadataSyncData.Call call =
|
final CallMetadataSyncData.Call call =
|
||||||
callMetadataSyncData.getRequests().stream().findAny().orElseThrow();
|
callMetadataSyncData.getRequests().stream().findAny().orElseThrow();
|
||||||
assertWithMessage("Wrong id").that(call.getId()).isEqualTo(5L);
|
assertWithMessage("Wrong id").that(call.getId()).isEqualTo("123abc");
|
||||||
assertWithMessage("Wrong app icon").that(call.getAppIcon()).isNull();
|
assertWithMessage("Wrong app icon").that(call.getAppIcon()).isNull();
|
||||||
assertWithMessage("Wrong app name").that(call.getAppName()).isNull();
|
assertWithMessage("Wrong app name").that(call.getAppName()).isNull();
|
||||||
assertWithMessage("Wrong caller id").that(call.getCallerId()).isNull();
|
assertWithMessage("Wrong caller id").that(call.getCallerId()).isNull();
|
||||||
assertWithMessage("Wrong status").that(call.getStatus())
|
assertWithMessage("Wrong status").that(call.getStatus())
|
||||||
.isEqualTo(android.companion.Telecom.Call.UNKNOWN_STATUS);
|
.isEqualTo(android.companion.Telecom.Call.UNKNOWN_STATUS);
|
||||||
assertWithMessage("Wrong controls").that(call.getControls())
|
assertWithMessage("Wrong controls").that(call.getControls())
|
||||||
.isEqualTo(Set.of(android.companion.Telecom.Call.ACCEPT));
|
.isEqualTo(Set.of(android.companion.Telecom.ACCEPT));
|
||||||
assertWithMessage("Unexpectedly has active calls").that(
|
assertWithMessage("Unexpectedly has active calls").that(
|
||||||
callMetadataSyncData.getCalls()).isEmpty();
|
callMetadataSyncData.getCalls()).isEmpty();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user