Merge "Add 2 new ways to check for Support for Hearing Aids Profile"

am: 7982e6f346

Change-Id: I81f18175e61d5c1d1b213d5a112a8c70621e0d07
This commit is contained in:
Stanley Tng
2019-01-23 18:03:26 -08:00
committed by android-build-merger
4 changed files with 43 additions and 4 deletions

View File

@@ -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;
}

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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) {