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

Commit e36aafd2 authored by Salvador Martinez's avatar Salvador Martinez Committed by android-build-merger
Browse files

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

am: 9dc3f74c

Change-Id: I463adc8f49a2707d4db3c7ff6a2c9fc6f7b6d2bd
parents 0ec10e6a 9dc3f74c
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(