Merge "Add 2 new ways to check for Support for Hearing Aids Profile"
am: 7982e6f346
Change-Id: I81f18175e61d5c1d1b213d5a112a8c70621e0d07
This commit is contained in:
@@ -1899,6 +1899,20 @@ public final class BluetoothAdapter {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if Hearing Aid Profile is supported.
|
||||
*
|
||||
* @return true if phone supports Hearing Aid Profile
|
||||
*/
|
||||
private boolean isHearingAidProfileSupported() {
|
||||
try {
|
||||
return mManagerService.isHearingAidProfileSupported();
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "remote expection when calling isHearingAidProfileSupported", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the maximum number of connected audio devices.
|
||||
*
|
||||
@@ -2051,6 +2065,11 @@ public final class BluetoothAdapter {
|
||||
supportedProfiles.add(i);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Bluetooth is disabled. Just fill in known supported Profiles
|
||||
if (isHearingAidProfileSupported()) {
|
||||
supportedProfiles.add(BluetoothProfile.HEARING_AID);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
@@ -2525,8 +2544,11 @@ public final class BluetoothAdapter {
|
||||
BluetoothHidDevice hidDevice = new BluetoothHidDevice(context, listener);
|
||||
return true;
|
||||
} else if (profile == BluetoothProfile.HEARING_AID) {
|
||||
BluetoothHearingAid hearingAid = new BluetoothHearingAid(context, listener);
|
||||
return true;
|
||||
if (isHearingAidProfileSupported()) {
|
||||
BluetoothHearingAid hearingAid = new BluetoothHearingAid(context, listener);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -122,6 +122,9 @@
|
||||
be sent during a change to the audio output device. -->
|
||||
<bool name="config_sendAudioBecomingNoisy">true</bool>
|
||||
|
||||
<!-- Whether Hearing Aid profile is supported -->
|
||||
<bool name="config_hearing_aid_profile_supported">true</bool>
|
||||
|
||||
<!-- Flag to disable all transition animations -->
|
||||
<bool name="config_disableTransitionAnimation">false</bool>
|
||||
|
||||
|
||||
@@ -434,6 +434,7 @@
|
||||
<java-symbol type="integer" name="config_bluetooth_operating_voltage_mv" />
|
||||
<java-symbol type="bool" name="config_bluetooth_pan_enable_autoconnect" />
|
||||
<java-symbol type="bool" name="config_bluetooth_reload_supported_profiles_when_enabled" />
|
||||
<java-symbol type="bool" name="config_hearing_aid_profile_supported" />
|
||||
<java-symbol type="integer" name="config_cursorWindowSize" />
|
||||
<java-symbol type="integer" name="config_drawLockTimeoutMillis" />
|
||||
<java-symbol type="integer" name="config_doublePressOnPowerBehavior" />
|
||||
|
||||
@@ -208,6 +208,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
|
||||
private int mErrorRecoveryRetryCounter;
|
||||
private final int mSystemUiUid;
|
||||
|
||||
private boolean mIsHearingAidProfileSupported;
|
||||
|
||||
// Save a ProfileServiceConnections object for each of the bound
|
||||
// bluetooth profile services
|
||||
private final Map<Integer, ProfileServiceConnections> mProfileServices = new HashMap<>();
|
||||
@@ -391,13 +393,19 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
|
||||
mCallbacks = new RemoteCallbackList<IBluetoothManagerCallback>();
|
||||
mStateChangeCallbacks = new RemoteCallbackList<IBluetoothStateChangeCallback>();
|
||||
|
||||
mIsHearingAidProfileSupported = context.getResources()
|
||||
.getBoolean(com.android.internal.R.bool.config_hearing_aid_profile_supported);
|
||||
|
||||
// TODO: We need a more generic way to initialize the persist keys of FeatureFlagUtils
|
||||
boolean isHearingAidEnabled;
|
||||
String value = SystemProperties.get(FeatureFlagUtils.PERSIST_PREFIX + FeatureFlagUtils.HEARING_AID_SETTINGS);
|
||||
if (!TextUtils.isEmpty(value)) {
|
||||
isHearingAidEnabled = Boolean.parseBoolean(value);
|
||||
boolean isHearingAidEnabled = Boolean.parseBoolean(value);
|
||||
Log.v(TAG, "set feature flag HEARING_AID_SETTINGS to " + isHearingAidEnabled);
|
||||
FeatureFlagUtils.setEnabled(context, FeatureFlagUtils.HEARING_AID_SETTINGS, isHearingAidEnabled);
|
||||
if (isHearingAidEnabled && !mIsHearingAidProfileSupported) {
|
||||
// Overwrite to enable support by FeatureFlag
|
||||
mIsHearingAidProfileSupported = true;
|
||||
}
|
||||
}
|
||||
|
||||
IntentFilter filter = new IntentFilter();
|
||||
@@ -679,6 +687,11 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isHearingAidProfileSupported() {
|
||||
return mIsHearingAidProfileSupported;
|
||||
}
|
||||
|
||||
// Monitor change of BLE scan only mode settings.
|
||||
private void registerForBleScanModeChange() {
|
||||
ContentObserver contentObserver = new ContentObserver(null) {
|
||||
|
||||
Reference in New Issue
Block a user