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

Commit 9dc3f74c authored by Salvador Martinez's avatar Salvador Martinez Committed by Android (Google) Code Review
Browse files

Merge "Update add network dialog to not make networks hidden by default" into pi-dev

parents 861bf935 8bc3fa06
Loading
Loading
Loading
Loading
+28 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
-->

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/dialog_scrollview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:fadeScrollbars="false"
@@ -600,6 +601,33 @@
                            android:checked="true" />
                </LinearLayout>
            </LinearLayout>

            <LinearLayout android:id="@+id/hidden_settings_field"
                          android:layout_width="match_parent"
                          android:layout_height="wrap_content"
                          style="@style/wifi_item">

                <TextView android:id="@+id/hidden_settings_title"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          style="@style/wifi_item_label"
                          android:text="@string/wifi_hidden_network" />

                <Spinner android:id="@+id/hidden_settings"
                         android:layout_width="match_parent"
                         android:layout_height="wrap_content"
                         style="@style/wifi_item_spinner"
                         android:prompt="@string/wifi_hidden_network"
                         android:entries="@array/wifi_hidden_entries"/>

                <TextView android:id="@+id/hidden_settings_warning"
                          android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:padding="8dp"
                          android:text="@string/wifi_hidden_network_warning"
                          android:textAppearance="?android:attr/textAppearanceSmall"
                          android:visibility="gone"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</ScrollView>
+5 −0
Original line number Diff line number Diff line
@@ -1075,6 +1075,11 @@
        <item>Treat as unmetered</item>
    </string-array>

    <string-array name="wifi_hidden_entries">
        <item>No</item>
        <item>Yes</item>
    </string-array>

    <string-array name="wifi_metered_values" translatable="false">
        <item>0</item>
        <item>1</item>
+1 −1
Original line number Diff line number Diff line
@@ -1936,7 +1936,7 @@
    <!-- Label for the hidden network status of this network -->
    <string name="wifi_hidden_network">Hidden network</string>
    <!-- Label for the warning shown to users if they try to connect to a network as "hidden" -->
    <string name="wifi_hidden_network_warning">Hidden network might create privacy risk as this device has to broadcast this SSID name in order to connect.</string>
    <string name="wifi_hidden_network_warning">If your router is not broadcasting a network ID but you would like to connect to it in the future, you can set the network as hidden.\n\nThis may create a security risk because your phone will regularly broadcast its signal to find the network.\n\nSetting the network as hidden will not change your router settings.</string>
    <!-- Label for the signal strength of the connection -->
    <string name="wifi_signal">Signal strength</string>
    <!-- Label for the status of the connection -->
+30 −1
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.EditText;
import android.widget.ScrollView;
import android.widget.Spinner;
import android.widget.TextView;

@@ -89,6 +90,10 @@ public class WifiConfigController implements TextWatcher,
    private static final int DHCP = 0;
    private static final int STATIC_IP = 1;

    /* Constants used for referring to the hidden state of a network. */
    public static final int HIDDEN_NETWORK = 1;
    public static final int NOT_HIDDEN_NETWORK = 0;

    /* These values come from "wifi_proxy_settings" resource array */
    public static final int PROXY_NONE = 0;
    public static final int PROXY_STATIC = 1;
@@ -127,6 +132,7 @@ public class WifiConfigController implements TextWatcher,
    private String mDoNotProvideEapUserCertString;
    private String mDoNotValidateEapServerString;

    private ScrollView mDialogContainer;
    private Spinner mSecuritySpinner;
    private Spinner mEapMethodSpinner;
    private Spinner mEapCaCertSpinner;
@@ -147,6 +153,8 @@ public class WifiConfigController implements TextWatcher,

    private Spinner mProxySettingsSpinner;
    private Spinner mMeteredSettingsSpinner;
    private Spinner mHiddenSettingsSpinner;
    private TextView mHiddenWarningView;
    private TextView mProxyHostView;
    private TextView mProxyPortView;
    private TextView mProxyExclusionListView;
