From fad48eddd80e5f5d627c61a2f5723aa11520ee5b Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Wed, 7 Feb 2024 14:11:32 +0000 Subject: [PATCH] Accept new bluetooth device name on enter press. When physical keyboard is connected, on enter press accept the new name and dismiss the dialog. Bug: 319621722 Test: atest BluetoothNameDialogFragmentTest Flag: NA Change-Id: Ibc4812ad559d65eb97156d83d2a6124893ffd3a6 --- .../bluetooth/BluetoothNameDialogFragment.java | 2 +- .../BluetoothNameDialogFragmentTest.java | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java index 74c39b6f8c2..c5b29f3e7e0 100644 --- a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java +++ b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java @@ -132,7 +132,7 @@ abstract class BluetoothNameDialogFragment extends InstrumentedDialogFragment @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (actionId == EditorInfo.IME_ACTION_DONE) { + if (actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_NULL) { setDeviceName(v.getText().toString()); if (mAlertDialog != null && mAlertDialog.isShowing()) { mAlertDialog.dismiss(); diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothNameDialogFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothNameDialogFragmentTest.java index c3956d31959..376c7ed09ed 100644 --- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothNameDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothNameDialogFragmentTest.java @@ -33,6 +33,8 @@ public class BluetoothNameDialogFragmentTest { private TestBluetoothNameDialogFragment mBluetoothNameDialogFragment; private TextView mTextView; + private static final String NAME_FOR_TEST = "test_device_name"; + @Before public void setUp() { MockitoAnnotations.initMocks(this); @@ -51,12 +53,24 @@ public class BluetoothNameDialogFragmentTest { null)).isTrue(); } + @Test + public void onEditorAction_ImeNull_setsDeviceName() { + + + mTextView.setText(NAME_FOR_TEST); + assertThat( + mBluetoothNameDialogFragment.onEditorAction(mTextView, EditorInfo.IME_NULL, + null)).isTrue(); + assertThat(mBluetoothNameDialogFragment.getDeviceName()).isEqualTo(NAME_FOR_TEST); + } /** * Test fragment for {@link BluetoothNameDialogFragment} to test common methods */ public static class TestBluetoothNameDialogFragment extends BluetoothNameDialogFragment { + private String mName; + @Override protected int getDialogTitle() { return 0; @@ -64,12 +78,12 @@ public class BluetoothNameDialogFragmentTest { @Override protected String getDeviceName() { - return null; + return mName; } @Override protected void setDeviceName(String deviceName) { - + mName = deviceName; } @Override