diff --git a/res/values/strings.xml b/res/values/strings.xml index fb8ab201498..b18002fc39b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10224,6 +10224,8 @@ %1$d device connected %1$d devices connected + + Bluetooth Devices No connected devices diff --git a/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java b/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java index 6a1f1f0520a..0c79b6b37d5 100644 --- a/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java +++ b/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSlice.java @@ -101,7 +101,7 @@ public class ConnectedDeviceSlice implements CustomSliceable { public Slice getSlice() { final IconCompat icon = IconCompat.createWithResource(mContext, R.drawable.ic_homepage_connected_device); - final CharSequence title = mContext.getText(R.string.connected_devices_dashboard_title); + final CharSequence title = mContext.getText(R.string.bluetooth_connected_devices); final CharSequence titleNoConnectedDevices = mContext.getText( R.string.no_connected_devices); final PendingIntent primaryActionIntent = PendingIntent.getActivity(mContext, 0, diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java index 23da1272b5c..472d2caf9f7 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/ConnectedDeviceSliceTest.java @@ -36,6 +36,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SliceTester; import com.android.settingslib.bluetooth.CachedBluetoothDevice; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -49,12 +50,17 @@ import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) public class ConnectedDeviceSliceTest { + private static final String BLUETOOTH_SUMMARY = "BluetoothSummary"; + private static final String BLUETOOTH_TITLE = "BluetoothTitle"; + @Mock private CachedBluetoothDevice mCachedBluetoothDevice; - private List mCachedDevices = new ArrayList(); - private Context mContext; + private List mBluetoothConnectedDeviceList; private ConnectedDeviceSlice mConnectedDeviceSlice; + private Context mContext; + private IconCompat mIcon; + private PendingIntent mDetailIntent; @Before public void setUp() { @@ -65,35 +71,63 @@ public class ConnectedDeviceSliceTest { SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); mConnectedDeviceSlice = spy(new ConnectedDeviceSlice(mContext)); + + // Mock the icon and detail intent of Bluetooth. + mIcon = IconCompat.createWithResource(mContext, R.drawable.ic_homepage_connected_device); + mDetailIntent = PendingIntent.getActivity(mContext, 0, new Intent("test action"), 0); + doReturn(mIcon).when(mConnectedDeviceSlice).getConnectedDeviceIcon(any()); + doReturn(mDetailIntent).when(mConnectedDeviceSlice).getBluetoothDetailIntent(any()); + + // Initial Bluetooth connected device list. + mBluetoothConnectedDeviceList = new ArrayList<>(); + } + + @After + public void tearDown() { + if (!mBluetoothConnectedDeviceList.isEmpty()) { + mBluetoothConnectedDeviceList.clear(); + } } @Test - public void getSlice_hasConnectedDevices_shouldBeCorrectSliceContent() { - final String title = "BluetoothTitle"; - final String summary = "BluetoothSummary"; - final IconCompat icon = IconCompat.createWithResource(mContext, - R.drawable.ic_homepage_connected_device); - final PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, - new Intent("test action"), 0); - doReturn(title).when(mCachedBluetoothDevice).getName(); - doReturn(summary).when(mCachedBluetoothDevice).getConnectionSummary(); - mCachedDevices.add(mCachedBluetoothDevice); - doReturn(mCachedDevices).when(mConnectedDeviceSlice).getBluetoothConnectedDevices(); - doReturn(icon).when(mConnectedDeviceSlice).getConnectedDeviceIcon(any()); - doReturn(pendingIntent).when(mConnectedDeviceSlice).getBluetoothDetailIntent(any()); + public void getSlice_hasConnectedDevices_shouldHaveCorrectTitle() { + mockBluetoothDeviceList(); + doReturn(mBluetoothConnectedDeviceList).when( + mConnectedDeviceSlice).getBluetoothConnectedDevices(); + final Slice slice = mConnectedDeviceSlice.getSlice(); final List sliceItems = slice.getItems(); - SliceTester.assertTitle(sliceItems, title); + SliceTester.assertTitle(sliceItems, + mContext.getString(R.string.bluetooth_connected_devices)); } @Test - public void getSlice_hasNoConnectedDevices_shouldReturnCorrectHeader() { - final List connectedBluetoothList = new ArrayList<>(); - doReturn(connectedBluetoothList).when(mConnectedDeviceSlice).getBluetoothConnectedDevices(); + public void getSlice_hasConnectedDevices_shouldHaveCorrectContent() { + mockBluetoothDeviceList(); + doReturn(mBluetoothConnectedDeviceList).when( + mConnectedDeviceSlice).getBluetoothConnectedDevices(); + + final Slice slice = mConnectedDeviceSlice.getSlice(); + + final List sliceItems = slice.getItems(); + SliceTester.assertTitle(sliceItems, BLUETOOTH_TITLE); + } + + @Test + public void getSlice_noConnectedDevices_shouldHaveCorrectTitle() { + doReturn(mBluetoothConnectedDeviceList).when( + mConnectedDeviceSlice).getBluetoothConnectedDevices(); + final Slice slice = mConnectedDeviceSlice.getSlice(); final List sliceItems = slice.getItems(); SliceTester.assertTitle(sliceItems, mContext.getString(R.string.no_connected_devices)); } + + private void mockBluetoothDeviceList() { + doReturn(BLUETOOTH_TITLE).when(mCachedBluetoothDevice).getName(); + doReturn(BLUETOOTH_SUMMARY).when(mCachedBluetoothDevice).getConnectionSummary(); + mBluetoothConnectedDeviceList.add(mCachedBluetoothDevice); + } } \ No newline at end of file