@@ -203,12 +211,20 @@ public class WifiConfigController implements TextWatcher,
        mDoNotValidateEapServerString =
            mContext.getString(R.string.wifi_do_not_validate_eap_server);

        mDialogContainer = mView.findViewById(R.id.dialog_scrollview);
        mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
        mIpSettingsSpinner.setOnItemSelectedListener(this);
        mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);
        mProxySettingsSpinner.setOnItemSelectedListener(this);
        mSharedCheckBox = (CheckBox) mView.findViewById(R.id.shared);
        mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
        mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
        mHiddenSettingsSpinner.setOnItemSelectedListener(this);
        mHiddenWarningView = mView.findViewById(R.id.hidden_settings_warning);
        mHiddenWarningView.setVisibility(
                mHiddenSettingsSpinner.getSelectedItemPosition() == NOT_HIDDEN_NETWORK
                        ? View.GONE
                        : View.VISIBLE);

        if (mAccessPoint == null) { // new network
            mConfigUi.setTitle(R.string.wifi_add_network);
@@ -239,6 +255,9 @@ public class WifiConfigController implements TextWatcher,
            if (mAccessPoint.isSaved()) {
                WifiConfiguration config = mAccessPoint.getConfig();
                mMeteredSettingsSpinner.setSelection(config.meteredOverride);
                mHiddenSettingsSpinner.setSelection(config.hiddenSSID
                        ? HIDDEN_NETWORK
                        : NOT_HIDDEN_NETWORK);
                if (config.getIpAssignment() == IpAssignment.STATIC) {
                    mIpSettingsSpinner.setSelection(STATIC_IP);
                    showAdvancedFields = true;
@@ -514,7 +533,7 @@ public class WifiConfigController implements TextWatcher,
            config.SSID = AccessPoint.convertToQuotedString(
                    mSsidView.getText().toString());
            // If the user adds a network manually, assume that it is hidden.
            config.hiddenSSID = true;
            config.hiddenSSID = mHiddenSettingsSpinner.getSelectedItemPosition() == HIDDEN_NETWORK;
        } else if (!mAccessPoint.isSaved()) {
            config.SSID = AccessPoint.convertToQuotedString(
                    mAccessPoint.getSsidStr());
@@ -1350,6 +1369,16 @@ public class WifiConfigController implements TextWatcher,
            showPeapFields();
        } else if (parent == mProxySettingsSpinner) {
            showProxyFields();
        } else if (parent == mHiddenSettingsSpinner) {
            mHiddenWarningView.setVisibility(
                    position == NOT_HIDDEN_NETWORK
                            ? View.GONE
                            : View.VISIBLE);
            if (position == HIDDEN_NETWORK) {
                mDialogContainer.post(() -> {
                  mDialogContainer.fullScroll(View.FOCUS_DOWN);
                });
            }
        } else {
            showIpConfigFields();
        }
+12 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ public class WifiConfigControllerTest {
    private AccessPoint mAccessPoint;
    @Mock
    private KeyStore mKeyStore;
    private Spinner mHiddenSettingsSpinner;

    public WifiConfigController mController;
    private static final String HEX_PSK = "01234567012345670123456701234567012345670123456701234567"
@@ -82,6 +83,7 @@ public class WifiConfigControllerTest {
        when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_PSK);
        mView = LayoutInflater.from(mContext).inflate(R.layout.wifi_dialog, null);
        final Spinner ipSettingsSpinner = mView.findViewById(R.id.ip_settings);
        mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
        ipSettingsSpinner.setSelection(DHCP);

        mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
@@ -246,6 +248,16 @@ public class WifiConfigControllerTest {
        assertThat(password.isFocused()).isTrue();
    }

    @Test
    public void hiddenWarning_warningVisibilityProperlyUpdated() {
        View warningView = mView.findViewById(R.id.hidden_settings_warning);
        mController.onItemSelected(mHiddenSettingsSpinner, null, mController.HIDDEN_NETWORK, 0);
        assertThat(warningView.getVisibility()).isEqualTo(View.VISIBLE);

        mController.onItemSelected(mHiddenSettingsSpinner, null, mController.NOT_HIDDEN_NETWORK, 0);
        assertThat(warningView.getVisibility()).isEqualTo(View.GONE);
    }

    public class TestWifiConfigController extends WifiConfigController {

        private TestWifiConfigController(