From 3c2e22afc802a215ee9c0872173f2f7f368fdda7 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Thu, 18 Apr 2024 21:27:24 +0800 Subject: [PATCH] Restrict WifiAPITest - Disable Wi-Fi functions below if user has DISALLOW_CHANGE_WIFI_STATE - disableNetwork - disconnect - enableNetwork Bug: 290612834 Flag: None Test: Manual testing Change-Id: I7435b30381401b10fa82b25fb245b1ed12bf3ade --- .../android/settings/wifi/WifiAPITest.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/wifi/WifiAPITest.java b/src/com/android/settings/wifi/WifiAPITest.java index c8bcf7fe173..89538751685 100644 --- a/src/com/android/settings/wifi/WifiAPITest.java +++ b/src/com/android/settings/wifi/WifiAPITest.java @@ -18,7 +18,10 @@ package com.android.settings.wifi; import static android.content.Context.WIFI_SERVICE; +import static com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils.isChangeWifiStateAllowed; + import android.app.settings.SettingsEnums; +import android.content.Context; import android.content.DialogInterface; import android.net.wifi.WifiManager; import android.os.Bundle; @@ -38,7 +41,7 @@ import com.android.settings.SettingsPreferenceFragment; public class WifiAPITest extends SettingsPreferenceFragment implements Preference.OnPreferenceClickListener { - private static final String TAG = "WifiAPITest"; + private static final String TAG = "WifiAPITest+++"; private int netid; //============================ @@ -69,18 +72,38 @@ public class WifiAPITest extends SettingsPreferenceFragment implements @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + Context context = getContext(); + if (context == null) { + return; + } addPreferencesFromResource(R.xml.wifi_api_test); + boolean isChangeWifiStateAllowed = isChangeWifiStateAllowed(context); final PreferenceScreen preferenceScreen = getPreferenceScreen(); mWifiDisconnect = (Preference) preferenceScreen.findPreference(KEY_DISCONNECT); - mWifiDisconnect.setOnPreferenceClickListener(this); + if (mWifiDisconnect != null) { + mWifiDisconnect.setEnabled(isChangeWifiStateAllowed); + if (isChangeWifiStateAllowed) { + mWifiDisconnect.setOnPreferenceClickListener(this); + } + } mWifiDisableNetwork = (Preference) preferenceScreen.findPreference(KEY_DISABLE_NETWORK); - mWifiDisableNetwork.setOnPreferenceClickListener(this); + if (mWifiDisableNetwork != null) { + mWifiDisableNetwork.setEnabled(isChangeWifiStateAllowed); + if (isChangeWifiStateAllowed) { + mWifiDisableNetwork.setOnPreferenceClickListener(this); + } + } mWifiEnableNetwork = (Preference) preferenceScreen.findPreference(KEY_ENABLE_NETWORK); - mWifiEnableNetwork.setOnPreferenceClickListener(this); + if (mWifiEnableNetwork != null) { + mWifiEnableNetwork.setEnabled(isChangeWifiStateAllowed); + if (isChangeWifiStateAllowed) { + mWifiEnableNetwork.setOnPreferenceClickListener(this); + } + } }