Update title of ConnectedDeviceSlice header

Bug: 114807655
Test: visual, robotest
Change-Id: Ibda3f1439787541de0e7aac9f3bcfb016522cdc1
This commit is contained in:
Yanting Yang
2018-12-03 19:33:51 +08:00
parent 4c3251ebab
commit 82b5cb307f
3 changed files with 56 additions and 20 deletions

View File

@@ -10224,6 +10224,8 @@
<item quantity="one"><xliff:g id="number_device_count">%1$d</xliff:g> device connected</item> <item quantity="one"><xliff:g id="number_device_count">%1$d</xliff:g> device connected</item>
<item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> devices connected</item> <item quantity="other"><xliff:g id="number_device_count">%1$d</xliff:g> devices connected</item>
</plurals> </plurals>
<!-- Title for bluetooth connected devices in connected device slice. [CHAR LIMIT=NONE] -->
<string name="bluetooth_connected_devices">Bluetooth Devices</string>
<!-- Title for no connected devices in connected device slice. [CHAR LIMIT=NONE] --> <!-- Title for no connected devices in connected device slice. [CHAR LIMIT=NONE] -->
<string name="no_connected_devices">No connected devices</string> <string name="no_connected_devices">No connected devices</string>

View File

@@ -101,7 +101,7 @@ public class ConnectedDeviceSlice implements CustomSliceable {
public Slice getSlice() { public Slice getSlice() {
final IconCompat icon = IconCompat.createWithResource(mContext, final IconCompat icon = IconCompat.createWithResource(mContext,
R.drawable.ic_homepage_connected_device); 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( final CharSequence titleNoConnectedDevices = mContext.getText(
R.string.no_connected_devices); R.string.no_connected_devices);
final PendingIntent primaryActionIntent = PendingIntent.getActivity(mContext, 0, final PendingIntent primaryActionIntent = PendingIntent.getActivity(mContext, 0,

View File

@@ -36,6 +36,7 @@ import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.SliceTester; import com.android.settings.testutils.SliceTester;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@@ -49,12 +50,17 @@ import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
public class ConnectedDeviceSliceTest { public class ConnectedDeviceSliceTest {
private static final String BLUETOOTH_SUMMARY = "BluetoothSummary";
private static final String BLUETOOTH_TITLE = "BluetoothTitle";
@Mock @Mock
private CachedBluetoothDevice mCachedBluetoothDevice; private CachedBluetoothDevice mCachedBluetoothDevice;
private List<CachedBluetoothDevice> mCachedDevices = new ArrayList<CachedBluetoothDevice>(); private List<CachedBluetoothDevice> mBluetoothConnectedDeviceList;
private Context mContext;
private ConnectedDeviceSlice mConnectedDeviceSlice; private ConnectedDeviceSlice mConnectedDeviceSlice;
private Context mContext;
private IconCompat mIcon;
private PendingIntent mDetailIntent;
@Before @Before
public void setUp() { public void setUp() {
@@ -65,35 +71,63 @@ public class ConnectedDeviceSliceTest {
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
mConnectedDeviceSlice = spy(new ConnectedDeviceSlice(mContext)); 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 @Test
public void getSlice_hasConnectedDevices_shouldBeCorrectSliceContent() { public void getSlice_hasConnectedDevices_shouldHaveCorrectTitle() {
final String title = "BluetoothTitle"; mockBluetoothDeviceList();
final String summary = "BluetoothSummary"; doReturn(mBluetoothConnectedDeviceList).when(
final IconCompat icon = IconCompat.createWithResource(mContext, mConnectedDeviceSlice).getBluetoothConnectedDevices();
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());
final Slice slice = mConnectedDeviceSlice.getSlice(); final Slice slice = mConnectedDeviceSlice.getSlice();
final List<SliceItem> sliceItems = slice.getItems(); final List<SliceItem> sliceItems = slice.getItems();
SliceTester.assertTitle(sliceItems, title); SliceTester.assertTitle(sliceItems,
mContext.getString(R.string.bluetooth_connected_devices));
} }
@Test @Test
public void getSlice_hasNoConnectedDevices_shouldReturnCorrectHeader() { public void getSlice_hasConnectedDevices_shouldHaveCorrectContent() {
final List<CachedBluetoothDevice> connectedBluetoothList = new ArrayList<>(); mockBluetoothDeviceList();
doReturn(connectedBluetoothList).when(mConnectedDeviceSlice).getBluetoothConnectedDevices(); doReturn(mBluetoothConnectedDeviceList).when(
mConnectedDeviceSlice).getBluetoothConnectedDevices();
final Slice slice = mConnectedDeviceSlice.getSlice();
final List<SliceItem> 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 Slice slice = mConnectedDeviceSlice.getSlice();
final List<SliceItem> sliceItems = slice.getItems(); final List<SliceItem> sliceItems = slice.getItems();
SliceTester.assertTitle(sliceItems, mContext.getString(R.string.no_connected_devices)); 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);
}
} }