Fix runtime exception when cachedDevice is null
Finish the activity after call super.onAttach(). Bug: 143187915 Test: make -j42 RunSettingsRoboTests Change-Id: I8f205ef60797bd9eb96617d413f554613008f65b
This commit is contained in:
@@ -92,7 +92,8 @@ public class AdvancedBluetoothDetailsHeaderController extends BasePreferenceCont
|
|||||||
public int getAvailabilityStatus() {
|
public int getAvailabilityStatus() {
|
||||||
final boolean advancedEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
|
final boolean advancedEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
|
||||||
SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, true);
|
SettingsUIDeviceConfig.BT_ADVANCED_HEADER_ENABLED, true);
|
||||||
final boolean untetheredHeadset = BluetoothUtils.getBooleanMetaData(
|
final boolean untetheredHeadset = mCachedDevice != null
|
||||||
|
&& BluetoothUtils.getBooleanMetaData(
|
||||||
mCachedDevice.getDevice(), BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET);
|
mCachedDevice.getDevice(), BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET);
|
||||||
return advancedEnabled && untetheredHeadset ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
return advancedEnabled && untetheredHeadset ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
@@ -23,6 +23,7 @@ import android.bluetooth.BluetoothDevice;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.DeviceConfig;
|
import android.provider.DeviceConfig;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -107,12 +108,13 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
|
|||||||
mDeviceAddress = getArguments().getString(KEY_DEVICE_ADDRESS);
|
mDeviceAddress = getArguments().getString(KEY_DEVICE_ADDRESS);
|
||||||
mManager = getLocalBluetoothManager(context);
|
mManager = getLocalBluetoothManager(context);
|
||||||
mCachedDevice = getCachedDevice(mDeviceAddress);
|
mCachedDevice = getCachedDevice(mDeviceAddress);
|
||||||
|
super.onAttach(context);
|
||||||
if (mCachedDevice == null) {
|
if (mCachedDevice == null) {
|
||||||
// Close this page if device is null with invalid device mac address
|
// Close this page if device is null with invalid device mac address
|
||||||
|
Log.w(TAG, "onAttach() CachedDevice is null!");
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
super.onAttach(context);
|
|
||||||
use(AdvancedBluetoothDetailsHeaderController.class).init(mCachedDevice);
|
use(AdvancedBluetoothDetailsHeaderController.class).init(mCachedDevice);
|
||||||
|
|
||||||
final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory(
|
final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory(
|
||||||
|
Reference in New Issue
Block a user