diff options
author | 2024-12-11 02:47:52 -0800 | |
---|---|---|
committer | 2024-12-11 02:47:52 -0800 | |
commit | 407465e0a521589f4e3b3a6152f043db1628c33d (patch) | |
tree | 0fbbea3ff4b9c9e0d8bcd9eb985e9b2f180ff1e7 | |
parent | 45e6b20e88df35a4f080846c4b478baf102727d2 (diff) |
[AAPM] UX for disabling WEP
Toggle is restricted, and trying to connect shows an error
Bug: 352420507
Change-Id: Ie8476070f8998d9485016cc2416cd3ff3900c973
Test: Manually. Automated tests to follow
Flag: com.android.wifi.flags.wep_disabled_in_apm
-rw-r--r-- | packages/SettingsLib/Android.bp | 1 | ||||
-rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.kt | 21 | ||||
-rw-r--r-- | packages/SystemUI/AndroidManifest.xml | 3 |
3 files changed, 24 insertions, 1 deletions
diff --git a/packages/SettingsLib/Android.bp b/packages/SettingsLib/Android.bp index a3da93da31ae..d739aafea929 100644 --- a/packages/SettingsLib/Android.bp +++ b/packages/SettingsLib/Android.bp @@ -65,6 +65,7 @@ android_library { libs:[ // This flag library has been added in frameworks jar "aconfig_settingslib_flags_java_lib", + "wifi_framework_aconfig_flags_lib", ], plugins: ["androidx.room_room-compiler-plugin"], use_resource_processor: true, diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.kt b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.kt index a7e04640d069..e01f27964733 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.kt +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.kt @@ -27,6 +27,7 @@ import android.net.wifi.WifiManager import android.net.wifi.sharedconnectivity.app.NetworkProviderInfo import android.os.Bundle import android.os.SystemClock +import android.security.advancedprotection.AdvancedProtectionManager import android.util.Log import android.view.WindowManager import androidx.annotation.VisibleForTesting @@ -498,7 +499,13 @@ open class WifiUtils { ): Job = coroutineScope.launch { val wifiManager = context.getSystemService(WifiManager::class.java) ?: return@launch - if (wifiManager.isWepSupported == true && wifiManager.queryWepAllowed()) { + val aapmManager = context.getSystemService(AdvancedProtectionManager::class.java) + if (isAdvancedProtectionEnabled(aapmManager)) { + val intent = aapmManager.createSupportIntent( + AdvancedProtectionManager.FEATURE_ID_DISALLOW_WEP, + AdvancedProtectionManager.SUPPORT_DIALOG_TYPE_BLOCKED_INTERACTION) + onStartActivity(intent) + } else if (wifiManager.isWepSupported == true && wifiManager.queryWepAllowed()) { onAllowed() } else { val intent = Intent(Intent.ACTION_MAIN).apply { @@ -522,6 +529,18 @@ open class WifiUtils { } } + private suspend fun isAdvancedProtectionEnabled( + aapmManager: AdvancedProtectionManager? + ): Boolean = + if (android.security.Flags.aapmApi() && + com.android.wifi.flags.Flags.wepDisabledInApm() && + aapmManager != null + ) { + withContext(Dispatchers.Default) { aapmManager.isAdvancedProtectionEnabled() } + } else { + false + } + const val SSID = "ssid" const val DIALOG_WINDOW_TYPE = "dialog_window_type" } diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 5519b5171090..e57a6b31b8ac 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -322,6 +322,9 @@ <!-- Query all packages on device on R+ --> <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> + <!-- Query advanced protection state --> + <uses-permission android:name="android.permission.QUERY_ADVANCED_PROTECTION_MODE" /> + <queries> <intent> <action android:name="android.intent.action.CREATE_NOTE" /> |