Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 83e5cd00 authored by Yuyang Huang's avatar Yuyang Huang Committed by Cherrypicker Worker
Browse files

Enable/Disable ASHA profile with LE audio toggle

LE audio has more capability and better quality than ASHA has. When LE audio turned on, ASHA should be off to avoid media streaming profile conflict.

Bug: 287525854
Test: manual
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:f79e084bd0a3f9cd332d8218ac040d8c6c60f658)
Merged-In: I3c5c9012c167b920e484b39374fe8174191b094d
Change-Id: I3c5c9012c167b920e484b39374fe8174191b094d
parent 8141b102
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -319,11 +319,16 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll
            return;
        }

        LocalBluetoothProfile asha = mProfileManager.getHearingAidProfile();

        for (CachedBluetoothDevice leAudioDevice : mProfileDeviceMap.get(profile.toString())) {
            Log.d(TAG,
                    "device:" + leAudioDevice.getDevice().getAnonymizedAddress()
                            + "disable LE profile");
            profile.setEnabled(leAudioDevice.getDevice(), false);
            if (asha != null) {
                asha.setEnabled(leAudioDevice.getDevice(), true);
            }
        }

        if (!SystemProperties.getBoolean(ENABLE_DUAL_MODE_AUDIO, false)) {
@@ -349,12 +354,16 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll
            disableProfileBeforeUserEnablesLeAudio(mProfileManager.getA2dpProfile());
            disableProfileBeforeUserEnablesLeAudio(mProfileManager.getHeadsetProfile());
        }
        LocalBluetoothProfile asha = mProfileManager.getHearingAidProfile();

        for (CachedBluetoothDevice leAudioDevice : mProfileDeviceMap.get(profile.toString())) {
            Log.d(TAG,
                    "device:" + leAudioDevice.getDevice().getAnonymizedAddress()
                            + "enable LE profile");
            profile.setEnabled(leAudioDevice.getDevice(), true);
            if (asha != null) {
                asha.setEnabled(leAudioDevice.getDevice(), false);
            }
        }
    }

@@ -371,6 +380,12 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll
                            + profile.toString() + " profile is disabled. Do nothing.");
                }
            }
        } else {
            if (profile == null) {
                Log.w(TAG, "profile is null");
            } else {
                Log.w(TAG, profile.toString() + " is not in " + mProfileDeviceMap);
            }
        }
    }

@@ -387,6 +402,12 @@ public class BluetoothDetailsProfilesController extends BluetoothDetailsControll
                            + profile.toString() + " profile is enabled. Do nothing.");
                }
            }
        } else {
            if (profile == null) {
                Log.w(TAG, "profile is null");
            } else {
                Log.w(TAG, profile.toString() + " is not in " + mProfileDeviceMap);
            }
        }
    }