summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/nfc/NfcAdapter.java1
-rw-r--r--core/proto/android/companion/telecom.proto2
-rw-r--r--services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncConnectionService.java3
-rw-r--r--services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncData.java20
-rw-r--r--services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceCall.java7
-rw-r--r--services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController.java10
-rw-r--r--services/core/java/com/android/server/am/BroadcastProcessQueue.java9
-rw-r--r--services/core/java/com/android/server/am/ProcessRecord.java5
-rw-r--r--services/core/java/com/android/server/wm/InputMonitor.java11
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java28
-rw-r--r--services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncDataTest.java5
-rw-r--r--services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceCallTest.java12
-rw-r--r--services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncControllerTest.java36
13 files changed, 130 insertions, 19 deletions
diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java
index cacde7f4a547..9e97216ac632 100644
--- a/core/java/android/nfc/NfcAdapter.java
+++ b/core/java/android/nfc/NfcAdapter.java
@@ -711,6 +711,7 @@ public final class NfcAdapter {
/* Stale sService pointer */
if (sIsInitialized) sIsInitialized = false;
}
+ return null;
}
/* Try to initialize the service */
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
diff --git a/core/proto/android/companion/telecom.proto b/core/proto/android/companion/telecom.proto
index 7fe2467032cb..73dd8dd23bf5 100644
--- a/core/proto/android/companion/telecom.proto
+++ b/core/proto/android/companion/telecom.proto
@@ -88,6 +88,8 @@ message Telecom {
string name = 1;
// Unique identifier for this facilitator, such as a package name.
string identifier = 2;
+ // Extended identifier for this facilitator.
+ string extended_identifier = 3;
}
enum Control {
diff --git a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncConnectionService.java b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncConnectionService.java
index fac1c8981061..3187de548ea7 100644
--- a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncConnectionService.java
+++ b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncConnectionService.java
@@ -175,7 +175,8 @@ public class CallMetadataSyncConnectionService extends ConnectionService {
: handle.getComponentName().getShortClassName(),
phoneAccount != null ? phoneAccount.getExtras().getString(
CrossDeviceSyncController.EXTRA_CALL_FACILITATOR_ID)
- : handle.getComponentName().getPackageName());
+ : handle.getComponentName().getPackageName(),
+ handle.getComponentName().flattenToString());
call.setFacilitator(callFacilitator);
call.setDirection(android.companion.Telecom.Call.OUTGOING);
call.setCallerId(connectionRequest.getAddress().getSchemeSpecificPart());
diff --git a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncData.java b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncData.java
index 74641a48c4dd..08811ba30d8d 100644
--- a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncData.java
+++ b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncData.java
@@ -75,13 +75,15 @@ class CallMetadataSyncData {
public static class CallFacilitator {
private String mName;
private String mIdentifier;
+ private String mExtendedIdentifier;
private boolean mIsTel;
CallFacilitator() {}
- CallFacilitator(String name, String identifier) {
+ CallFacilitator(String name, String identifier, String extendedIdentifier) {
mName = name;
mIdentifier = identifier;
+ mExtendedIdentifier = extendedIdentifier;
}
public String getName() {
@@ -92,6 +94,10 @@ class CallMetadataSyncData {
return mIdentifier;
}
+ public String getExtendedIdentifier() {
+ return mExtendedIdentifier;
+ }
+
public boolean isTel() {
return mIsTel;
}
@@ -104,6 +110,10 @@ class CallMetadataSyncData {
mIdentifier = identifier;
}
+ public void setExtendedIdentifier(String extendedIdentifier) {
+ mExtendedIdentifier = extendedIdentifier;
+ }
+
public void setIsTel(boolean isTel) {
mIsTel = isTel;
}
@@ -170,6 +180,8 @@ class CallMetadataSyncData {
"com.android.server.companion.datatransfer.contextsync.extra.FACILITATOR_NAME";
private static final String 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 =
"com.android.server.companion.datatransfer.contextsync.extra.STATUS";
private static final String EXTRA_DIRECTION =
@@ -192,7 +204,10 @@ class CallMetadataSyncData {
call.setAppIcon(bundle.getByteArray(EXTRA_APP_ICON));
final String facilitatorName = bundle.getString(EXTRA_FACILITATOR_NAME);
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.setDirection(bundle.getInt(EXTRA_DIRECTION));
call.setControls(new HashSet<>(bundle.getIntegerArrayList(EXTRA_CONTROLS)));
@@ -207,6 +222,7 @@ class CallMetadataSyncData {
bundle.putByteArray(EXTRA_APP_ICON, mAppIcon);
bundle.putString(EXTRA_FACILITATOR_NAME, mFacilitator.getName());
bundle.putString(EXTRA_FACILITATOR_ID, mFacilitator.getIdentifier());
+ bundle.putString(EXTRA_FACILITATOR_EXT_ID, mFacilitator.getExtendedIdentifier());
bundle.putInt(EXTRA_STATUS, mStatus);
bundle.putInt(EXTRA_DIRECTION, mDirection);
bundle.putIntegerArrayList(EXTRA_CONTROLS, new ArrayList<>(mControls));
diff --git a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceCall.java b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceCall.java
index e8392d29365e..2a507990b0d5 100644
--- a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceCall.java
+++ b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceCall.java
@@ -48,6 +48,7 @@ public class CrossDeviceCall {
private final int mUserId;
@VisibleForTesting boolean mIsEnterprise;
private final String mCallingAppPackageName;
+ private final String mSerializedPhoneAccountHandle;
private String mCallingAppName;
private byte[] mCallingAppIcon;
private String mCallerDisplayName;
@@ -89,6 +90,8 @@ public class CrossDeviceCall {
.equals(handle.getComponentName());
mCallingAppPackageName = handle != null
? callDetails.getAccountHandle().getComponentName().getPackageName() : "";
+ mSerializedPhoneAccountHandle = handle != null
+ ? handle.getId() + SEPARATOR + handle.getComponentName().flattenToString() : "";
mIsEnterprise = (callDetails.getCallProperties() & Call.Details.PROPERTY_ENTERPRISE_CALL)
== Call.Details.PROPERTY_ENTERPRISE_CALL;
final PackageManager packageManager = context.getPackageManager();
@@ -247,6 +250,10 @@ public class CrossDeviceCall {
return mCallingAppPackageName;
}
+ public String getSerializedPhoneAccountHandle() {
+ return mSerializedPhoneAccountHandle;
+ }
+
/**
* Get a human-readable "caller id" to display as the origin of the call.
*
diff --git a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController.java b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController.java
index 31694590a930..9bd5af956a6e 100644
--- a/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController.java
+++ b/services/companion/java/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncController.java
@@ -280,7 +280,7 @@ public class CrossDeviceSyncController {
mCallFacilitators.add(
new CallMetadataSyncData.CallFacilitator(
defaultOutgoingTelAccount.getLabel().toString(),
- FACILITATOR_ID_SYSTEM));
+ FACILITATOR_ID_SYSTEM, FACILITATOR_ID_SYSTEM));
}
}
}
@@ -574,6 +574,10 @@ public class CrossDeviceSyncController {
case (int) Telecom.CallFacilitator.IDENTIFIER:
facilitator.setIdentifier(pis.readString(Telecom.CallFacilitator.IDENTIFIER));
break;
+ case (int) Telecom.CallFacilitator.EXTENDED_IDENTIFIER:
+ facilitator.setExtendedIdentifier(
+ pis.readString(Telecom.CallFacilitator.EXTENDED_IDENTIFIER));
+ break;
default:
Slog.e(TAG, "Unhandled field in Facilitator:"
+ ProtoUtils.currentFieldToString(pis));
@@ -649,6 +653,8 @@ public class CrossDeviceSyncController {
final long facilitatorToken = pos.start(Telecom.Call.Origin.FACILITATOR);
pos.write(Telecom.CallFacilitator.NAME, call.getCallingAppName());
pos.write(Telecom.CallFacilitator.IDENTIFIER, call.getCallingAppPackageName());
+ pos.write(Telecom.CallFacilitator.EXTENDED_IDENTIFIER,
+ call.getSerializedPhoneAccountHandle());
pos.end(facilitatorToken);
pos.end(originToken);
pos.write(Telecom.Call.STATUS, call.getStatus());
@@ -662,6 +668,8 @@ public class CrossDeviceSyncController {
final long facilitatorsToken = pos.start(Telecom.FACILITATORS);
pos.write(Telecom.CallFacilitator.NAME, facilitator.getName());
pos.write(Telecom.CallFacilitator.IDENTIFIER, facilitator.getIdentifier());
+ pos.write(Telecom.CallFacilitator.EXTENDED_IDENTIFIER,
+ facilitator.getExtendedIdentifier());
pos.end(facilitatorsToken);
}
pos.end(telecomToken);
diff --git a/services/core/java/com/android/server/am/BroadcastProcessQueue.java b/services/core/java/com/android/server/am/BroadcastProcessQueue.java
index 58f62b67ae11..0fcec6faa0cc 100644
--- a/services/core/java/com/android/server/am/BroadcastProcessQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastProcessQueue.java
@@ -25,6 +25,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UptimeMillisLong;
+import android.app.ActivityManager;
import android.app.BroadcastOptions;
import android.content.Intent;
import android.content.pm.ResolveInfo;
@@ -1045,6 +1046,7 @@ class BroadcastProcessQueue {
static final int REASON_CONTAINS_MANIFEST = 17;
static final int REASON_FOREGROUND = 18;
static final int REASON_CORE_UID = 19;
+ static final int REASON_TOP_PROCESS = 20;
@IntDef(flag = false, prefix = { "REASON_" }, value = {
REASON_EMPTY,
@@ -1066,6 +1068,7 @@ class BroadcastProcessQueue {
REASON_CONTAINS_MANIFEST,
REASON_FOREGROUND,
REASON_CORE_UID,
+ REASON_TOP_PROCESS,
})
@Retention(RetentionPolicy.SOURCE)
public @interface Reason {}
@@ -1091,6 +1094,7 @@ class BroadcastProcessQueue {
case REASON_CONTAINS_MANIFEST: return "CONTAINS_MANIFEST";
case REASON_FOREGROUND: return "FOREGROUND";
case REASON_CORE_UID: return "CORE_UID";
+ case REASON_TOP_PROCESS: return "TOP_PROCESS";
default: return Integer.toString(reason);
}
}
@@ -1132,6 +1136,11 @@ class BroadcastProcessQueue {
} else if (mUidForeground) {
mRunnableAt = runnableAt + constants.DELAY_FOREGROUND_PROC_MILLIS;
mRunnableAtReason = REASON_FOREGROUND;
+ } else if (app != null && app.getSetProcState() == ActivityManager.PROCESS_STATE_TOP) {
+ // TODO (b/287676625): Use a callback to check when a process goes in and out of
+ // the TOP state.
+ mRunnableAt = runnableAt + constants.DELAY_FOREGROUND_PROC_MILLIS;
+ mRunnableAtReason = REASON_TOP_PROCESS;
} else if (mProcessPersistent) {
mRunnableAt = runnableAt + constants.DELAY_PERSISTENT_PROC_MILLIS;
mRunnableAtReason = REASON_PERSISTENT;
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index f814c3b3112d..f532122c10d9 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -674,6 +674,11 @@ class ProcessRecord implements WindowProcessListener {
return mState.getCurProcState();
}
+ @GuardedBy(anyOf = {"mService", "mProcLock"})
+ int getSetProcState() {
+ return mState.getSetProcState();
+ }
+
@GuardedBy({"mService", "mProcLock"})
public void makeActive(IApplicationThread thread, ProcessStatsService tracker) {
mProfile.onProcessActive(thread, tracker);
diff --git a/services/core/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
index cea886ff6e87..825d38b3eed7 100644
--- a/services/core/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -49,6 +49,7 @@ import static com.android.server.wm.WindowManagerService.LOGTAG_INPUT_FOCUS;
import static java.lang.Integer.MAX_VALUE;
import android.annotation.Nullable;
+import android.graphics.Rect;
import android.graphics.Region;
import android.os.Handler;
import android.os.IBinder;
@@ -558,7 +559,8 @@ final class InputMonitor {
private boolean mAddWallpaperInputConsumerHandle;
private boolean mAddRecentsAnimationInputConsumerHandle;
- boolean mInDrag;
+ private boolean mInDrag;
+ private final Rect mTmpRect = new Rect();
private void updateInputWindows(boolean inDrag) {
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "updateInputWindows");
@@ -582,8 +584,11 @@ final class InputMonitor {
layer = layer != null ? layer : activeRecents;
// Handle edge-case for SUW where windows don't exist yet
if (layer.getSurfaceControl() != null) {
- mRecentsAnimationInputConsumer.mWindowHandle
- .replaceTouchableRegionWithCrop(layer.getSurfaceControl());
+ final WindowState targetAppMainWindow = activeRecents.findMainWindow();
+ if (targetAppMainWindow != null) {
+ targetAppMainWindow.getBounds(mTmpRect);
+ mRecentsAnimationInputConsumer.mWindowHandle.touchableRegion.set(mTmpRect);
+ }
mRecentsAnimationInputConsumer.show(mInputTransaction, layer);
mAddRecentsAnimationInputConsumerHandle = false;
}
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java
index 3b3e7cdb496c..6bcc14e97955 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java
@@ -66,6 +66,7 @@ import static org.mockito.Mockito.times;
import android.annotation.NonNull;
import android.app.Activity;
+import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.BackgroundStartPrivileges;
import android.app.BroadcastOptions;
@@ -555,6 +556,33 @@ public final class BroadcastQueueModernImplTest {
}
@Test
+ public void testRunnableAt_processTop() {
+ final BroadcastProcessQueue queue = new BroadcastProcessQueue(mConstants, PACKAGE_GREEN,
+ getUidForPackage(PACKAGE_GREEN));
+
+ doReturn(ActivityManager.PROCESS_STATE_TOP).when(mProcess).getSetProcState();
+ queue.setProcessAndUidState(mProcess, false, false);
+
+ final Intent timeTick = new Intent(Intent.ACTION_TIME_TICK);
+ final BroadcastRecord timeTickRecord = makeBroadcastRecord(timeTick,
+ List.of(makeMockRegisteredReceiver()));
+ enqueueOrReplaceBroadcast(queue, timeTickRecord, 0);
+
+ assertThat(queue.getRunnableAt()).isLessThan(timeTickRecord.enqueueTime);
+ assertEquals(BroadcastProcessQueue.REASON_TOP_PROCESS, queue.getRunnableAtReason());
+
+ doReturn(ActivityManager.PROCESS_STATE_SERVICE).when(mProcess).getSetProcState();
+ queue.setProcessAndUidState(mProcess, false, false);
+
+ // The new process state will only be taken into account the next time a broadcast
+ // is sent to the process.
+ enqueueOrReplaceBroadcast(queue, makeBroadcastRecord(timeTick,
+ List.of(makeMockRegisteredReceiver())), 0);
+ assertThat(queue.getRunnableAt()).isGreaterThan(timeTickRecord.enqueueTime);
+ assertEquals(BroadcastProcessQueue.REASON_NORMAL, queue.getRunnableAtReason());
+ }
+
+ @Test
public void testRunnableAt_persistentProc() {
final BroadcastProcessQueue queue = new BroadcastProcessQueue(mConstants, PACKAGE_GREEN,
getUidForPackage(PACKAGE_GREEN));
diff --git a/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncDataTest.java b/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncDataTest.java
index dccc26af8024..7b5c57fd1961 100644
--- a/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncDataTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncDataTest.java
@@ -35,6 +35,7 @@ public class CallMetadataSyncDataTest {
final byte[] appIcon = "appIcon".getBytes();
final String appName = "appName";
final String appIdentifier = "com.google.test";
+ final String extendedId = "com.google.test/.InCallService";
final int status = 1;
final int direction = android.companion.Telecom.Call.OUTGOING;
final int control1 = 2;
@@ -43,7 +44,7 @@ public class CallMetadataSyncDataTest {
call.setCallerId(callerId);
call.setAppIcon(appIcon);
final CallMetadataSyncData.CallFacilitator callFacilitator =
- new CallMetadataSyncData.CallFacilitator(appName, appIdentifier);
+ new CallMetadataSyncData.CallFacilitator(appName, appIdentifier, extendedId);
call.setFacilitator(callFacilitator);
call.setStatus(status);
call.setDirection(direction);
@@ -59,6 +60,8 @@ public class CallMetadataSyncDataTest {
assertThat(reconstructedCall.getAppIcon()).isEqualTo(appIcon);
assertThat(reconstructedCall.getFacilitator().getName()).isEqualTo(appName);
assertThat(reconstructedCall.getFacilitator().getIdentifier()).isEqualTo(appIdentifier);
+ assertThat(reconstructedCall.getFacilitator().getExtendedIdentifier())
+ .isEqualTo(extendedId);
assertThat(reconstructedCall.getStatus()).isEqualTo(status);
assertThat(reconstructedCall.getDirection()).isEqualTo(direction);
assertThat(reconstructedCall.getControls()).containsExactly(control1, control2);
diff --git a/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceCallTest.java b/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceCallTest.java
index 201d8f9413a2..a13cc4162cce 100644
--- a/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceCallTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceCallTest.java
@@ -308,6 +308,18 @@ public class CrossDeviceCallTest {
.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) {
return createCallDetails(state, capabilities, /* hasContactName= */ true);
}
diff --git a/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncControllerTest.java b/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncControllerTest.java
index 7e392a4261c1..e6cc34351284 100644
--- a/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/companion/datatransfer/contextsync/CrossDeviceSyncControllerTest.java
@@ -195,7 +195,8 @@ public class CrossDeviceSyncControllerTest {
new CrossDeviceSyncController.PhoneAccountManager(mMockContext);
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
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);
verify(mMockTelecomManager, times(1)).registerPhoneAccount(any());
@@ -208,10 +209,12 @@ public class CrossDeviceSyncControllerTest {
new CrossDeviceSyncController.PhoneAccountManager(mMockContext);
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addFacilitator(
- new CallMetadataSyncData.CallFacilitator("name", "com.google.test"));
+ new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
+ "com.google.test/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
callMetadataSyncData.addFacilitator(
- new CallMetadataSyncData.CallFacilitator("name", "com.google.test2"));
+ new CallMetadataSyncData.CallFacilitator("name", "com.google.test2",
+ "com.google.test2/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
verify(mMockTelecomManager, times(2)).registerPhoneAccount(any());
verify(mMockTelecomManager, times(0)).unregisterPhoneAccount(any());
@@ -223,7 +226,8 @@ public class CrossDeviceSyncControllerTest {
new CrossDeviceSyncController.PhoneAccountManager(mMockContext);
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addFacilitator(
- new CallMetadataSyncData.CallFacilitator("name", "com.google.test"));
+ new CallMetadataSyncData.CallFacilitator("name", "com.google.test",
+ "com.google.test/.InCallService"));
phoneAccountManager.updateFacilitators(0, callMetadataSyncData);
final CallMetadataSyncData callMetadataSyncData2 = new CallMetadataSyncData();
phoneAccountManager.updateFacilitators(0, callMetadataSyncData2);
@@ -236,7 +240,9 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc");
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();
callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager =
@@ -252,7 +258,9 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc");
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");
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call);
@@ -269,7 +277,9 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc");
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();
callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager =
@@ -316,7 +326,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc::originalId");
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();
callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager =
@@ -334,7 +345,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc::originalId");
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");
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call);
@@ -352,7 +364,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc");
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();
callMetadataSyncData.addCall(call);
final CrossDeviceSyncController.CallManager callManager =
@@ -369,7 +382,8 @@ public class CrossDeviceSyncControllerTest {
final CallMetadataSyncData.Call call = new CallMetadataSyncData.Call();
call.setId("123abc");
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");
final CallMetadataSyncData callMetadataSyncData = new CallMetadataSyncData();
callMetadataSyncData.addCall(call);