From 211d49f28c31e16c8161b807e16ce25a58d941f2 Mon Sep 17 00:00:00 2001 From: hughchen Date: Fri, 11 May 2018 10:16:32 +0800 Subject: [PATCH] =?UTF-8?q?Add=20=E2=80=9CRename=20device=E2=80=9D=20on=20?= =?UTF-8?q?Bluetooth=20screen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add BluetoothDeviceRenamePreferenceController in bluetooth_screen.xml * Refactor BluetoothDeviceRenamePreferenceController and BluetoothDeviceNamePreferenceController. Let these controllers can be init in xml. Bug: 78247352 Test: make -j50 RunSettingsRoboTests Change-Id: Iddd0cac1e973bbd82cb30fe4c18e8b359ba4ba2b --- res/xml/bluetooth_pairing_detail.xml | 4 +- res/xml/bluetooth_screen.xml | 6 +++ ...uetoothDeviceNamePreferenceController.java | 34 ++++---------- ...toothDeviceRenamePreferenceController.java | 45 ++++++++----------- .../bluetooth/BluetoothPairingDetail.java | 21 +++------ .../BluetoothDashboardFragment.java | 7 +++ ...othDeviceNamePreferenceControllerTest.java | 8 ++-- ...hDeviceRenamePreferenceControllerTest.java | 5 ++- 8 files changed, 57 insertions(+), 73 deletions(-) diff --git a/res/xml/bluetooth_pairing_detail.xml b/res/xml/bluetooth_pairing_detail.xml index e654a3cfa2b..86fb9e43d44 100644 --- a/res/xml/bluetooth_pairing_detail.xml +++ b/res/xml/bluetooth_pairing_detail.xml @@ -16,12 +16,14 @@ + android:summary="@string/summary_placeholder" + settings:controller="com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController"/> + + createPreferenceControllers(Context context) { - final List controllers = new ArrayList<>(); - controllers.add( - new BluetoothDeviceRenamePreferenceController(context, KEY_RENAME_DEVICES, this, - getLifecycle())); - - return controllers; - } - @Override public String getDeviceListKey() { return KEY_AVAIL_DEVICES; diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java index 77b75c51de3..3b24271664c 100644 --- a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java +++ b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java @@ -24,6 +24,7 @@ import android.support.annotation.VisibleForTesting; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.SettingsActivity; +import com.android.settings.bluetooth.BluetoothDeviceRenamePreferenceController; import com.android.settings.bluetooth.BluetoothSwitchPreferenceController; import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.TogglePreferenceController; @@ -78,6 +79,12 @@ public class BluetoothDashboardFragment extends DashboardFragment { mFooterPreference = mFooterPreferenceMixin.createFooterPreference(); } + @Override + public void onAttach(Context context) { + super.onAttach(context); + use(BluetoothDeviceRenamePreferenceController.class).setFragment(this); + } + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java index f5070ef34a4..1d37883d65d 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java @@ -43,6 +43,7 @@ public class BluetoothDeviceNamePreferenceControllerTest { private static final String DEVICE_NAME = "Nightshade"; private static final int ORDER = 1; + private static final String KEY_DEVICE_NAME = "test_key_name"; private Context mContext; @Mock @@ -61,8 +62,9 @@ public class BluetoothDeviceNamePreferenceControllerTest { when(mPreferenceScreen.getContext()).thenReturn(mContext); mPreference = new Preference(mContext); - mPreference.setKey(BluetoothDeviceNamePreferenceController.KEY_DEVICE_NAME); - mController = spy(new BluetoothDeviceNamePreferenceController(mContext, mLocalAdapter)); + mPreference.setKey(KEY_DEVICE_NAME); + mController = spy(new BluetoothDeviceNamePreferenceController(mContext, mLocalAdapter, + KEY_DEVICE_NAME)); doReturn(DEVICE_NAME).when(mController).getDeviceName(); } @@ -82,7 +84,7 @@ public class BluetoothDeviceNamePreferenceControllerTest { Preference preference = mController.createBluetoothDeviceNamePreference(mPreferenceScreen, ORDER); - assertThat(preference.getKey()).isEqualTo(mController.KEY_DEVICE_NAME); + assertThat(preference.getKey()).isEqualTo(mController.getPreferenceKey()); assertThat(preference.getOrder()).isEqualTo(ORDER); verify(mPreferenceScreen).addPreference(preference); } diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java index 6ba85937277..65eae2c411e 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java @@ -67,8 +67,9 @@ public class BluetoothDeviceRenamePreferenceControllerTest { mPreference = new Preference(mContext); mPreference.setKey(PREF_KEY); - mController = spy(new BluetoothDeviceRenamePreferenceController( - mContext, PREF_KEY, mFragment, mLocalAdapter)); + mController = spy(new BluetoothDeviceRenamePreferenceController(mContext, mLocalAdapter, + PREF_KEY)); + mController.setFragment(mFragment); doReturn(DEVICE_NAME).when(mController).getDeviceName(); }