Loading res/layout/wifi_network_config.xml +7 −0 Original line number Diff line number Diff line Loading @@ -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 Loading res/values/arrays.xml +5 −0 Original line number Diff line number Diff line Loading @@ -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> Loading src/com/android/settings/wifi/WifiConfigController.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */ Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -841,6 +854,12 @@ public class WifiConfigController implements TextWatcher, : WifiConfiguration.RANDOMIZATION_NONE; } if (mDhcpSettingsSpinner != null) { config.setSendDhcpHostnameEnabled(WifiPrivacyPreferenceController.Companion .translatePrefValueToSendDhcpHostnameEnabled(mDhcpSettingsSpinner .getSelectedItemPosition())); } return config; } Loading src/com/android/settings/wifi/WifiConfigController2.java +17 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -854,6 +865,12 @@ public class WifiConfigController2 implements TextWatcher, .getSelectedItemPosition()); } if (mDhcpSettingsSpinner != null) { config.setSendDhcpHostnameEnabled(WifiPrivacyPreferenceController.Companion .translatePrefValueToSendDhcpHostnameEnabled(mDhcpSettingsSpinner .getSelectedItemPosition())); } return config; } Loading src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController.kt +28 −0 Original line number Diff line number Diff line Loading @@ -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
res/layout/wifi_network_config.xml +7 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
res/values/arrays.xml +5 −0 Original line number Diff line number Diff line Loading @@ -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> Loading
src/com/android/settings/wifi/WifiConfigController.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */ Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -841,6 +854,12 @@ public class WifiConfigController implements TextWatcher, : WifiConfiguration.RANDOMIZATION_NONE; } if (mDhcpSettingsSpinner != null) { config.setSendDhcpHostnameEnabled(WifiPrivacyPreferenceController.Companion .translatePrefValueToSendDhcpHostnameEnabled(mDhcpSettingsSpinner .getSelectedItemPosition())); } return config; } Loading
src/com/android/settings/wifi/WifiConfigController2.java +17 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -854,6 +865,12 @@ public class WifiConfigController2 implements TextWatcher, .getSelectedItemPosition()); } if (mDhcpSettingsSpinner != null) { config.setSendDhcpHostnameEnabled(WifiPrivacyPreferenceController.Companion .translatePrefValueToSendDhcpHostnameEnabled(mDhcpSettingsSpinner .getSelectedItemPosition())); } return config; } Loading
src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController.kt +28 −0 Original line number Diff line number Diff line Loading @@ -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