Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8685c856 authored by Raff Tsai's avatar Raff Tsai Committed by Android (Google) Code Review
Browse files

Merge "Fix popup dialog show wrong device name"

parents f66f0420 b20bfc94
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -116,9 +116,11 @@ public class DeviceNamePreferenceController extends BasePreferenceController
        return mWifiDeviceNameTextValidator.isTextValid(deviceName);
    }

    public void confirmDeviceName() {
        if (mPendingDeviceName != null) {
    public void updateDeviceName(boolean update) {
        if (update && mPendingDeviceName != null) {
            setDeviceName(mPendingDeviceName);
        } else {
            mPreference.setText(getSummary().toString());
        }
    }

@@ -153,7 +155,8 @@ public class DeviceNamePreferenceController extends BasePreferenceController
     * For more information, see {@link com.android.settings.bluetooth.BluetoothNameDialogFragment}.
     */
    private static final String getFilteredBluetoothString(final String deviceName) {
        CharSequence filteredSequence = new BluetoothLengthDeviceNameFilter().filter(deviceName, 0, deviceName.length(),
        CharSequence filteredSequence = new BluetoothLengthDeviceNameFilter().filter(deviceName, 0,
                deviceName.length(),
                new SpannedString(""),
                0, 0);
        // null -> use the original
+3 −1
Original line number Diff line number Diff line
@@ -66,7 +66,9 @@ public class DeviceNameWarningDialog extends InstrumentedDialogFragment
    public void onClick(DialogInterface dialog, int which) {
        final MyDeviceInfoFragment host = (MyDeviceInfoFragment) getTargetFragment();
        if (which == DialogInterface.BUTTON_POSITIVE) {
            host.onSetDeviceNameConfirm();
            host.onSetDeviceNameConfirm(true);
        } else {
            host.onSetDeviceNameConfirm(false);
        }
    }
}
+2 −2
Original line number Diff line number Diff line
@@ -178,9 +178,9 @@ public class MyDeviceInfoFragment extends DashboardFragment
        DeviceNameWarningDialog.show(this);
    }

    public void onSetDeviceNameConfirm() {
    public void onSetDeviceNameConfirm(boolean confirm) {
        final DeviceNamePreferenceController controller = use(DeviceNamePreferenceController.class);
        controller.confirmDeviceName();
        controller.updateDeviceName(confirm);
    }

    private static class SummaryProvider implements SummaryLoader.SummaryProvider {
+25 −7
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public class DeviceNamePreferenceControllerTest {

    @Test
    public void setDeviceName_preferenceUpdatedWhenDeviceNameUpdated() {
        forceAcceptDeviceName();
        acceptDeviceName(true);
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, TESTING_STRING);

@@ -123,7 +123,7 @@ public class DeviceNamePreferenceControllerTest {

    @Test
    public void setDeviceName_bluetoothNameUpdatedWhenDeviceNameUpdated() {
        forceAcceptDeviceName();
        acceptDeviceName(true);
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, TESTING_STRING);

@@ -132,7 +132,7 @@ public class DeviceNamePreferenceControllerTest {

    @Test
    public void setDeviceName_wifiTetherNameUpdatedWhenDeviceNameUpdated() {
        forceAcceptDeviceName();
        acceptDeviceName(true);
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, TESTING_STRING);

@@ -150,21 +150,39 @@ public class DeviceNamePreferenceControllerTest {

    @Test
    public void setDeviceName_ignoresIfCancelPressed() {
        forceAcceptDeviceName();
        acceptDeviceName(true);
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, TESTING_STRING);

        assertThat(mBluetoothAdapter.getName()).isEqualTo(TESTING_STRING);
    }

    private void forceAcceptDeviceName() {
    @Test
    public void setDeviceName_okInDeviceNameWarningDialog_shouldChangePreferenceText() {
        acceptDeviceName(true);
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, TESTING_STRING);

        assertThat(mPreference.getSummary()).isEqualTo(TESTING_STRING);
    }

    @Test
    public void setDeviceName_cancelInDeviceNameWarningDialog_shouldNotChangePreferenceText() {
        acceptDeviceName(false);
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, TESTING_STRING);

        assertThat(mPreference.getSummary()).isNotEqualTo(TESTING_STRING);
        assertThat(mPreference.getText()).isEqualTo(mPreference.getSummary());
    }

    private void acceptDeviceName(boolean accept) {
        mController.setHost(
                new DeviceNamePreferenceController.DeviceNamePreferenceHost() {
                    @Override
                    public void showDeviceNameWarningDialog(String deviceName) {
                        mController.confirmDeviceName();
                        mController.updateDeviceName(accept);
                    }
                });
    }

}
+2 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ public class DeviceNameWarningDialogTest {
        fragmentController.create().start().resume();
        fragment.onClick(null, DialogInterface.BUTTON_POSITIVE);

        verify(deviceInfoFragment).onSetDeviceNameConfirm();
        verify(deviceInfoFragment).onSetDeviceNameConfirm(true);
    }

    @Test
@@ -43,6 +43,6 @@ public class DeviceNameWarningDialogTest {
        fragmentController.create().start().resume();
        fragment.onClick(null, DialogInterface.BUTTON_NEGATIVE);

        verify(deviceInfoFragment, never()).onSetDeviceNameConfirm();
        verify(deviceInfoFragment).onSetDeviceNameConfirm(false);
    }
}