From 9bc9820a2208d9e3cd60b00d2bede5a793ea970e Mon Sep 17 00:00:00 2001 From: Nikhil Nayunigari Date: Mon, 2 Jun 2025 05:40:25 +0000 Subject: [PATCH] Adding allow edit toggle to the Wifi network details page This CL adds the toggle and its associated controller. Controller reads and sets the toggle in the WifiEntry. Bug: 409845916 Flag: com.android.settings.connectivity.wifi_multiuser Test: Manual testing Change-Id: I39b2b991acd1e53acc5c9cf12329e08b3f900ea0 --- res/values/strings.xml | 2 + res/xml/wifi_network_details_fragment2.xml | 14 ++-- .../details/WifiNetworkDetailsFragment.java | 7 ++ .../WifiEditConfigPreferenceController.kt | 50 +++++++++++++ .../WifiEditConfigPreferenceControllerTest.kt | 72 +++++++++++++++++++ 5 files changed, 141 insertions(+), 4 deletions(-) create mode 100644 src/com/android/settings/wifi/details2/WifiEditConfigPreferenceController.kt create mode 100644 tests/robotests/src/com/android/settings/wifi/details2/WifiEditConfigPreferenceControllerTest.kt diff --git a/res/values/strings.xml b/res/values/strings.xml index 15458ea8350..df4054b227a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2571,6 +2571,8 @@ Share with other device users (unchanged) + + Allow other users to edit network configuration Please select diff --git a/res/xml/wifi_network_details_fragment2.xml b/res/xml/wifi_network_details_fragment2.xml index 38e8f4b55eb..fe9b78b2212 100644 --- a/res/xml/wifi_network_details_fragment2.xml +++ b/res/xml/wifi_network_details_fragment2.xml @@ -102,10 +102,16 @@ android:entries="@array/wifi_privacy_entries_ext" android:entryValues="@array/wifi_privacy_values_ext"/> - + + + () + + private val context: Context = mock() + + private var controller = WifiEditConfigPreferenceController(context, "edit_configuration", mockWifiEntry) + + @Test + fun isChecked_returnsWifiEntry_allowEditConfig_Value() { + mockWifiEntry.stub { on { isModifiableByOtherUsers() } doReturn false } + + assertThat(controller.isChecked()).isFalse() + } + + @Test + fun setChecked_setsWifiEntryValue() { + controller.setChecked(true) + + verify(mockWifiEntry).setModifiableByOtherUsers(true) + } + + @Test + @DisableFlags(Flags.FLAG_WIFI_MULTIUSER) + fun getAvailabilityStatus_flagDisabled() { + assertThat(controller.getAvailabilityStatus()) + .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE) + } + + @Test + @EnableFlags(Flags.FLAG_WIFI_MULTIUSER) + fun getAvailabilityStatus_flagEnabled() { + assertThat(controller.getAvailabilityStatus()).isEqualTo(BasePreferenceController.AVAILABLE) + } +}