Loading services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncCallback.java +2 −0 Original line number Diff line number Diff line Loading @@ -22,4 +22,6 @@ public abstract class CallMetadataSyncCallback { abstract void processCallControlAction(int crossDeviceCallId, int callControlAction); abstract void requestCrossDeviceSync(int userId); abstract void updateStatus(int userId, boolean shouldSyncCallMetadata); } services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncInCallService.java +28 −5 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ public class CallMetadataSyncInCallService extends InCallService { @VisibleForTesting final Map<Call, CrossDeviceCall> mCurrentCalls = new HashMap<>(); @VisibleForTesting boolean mShouldSync; final Call.Callback mTelecomCallback = new Call.Callback() { @Override public void onDetailsChanged(Call call, Call.Details details) { Loading Loading @@ -92,12 +94,29 @@ public class CallMetadataSyncInCallService extends InCallService { @Override void requestCrossDeviceSync(int userId) { } @Override void updateStatus(int userId, boolean shouldSyncCallMetadata) { if (userId == getUserId()) { mShouldSync = shouldSyncCallMetadata; if (shouldSyncCallMetadata) { initializeCalls(); } else { mCurrentCalls.clear(); } } } }; @Override public void onCreate() { super.onCreate(); if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { initializeCalls(); } private void initializeCalls() { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.putAll(getCalls().stream().collect(Collectors.toMap(call -> call, call -> new CrossDeviceCall(getPackageManager(), call, getCallAudioState())))); } Loading @@ -119,7 +138,8 @@ public class CallMetadataSyncInCallService extends InCallService { @Override public void onCallAdded(Call call) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.put(call, new CrossDeviceCall(getPackageManager(), call, getCallAudioState())); } Loading @@ -127,21 +147,24 @@ public class CallMetadataSyncInCallService extends InCallService { @Override public void onCallRemoved(Call call) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.remove(call); } } @Override public void onMuteStateChanged(boolean isMuted) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.values().forEach(call -> call.updateMuted(isMuted)); } } @Override public void onSilenceRinger() { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.values().forEach(call -> call.updateSilencedIfRinging()); } } Loading Loading
services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncCallback.java +2 −0 Original line number Diff line number Diff line Loading @@ -22,4 +22,6 @@ public abstract class CallMetadataSyncCallback { abstract void processCallControlAction(int crossDeviceCallId, int callControlAction); abstract void requestCrossDeviceSync(int userId); abstract void updateStatus(int userId, boolean shouldSyncCallMetadata); }
services/companion/java/com/android/server/companion/datatransfer/contextsync/CallMetadataSyncInCallService.java +28 −5 Original line number Diff line number Diff line Loading @@ -39,6 +39,8 @@ public class CallMetadataSyncInCallService extends InCallService { @VisibleForTesting final Map<Call, CrossDeviceCall> mCurrentCalls = new HashMap<>(); @VisibleForTesting boolean mShouldSync; final Call.Callback mTelecomCallback = new Call.Callback() { @Override public void onDetailsChanged(Call call, Call.Details details) { Loading Loading @@ -92,12 +94,29 @@ public class CallMetadataSyncInCallService extends InCallService { @Override void requestCrossDeviceSync(int userId) { } @Override void updateStatus(int userId, boolean shouldSyncCallMetadata) { if (userId == getUserId()) { mShouldSync = shouldSyncCallMetadata; if (shouldSyncCallMetadata) { initializeCalls(); } else { mCurrentCalls.clear(); } } } }; @Override public void onCreate() { super.onCreate(); if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { initializeCalls(); } private void initializeCalls() { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.putAll(getCalls().stream().collect(Collectors.toMap(call -> call, call -> new CrossDeviceCall(getPackageManager(), call, getCallAudioState())))); } Loading @@ -119,7 +138,8 @@ public class CallMetadataSyncInCallService extends InCallService { @Override public void onCallAdded(Call call) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.put(call, new CrossDeviceCall(getPackageManager(), call, getCallAudioState())); } Loading @@ -127,21 +147,24 @@ public class CallMetadataSyncInCallService extends InCallService { @Override public void onCallRemoved(Call call) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.remove(call); } } @Override public void onMuteStateChanged(boolean isMuted) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.values().forEach(call -> call.updateMuted(isMuted)); } } @Override public void onSilenceRinger() { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM)) { if (CompanionDeviceConfig.isEnabled(CompanionDeviceConfig.ENABLE_CONTEXT_SYNC_TELECOM) && mShouldSync) { mCurrentCalls.values().forEach(call -> call.updateSilencedIfRinging()); } } Loading