diff --git a/core/java/android/os/WorkSource.java b/core/java/android/os/WorkSource.java index b79bdee93d971..30d535bdcd007 100644 --- a/core/java/android/os/WorkSource.java +++ b/core/java/android/os/WorkSource.java @@ -96,6 +96,16 @@ public class WorkSource implements Parcelable { return mNames != null ? mNames[index] : null; } + /** + * Clear names from this WorkSource. Uids are left intact. + * + *
Useful when combining with another WorkSource that doesn't have names. + * @hide + */ + public void clearNames() { + mNames = null; + } + /** * Clear this WorkSource to be empty. */ diff --git a/services/java/com/android/server/wifi/WifiService.java b/services/java/com/android/server/wifi/WifiService.java index 46f100e7722e4..5a24ebb4cb1f7 100644 --- a/services/java/com/android/server/wifi/WifiService.java +++ b/services/java/com/android/server/wifi/WifiService.java @@ -342,6 +342,9 @@ public final class WifiService extends IWifiManager.Stub { enforceChangePermission(); if (workSource != null) { enforceWorkSourcePermission(); + // WifiManager currently doesn't use names, so need to clear names out of the + // supplied WorkSource to allow future WorkSource combining. + workSource.clearNames(); } mWifiStateMachine.startScan(Binder.getCallingUid(), workSource); }