Loading flags/telecom_calls_manager_flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,10 @@ flag { description: "This fix ensures the MO calls won't switch from Active to Quite b/c setDialing was not called" bug: "309540769" } flag { name: "enable_call_sequencing" namespace: "telecom" description: "Enables simultaneous call sequencing for SIM PhoneAccounts" bug: "297446980" } src/com/android/server/telecom/CallsManager.java +4 −5 Original line number Diff line number Diff line Loading @@ -705,7 +705,8 @@ public class CallsManager extends Call.ListenerBase mCallLogManager = new CallLogManager(context, phoneAccountRegistrar, mMissedCallNotifier, mAnomalyReporter, featureFlags); mConnectionServiceRepository = new ConnectionServiceRepository(mPhoneAccountRegistrar, mContext, mLock, this); new ConnectionServiceRepository(mPhoneAccountRegistrar, mContext, mLock, this, featureFlags); mInCallWakeLockController = inCallWakeLockControllerFactory.create(context, this); mClockProxy = clockProxy; mToastFactory = toastFactory; Loading Loading @@ -5885,8 +5886,7 @@ public class CallsManager extends Call.ListenerBase return; } ConnectionServiceWrapper service = mConnectionServiceRepository.getService( phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle(), mFeatureFlags); phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle()); if (service == null) { Log.i(this, "Found no connection service."); return; Loading @@ -5911,8 +5911,7 @@ public class CallsManager extends Call.ListenerBase return; } ConnectionServiceWrapper service = mConnectionServiceRepository.getService( phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle(), mFeatureFlags); phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle()); if (service == null) { Log.i(this, "Found no connection service."); return; Loading src/com/android/server/telecom/ConnectionServiceRepository.java +6 −4 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ public class ConnectionServiceRepository { private final Context mContext; private final TelecomSystem.SyncRoot mLock; private final CallsManager mCallsManager; private final FeatureFlags mFeatureFlags; private final ServiceBinder.Listener<ConnectionServiceWrapper> mUnbindListener = new ServiceBinder.Listener<ConnectionServiceWrapper>() { Loading @@ -54,18 +55,19 @@ public class ConnectionServiceRepository { PhoneAccountRegistrar phoneAccountRegistrar, Context context, TelecomSystem.SyncRoot lock, CallsManager callsManager) { CallsManager callsManager, FeatureFlags featureFlags) { mPhoneAccountRegistrar = phoneAccountRegistrar; mContext = context; mLock = lock; mCallsManager = callsManager; mFeatureFlags = featureFlags; } @VisibleForTesting public ConnectionServiceWrapper getService( ComponentName componentName, UserHandle userHandle, FeatureFlags featureFlags) { UserHandle userHandle) { Pair<ComponentName, UserHandle> cacheKey = Pair.create(componentName, userHandle); ConnectionServiceWrapper service = mServiceCache.get(cacheKey); if (service == null) { Loading @@ -77,7 +79,7 @@ public class ConnectionServiceRepository { mContext, mLock, userHandle, featureFlags); mFeatureFlags); service.addListener(mUnbindListener); mServiceCache.put(cacheKey, service); } Loading src/com/android/server/telecom/ConnectionServiceWrapper.java +1 −3 Original line number Diff line number Diff line Loading @@ -1351,7 +1351,6 @@ public class ConnectionServiceWrapper extends ServiceBinder implements private final CallsManager mCallsManager; private final AppOpsManager mAppOpsManager; private final Context mContext; private final FeatureFlags mFlags; private ConnectionServiceFocusManager.ConnectionServiceFocusListener mConnSvrFocusListener; Loading Loading @@ -1386,7 +1385,6 @@ public class ConnectionServiceWrapper extends ServiceBinder implements mCallsManager = callsManager; mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mContext = context; mFlags = featureFlags; } /** See {@link IConnectionService#addConnectionServiceAdapter}. */ Loading Loading @@ -2540,7 +2538,7 @@ public class ConnectionServiceWrapper extends ServiceBinder implements isCallerConnectionManager = true; } ConnectionServiceWrapper service = mConnectionServiceRepository.getService( handle.getComponentName(), handle.getUserHandle(), mFlags); handle.getComponentName(), handle.getUserHandle()); if (service != null && service != this) { simServices.add(service); } else { Loading src/com/android/server/telecom/CreateConnectionProcessor.java +2 −2 Original line number Diff line number Diff line Loading @@ -244,7 +244,7 @@ public class CreateConnectionProcessor implements CreateConnectionResponse { Log.i(this, "Trying attempt %s", attempt); PhoneAccountHandle phoneAccount = attempt.connectionManagerPhoneAccount; mService = mRepository.getService(phoneAccount.getComponentName(), phoneAccount.getUserHandle(), mFlags); phoneAccount.getUserHandle()); if (mService == null) { Log.i(this, "Found no connection service for attempt %s", attempt); attemptNextPhoneAccount(); Loading @@ -260,7 +260,7 @@ public class CreateConnectionProcessor implements CreateConnectionResponse { PhoneAccountHandle remotePhoneAccount = attempt.targetPhoneAccount; ConnectionServiceWrapper mRemoteService = mRepository.getService(remotePhoneAccount.getComponentName(), remotePhoneAccount.getUserHandle(), mFlags); remotePhoneAccount.getUserHandle()); if (mRemoteService == null) { mCall.setConnectionService(mService); } else { Loading Loading
flags/telecom_calls_manager_flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -14,3 +14,10 @@ flag { description: "This fix ensures the MO calls won't switch from Active to Quite b/c setDialing was not called" bug: "309540769" } flag { name: "enable_call_sequencing" namespace: "telecom" description: "Enables simultaneous call sequencing for SIM PhoneAccounts" bug: "297446980" }
src/com/android/server/telecom/CallsManager.java +4 −5 Original line number Diff line number Diff line Loading @@ -705,7 +705,8 @@ public class CallsManager extends Call.ListenerBase mCallLogManager = new CallLogManager(context, phoneAccountRegistrar, mMissedCallNotifier, mAnomalyReporter, featureFlags); mConnectionServiceRepository = new ConnectionServiceRepository(mPhoneAccountRegistrar, mContext, mLock, this); new ConnectionServiceRepository(mPhoneAccountRegistrar, mContext, mLock, this, featureFlags); mInCallWakeLockController = inCallWakeLockControllerFactory.create(context, this); mClockProxy = clockProxy; mToastFactory = toastFactory; Loading Loading @@ -5885,8 +5886,7 @@ public class CallsManager extends Call.ListenerBase return; } ConnectionServiceWrapper service = mConnectionServiceRepository.getService( phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle(), mFeatureFlags); phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle()); if (service == null) { Log.i(this, "Found no connection service."); return; Loading @@ -5911,8 +5911,7 @@ public class CallsManager extends Call.ListenerBase return; } ConnectionServiceWrapper service = mConnectionServiceRepository.getService( phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle(), mFeatureFlags); phoneAccountHandle.getComponentName(), phoneAccountHandle.getUserHandle()); if (service == null) { Log.i(this, "Found no connection service."); return; Loading
src/com/android/server/telecom/ConnectionServiceRepository.java +6 −4 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ public class ConnectionServiceRepository { private final Context mContext; private final TelecomSystem.SyncRoot mLock; private final CallsManager mCallsManager; private final FeatureFlags mFeatureFlags; private final ServiceBinder.Listener<ConnectionServiceWrapper> mUnbindListener = new ServiceBinder.Listener<ConnectionServiceWrapper>() { Loading @@ -54,18 +55,19 @@ public class ConnectionServiceRepository { PhoneAccountRegistrar phoneAccountRegistrar, Context context, TelecomSystem.SyncRoot lock, CallsManager callsManager) { CallsManager callsManager, FeatureFlags featureFlags) { mPhoneAccountRegistrar = phoneAccountRegistrar; mContext = context; mLock = lock; mCallsManager = callsManager; mFeatureFlags = featureFlags; } @VisibleForTesting public ConnectionServiceWrapper getService( ComponentName componentName, UserHandle userHandle, FeatureFlags featureFlags) { UserHandle userHandle) { Pair<ComponentName, UserHandle> cacheKey = Pair.create(componentName, userHandle); ConnectionServiceWrapper service = mServiceCache.get(cacheKey); if (service == null) { Loading @@ -77,7 +79,7 @@ public class ConnectionServiceRepository { mContext, mLock, userHandle, featureFlags); mFeatureFlags); service.addListener(mUnbindListener); mServiceCache.put(cacheKey, service); } Loading
src/com/android/server/telecom/ConnectionServiceWrapper.java +1 −3 Original line number Diff line number Diff line Loading @@ -1351,7 +1351,6 @@ public class ConnectionServiceWrapper extends ServiceBinder implements private final CallsManager mCallsManager; private final AppOpsManager mAppOpsManager; private final Context mContext; private final FeatureFlags mFlags; private ConnectionServiceFocusManager.ConnectionServiceFocusListener mConnSvrFocusListener; Loading Loading @@ -1386,7 +1385,6 @@ public class ConnectionServiceWrapper extends ServiceBinder implements mCallsManager = callsManager; mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mContext = context; mFlags = featureFlags; } /** See {@link IConnectionService#addConnectionServiceAdapter}. */ Loading Loading @@ -2540,7 +2538,7 @@ public class ConnectionServiceWrapper extends ServiceBinder implements isCallerConnectionManager = true; } ConnectionServiceWrapper service = mConnectionServiceRepository.getService( handle.getComponentName(), handle.getUserHandle(), mFlags); handle.getComponentName(), handle.getUserHandle()); if (service != null && service != this) { simServices.add(service); } else { Loading
src/com/android/server/telecom/CreateConnectionProcessor.java +2 −2 Original line number Diff line number Diff line Loading @@ -244,7 +244,7 @@ public class CreateConnectionProcessor implements CreateConnectionResponse { Log.i(this, "Trying attempt %s", attempt); PhoneAccountHandle phoneAccount = attempt.connectionManagerPhoneAccount; mService = mRepository.getService(phoneAccount.getComponentName(), phoneAccount.getUserHandle(), mFlags); phoneAccount.getUserHandle()); if (mService == null) { Log.i(this, "Found no connection service for attempt %s", attempt); attemptNextPhoneAccount(); Loading @@ -260,7 +260,7 @@ public class CreateConnectionProcessor implements CreateConnectionResponse { PhoneAccountHandle remotePhoneAccount = attempt.targetPhoneAccount; ConnectionServiceWrapper mRemoteService = mRepository.getService(remotePhoneAccount.getComponentName(), remotePhoneAccount.getUserHandle(), mFlags); remotePhoneAccount.getUserHandle()); if (mRemoteService == null) { mCall.setConnectionService(mService); } else { Loading