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

Commit 08f8f0ce authored by Charlotte Lu's avatar Charlotte Lu
Browse files

Add dhcp in advanced settings toggle.

Test: Unit Test
Fix: 329002870
Change-Id: I5c57deb1e8ed0dd59a7699b56f5eb99ca29876b8
parent 46369353
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -708,6 +708,13 @@
                     style="@style/wifi_item_spinner"
                     android:prompt="@string/wifi_privacy_settings"
                     android:entries="@array/wifi_privacy_entries"/>

            <Spinner android:id="@+id/dhcp_settings"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                style="@style/wifi_item_spinner"
                android:prompt="@string/wifi_privacy_device_name_settings"
                android:entries="@array/wifi_dhcp_entries"/>
        </LinearLayout>

        <LinearLayout
+5 −0
Original line number Diff line number Diff line
@@ -1078,6 +1078,11 @@
        <item>Use device MAC</item>
    </string-array>

    <string-array name="wifi_dhcp_entries">
        <item>Send device name to network</item>
        <item>Don\u0027t send device name to network</item>
    </string-array>

    <string-array name="wifi_hidden_entries">
        <item>No</item>
        <item>Yes</item>
+19 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ import com.android.settings.ProxySelector;
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.utils.AndroidKeystoreAliasLoader;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController;
import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.Utils;
import com.android.settingslib.utils.ThreadUtils;
@@ -154,6 +155,10 @@ public class WifiConfigController implements TextWatcher,
    @VisibleForTesting static final int PRIVACY_SPINNER_INDEX_RANDOMIZED_MAC = 0;
    @VisibleForTesting static final int PRIVACY_SPINNER_INDEX_DEVICE_MAC = 1;

    // Should be the same index value as wifi_dhcp_entries in arrays.xml
    @VisibleForTesting static final int DHCP_SPINNER_INDEX_SEND_DHCP_HOST_NAME_ENABLE = 0;
    @VisibleForTesting static final int DHCP_SPINNER_INDEX_SEND_DHCP_HOST_NAME_DISABLE = 1;

    /* Phase2 methods supported by PEAP are limited */
    private ArrayAdapter<CharSequence> mPhase2PeapAdapter;
    /* Phase2 methods supported by TTLS are limited */
@@ -194,6 +199,7 @@ public class WifiConfigController implements TextWatcher,
    private Spinner mMeteredSettingsSpinner;
    private Spinner mHiddenSettingsSpinner;
    private Spinner mPrivacySettingsSpinner;
    private Spinner mDhcpSettingsSpinner;
    private TextView mHiddenWarningView;
    private TextView mProxyHostView;
    private TextView mProxyPortView;
@@ -291,6 +297,7 @@ public class WifiConfigController implements TextWatcher,
        mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
        mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
        mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
        mDhcpSettingsSpinner = mView.findViewById(R.id.dhcp_settings);
        if (mWifiManager.isConnectedMacRandomizationSupported()) {
            View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields);
            privacySettingsLayout.setVisibility(View.VISIBLE);
@@ -323,6 +330,12 @@ public class WifiConfigController implements TextWatcher,
                        config.macRandomizationSetting == WifiConfiguration.RANDOMIZATION_PERSISTENT
                        ? PRIVACY_SPINNER_INDEX_RANDOMIZED_MAC : PRIVACY_SPINNER_INDEX_DEVICE_MAC);

                mDhcpSettingsSpinner.setSelection(
                        config.isSendDhcpHostnameEnabled()
                                ? DHCP_SPINNER_INDEX_SEND_DHCP_HOST_NAME_ENABLE :
                                DHCP_SPINNER_INDEX_SEND_DHCP_HOST_NAME_DISABLE
                );

                if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
                    mIpSettingsSpinner.setSelection(STATIC_IP);
                    showAdvancedFields = true;
@@ -841,6 +854,12 @@ public class WifiConfigController implements TextWatcher,
                    : WifiConfiguration.RANDOMIZATION_NONE;
        }

        if (mDhcpSettingsSpinner != null) {
            config.setSendDhcpHostnameEnabled(WifiPrivacyPreferenceController.Companion
                    .translatePrefValueToSendDhcpHostnameEnabled(mDhcpSettingsSpinner
                            .getSelectedItemPosition()));
        }

        return config;
    }

+17 −0
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ import com.android.settings.ProxySelector;
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.utils.AndroidKeystoreAliasLoader;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController;
import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2;
import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.Utils;
@@ -208,6 +209,8 @@ public class WifiConfigController2 implements TextWatcher,
    private Spinner mHiddenSettingsSpinner;
    @Nullable
    private Spinner mPrivacySettingsSpinner;
    @Nullable
    private Spinner mDhcpSettingsSpinner;
    private TextView mHiddenWarningView;
    private TextView mProxyHostView;
    private TextView mProxyPortView;
@@ -308,6 +311,7 @@ public class WifiConfigController2 implements TextWatcher,
        mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
        if (!mHideMeteredAndPrivacy && mWifiManager.isConnectedMacRandomizationSupported()) {
            mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
            mDhcpSettingsSpinner  = mView.findViewById(R.id.dhcp_settings);
            mView.findViewById(R.id.privacy_settings_fields).setVisibility(View.VISIBLE);
        }
        mHiddenSettingsSpinner.setOnItemSelectedListener(this);
@@ -342,6 +346,13 @@ public class WifiConfigController2 implements TextWatcher,
                    mPrivacySettingsSpinner.setSelection(prefMacValue);
                }

                if (mDhcpSettingsSpinner != null) {
                    final int prefDhcpValue = WifiPrivacyPreferenceController.Companion
                            .translateSendDhcpHostnameEnabledToPrefValue(
                                    config.isSendDhcpHostnameEnabled());
                    mDhcpSettingsSpinner.setSelection(prefDhcpValue);
                }

                if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
                    mIpSettingsSpinner.setSelection(STATIC_IP);
                    showAdvancedFields = true;
@@ -854,6 +865,12 @@ public class WifiConfigController2 implements TextWatcher,
                            .getSelectedItemPosition());
        }

        if (mDhcpSettingsSpinner != null) {
            config.setSendDhcpHostnameEnabled(WifiPrivacyPreferenceController.Companion
                    .translatePrefValueToSendDhcpHostnameEnabled(mDhcpSettingsSpinner
                            .getSelectedItemPosition()));
        }

        return config;
    }

+28 −0
Original line number Diff line number Diff line
@@ -63,4 +63,32 @@ class WifiPrivacyPreferenceController(context: Context, preferenceKey: String) :
                }
        })
    }

    companion object {
        private const val PREF_SEND_DHCP_HOST_NAME_ENABLE = 0
        private const val PREF_SEND_DHCP_HOST_NAME_DISABLE = 1

        /**
         * Returns preference index value.
         *
         * @param isSendDhcpHostnameEnabled determines whether device name can be sent.
         * @return index value of preference
         */
        fun translateSendDhcpHostnameEnabledToPrefValue(
            isSendDhcpHostnameEnabled: Boolean
        ): Int {
            return if (isSendDhcpHostnameEnabled) PREF_SEND_DHCP_HOST_NAME_ENABLE
            else PREF_SEND_DHCP_HOST_NAME_DISABLE
        }

        /**
         * Returns whether device name can be sent.
         *
         * @param prefDhcpRandomized is preference index value
         * @return is send dhcp host name enabled
         */
        fun translatePrefValueToSendDhcpHostnameEnabled(prefDhcpRandomized: Int): Boolean {
            return prefDhcpRandomized == PREF_SEND_DHCP_HOST_NAME_ENABLE
        }
    }
}
 No newline at end of file
Loading