Loading flags/telecom_resolve_hidden_dependencies.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,11 @@ flag { description: "Mainland cleanup for hidden dependencies" bug: "323414215" } flag { name: "telecom_mainline_blocked_numbers_manager" namespace: "telecom" description: "Fixed read only flag used for setting up BlockedNumbersManager to be retrieved via context" bug: "325049252" is_fixed_read_only: true } src/com/android/server/telecom/CallsManager.java +16 −7 Original line number Diff line number Diff line Loading @@ -79,7 +79,7 @@ import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.provider.BlockedNumberContract; import android.provider.BlockedNumberContract.BlockedNumbers; import android.provider.BlockedNumbersManager; import android.provider.CallLog.Calls; import android.provider.Settings; import android.telecom.CallAttributes; Loading Loading @@ -488,6 +488,7 @@ public class CallsManager extends Call.ListenerBase private final TransactionManager mTransactionManager; private final UserManager mUserManager; private final CallStreamingNotification mCallStreamingNotification; private final BlockedNumbersManager mBlockedNumbersManager; private final FeatureFlags mFeatureFlags; private final com.android.internal.telephony.flags.FeatureFlags mTelephonyFeatureFlags; Loading Loading @@ -556,7 +557,8 @@ public class CallsManager extends Call.ListenerBase public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(action) || BlockedNumbers.ACTION_BLOCK_SUPPRESSION_STATE_CHANGED.equals(action)) { || BlockedNumbersManager .ACTION_BLOCK_SUPPRESSION_STATE_CHANGED.equals(action)) { updateEmergencyCallNotificationAsync(context); } } Loading Loading @@ -718,6 +720,9 @@ public class CallsManager extends Call.ListenerBase mCallStreamingNotification = callStreamingNotification; mFeatureFlags = featureFlags; mTelephonyFeatureFlags = telephonyFlags; mBlockedNumbersManager = mFeatureFlags.telecomMainlineBlockedNumbersManager() ? mContext.getSystemService(BlockedNumbersManager.class) : null; if (mFeatureFlags.useImprovedListenerOrder()) { mListeners.add(mInCallController); Loading Loading @@ -758,7 +763,7 @@ public class CallsManager extends Call.ListenerBase IntentFilter intentFilter = new IntentFilter( CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); intentFilter.addAction(BlockedNumbers.ACTION_BLOCK_SUPPRESSION_STATE_CHANGED); intentFilter.addAction(BlockedNumbersManager.ACTION_BLOCK_SUPPRESSION_STATE_CHANGED); context.registerReceiver(mReceiver, intentFilter, Context.RECEIVER_EXPORTED); mGraphHandlerThreads = new LinkedList<>(); Loading Loading @@ -912,7 +917,7 @@ public class CallsManager extends Call.ListenerBase DirectToVoicemailFilter voicemailFilter = new DirectToVoicemailFilter(incomingCall, mCallerInfoLookupHelper); BlockCheckerFilter blockCheckerFilter = new BlockCheckerFilter(mContext, incomingCall, mCallerInfoLookupHelper, new BlockCheckerAdapter()); mCallerInfoLookupHelper, new BlockCheckerAdapter(mFeatureFlags)); DndCallFilter dndCallFilter = new DndCallFilter(incomingCall, getRinger()); CallScreeningServiceFilter carrierCallScreeningServiceFilter = new CallScreeningServiceFilter(incomingCall, carrierPackageName, Loading Loading @@ -2958,9 +2963,13 @@ public class CallsManager extends Call.ListenerBase } if (call.isEmergencyCall()) { Executors.defaultThreadFactory().newThread(() -> BlockedNumberContract.BlockedNumbers.notifyEmergencyContact(mContext)) .start(); Executors.defaultThreadFactory().newThread(() -> { if (mBlockedNumbersManager != null) { mBlockedNumbersManager.notifyEmergencyContact(); } else { BlockedNumberContract.SystemContract.notifyEmergencyContact(mContext); } }).start(); } final boolean requireCallCapableAccountByHandle = mContext.getResources().getBoolean( Loading src/com/android/server/telecom/TelecomServiceImpl.java +10 −1 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import android.os.ResultReceiver; import android.os.ShellCallback; import android.os.UserHandle; import android.provider.BlockedNumberContract; import android.provider.BlockedNumbersManager; import android.provider.Settings; import android.telecom.CallAttributes; import android.telecom.CallException; Loading Loading @@ -2010,7 +2011,11 @@ public class TelecomServiceImpl { synchronized (mLock) { long token = Binder.clearCallingIdentity(); try { BlockedNumberContract.BlockedNumbers.endBlockSuppression(mContext); if (mBlockedNumbersManager != null) { mBlockedNumbersManager.endBlockSuppression(); } else { BlockedNumberContract.SystemContract.endBlockSuppression(mContext); } } finally { Binder.restoreCallingIdentity(token); } Loading Loading @@ -2686,6 +2691,7 @@ public class TelecomServiceImpl { private final TelecomSystem.SyncRoot mLock; private TransactionManager mTransactionManager; private final TransactionalServiceRepository mTransactionalServiceRepository; private final BlockedNumbersManager mBlockedNumbersManager; private final FeatureFlags mFeatureFlags; private final com.android.internal.telephony.flags.FeatureFlags mTelephonyFeatureFlags; Loading Loading @@ -2737,6 +2743,9 @@ public class TelecomServiceImpl { mTransactionManager = TransactionManager.getInstance(); mTransactionalServiceRepository = new TransactionalServiceRepository(); mBlockedNumbersManager = mFeatureFlags.telecomMainlineBlockedNumbersManager() ? mContext.getSystemService(BlockedNumbersManager.class) : null; } @VisibleForTesting Loading src/com/android/server/telecom/TelecomSystem.java +0 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.net.Uri; import android.os.BugreportManager; import android.os.DropBoxManager; import android.os.UserHandle; import android.os.UserManager; import android.telecom.Log; import android.telecom.PhoneAccountHandle; import android.telephony.AnomalyReporter; Loading @@ -45,9 +44,7 @@ import com.android.server.telecom.bluetooth.BluetoothDeviceManager; import com.android.server.telecom.bluetooth.BluetoothRouteManager; import com.android.server.telecom.bluetooth.BluetoothStateReceiver; import com.android.server.telecom.callfiltering.BlockedNumbersAdapter; import com.android.server.telecom.callfiltering.CallFilterResultCallback; import com.android.server.telecom.callfiltering.IncomingCallFilterGraph; import com.android.server.telecom.callfiltering.IncomingCallFilterGraphProvider; import com.android.server.telecom.components.UserCallIntentProcessor; import com.android.server.telecom.components.UserCallIntentProcessorFactory; import com.android.server.telecom.flags.FeatureFlags; Loading src/com/android/server/telecom/callfiltering/BlockCheckerAdapter.java +20 −4 Original line number Diff line number Diff line Loading @@ -19,12 +19,19 @@ package com.android.server.telecom.callfiltering; import android.content.Context; import android.os.Bundle; import android.provider.BlockedNumberContract; import android.provider.BlockedNumbersManager; import android.telecom.Log; import com.android.server.telecom.flags.FeatureFlags; public class BlockCheckerAdapter { private static final String TAG = BlockCheckerAdapter.class.getSimpleName(); public BlockCheckerAdapter() { } private FeatureFlags mFeatureFlags; public BlockCheckerAdapter(FeatureFlags featureFlags) { mFeatureFlags = featureFlags; } /** * Returns the call blocking status for the {@code phoneNumber}. Loading @@ -32,7 +39,6 @@ public class BlockCheckerAdapter { * This method catches all underlying exceptions to ensure that this method never throws any * exception. * * @param context the context of the caller. * @param phoneNumber the number to check. * @param numberPresentation the presentation code associated with the call. * @param isNumberInContacts indicates if the provided number exists as a contact. Loading @@ -48,10 +54,20 @@ public class BlockCheckerAdapter { int numberPresentation, boolean isNumberInContacts) { int blockStatus = BlockedNumberContract.STATUS_NOT_BLOCKED; long startTimeNano = System.nanoTime(); BlockedNumbersManager blockedNumbersManager = mFeatureFlags .telecomMainlineBlockedNumbersManager() ? context.getSystemService(BlockedNumbersManager.class) : null; try { blockStatus = BlockedNumberContract.BlockedNumbers.shouldSystemBlockNumber( context, phoneNumber, numberPresentation, isNumberInContacts); Bundle extras = new Bundle(); extras.putInt(BlockedNumberContract.EXTRA_CALL_PRESENTATION, numberPresentation); extras.putBoolean(BlockedNumberContract.EXTRA_CONTACT_EXIST, isNumberInContacts); blockStatus = blockedNumbersManager != null ? blockedNumbersManager.shouldSystemBlockNumber(phoneNumber, numberPresentation, isNumberInContacts) : BlockedNumberContract.SystemContract.shouldSystemBlockNumber(context, phoneNumber, extras); if (blockStatus != BlockedNumberContract.STATUS_NOT_BLOCKED) { Log.d(TAG, phoneNumber + " is blocked."); } Loading Loading
flags/telecom_resolve_hidden_dependencies.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -9,3 +9,11 @@ flag { description: "Mainland cleanup for hidden dependencies" bug: "323414215" } flag { name: "telecom_mainline_blocked_numbers_manager" namespace: "telecom" description: "Fixed read only flag used for setting up BlockedNumbersManager to be retrieved via context" bug: "325049252" is_fixed_read_only: true }
src/com/android/server/telecom/CallsManager.java +16 −7 Original line number Diff line number Diff line Loading @@ -79,7 +79,7 @@ import android.os.Trace; import android.os.UserHandle; import android.os.UserManager; import android.provider.BlockedNumberContract; import android.provider.BlockedNumberContract.BlockedNumbers; import android.provider.BlockedNumbersManager; import android.provider.CallLog.Calls; import android.provider.Settings; import android.telecom.CallAttributes; Loading Loading @@ -488,6 +488,7 @@ public class CallsManager extends Call.ListenerBase private final TransactionManager mTransactionManager; private final UserManager mUserManager; private final CallStreamingNotification mCallStreamingNotification; private final BlockedNumbersManager mBlockedNumbersManager; private final FeatureFlags mFeatureFlags; private final com.android.internal.telephony.flags.FeatureFlags mTelephonyFeatureFlags; Loading Loading @@ -556,7 +557,8 @@ public class CallsManager extends Call.ListenerBase public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED.equals(action) || BlockedNumbers.ACTION_BLOCK_SUPPRESSION_STATE_CHANGED.equals(action)) { || BlockedNumbersManager .ACTION_BLOCK_SUPPRESSION_STATE_CHANGED.equals(action)) { updateEmergencyCallNotificationAsync(context); } } Loading Loading @@ -718,6 +720,9 @@ public class CallsManager extends Call.ListenerBase mCallStreamingNotification = callStreamingNotification; mFeatureFlags = featureFlags; mTelephonyFeatureFlags = telephonyFlags; mBlockedNumbersManager = mFeatureFlags.telecomMainlineBlockedNumbersManager() ? mContext.getSystemService(BlockedNumbersManager.class) : null; if (mFeatureFlags.useImprovedListenerOrder()) { mListeners.add(mInCallController); Loading Loading @@ -758,7 +763,7 @@ public class CallsManager extends Call.ListenerBase IntentFilter intentFilter = new IntentFilter( CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); intentFilter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); intentFilter.addAction(BlockedNumbers.ACTION_BLOCK_SUPPRESSION_STATE_CHANGED); intentFilter.addAction(BlockedNumbersManager.ACTION_BLOCK_SUPPRESSION_STATE_CHANGED); context.registerReceiver(mReceiver, intentFilter, Context.RECEIVER_EXPORTED); mGraphHandlerThreads = new LinkedList<>(); Loading Loading @@ -912,7 +917,7 @@ public class CallsManager extends Call.ListenerBase DirectToVoicemailFilter voicemailFilter = new DirectToVoicemailFilter(incomingCall, mCallerInfoLookupHelper); BlockCheckerFilter blockCheckerFilter = new BlockCheckerFilter(mContext, incomingCall, mCallerInfoLookupHelper, new BlockCheckerAdapter()); mCallerInfoLookupHelper, new BlockCheckerAdapter(mFeatureFlags)); DndCallFilter dndCallFilter = new DndCallFilter(incomingCall, getRinger()); CallScreeningServiceFilter carrierCallScreeningServiceFilter = new CallScreeningServiceFilter(incomingCall, carrierPackageName, Loading Loading @@ -2958,9 +2963,13 @@ public class CallsManager extends Call.ListenerBase } if (call.isEmergencyCall()) { Executors.defaultThreadFactory().newThread(() -> BlockedNumberContract.BlockedNumbers.notifyEmergencyContact(mContext)) .start(); Executors.defaultThreadFactory().newThread(() -> { if (mBlockedNumbersManager != null) { mBlockedNumbersManager.notifyEmergencyContact(); } else { BlockedNumberContract.SystemContract.notifyEmergencyContact(mContext); } }).start(); } final boolean requireCallCapableAccountByHandle = mContext.getResources().getBoolean( Loading
src/com/android/server/telecom/TelecomServiceImpl.java +10 −1 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import android.os.ResultReceiver; import android.os.ShellCallback; import android.os.UserHandle; import android.provider.BlockedNumberContract; import android.provider.BlockedNumbersManager; import android.provider.Settings; import android.telecom.CallAttributes; import android.telecom.CallException; Loading Loading @@ -2010,7 +2011,11 @@ public class TelecomServiceImpl { synchronized (mLock) { long token = Binder.clearCallingIdentity(); try { BlockedNumberContract.BlockedNumbers.endBlockSuppression(mContext); if (mBlockedNumbersManager != null) { mBlockedNumbersManager.endBlockSuppression(); } else { BlockedNumberContract.SystemContract.endBlockSuppression(mContext); } } finally { Binder.restoreCallingIdentity(token); } Loading Loading @@ -2686,6 +2691,7 @@ public class TelecomServiceImpl { private final TelecomSystem.SyncRoot mLock; private TransactionManager mTransactionManager; private final TransactionalServiceRepository mTransactionalServiceRepository; private final BlockedNumbersManager mBlockedNumbersManager; private final FeatureFlags mFeatureFlags; private final com.android.internal.telephony.flags.FeatureFlags mTelephonyFeatureFlags; Loading Loading @@ -2737,6 +2743,9 @@ public class TelecomServiceImpl { mTransactionManager = TransactionManager.getInstance(); mTransactionalServiceRepository = new TransactionalServiceRepository(); mBlockedNumbersManager = mFeatureFlags.telecomMainlineBlockedNumbersManager() ? mContext.getSystemService(BlockedNumbersManager.class) : null; } @VisibleForTesting Loading
src/com/android/server/telecom/TelecomSystem.java +0 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.net.Uri; import android.os.BugreportManager; import android.os.DropBoxManager; import android.os.UserHandle; import android.os.UserManager; import android.telecom.Log; import android.telecom.PhoneAccountHandle; import android.telephony.AnomalyReporter; Loading @@ -45,9 +44,7 @@ import com.android.server.telecom.bluetooth.BluetoothDeviceManager; import com.android.server.telecom.bluetooth.BluetoothRouteManager; import com.android.server.telecom.bluetooth.BluetoothStateReceiver; import com.android.server.telecom.callfiltering.BlockedNumbersAdapter; import com.android.server.telecom.callfiltering.CallFilterResultCallback; import com.android.server.telecom.callfiltering.IncomingCallFilterGraph; import com.android.server.telecom.callfiltering.IncomingCallFilterGraphProvider; import com.android.server.telecom.components.UserCallIntentProcessor; import com.android.server.telecom.components.UserCallIntentProcessorFactory; import com.android.server.telecom.flags.FeatureFlags; Loading
src/com/android/server/telecom/callfiltering/BlockCheckerAdapter.java +20 −4 Original line number Diff line number Diff line Loading @@ -19,12 +19,19 @@ package com.android.server.telecom.callfiltering; import android.content.Context; import android.os.Bundle; import android.provider.BlockedNumberContract; import android.provider.BlockedNumbersManager; import android.telecom.Log; import com.android.server.telecom.flags.FeatureFlags; public class BlockCheckerAdapter { private static final String TAG = BlockCheckerAdapter.class.getSimpleName(); public BlockCheckerAdapter() { } private FeatureFlags mFeatureFlags; public BlockCheckerAdapter(FeatureFlags featureFlags) { mFeatureFlags = featureFlags; } /** * Returns the call blocking status for the {@code phoneNumber}. Loading @@ -32,7 +39,6 @@ public class BlockCheckerAdapter { * This method catches all underlying exceptions to ensure that this method never throws any * exception. * * @param context the context of the caller. * @param phoneNumber the number to check. * @param numberPresentation the presentation code associated with the call. * @param isNumberInContacts indicates if the provided number exists as a contact. Loading @@ -48,10 +54,20 @@ public class BlockCheckerAdapter { int numberPresentation, boolean isNumberInContacts) { int blockStatus = BlockedNumberContract.STATUS_NOT_BLOCKED; long startTimeNano = System.nanoTime(); BlockedNumbersManager blockedNumbersManager = mFeatureFlags .telecomMainlineBlockedNumbersManager() ? context.getSystemService(BlockedNumbersManager.class) : null; try { blockStatus = BlockedNumberContract.BlockedNumbers.shouldSystemBlockNumber( context, phoneNumber, numberPresentation, isNumberInContacts); Bundle extras = new Bundle(); extras.putInt(BlockedNumberContract.EXTRA_CALL_PRESENTATION, numberPresentation); extras.putBoolean(BlockedNumberContract.EXTRA_CONTACT_EXIST, isNumberInContacts); blockStatus = blockedNumbersManager != null ? blockedNumbersManager.shouldSystemBlockNumber(phoneNumber, numberPresentation, isNumberInContacts) : BlockedNumberContract.SystemContract.shouldSystemBlockNumber(context, phoneNumber, extras); if (blockStatus != BlockedNumberContract.STATUS_NOT_BLOCKED) { Log.d(TAG, phoneNumber + " is blocked."); } Loading