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

Commit 470c27b8 authored by Charlotte Lu's avatar Charlotte Lu Committed by Android (Google) Code Review
Browse files

Merge "Add dhcp in advanced settings toggle." into main

parents b9895a24 08f8f0ce
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
@@ -1095,6 +1095,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