summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hani Kazmi <hanikazmi@google.com> 2024-12-11 02:47:52 -0800
committer Hani Kazmi <hanikazmi@google.com> 2024-12-11 02:47:52 -0800
commit407465e0a521589f4e3b3a6152f043db1628c33d (patch)
tree0fbbea3ff4b9c9e0d8bcd9eb985e9b2f180ff1e7
parent45e6b20e88df35a4f080846c4b478baf102727d2 (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.bp1
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.kt21
-rw-r--r--packages/SystemUI/AndroidManifest.xml3
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" />