Loading android/app/src/com/android/bluetooth/btservice/ActiveDeviceManager.java +6 −8 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ import com.android.bluetooth.BluetoothMethodProxy; import com.android.bluetooth.Utils; import com.android.bluetooth.a2dp.A2dpService; import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.flags.Flags; import com.android.bluetooth.hearingaid.HearingAidService; import com.android.bluetooth.hfp.HeadsetService; import com.android.bluetooth.le_audio.LeAudioService; Loading Loading @@ -100,7 +100,7 @@ import java.util.Set; * active Bluetooth device. */ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallback { private static final String TAG = "ActiveDeviceManager"; private static final String TAG = ActiveDeviceManager.class.getSimpleName(); private static final boolean DBG = true; @VisibleForTesting static final int A2DP_HFP_SYNC_CONNECTION_TIMEOUT_MS = 5_000; Loading @@ -112,7 +112,6 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac private Handler mHandler = null; private final AudioManager mAudioManager; private final AudioManagerAudioDeviceCallback mAudioManagerAudioDeviceCallback; private final FeatureFlags mFeatureFlags; private final Object mLock = new Object(); @GuardedBy("mLock") Loading Loading @@ -811,10 +810,9 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac } } ActiveDeviceManager(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) { ActiveDeviceManager(AdapterService service, ServiceFactory factory) { mAdapterService = service; mDbManager = mAdapterService.getDatabase(); mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null"); mFactory = factory; mAudioManager = service.getSystemService(AudioManager.class); mAudioManagerAudioDeviceCallback = new AudioManagerAudioDeviceCallback(); Loading Loading @@ -987,7 +985,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac if (device == null) { success = leAudioService.removeActiveDevice(hasFallbackDevice); } else { if (mFeatureFlags.leaudioActiveDeviceManagerGroupHandlingFix()) { if (Flags.leaudioActiveDeviceManagerGroupHandlingFix()) { if ((mLeAudioActiveDevice != null) && (Objects.equals( mLeAudioActiveDevice, leAudioService.getLeadDevice(device)))) { Loading @@ -1004,7 +1002,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac return false; } if (mFeatureFlags.leaudioActiveDeviceManagerGroupHandlingFix()) { if (Flags.leaudioActiveDeviceManagerGroupHandlingFix()) { mLeAudioActiveDevice = leAudioService.getLeadDevice(device); } else { mLeAudioActiveDevice = device; Loading Loading @@ -1260,7 +1258,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac * @return {@code true} if is broadcasting audio, {@code false} otherwise */ private boolean isBroadcastingAudio() { if (!mFeatureFlags.leaudioBroadcastAudioHandoverPolicies()) { if (!Flags.leaudioBroadcastAudioHandoverPolicies()) { // disable this if feature flag is false return false; } Loading android/app/src/com/android/bluetooth/btservice/AdapterService.java +6 −12 Original line number Diff line number Diff line Loading @@ -125,7 +125,6 @@ import com.android.bluetooth.btservice.bluetoothkeystore.BluetoothKeystoreServic import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.btservice.storage.MetadataDatabase; import com.android.bluetooth.csip.CsipSetCoordinatorService; import com.android.bluetooth.flags.FeatureFlagsImpl; import com.android.bluetooth.flags.Flags; import com.android.bluetooth.gatt.GattService; import com.android.bluetooth.hap.HapClientService; Loading Loading @@ -402,7 +401,6 @@ public class AdapterService extends Service { private volatile boolean mTestModeEnabled = false; private MetricsLogger mMetricsLogger; private FeatureFlagsImpl mFeatureFlags; /** * Register a {@link ProfileService} with AdapterService. Loading Loading @@ -686,9 +684,7 @@ public class AdapterService extends Service { mSdpManager = SdpManager.init(this); mFeatureFlags = new FeatureFlagsImpl(); mDatabaseManager = new DatabaseManager(this, mFeatureFlags); mDatabaseManager = new DatabaseManager(this); mDatabaseManager.start(MetadataDatabase.createDatabase(this)); boolean isAutomotiveDevice = Loading @@ -704,18 +700,16 @@ public class AdapterService extends Service { */ if (!isAutomotiveDevice && getResources().getBoolean(R.bool.enable_phone_policy)) { Log.i(TAG, "Phone policy enabled"); mPhonePolicy = new PhonePolicy(this, new ServiceFactory(), mFeatureFlags); mPhonePolicy = new PhonePolicy(this, new ServiceFactory()); mPhonePolicy.start(); } else { Log.i(TAG, "Phone policy disabled"); } if (mFeatureFlags.audioRoutingCentralization()) { mActiveDeviceManager = new AudioRoutingManager(this, new ServiceFactory(), mFeatureFlags); if (Flags.audioRoutingCentralization()) { mActiveDeviceManager = new AudioRoutingManager(this, new ServiceFactory()); } else { mActiveDeviceManager = new ActiveDeviceManager(this, new ServiceFactory(), mFeatureFlags); mActiveDeviceManager = new ActiveDeviceManager(this, new ServiceFactory()); } mActiveDeviceManager.start(); Loading Loading @@ -6192,7 +6186,7 @@ public class AdapterService extends Service { } int getConnectionState(BluetoothDevice device) { if (mFeatureFlags.apiGetConnectionStateUsingIdentityAddress()) { if (Flags.apiGetConnectionStateUsingIdentityAddress()) { final String identityAddress = device.getIdentityAddress(); return (identityAddress == null) ? mNativeInterface.getConnectionState(getBytesFromAddress(device.getAddress())) Loading android/app/src/com/android/bluetooth/btservice/AudioRoutingManager.java +2 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ import com.android.bluetooth.BluetoothMethodProxy; import com.android.bluetooth.Utils; import com.android.bluetooth.a2dp.A2dpService; import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.hearingaid.HearingAidService; import com.android.bluetooth.hfp.HeadsetService; import com.android.bluetooth.le_audio.LeAudioService; Loading Loading @@ -146,8 +145,8 @@ public class AudioRoutingManager extends ActiveDeviceManager { } } AudioRoutingManager(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) { super(service, factory, featureFlags); AudioRoutingManager(AdapterService service, ServiceFactory factory) { super(service, factory); mAdapterService = service; mDbManager = mAdapterService.getDatabase(); mFactory = factory; Loading android/app/src/com/android/bluetooth/btservice/PhonePolicy.java +4 −6 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ import com.android.bluetooth.bas.BatteryService; import com.android.bluetooth.bass_client.BassClientService; import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.csip.CsipSetCoordinatorService; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.flags.Flags; import com.android.bluetooth.hap.HapClientService; import com.android.bluetooth.hearingaid.HearingAidService; import com.android.bluetooth.hfp.HeadsetService; Loading Loading @@ -84,7 +84,6 @@ public class PhonePolicy implements AdapterService.BluetoothStateCallback { @VisibleForTesting static int sConnectOtherProfilesTimeoutMillis = 6000; // 6s private DatabaseManager mDatabaseManager; private final FeatureFlags mFeatureFlags; private final AdapterService mAdapterService; private final ServiceFactory mFactory; private final Handler mHandler; Loading Loading @@ -171,11 +170,10 @@ public class PhonePolicy implements AdapterService.BluetoothStateCallback { resetStates(); } PhonePolicy(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) { PhonePolicy(AdapterService service, ServiceFactory factory) { mAdapterService = service; mDatabaseManager = Objects.requireNonNull(mAdapterService.getDatabase(), "DatabaseManager cannot be null when PhonePolicy starts"); mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null"); mFactory = factory; mHandler = new PhonePolicyHandler(service.getMainLooper()); mAutoConnectProfilesSupported = Loading Loading @@ -646,12 +644,12 @@ public class PhonePolicy implements AdapterService.BluetoothStateCallback { return; } if (!mFeatureFlags.autoConnectOnHfpWhenNoA2dpDevice()) { if (!Flags.autoConnectOnHfpWhenNoA2dpDevice()) { debugLog("HFP auto connect is not enabled"); return; } if (mFeatureFlags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { if (Flags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { final List<BluetoothDevice> mostRecentlyConnectedHfpDevices = mDatabaseManager.getMostRecentlyActiveHfpDevices(); for (BluetoothDevice hfpDevice : mostRecentlyConnectedHfpDevices) { Loading android/app/src/com/android/bluetooth/btservice/storage/DatabaseManager.java +3 −5 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import android.util.Log; import com.android.bluetooth.BluetoothStatsLog; import com.android.bluetooth.Utils; import com.android.bluetooth.btservice.AdapterService; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.flags.Flags; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; Loading @@ -68,7 +68,6 @@ public class DatabaseManager { private static final String TAG = "BluetoothDatabase"; private final AdapterService mAdapterService; private final FeatureFlags mFeatureFlags; private HandlerThread mHandlerThread = null; private Handler mHandler = null; private final Object mDatabaseLock = new Object(); Loading Loading @@ -114,9 +113,8 @@ public class DatabaseManager { LEGACY_HEARING_AID_PRIORITY_PREFIX = "bluetooth_hearing_aid_priority_"; /** Constructor of the DatabaseManager */ public DatabaseManager(AdapterService service, FeatureFlags featureFlags) { public DatabaseManager(AdapterService service) { mAdapterService = Objects.requireNonNull(service, "Adapter service cannot be null"); mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null"); mMetadataChangedLog = EvictingQueue.create(METADATA_CHANGED_LOG_MAX_SIZE); } Loading Loading @@ -648,7 +646,7 @@ public class DatabaseManager { if (isA2dpDevice) { resetActiveA2dpDevice(); } if (isHfpDevice && !mFeatureFlags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { if (isHfpDevice && !Flags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { resetActiveHfpDevice(); } Loading Loading
android/app/src/com/android/bluetooth/btservice/ActiveDeviceManager.java +6 −8 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ import com.android.bluetooth.BluetoothMethodProxy; import com.android.bluetooth.Utils; import com.android.bluetooth.a2dp.A2dpService; import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.flags.Flags; import com.android.bluetooth.hearingaid.HearingAidService; import com.android.bluetooth.hfp.HeadsetService; import com.android.bluetooth.le_audio.LeAudioService; Loading Loading @@ -100,7 +100,7 @@ import java.util.Set; * active Bluetooth device. */ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallback { private static final String TAG = "ActiveDeviceManager"; private static final String TAG = ActiveDeviceManager.class.getSimpleName(); private static final boolean DBG = true; @VisibleForTesting static final int A2DP_HFP_SYNC_CONNECTION_TIMEOUT_MS = 5_000; Loading @@ -112,7 +112,6 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac private Handler mHandler = null; private final AudioManager mAudioManager; private final AudioManagerAudioDeviceCallback mAudioManagerAudioDeviceCallback; private final FeatureFlags mFeatureFlags; private final Object mLock = new Object(); @GuardedBy("mLock") Loading Loading @@ -811,10 +810,9 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac } } ActiveDeviceManager(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) { ActiveDeviceManager(AdapterService service, ServiceFactory factory) { mAdapterService = service; mDbManager = mAdapterService.getDatabase(); mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null"); mFactory = factory; mAudioManager = service.getSystemService(AudioManager.class); mAudioManagerAudioDeviceCallback = new AudioManagerAudioDeviceCallback(); Loading Loading @@ -987,7 +985,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac if (device == null) { success = leAudioService.removeActiveDevice(hasFallbackDevice); } else { if (mFeatureFlags.leaudioActiveDeviceManagerGroupHandlingFix()) { if (Flags.leaudioActiveDeviceManagerGroupHandlingFix()) { if ((mLeAudioActiveDevice != null) && (Objects.equals( mLeAudioActiveDevice, leAudioService.getLeadDevice(device)))) { Loading @@ -1004,7 +1002,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac return false; } if (mFeatureFlags.leaudioActiveDeviceManagerGroupHandlingFix()) { if (Flags.leaudioActiveDeviceManagerGroupHandlingFix()) { mLeAudioActiveDevice = leAudioService.getLeadDevice(device); } else { mLeAudioActiveDevice = device; Loading Loading @@ -1260,7 +1258,7 @@ public class ActiveDeviceManager implements AdapterService.BluetoothStateCallbac * @return {@code true} if is broadcasting audio, {@code false} otherwise */ private boolean isBroadcastingAudio() { if (!mFeatureFlags.leaudioBroadcastAudioHandoverPolicies()) { if (!Flags.leaudioBroadcastAudioHandoverPolicies()) { // disable this if feature flag is false return false; } Loading
android/app/src/com/android/bluetooth/btservice/AdapterService.java +6 −12 Original line number Diff line number Diff line Loading @@ -125,7 +125,6 @@ import com.android.bluetooth.btservice.bluetoothkeystore.BluetoothKeystoreServic import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.btservice.storage.MetadataDatabase; import com.android.bluetooth.csip.CsipSetCoordinatorService; import com.android.bluetooth.flags.FeatureFlagsImpl; import com.android.bluetooth.flags.Flags; import com.android.bluetooth.gatt.GattService; import com.android.bluetooth.hap.HapClientService; Loading Loading @@ -402,7 +401,6 @@ public class AdapterService extends Service { private volatile boolean mTestModeEnabled = false; private MetricsLogger mMetricsLogger; private FeatureFlagsImpl mFeatureFlags; /** * Register a {@link ProfileService} with AdapterService. Loading Loading @@ -686,9 +684,7 @@ public class AdapterService extends Service { mSdpManager = SdpManager.init(this); mFeatureFlags = new FeatureFlagsImpl(); mDatabaseManager = new DatabaseManager(this, mFeatureFlags); mDatabaseManager = new DatabaseManager(this); mDatabaseManager.start(MetadataDatabase.createDatabase(this)); boolean isAutomotiveDevice = Loading @@ -704,18 +700,16 @@ public class AdapterService extends Service { */ if (!isAutomotiveDevice && getResources().getBoolean(R.bool.enable_phone_policy)) { Log.i(TAG, "Phone policy enabled"); mPhonePolicy = new PhonePolicy(this, new ServiceFactory(), mFeatureFlags); mPhonePolicy = new PhonePolicy(this, new ServiceFactory()); mPhonePolicy.start(); } else { Log.i(TAG, "Phone policy disabled"); } if (mFeatureFlags.audioRoutingCentralization()) { mActiveDeviceManager = new AudioRoutingManager(this, new ServiceFactory(), mFeatureFlags); if (Flags.audioRoutingCentralization()) { mActiveDeviceManager = new AudioRoutingManager(this, new ServiceFactory()); } else { mActiveDeviceManager = new ActiveDeviceManager(this, new ServiceFactory(), mFeatureFlags); mActiveDeviceManager = new ActiveDeviceManager(this, new ServiceFactory()); } mActiveDeviceManager.start(); Loading Loading @@ -6192,7 +6186,7 @@ public class AdapterService extends Service { } int getConnectionState(BluetoothDevice device) { if (mFeatureFlags.apiGetConnectionStateUsingIdentityAddress()) { if (Flags.apiGetConnectionStateUsingIdentityAddress()) { final String identityAddress = device.getIdentityAddress(); return (identityAddress == null) ? mNativeInterface.getConnectionState(getBytesFromAddress(device.getAddress())) Loading
android/app/src/com/android/bluetooth/btservice/AudioRoutingManager.java +2 −3 Original line number Diff line number Diff line Loading @@ -43,7 +43,6 @@ import com.android.bluetooth.BluetoothMethodProxy; import com.android.bluetooth.Utils; import com.android.bluetooth.a2dp.A2dpService; import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.hearingaid.HearingAidService; import com.android.bluetooth.hfp.HeadsetService; import com.android.bluetooth.le_audio.LeAudioService; Loading Loading @@ -146,8 +145,8 @@ public class AudioRoutingManager extends ActiveDeviceManager { } } AudioRoutingManager(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) { super(service, factory, featureFlags); AudioRoutingManager(AdapterService service, ServiceFactory factory) { super(service, factory); mAdapterService = service; mDbManager = mAdapterService.getDatabase(); mFactory = factory; Loading
android/app/src/com/android/bluetooth/btservice/PhonePolicy.java +4 −6 Original line number Diff line number Diff line Loading @@ -38,7 +38,7 @@ import com.android.bluetooth.bas.BatteryService; import com.android.bluetooth.bass_client.BassClientService; import com.android.bluetooth.btservice.storage.DatabaseManager; import com.android.bluetooth.csip.CsipSetCoordinatorService; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.flags.Flags; import com.android.bluetooth.hap.HapClientService; import com.android.bluetooth.hearingaid.HearingAidService; import com.android.bluetooth.hfp.HeadsetService; Loading Loading @@ -84,7 +84,6 @@ public class PhonePolicy implements AdapterService.BluetoothStateCallback { @VisibleForTesting static int sConnectOtherProfilesTimeoutMillis = 6000; // 6s private DatabaseManager mDatabaseManager; private final FeatureFlags mFeatureFlags; private final AdapterService mAdapterService; private final ServiceFactory mFactory; private final Handler mHandler; Loading Loading @@ -171,11 +170,10 @@ public class PhonePolicy implements AdapterService.BluetoothStateCallback { resetStates(); } PhonePolicy(AdapterService service, ServiceFactory factory, FeatureFlags featureFlags) { PhonePolicy(AdapterService service, ServiceFactory factory) { mAdapterService = service; mDatabaseManager = Objects.requireNonNull(mAdapterService.getDatabase(), "DatabaseManager cannot be null when PhonePolicy starts"); mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null"); mFactory = factory; mHandler = new PhonePolicyHandler(service.getMainLooper()); mAutoConnectProfilesSupported = Loading Loading @@ -646,12 +644,12 @@ public class PhonePolicy implements AdapterService.BluetoothStateCallback { return; } if (!mFeatureFlags.autoConnectOnHfpWhenNoA2dpDevice()) { if (!Flags.autoConnectOnHfpWhenNoA2dpDevice()) { debugLog("HFP auto connect is not enabled"); return; } if (mFeatureFlags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { if (Flags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { final List<BluetoothDevice> mostRecentlyConnectedHfpDevices = mDatabaseManager.getMostRecentlyActiveHfpDevices(); for (BluetoothDevice hfpDevice : mostRecentlyConnectedHfpDevices) { Loading
android/app/src/com/android/bluetooth/btservice/storage/DatabaseManager.java +3 −5 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import android.util.Log; import com.android.bluetooth.BluetoothStatsLog; import com.android.bluetooth.Utils; import com.android.bluetooth.btservice.AdapterService; import com.android.bluetooth.flags.FeatureFlags; import com.android.bluetooth.flags.Flags; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; Loading @@ -68,7 +68,6 @@ public class DatabaseManager { private static final String TAG = "BluetoothDatabase"; private final AdapterService mAdapterService; private final FeatureFlags mFeatureFlags; private HandlerThread mHandlerThread = null; private Handler mHandler = null; private final Object mDatabaseLock = new Object(); Loading Loading @@ -114,9 +113,8 @@ public class DatabaseManager { LEGACY_HEARING_AID_PRIORITY_PREFIX = "bluetooth_hearing_aid_priority_"; /** Constructor of the DatabaseManager */ public DatabaseManager(AdapterService service, FeatureFlags featureFlags) { public DatabaseManager(AdapterService service) { mAdapterService = Objects.requireNonNull(service, "Adapter service cannot be null"); mFeatureFlags = Objects.requireNonNull(featureFlags, "Feature Flags cannot be null"); mMetadataChangedLog = EvictingQueue.create(METADATA_CHANGED_LOG_MAX_SIZE); } Loading Loading @@ -648,7 +646,7 @@ public class DatabaseManager { if (isA2dpDevice) { resetActiveA2dpDevice(); } if (isHfpDevice && !mFeatureFlags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { if (isHfpDevice && !Flags.autoConnectOnMultipleHfpWhenNoA2dpDevice()) { resetActiveHfpDevice(); } Loading