diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java index 3ab83cda0b5..afcc184a7ee 100644 --- a/src/com/android/settings/network/TetherPreferenceController.java +++ b/src/com/android/settings/network/TetherPreferenceController.java @@ -127,7 +127,8 @@ public class TetherPreferenceController extends AbstractPreferenceController imp @Override public void onCreate(Bundle savedInstanceState) { - if (mBluetoothAdapter != null) { + if (mBluetoothAdapter != null && + mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) { mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener, BluetoothProfile.PAN); } diff --git a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java index 61523f4e55a..5bf675e91b0 100644 --- a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java @@ -75,10 +75,21 @@ public class TetherPreferenceControllerTest { @Test public void lifeCycle_onCreate_shouldInitBluetoothPan() { + when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_ON); mController.onCreate(null); - verify(mBluetoothAdapter) - .getProfileProxy(mContext, mController.mBtProfileServiceListener, BluetoothProfile.PAN); + verify(mBluetoothAdapter).getState(); + verify(mBluetoothAdapter).getProfileProxy(mContext, mController.mBtProfileServiceListener, + BluetoothProfile.PAN); + } + + @Test + public void lifeCycle_onCreate_shouldNotInitBluetoothPanWhenBluetoothOff() { + when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF); + mController.onCreate(null); + + verify(mBluetoothAdapter).getState(); + verifyNoMoreInteractions(mBluetoothAdapter); } @Test