diff options
author | xshu <xshu@google.com> | 2020-04-16 22:05:28 -0700 |
---|---|---|
committer | xshu <xshu@google.com> | 2020-04-20 14:09:37 -0700 |
commit | 98b20b3a66d83c71befac7788a32268d2f2b9114 (patch) | |
tree | f108d547e48c9aa60813dace49cdff59fd7c63c5 /service | |
parent | 3edbf573530092ed83c7b434650ba61b5b6da26c (diff) |
Add UserActionEvent for disconnect
Bug: 153925826
Test: atest com.android.server.wifi
Change-Id: I576e67152b0d41621a8d7f13cad239d3ef8694f2
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiConfigManager.java | 13 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiServiceImpl.java | 3 |
2 files changed, 11 insertions, 5 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 0fb7745f2..209044a65 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -2689,12 +2689,13 @@ public class WifiConfigManager { * @param network Input can be SSID or FQDN. And caller must ensure that the SSID passed thru * this API matched the WifiConfiguration.SSID rules, and thus be surrounded by * quotes. + * uid UID of the calling process. */ - public void userTemporarilyDisabledNetwork(String network) { + public void userTemporarilyDisabledNetwork(String network, int uid) { mUserTemporarilyDisabledList.add(network, USER_DISCONNECT_NETWORK_BLOCK_EXPIRY_MS); - Log.d(TAG, "Temporarily disable network: " + network + " num=" + Log.d(TAG, "Temporarily disable network: " + network + " uid=" + uid + " num=" + mUserTemporarilyDisabledList.size()); - removeUserChoiceFromDisabledNetwork(network); + removeUserChoiceFromDisabledNetwork(network, uid); } /** @@ -2708,9 +2709,13 @@ public class WifiConfigManager { } private void removeUserChoiceFromDisabledNetwork( - @NonNull String network) { + @NonNull String network, int uid) { for (WifiConfiguration config : getInternalConfiguredNetworks()) { if (TextUtils.equals(config.SSID, network) || TextUtils.equals(config.FQDN, network)) { + if (mWifiPermissionsUtil.checkNetworkSettingsPermission(uid)) { + mWifiInjector.getWifiMetrics().logUserActionEvent( + UserActionEvent.EVENT_DISCONNECT_WIFI, config.networkId); + } removeConnectChoiceFromAllNetworks(config.getKey()); } } diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java index 00315560b..729e1303c 100644 --- a/service/java/com/android/server/wifi/WifiServiceImpl.java +++ b/service/java/com/android/server/wifi/WifiServiceImpl.java @@ -3060,7 +3060,8 @@ public class WifiServiceImpl extends BaseWifiService { return; } mLog.info("disableEphemeralNetwork uid=%").c(Binder.getCallingUid()).flush(); - mWifiThreadRunner.post(() -> mWifiConfigManager.userTemporarilyDisabledNetwork(network)); + mWifiThreadRunner.post(() -> mWifiConfigManager.userTemporarilyDisabledNetwork(network, + Binder.getCallingUid())); } private final BroadcastReceiver mReceiver = new BroadcastReceiver() { |