Fix settings crash
- This CL before, "Previously connected device" didn't handle dock device. If user have disconnected dock device will cause Settings crash. This CL add condition to handle dock device to avoid crash. - Update test case. Bug: 157653997 Bug: 167054620 Test: make -j42 RunSettingsRoboTests Change-Id: I769cee3f589e14a993b00a0ae6ec3ddfba8ef281 Merged-In: I769cee3f589e14a993b00a0ae6ec3ddfba8ef281
This commit is contained in:
@@ -41,6 +41,7 @@ import com.android.settings.bluetooth.BluetoothDeviceUpdater;
|
||||
import com.android.settings.connecteddevice.dock.DockUpdater;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
||||
import com.android.settings.widget.SingleTargetGearPreference;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -187,6 +188,16 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceAdded_addDockDevicePreference_displayIt() {
|
||||
final SingleTargetGearPreference dockPreference = new SingleTargetGearPreference(
|
||||
mContext, null /* AttributeSet */);
|
||||
|
||||
mPreConnectedDeviceController.onDeviceAdded(dockPreference);
|
||||
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceAdded_addFourDevicePreference_onlyDisplayThree() {
|
||||
final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
|
||||
@@ -197,11 +208,14 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
mContext, mCachedDevice3, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
final BluetoothDevicePreference preference4 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice4, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
final SingleTargetGearPreference dockPreference = new SingleTargetGearPreference(
|
||||
mContext, null /* AttributeSet */);
|
||||
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference1);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference2);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference3);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference4);
|
||||
mPreConnectedDeviceController.onDeviceAdded(dockPreference);
|
||||
|
||||
// 3 BluetoothDevicePreference and 1 see all preference
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(4);
|
||||
@@ -211,9 +225,13 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
public void onDeviceRemoved_removeLastDevice_showSeeAllPreference() {
|
||||
final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice1, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
final SingleTargetGearPreference dockPreference = new SingleTargetGearPreference(
|
||||
mContext, null /* AttributeSet */);
|
||||
mPreferenceGroup.addPreference(preference1);
|
||||
mPreferenceGroup.addPreference(dockPreference);
|
||||
|
||||
mPreConnectedDeviceController.onDeviceRemoved(preference1);
|
||||
mPreConnectedDeviceController.onDeviceRemoved(dockPreference);
|
||||
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
|
||||
}
|
||||
|
Reference in New Issue
Block a user