Add error handle for device that not support Bluetooth
- Add LocalBluetoothManager null check for device that
not support Bluetooth
- Add test to verify when LocalBluetoothManager is null
will not crash
Bug: 110712414
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib506a0206cfcfdfec60bdfcf9a1944338a7ab729
diff --git a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
index b418630..5959414 100644
--- a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.content.pm.PackageManager;
+import android.util.Log;
import com.android.settings.R;
import com.android.settings.bluetooth.AvailableMediaBluetoothDeviceUpdater;
@@ -46,12 +47,14 @@
public class AvailableMediaDeviceGroupController extends BasePreferenceController
implements LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback, BluetoothCallback {
+ private static final String TAG = "AvailableMediaDeviceGroupController";
private static final String KEY = "available_device_list";
@VisibleForTesting
PreferenceGroup mPreferenceGroup;
+ @VisibleForTesting
+ LocalBluetoothManager mLocalBluetoothManager;
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
- private final LocalBluetoothManager mLocalBluetoothManager;
public AvailableMediaDeviceGroupController(Context context) {
super(context, KEY);
@@ -60,12 +63,20 @@
@Override
public void onStart() {
+ if (mLocalBluetoothManager == null) {
+ Log.e(TAG, "onStart() Bluetooth is not supported on this device");
+ return;
+ }
mBluetoothDeviceUpdater.registerCallback();
mLocalBluetoothManager.getEventManager().registerCallback(this);
}
@Override
public void onStop() {
+ if (mLocalBluetoothManager == null) {
+ Log.e(TAG, "onStop() Bluetooth is not supported on this device");
+ return;
+ }
mBluetoothDeviceUpdater.unregisterCallback();
mLocalBluetoothManager.getEventManager().unregisterCallback(this);
}