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

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

Merge "Add multi user check to show/hide wifi sharing settings" into main

parents dff1e7bd 832c792f
Loading
Loading
Loading
Loading
+13 −7
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ 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.UserManager;
import android.security.keystore.KeyProperties;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -279,6 +280,8 @@ public class WifiConfigController2 implements TextWatcher,
                wifiEntry.getSecurity();
        mIsTrustOnFirstUseSupported = mWifiManager.isTrustOnFirstUseSupported();

        UserManager mUserManager = mContext.getSystemService(UserManager.class);

        final Resources res = mContext.getResources();

        mLevels = res.getStringArray(R.array.wifi_signal);
@@ -347,16 +350,19 @@ public class WifiConfigController2 implements TextWatcher,
        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()) {
            int userCount = mUserManager.getUserCount();
            mSharedSwitch.setOnCheckedChangeListener(this);
                mView.findViewById(R.id.sharing_toggle_fields).setVisibility(View.VISIBLE);
            mView.findViewById(R.id.sharing_toggle_fields)
                    .setVisibility(userCount > 1 ? View.VISIBLE : View.GONE);
            mEditConfigurationSwitch.setEnabled(false);
            mView.findViewById(R.id.edit_wifi_network_configuration_fields)
                        .setVisibility(View.VISIBLE);
                    .setVisibility(userCount > 1 ? View.VISIBLE : View.GONE);
        }

        if (mWifiEntry == null) { // new network
            configureSecuritySpinner();
            mConfigUi.setSubmitButton(res.getString(R.string.wifi_save));
        } else {
            mConfigUi.setTitle(mWifiEntry.getTitle());

+19 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.net.wifi.WifiEnterpriseConfig.Eap;
import android.net.wifi.WifiEnterpriseConfig.Phase2;
import android.net.wifi.WifiManager;
import android.os.Looper;
import android.os.UserManager;
import android.platform.test.annotations.EnableFlags;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -99,6 +100,8 @@ public class WifiConfigController2Test {
    @Mock
    private WifiManager mWifiManager;
    @Mock
    private UserManager mUserManager;
    @Mock
    Spinner mEapMethodSimSpinner;
    private View mView;
    private Spinner mHiddenSettingsSpinner;
@@ -142,6 +145,7 @@ public class WifiConfigController2Test {
        MockitoAnnotations.initMocks(this);
        mContext = spy(RuntimeEnvironment.application);
        when(mContext.getSystemService(eq(WifiManager.class))).thenReturn(mWifiManager);
        when(mContext.getSystemService(eq(UserManager.class))).thenReturn(mUserManager);
        when(mWifiManager.isConnectedMacRandomizationSupported()).thenReturn(true);
        when(mConfigUiBase.getContext()).thenReturn(mContext);
        when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_PSK);
@@ -251,6 +255,21 @@ public class WifiConfigController2Test {
        assertThat(editConfigurationSwitch.isEnabled()).isTrue();
    }

    @Test
    @EnableFlags(Flags.FLAG_WIFI_MULTIUSER)
    public void checkSharingFieldsVisibility() {
        when(mUserManager.getUserCount()).thenReturn(1);
        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
        shadowOf(Looper.getMainLooper()).idle();

        final View sharingFields = mView.findViewById(R.id.sharing_toggle_fields);
        final View editConfigFields =
                mView.findViewById(R.id.edit_wifi_network_configuration_fields);

        assertThat(sharingFields.getVisibility()).isEqualTo(View.GONE);
        assertThat(editConfigFields.getVisibility()).isEqualTo(View.GONE);
    }

    @Test
    public void isSubmittable_EapWithAkaMethod_shouldReturnTrue() {
        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);