Fix crash when no Bluetooth feature in Settings
- Move PreferenceGroup init method out of isAvailable() condition, then PreferenceGroup will not be null. - Update getAvailabilityStatus(), since the controller now may have usb and dock. Bug: 110712414 Test: make -j42 RunSettingsRoboTests Change-Id: I4d85a42c26fb20d319e7321177b271933be3fdb0
This commit is contained in:
@@ -73,10 +73,11 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
|
||||
@Override
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
if (isAvailable()) {
|
||||
mPreferenceGroup = screen.findPreference(KEY);
|
||||
mPreferenceGroup.setVisible(false);
|
||||
|
||||
mPreferenceGroup = screen.findPreference(KEY);
|
||||
mPreferenceGroup.setVisible(false);
|
||||
|
||||
if (isAvailable()) {
|
||||
final Context context = screen.getContext();
|
||||
mBluetoothDeviceUpdater.setPrefContext(context);
|
||||
mBluetoothDeviceUpdater.forceUpdate();
|
||||
@@ -88,7 +89,11 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
|
||||
final PackageManager packageManager = mContext.getPackageManager();
|
||||
return (packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
|
||||
|| packageManager.hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY)
|
||||
|| packageManager.hasSystemFeature(PackageManager.FEATURE_USB_HOST)
|
||||
|| mConnectedDockUpdater != null)
|
||||
? AVAILABLE_UNSEARCHABLE
|
||||
: UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
Reference in New Issue
Block a user