From 82b5cb307f3dce6c9a3d6baaa269ca537713a423 Mon Sep 17 00:00:00 2001 From: Yanting Yang Date: Mon, 3 Dec 2018 19:33:51 +0800 Subject: [PATCH 1/5] Update title of ConnectedDeviceSlice header Bug: 114807655 Test: visual, robotest Change-Id: Ibda3f1439787541de0e7aac9f3bcfb016522cdc1 --- res/values/strings.xml | 2 + .../slices/ConnectedDeviceSlice.java | 2 +- .../slices/ConnectedDeviceSliceTest.java | 72 ++++++++++++++----- 3 files changed, 56 insertions(+), 20 deletions(-) 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 From 8ad18fb3eb603b8b9b6e7c42b6e5d096cfbbc0c3 Mon Sep 17 00:00:00 2001 From: tmfang Date: Wed, 28 Nov 2018 16:59:15 +0800 Subject: [PATCH 2/5] Use SettingsLib's ActionButtonsPreference Since we moved old ActionButtonPreference into SettingsLib, we need to update new imports and declaration in Settings source code. Test: robotest, manual test Bug: 120005054 Change-Id: I1e3514ba68a856071c81534d54c99c3d1a11a8ca --- res/layout/settings_action_buttons.xml | 52 --- res/values/styles.xml | 10 - res/xml/app_info_settings.xml | 2 +- res/xml/app_storage_settings.xml | 2 +- res/xml/bluetooth_device_details_fragment.xml | 2 +- res/xml/power_usage_detail.xml | 2 +- res/xml/tts_settings.xml | 2 +- res/xml/wifi_network_details_fragment.xml | 2 +- .../applications/AppStorageSettings.java | 6 +- .../AppButtonsPreferenceController.java | 11 +- .../BluetoothDetailsButtonsController.java | 7 +- .../settings/tts/TextToSpeechSettings.java | 7 +- .../widget/ActionButtonPreference.java | 333 ------------------ .../WifiDetailPreferenceController.java | 6 +- .../applications/AppStorageSettingsTest.java | 26 +- .../AppButtonsPreferenceControllerTest.java | 20 +- ...BluetoothDetailsButtonsControllerTest.java | 29 +- .../SettingsRobolectricTestRunner.java | 2 + .../widget/ActionButtonPreferenceTest.java | 283 --------------- .../WifiDetailPreferenceControllerTest.java | 26 +- 20 files changed, 111 insertions(+), 719 deletions(-) delete mode 100644 res/layout/settings_action_buttons.xml delete mode 100644 src/com/android/settings/widget/ActionButtonPreference.java delete mode 100644 tests/robotests/src/com/android/settings/widget/ActionButtonPreferenceTest.java diff --git a/res/layout/settings_action_buttons.xml b/res/layout/settings_action_buttons.xml deleted file mode 100644 index 56e1a36c6bb..00000000000 --- a/res/layout/settings_action_buttons.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - -