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

Commit 956a9846 authored by Nikhil Nayunigari's avatar Nikhil Nayunigari Committed by Android (Google) Code Review
Browse files

Merge changes I8fd2f38d,Ie84b4452 into main

* changes:
  Add edit configuration toggle to the add network dialog
  Add shared toggle to the add network dialog
parents 0432f62c ba4cb789
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
@@ -401,6 +401,53 @@
                  android:orientation="vertical"
                  android:visibility="gone">

        <LinearLayout
            android:id="@+id/sharing_toggle_fields"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            style="@style/wifi_item"
            android:visibility="gone">

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/share_wifi_network"
                style="@style/wifi_item_label"/>

            <Switch
                android:id="@+id/share_wifi_network"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:summary="@string/share_wifi_network_summary"
                android:gravity="center_vertical" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/edit_wifi_network_configuration_fields"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center_vertical"
            style="@style/wifi_item"
            android:visibility="gone">

            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="@string/edit_wifi_network_configuration"
                style="@style/wifi_item_label"/>

            <Switch
                android:id="@+id/edit_wifi_network_configuration"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_vertical" />
        </LinearLayout>

        <LinearLayout android:id="@+id/hidden_settings_field"
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
+5 −0
Original line number Diff line number Diff line
@@ -2603,6 +2603,11 @@
    <string name="wifi_scan_always_confirm_deny">Deny</string>
    <!-- Error message displayed below the Wi-Fi EditText when the filed is required. [CHAR LIMIT=NONE] -->
    <string name="wifi_field_required">*required</string>
    <!-- Label for the share wifi network toggle. [CHAR LIMIT=250] -->
    <string name="share_wifi_network">Share this network with other device users</string>
    <!-- Label for the share wifi network summary. [CHAR LIMIT=NONE] -->
    <string name="share_wifi_network_summary">All users on this device can view and connect to a shared network. Administrators can delete a shared network. Learn more</string>
    <string name="edit_wifi_network_configuration">Allow other users to edit network configuration</string>
    <!-- Dialog text to tell the user that the selected network does not have Internet access. -->
    <string name="no_internet_access_text">This network has no internet access. Stay connected?</string>
+24 −1
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;

import androidx.annotation.Nullable;
@@ -206,6 +207,8 @@ public class WifiConfigController2 implements TextWatcher,
    private TextView mDns1View;
    private TextView mDns2View;

    private Switch mSharedSwitch;
    private Switch mEditConfigurationSwitch;
    private Spinner mProxySettingsSpinner;
    @Nullable
    private Spinner mMeteredSettingsSpinner;
@@ -335,10 +338,20 @@ public class WifiConfigController2 implements TextWatcher,
                        ? View.GONE
                        : View.VISIBLE);
        mSecurityInPosition = new Integer[WifiEntry.NUM_SECURITY_TYPES];
        mSharedSwitch = (Switch) mView.findViewById(R.id.share_wifi_network);
        mEditConfigurationSwitch =
            (Switch) mView.findViewById(R.id.edit_wifi_network_configuration);

        if (mWifiEntry == null) { // new network
            configureSecuritySpinner();
            mConfigUi.setSubmitButton(res.getString(R.string.wifi_save));
            if (com.android.settings.connectivity.Flags.wifiMultiuser()) {
                mSharedSwitch.setOnCheckedChangeListener(this);
                mView.findViewById(R.id.sharing_toggle_fields).setVisibility(View.VISIBLE);
                mEditConfigurationSwitch.setEnabled(false);
                mView.findViewById(R.id.edit_wifi_network_configuration_fields)
                        .setVisibility(View.VISIBLE);
            }
        } else {
            mConfigUi.setTitle(mWifiEntry.getTitle());

@@ -603,6 +616,9 @@ public class WifiConfigController2 implements TextWatcher,
            config.SSID = "\"" + mSsidInputGroup.getText() + "\"";
            // If the user adds a network manually, assume that it is hidden.
            config.hiddenSSID = mHiddenSettingsSpinner.getSelectedItemPosition() == HIDDEN_NETWORK;
            if (com.android.settings.connectivity.Flags.wifiMultiuser()) {
                config.shared = mSharedSwitch.isChecked();
            }
        } else if (mWifiEntry.isSaved()) {
            config = new WifiConfiguration(mWifiEntry.getWifiConfiguration());
        } else {
@@ -610,7 +626,9 @@ public class WifiConfigController2 implements TextWatcher,
            config.SSID = "\"" + mWifiEntry.getTitle() + "\"";
        }

        if (!com.android.settings.connectivity.Flags.wifiMultiuser()) {
            config.shared = mSharedCheckBox.isChecked();
        }

        switch (mWifiEntrySecurity) {
            case WifiEntry.SECURITY_NONE:
@@ -1720,6 +1738,11 @@ public class WifiConfigController2 implements TextWatcher,
            hideSoftKeyboard(mView.getWindowToken());
            view.setVisibility(View.GONE);
            mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE);
        } else if (view.getId() == R.id.share_wifi_network) {
            mEditConfigurationSwitch.setEnabled(isChecked);
            if (!isChecked) {
                mEditConfigurationSwitch.setChecked(false);
            }
        }
    }

+37 −3
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiEnterpriseConfig.Eap;
import android.net.wifi.WifiEnterpriseConfig.Phase2;
import android.net.wifi.WifiManager;
import android.os.Looper;
import android.platform.test.annotations.EnableFlags;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -52,9 +54,11 @@ import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.Switch;
import android.widget.TextView;

import com.android.settings.R;
import com.android.settings.connectivity.Flags;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.utils.AndroidKeystoreAliasLoader;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController;
@@ -218,6 +222,36 @@ public class WifiConfigController2Test {
        assertThat(mController.isSubmittable()).isTrue();
    }

    @Test
    @EnableFlags(Flags.FLAG_WIFI_MULTIUSER)
    public void saveSharedField() {
        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
        final Switch sharedSwitch = mView.findViewById(R.id.share_wifi_network);
        assertThat(sharedSwitch).isNotNull();
        assertThat(sharedSwitch.getVisibility()).isEqualTo(View.VISIBLE);
        sharedSwitch.setChecked(true);

        WifiConfiguration config = mController.getConfig();

        assertThat(config.shared).isTrue();
    }

    @Test
    @EnableFlags(Flags.FLAG_WIFI_MULTIUSER)
    public void editConfigurationFieldState() {
        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
        final Switch editConfigurationSwitch =
                mView.findViewById(R.id.edit_wifi_network_configuration);
        final Switch sharedSwitch = mView.findViewById(R.id.share_wifi_network);

        assertThat(editConfigurationSwitch).isNotNull();

        sharedSwitch.setChecked(true);
        shadowOf(Looper.getMainLooper()).idle();

        assertThat(editConfigurationSwitch.isEnabled()).isTrue();
    }

    @Test
    public void isSubmittable_EapWithAkaMethod_shouldReturnTrue() {
        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
@@ -599,13 +633,13 @@ public class WifiConfigController2Test {
    }

    @Test
    public void getHiddenSettingsPosition_whenAdvancedToggled_shouldBeFirst() {
    public void getSharingSettingsPosition_whenAdvancedToggled_shouldBeFirst() {
        final LinearLayout advancedFieldsLayout = mView.findViewById(R.id.wifi_advanced_fields);
        final LinearLayout hiddenSettingLayout = mView.findViewById(R.id.hidden_settings_field);
        final LinearLayout shareSettingLayout = mView.findViewById(R.id.sharing_toggle_fields);

        final LinearLayout firstChild = (LinearLayout) advancedFieldsLayout.getChildAt(0);

        assertThat(firstChild).isEqualTo(hiddenSettingLayout);
        assertThat(firstChild).isEqualTo(shareSettingLayout);
    }

    @Test
+3 −3
Original line number Diff line number Diff line
@@ -550,13 +550,13 @@ public class WifiConfigControllerTest {
    }

    @Test
    public void getHiddenSettingsPosition_whenAdvancedToggled_shouldBeFirst() {
    public void getSharingSettingsPosition_whenAdvancedToggled_shouldBeFirst() {
        final LinearLayout advancedFieldsLayout = mView.findViewById(R.id.wifi_advanced_fields);
        final LinearLayout hiddenSettingLayout = mView.findViewById(R.id.hidden_settings_field);
        final LinearLayout shareSettingLayout = mView.findViewById(R.id.sharing_toggle_fields);

        final LinearLayout firstChild = (LinearLayout) advancedFieldsLayout.getChildAt(0);

        assertThat(firstChild).isEqualTo(hiddenSettingLayout);
        assertThat(firstChild).isEqualTo(shareSettingLayout);
    }

    @Test