Merge "Add additional faciliator identifying information" into udc-dev

This commit is contained in:
TreeHugger Robot
2023-06-21 06:10:47 +00:00
committed by Android (Google) Code Review
8 changed files with 79 additions and 16 deletions

View File

@@ -88,6 +88,8 @@ message Telecom {
string name = 1; string name = 1;
// Unique identifier for this facilitator, such as a package name. // Unique identifier for this facilitator, such as a package name.
string identifier = 2; string identifier = 2;
// Extended identifier for this facilitator.
string extended_identifier = 3;
} }
enum Control { enum Control {

View File

@@ -175,7 +175,8 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
: handle.getComponentName().getShortClassName(), : handle.getComponentName().getShortClassName(),
phoneAccount != null ? phoneAccount.getExtras().getString( phoneAccount != null ? phoneAccount.getExtras().getString(
CrossDeviceSyncController.EXTRA_CALL_FACILITATOR_ID) CrossDeviceSyncController.EXTRA_CALL_FACILITATOR_ID)
: handle.getComponentName().getPackageName()); : handle.getComponentName().getPackageName(),
handle.getComponentName().flattenToString());
call.setFacilitator(callFacilitator); call.setFacilitator(callFacilitator);
call.setDirection(android.companion.Telecom.Call.OUTGOING); call.setDirection(android.companion.Telecom.Call.OUTGOING);
call.setCallerId(connectionRequest.getAddress().getSchemeSpecificPart()); call.setCallerId(connectionRequest.getAddress().getSchemeSpecificPart());

View File

