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
diff --git a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
index 74c39b6..c5b29f3 100644
--- a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
@@ -132,7 +132,7 @@
 
     @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 c3956d3..376c7ed 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 @@
     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 @@
                         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 @@
 
         @Override
         protected String getDeviceName() {
-            return null;
+            return mName;
         }
 
         @Override
         protected void setDeviceName(String deviceName) {
-
+            mName = deviceName;
         }
 
         @Override