@@ -75,13 +75,15 @@ class CallMetadataSyncData {
public static class CallFacilitator { public static class CallFacilitator {
private String mName; private String mName;
private String mIdentifier; private String mIdentifier;
private String mExtendedIdentifier;
private boolean mIsTel; private boolean mIsTel;
CallFacilitator() {} CallFacilitator() {}
CallFacilitator(String name, String identifier) { CallFacilitator(String name, String identifier, String extendedIdentifier) {
mName = name; mName = name;
mIdentifier = identifier; mIdentifier = identifier;
mExtendedIdentifier = extendedIdentifier;
} }
public String getName() { public String getName() {
@@ -92,6 +94,10 @@ class CallMetadataSyncData {
return mIdentifier; return mIdentifier;
} }
public String getExtendedIdentifier() {
return mExtendedIdentifier;
}
public boolean isTel() { public boolean isTel() {
return mIsTel; return mIsTel;
} }
@@ -104,6 +110,10 @@ class CallMetadataSyncData {
mIdentifier = identifier; mIdentifier = identifier;
} }
public void setExtendedIdentifier(String extendedIdentifier) {
mExtendedIdentifier = extendedIdentifier;
}
public void setIsTel(boolean isTel) { public void setIsTel(boolean isTel) {
mIsTel = isTel; mIsTel = isTel;
} }
@@ -170,6 +180,8 @@ class CallMetadataSyncData {
"com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_NAME"; "com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_NAME";
private static final String EXTRA_FACILITATOR_ID = private static final String EXTRA_FACILITATOR_ID =
"com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_ID"; "com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_ID";
private static final String EXTRA_FACILITATOR_EXT_ID =
"com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_EXT_ID";
private static final String EXTRA_STATUS = private static final String EXTRA_STATUS =
"com.android.server.companion.datatransfer.contextsync.extra.STATUS"; "com.android.server.companion.datatransfer.contextsync.extra.STATUS";
private static final String EXTRA_DIRECTION = private static final String EXTRA_DIRECTION =
@@ -192,7 +204,10 @@ class CallMetadataSyncData {
call.setAppIcon(bundle.getByteArray(EXTRA_APP_ICON)); call.setAppIcon(bundle.getByteArray(EXTRA_APP_ICON));
final String facilitatorName = bundle.getString(EXTRA_FACILITATOR_NAME); final String facilitatorName = bundle.getString(EXTRA_FACILITATOR_NAME);
final String facilitatorIdentifier = bundle.getString(EXTRA_FACILITATOR_ID); final String facilitatorIdentifier = bundle.getString(EXTRA_FACILITATOR_ID);
call.setFacilitator(new CallFacilitator(facilitatorName, facilitatorIdentifier)); final String facilitatorExtendedIdentifier =
bundle.getString(EXTRA_FACILITATOR_EXT_ID);
call.setFacilitator(new CallFacilitator(facilitatorName, facilitatorIdentifier,
facilitatorExtendedIdentifier));
call.setStatus(bundle.getInt(EXTRA_STATUS)); call.setStatus(bundle.getInt(EXTRA_STATUS));
call.setDirection(bundle.getInt(EXTRA_DIRECTION)); call.setDirection(bundle.getInt(EXTRA_DIRECTION));
call.setControls(new HashSet<>(bundle.getIntegerArrayList(EXTRA_CONTROLS))); call.setControls(new HashSet<>(bundle.getIntegerArrayList(EXTRA_CONTROLS)));
@@ -207,6 +222,7 @@ class CallMetadataSyncData {
bundle.putByteArray(EXTRA_APP_ICON, mAppIcon); bundle.putByteArray(EXTRA_APP_ICON, mAppIcon);
bundle.putString(EXTRA_FACILITATOR_NAME, mFacilitator.getName()); bundle.putString(EXTRA_FACILITATOR_NAME, mFacilitator.getName());
bundle.putString(EXTRA_FACILITATOR_ID, mFacilitator.getIdentifier()); bundle.putString(EXTRA_FACILITATOR_ID, mFacilitator.getIdentifier());
bundle.putString(EXTRA_FACILITATOR_EXT_ID, mFacilitator.getExtendedIdentifier());
bundle.putInt(EXTRA_STATUS, mStatus); bundle.putInt(EXTRA_STATUS, mStatus);
bundle.putInt(EXTRA_DIRECTION, mDirection); bundle.putInt(EXTRA_DIRECTION, mDirection);
bundle.putIntegerArrayList(EXTRA_CONTROLS, new ArrayList<>(mControls)); bundle.putIntegerArrayList(EXTRA_CONTROLS, new ArrayList<>(mControls));

View File

@@ -48,6 +48,7 @@ public class CrossDeviceCall {
private final int mUserId; private final int mUserId;
@VisibleForTesting boolean mIsEnterprise; @VisibleForTesting boolean mIsEnterprise;
private final String mCallingAppPackageName; private final String mCallingAppPackageName;
private final String mSerializedPhoneAccountHandle;
private String mCallingAppName; private String mCallingAppName;
private byte[] mCallingAppIcon; private byte[] mCallingAppIcon;
private String mCallerDisplayName; private String mCallerDisplayName;
@@ -89,6 +90,8 @@ public class CrossDeviceCall {
.equals(handle.getComponentName()); .equals(handle.getComponentName());
mCallingAppPackageName = handle != null mCallingAppPackageName = handle != null
? callDetails.getAccountHandle().getComponentName().getPackageName() : ""; ? callDetails.getAccountHandle().getComponentName().getPackageName() : "";
mSerializedPhoneAccountHandle = handle != null
? handle.getId() + SEPARATOR + handle.getComponentName().flattenToString() : "";
mIsEnterprise = (callDetails.getCallProperties() & Call.Details.PROPERTY_ENTERPRISE_CALL) mIsEnterprise = (callDetails.getCallProperties() & Call.Details.PROPERTY_ENTERPRISE_CALL)
== Call.Details.PROPERTY_ENTERPRISE_CALL; == Call.Details.PROPERTY_ENTERPRISE_CALL;
final PackageManager packageManager = context.getPackageManager(); final PackageManager packageManager = context.getPackageManager();
@@ -247,6 +250,10 @@ public class CrossDeviceCall {
return mCallingAppPackageName; return mCallingAppPackageName;
} }
public String getSerializedPhoneAccountHandle() {
return mSerializedPhoneAccountHandle;
}
/** /**
* Get a human-readable "caller id" to display as the origin of the call. * Get a human-readable "caller id" to display as the origin of the call.
* *

View File

@@ -280,7 +280,7 @@ public class CrossDeviceSyncController {
mCallFacilitators.add( mCallFacilitators.add(
new CallMetadataSyncData.CallFacilitator( new CallMetadataSyncData.CallFacilitator(
defaultOutgoingTelAccount.getLabel().toString(), defaultOutgoingTelAccount.getLabel().toString(),
FACILITATOR_ID_SYSTEM)); FACILITATOR_ID_SYSTEM, FACILITATOR_ID_SYSTEM));
} }
} }
} }
@@ -574,6 +574,10 @@ public class CrossDeviceSyncController {
case (int) Telecom.CallFacilitator.IDENTIFIER: case (int) Telecom.CallFacilitator.IDENTIFIER:
facilitator.setIdentifier(pis.readString(Telecom.CallFacilitator.IDENTIFIER)); facilitator.setIdentifier(pis.readString(Telecom.CallFacilitator.IDENTIFIER));
break; break;
case (int) Telecom.CallFacilitator.EXTENDED_IDENTIFIER:
facilitator.setExtendedIdentifier(
pis.readString(Telecom.CallFacilitator.EXTENDED_IDENTIFIER));
break;
default: default:
Slog.e(TAG, "Unhandled field in Facilitator:" Slog.e(TAG, "Unhandled field in Facilitator:"
+ ProtoUtils.currentFieldToString(pis)); + ProtoUtils.currentFieldToString(pis));
@@ -649,6 +653,8 @@ public class CrossDeviceSyncController {
final long facilitatorToken = pos.start(Telecom.Call.Origin.FACILITATOR); final long facilitatorToken = pos.start(Telecom.Call.Origin.FACILITATOR);
pos.write(Telecom.CallFacilitator.NAME, call.getCallingAppName()); pos.write(Telecom.CallFacilitator.NAME, call.getCallingAppName());
pos.write(Telecom.CallFacilitator.IDENTIFIER, call.getCallingAppPackageName()); pos.write(Telecom.CallFacilitator.IDENTIFIER, call.getCallingAppPackageName());
pos.write(Telecom.CallFacilitator.EXTENDED_IDENTIFIER,
call.getSerializedPhoneAccountHandle());
pos.end(facilitatorToken); pos.end(facilitatorToken);
pos.end(originToken); pos.end(originToken);
pos.write(Telecom.Call.STATUS, call.getStatus()); pos.write(Telecom.Call.STATUS, call.getStatus());
@@ -662,6 +668,8 @@ public class CrossDeviceSyncController {
final long facilitatorsToken = pos.start(Telecom.FACILITATORS); final long facilitatorsToken = pos.start(Telecom.FACILITATORS);
pos.write(Telecom.CallFacilitator.NAME, facilitator.getName()); pos.write(Telecom.CallFacilitator.NAME, facilitator.getName());
pos.write(Telecom.CallFacilitator.IDENTIFIER, facilitator.getIdentifier()); pos.write(Telecom.CallFacilitator.IDENTIFIER, facilitator.getIdentifier());
pos.write(Telecom.CallFacilitator.EXTENDED_IDENTIFIER,
facilitator.getExtendedIdentifier());
pos.end(facilitatorsToken); pos.end(facilitatorsToken);
} }
pos.end(telecomToken); pos.end(telecomToken);

View File

@@ -35,6 +35,7 @@ public class CallMetadataSyncDataTest {
final byte[] appIcon = "appIcon".getBytes(); final byte[] appIcon = "appIcon".getBytes();
final String appName = "appName"; final String appName = "appName";
final String appIdentifier = "com.google.test"; final String appIdentifier = "com.google.test";
final String extendedId = "com.google.test/.InCallService";
final int status = 1; final int status = 1;
final int direction = android.companion.Telecom.Call.OUTGOING; final int direction = android.companion.Telecom.Call.OUTGOING;
final int control1 = 2; final int control1 = 2;
@@ -43,7 +44,7 @@ public class CallMetadataSyncDataTest {
call.setCallerId(callerId); call.setCallerId(callerId);
call.setAppIcon(appIcon); call.setAppIcon(appIcon);
final CallMetadataSyncData.CallFacilitator callFacilitator = final CallMetadataSyncData.CallFacilitator callFacilitator =
new CallMetadataSyncData.CallFacilitator(appName, appIdentifier); new CallMetadataSyncData.CallFacilitator(appName, appIdentifier, extendedId);
call.setFacilitator(callFacilitator); call.setFacilitator(callFacilitator);
call.setStatus(status); call.setStatus(status);
call.setDirection(direction); call.setDirection(direction);
@@ -59,6 +60,8 @@ public class CallMetadataSyncDataTest {
assertThat(reconstructedCall.getAppIcon()).isEqualTo(appIcon); assertThat(reconstructedCall.getAppIcon()).isEqualTo(appIcon);
assertThat(reconstructedCall.getFacilitator().getName()).isEqualTo(appName); assertThat(reconstructedCall.getFacilitator().getName()).isEqualTo(appName);
assertThat(reconstructedCall.getFacilitator().getIdentifier()).isEqualTo(appIdentifier); assertThat(reconstructedCall.getFacilitator().getIdentifier()).isEqualTo(appIdentifier);
assertThat(reconstructedCall.getFacilitator().getExtendedIdentifier())
.isEqualTo(extendedId);
assertThat(reconstructedCall.getStatus()).isEqualTo(status); assertThat(reconstructedCall.getStatus()).isEqualTo(status);
assertThat(reconstructedCall.getDirection()).isEqualTo(direction); assertThat(reconstructedCall.getDirection()).isEqualTo(direction);
assertThat(reconstructedCall.getControls()).containsExactly(control1, control2); assertThat(reconstructedCall.getControls()).containsExactly(control1, control2);

View File

@@ -308,6 +308,18 @@ public class CrossDeviceCallTest {
.isEqualTo(CONTACT_DISPLAY_NAME); .isEqualTo(CONTACT_DISPLAY_NAME);
} }
@Test
public void getSerializedPhoneAccountHandle_serializesCorrectly() {
final CrossDeviceCall crossDeviceCall = new CrossDeviceCall(
InstrumentationRegistry.getTargetContext(),
mUninitializedCallDetails, /* callAudioState= */ null);
final String result = crossDeviceCall.getSerializedPhoneAccountHandle();
assertWithMessage("Wrong phone account handle serialization").that(result)
.isEqualTo("label::com.google.test/com.google.test.Activity");
}
private Call.Details createCallDetails(int state, int capabilities) { private Call.Details createCallDetails(int state, int capabilities) {
return createCallDetails(state, capabilities, /* hasContactName= */ true); return createCallDetails(state, capabilities, /* hasContactName= */ true);
} }

View File

@@ -195,7 +195,8 @@ public class CrossDeviceSyncControllerTest {
new CrossDeviceSyncController.PhoneAccountManager(mMockContext); new CrossDeviceSyncController.PhoneAccountManager(mMockContext);
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addFacilitator( callMetadataSyncData.addFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test")); new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData); phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
phoneAccountManager.updateFacilitators(0, callMetadataSyncData); phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
verify(mMockTelecomManager, times(1)).registerPhoneAccount(any()); verify(mMockTelecomManager, times(1)).registerPhoneAccount(any());
@@ -208,10 +209,12 @@ public class CrossDeviceSyncControllerTest {
new CrossDeviceSyncController.PhoneAccountManager(mMockContext); new CrossDeviceSyncController.PhoneAccountManager(mMockContext);
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addFacilitator( callMetadataSyncData.addFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test")); new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData); phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
callMetadataSyncData.addFacilitator( callMetadataSyncData.addFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test2")); new CallMetadataSyncData.CallFacilitator("name", "com.google.test2",
"com.google.test2/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData); phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
verify(mMockTelecomManager, times(2)).registerPhoneAccount(any()); verify(mMockTelecomManager, times(2)).registerPhoneAccount(any());
verify(mMockTelecomManager, times(0)).unregisterPhoneAccount(any()); verify(mMockTelecomManager, times(0)).unregisterPhoneAccount(any());
@@ -223,7 +226,8 @@ public class CrossDeviceSyncControllerTest {
new CrossDeviceSyncController.PhoneAccountManager(mMockContext); new CrossDeviceSyncController.PhoneAccountManager(mMockContext);
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addFacilitator( callMetadataSyncData.addFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test")); new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData); phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
final CallMetadataSyncData callMetadataSyncData2 = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData2 = new CallMetadataSyncData();
phoneAccountManager.updateFacilitators(0, callMetadataSyncData2); phoneAccountManager.updateFacilitators(0, callMetadataSyncData2);
@@ -236,7 +240,9 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc"); call.setId("123abc");
call.setDirection(android.companion.Telecom.Call.INCOMING); call.setDirection(android.companion.Telecom.Call.INCOMING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager = final CrossDeviceSyncController.CallManager callManager =
@@ -252,7 +258,9 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc"); call.setId("123abc");
call.setDirection(android.companion.Telecom.Call.OUTGOING); call.setDirection(android.companion.Telecom.Call.OUTGOING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
call.setCallerId("555-555-5555"); call.setCallerId("555-555-5555");
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);
@@ -269,7 +277,9 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc"); call.setId("123abc");
call.setDirection(android.companion.Telecom.Call.OUTGOING); call.setDirection(android.companion.Telecom.Call.OUTGOING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(
new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager = final CrossDeviceSyncController.CallManager callManager =
@@ -316,7 +326,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc::originalId"); call.setId("123abc::originalId");
call.setDirection(android.companion.Telecom.Call.INCOMING); call.setDirection(android.companion.Telecom.Call.INCOMING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager = final CrossDeviceSyncController.CallManager callManager =
@@ -334,7 +345,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc::originalId"); call.setId("123abc::originalId");
call.setDirection(android.companion.Telecom.Call.OUTGOING); call.setDirection(android.companion.Telecom.Call.OUTGOING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
call.setCallerId("555-555-5555"); call.setCallerId("555-555-5555");
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);
@@ -352,7 +364,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc"); call.setId("123abc");
call.setDirection(android.companion.Telecom.Call.INCOMING); call.setDirection(android.companion.Telecom.Call.INCOMING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager = final CrossDeviceSyncController.CallManager callManager =
@@ -369,7 +382,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call(); final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc"); call.setId("123abc");
call.setDirection(android.companion.Telecom.Call.OUTGOING); call.setDirection(android.companion.Telecom.Call.OUTGOING);
call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.android.test")); call.setFacilitator(new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
"com.google.test/.InCallService"));
call.setCallerId("555-555-5555"); call.setCallerId("555-555-5555");
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData(); final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call); callMetadataSyncData.addCall(call);