summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/system-current.txt8
-rw-r--r--api/test-current.txt6
-rw-r--r--core/java/android/os/StatsLogEventWrapper.java2
-rw-r--r--core/java/android/os/WorkSource.java100
-rw-r--r--core/java/com/android/internal/os/BatteryStatsImpl.java54
-rw-r--r--core/tests/coretests/src/android/os/WorkSourceTest.java10
-rw-r--r--services/core/java/com/android/server/LocationManagerService.java4
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java2
-rw-r--r--services/core/java/com/android/server/location/GnssLocationProvider.java5
-rw-r--r--services/core/java/com/android/server/power/PowerManagerService.java11
-rw-r--r--services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java2
-rw-r--r--tools/stats_log_api_gen/main.cpp6
-rw-r--r--wifi/java/android/net/wifi/WifiManager.java2
13 files changed, 143 insertions, 69 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 4df8e8c1da91..7c4cae1388e5 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -5780,7 +5780,15 @@ package android.os {
}
public class WorkSource implements android.os.Parcelable {
+ ctor public WorkSource(int);
+ ctor public WorkSource(int, @NonNull String);
method public android.os.WorkSource.WorkChain createWorkChain();
+ method @Nullable public String getPackageName(int);
+ method public int getUid(int);
+ method @Nullable public java.util.List<android.os.WorkSource.WorkChain> getWorkChains();
+ method public boolean isEmpty();
+ method public int size();
+ method @NonNull public android.os.WorkSource withoutNames();
}
public static final class WorkSource.WorkChain implements android.os.Parcelable {
diff --git a/api/test-current.txt b/api/test-current.txt
index b8806720d8aa..782475d4109e 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -2182,10 +2182,12 @@ package android.os {
method public boolean add(int);
method public boolean add(int, String);
method @Deprecated public android.os.WorkSource addReturningNewbs(android.os.WorkSource);
- method public int get(int);
- method public String getName(int);
+ method @Nullable public String getPackageName(int);
+ method public int getUid(int);
+ method public boolean isEmpty();
method @Deprecated public android.os.WorkSource[] setReturningDiffs(android.os.WorkSource);
method public int size();
+ method @NonNull public android.os.WorkSource withoutNames();
}
}
diff --git a/core/java/android/os/StatsLogEventWrapper.java b/core/java/android/os/StatsLogEventWrapper.java
index 89c9bb253524..320fc137b8fa 100644
--- a/core/java/android/os/StatsLogEventWrapper.java
+++ b/core/java/android/os/StatsLogEventWrapper.java
@@ -139,7 +139,7 @@ public final class StatsLogEventWrapper implements Parcelable {
out.writeLong(mElapsedTimeNs);
out.writeLong(mWallClockTimeNs);
if (mWorkSource != null) {
- ArrayList<android.os.WorkSource.WorkChain> workChains = mWorkSource.getWorkChains();
+ List<WorkSource.WorkChain> workChains = mWorkSource.getWorkChains();
// number of chains
out.writeInt(workChains.size());
for (int i = 0; i < workChains.size(); i++) {
diff --git a/core/java/android/os/WorkSource.java b/core/java/android/os/WorkSource.java
index 825fc64df5cc..b5635a49b6d6 100644
--- a/core/java/android/os/WorkSource.java
+++ b/core/java/android/os/WorkSource.java
@@ -13,13 +13,15 @@ import android.util.Log;
import android.util.proto.ProtoOutputStream;
import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.util.Preconditions;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
/**
* Describes the source of some work that may be done by someone else.
- * Currently the public representation of what a work source is is not
+ * Currently the public representation of what a work source is not
* defined; this is an opaque container.
*/
public class WorkSource implements Parcelable {
@@ -48,7 +50,7 @@ public class WorkSource implements Parcelable {
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
static WorkSource sNewbWork;
/**
- * For returning gone work form a modification operation.
+ * For returning gone work from a modification operation.
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
static WorkSource sGoneWork;
@@ -91,9 +93,14 @@ public class WorkSource implements Parcelable {
}
}
- /** @hide */
- @UnsupportedAppUsage
+
+ /**
+ * Creates a work source with the given uid.
+ * @param uid the uid performing the work
+ * @hide
+ */
@TestApi
+ @SystemApi
public WorkSource(int uid) {
mNum = 1;
mUids = new int[] { uid, 0 };
@@ -101,14 +108,18 @@ public class WorkSource implements Parcelable {
mChains = null;
}
- /** @hide */
- public WorkSource(int uid, String name) {
- if (name == null) {
- throw new NullPointerException("Name can't be null");
- }
+ /**
+ * Creates a work source with the given uid and package name.
+ * @param uid the uid performing the work
+ * @param packageName the package performing the work
+ * @hide
+ */
+ @SystemApi
+ public WorkSource(int uid, @NonNull String packageName) {
+ Preconditions.checkNotNull(packageName, "packageName can't be null");
mNum = 1;
mUids = new int[] { uid, 0 };
- mNames = new String[] { name, null };
+ mNames = new String[] { packageName, null };
mChains = null;
}
@@ -138,17 +149,34 @@ public class WorkSource implements Parcelable {
Global.CHAINED_BATTERY_ATTRIBUTION_ENABLED, 0) == 1;
}
- /** @hide */
- @UnsupportedAppUsage
+ /**
+ * Returns the size of this work source.
+ * @hide
+ */
@TestApi
+ @SystemApi
public int size() {
return mNum;
}
- /** @hide */
+ /**
+ * @deprecated use {{@link #getUid(int)}} instead.
+ * @hide
+ */
@UnsupportedAppUsage
- @TestApi
+ @Deprecated
public int get(int index) {
+ return getUid(index);
+ }
+
+ /**
+ * Get the uid at the given index.
+ * If {@code index} < 0 or {@code index} >= {@link #size() N}, then the behavior is undefined.
+ * @hide
+ */
+ @TestApi
+ @SystemApi
+ public int getUid(int index) {
return mUids[index];
}
@@ -167,10 +195,25 @@ public class WorkSource implements Parcelable {
return mNum > 0 ? mUids[0] : mChains.get(0).getAttributionUid();
}
- /** @hide */
+ /**
+ * @deprecated use {{@link #getPackageName(int)}} instead.
+ * @hide
+ */
@UnsupportedAppUsage
- @TestApi
+ @Deprecated
public String getName(int index) {
+ return getPackageName(index);
+ }
+
+ /**
+ * Get the package name at the given index.
+ * If {@code index} < 0 or {@code index} >= {@link #size() N}, then the behavior is undefined.
+ * @hide
+ */
+ @TestApi
+ @SystemApi
+ @Nullable
+ public String getPackageName(int index) {
return mNames != null ? mNames[index] : null;
}
@@ -179,9 +222,8 @@ public class WorkSource implements Parcelable {
* intact.
*
* <p>Useful when combining with another WorkSource that doesn't have names.
- * @hide
*/
- public void clearNames() {
+ private void clearNames() {
if (mNames != null) {
mNames = null;
// Clear out any duplicate uids now that we don't have names to disambiguate them.
@@ -407,6 +449,22 @@ public class WorkSource implements Parcelable {
}
/**
+ * Returns a copy of this work source without any package names.
+ * If any {@link WorkChain WorkChains} are present, they are left intact.
+ *
+ * @return a {@link WorkSource} without any package names.
+ * @hide
+ */
+ @SystemApi
+ @TestApi
+ @NonNull
+ public WorkSource withoutNames() {
+ final WorkSource copy = new WorkSource(this);
+ copy.clearNames();
+ return copy;
+ }
+
+ /**
* Legacy API: DO NOT USE. Only in use from unit tests.
*
* @hide
@@ -524,6 +582,8 @@ public class WorkSource implements Parcelable {
*
* @hide for internal use only.
*/
+ @SystemApi
+ @TestApi
public boolean isEmpty() {
return mNum == 0 && (mChains == null || mChains.isEmpty());
}
@@ -532,7 +592,9 @@ public class WorkSource implements Parcelable {
* @return the list of {@code WorkChains} associated with this {@code WorkSource}.
* @hide
*/
- public ArrayList<WorkChain> getWorkChains() {
+ @SystemApi
+ @Nullable
+ public List<WorkChain> getWorkChains() {
return mChains;
}
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index f5bfe5cfecaf..75a58046faaa 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -4086,7 +4086,7 @@ public class BatteryStatsImpl extends BatteryStats {
if (workSource != null) {
for (int i = 0; i < workSource.size(); ++i) {
- uid = mapUid(workSource.get(i));
+ uid = mapUid(workSource.getUid(i));
if (mActiveEvents.updateState(historyItem, name, uid, 0)) {
addHistoryEventLocked(elapsedRealtime, uptime, historyItem, name, uid);
}
@@ -4114,8 +4114,8 @@ public class BatteryStatsImpl extends BatteryStats {
String tag) {
if (workSource != null) {
for (int i = 0; i < workSource.size(); ++i) {
- uid = workSource.get(i);
- final String workSourceName = workSource.getName(i);
+ uid = workSource.getUid(i);
+ final String workSourceName = workSource.getPackageName(i);
if (isOnBattery()) {
BatteryStatsImpl.Uid.Pkg pkg = getPackageStatsLocked(uid,
@@ -4124,7 +4124,7 @@ public class BatteryStatsImpl extends BatteryStats {
}
}
- ArrayList<WorkChain> workChains = workSource.getWorkChains();
+ List<WorkChain> workChains = workSource.getWorkChains();
if (workChains != null) {
for (int i = 0; i < workChains.size(); ++i) {
final WorkChain wc = workChains.get(i);
@@ -4350,7 +4350,7 @@ public class BatteryStatsImpl extends BatteryStats {
final long uptime = mClocks.uptimeMillis();
final int N = ws.size();
for (int i=0; i<N; i++) {
- noteStartWakeLocked(ws.get(i), pid, null, name, historyName, type,
+ noteStartWakeLocked(ws.getUid(i), pid, null, name, historyName, type,
unimportantForLogging, elapsedRealtime, uptime);
}
@@ -4379,7 +4379,7 @@ public class BatteryStatsImpl extends BatteryStats {
// First the starts :
final int NN = newWs.size();
for (int i=0; i<NN; i++) {
- noteStartWakeLocked(newWs.get(i), newPid, null, newName, newHistoryName, newType,
+ noteStartWakeLocked(newWs.getUid(i), newPid, null, newName, newHistoryName, newType,
newUnimportantForLogging, elapsedRealtime, uptime);
}
if (wcs != null) {
@@ -4397,7 +4397,7 @@ public class BatteryStatsImpl extends BatteryStats {
// Then the stops :
final int NO = ws.size();
for (int i=0; i<NO; i++) {
- noteStopWakeLocked(ws.get(i), pid, null, name, historyName, type, elapsedRealtime,
+ noteStopWakeLocked(ws.getUid(i), pid, null, name, historyName, type, elapsedRealtime,
uptime);
}
if (wcs != null) {
@@ -4418,7 +4418,7 @@ public class BatteryStatsImpl extends BatteryStats {
final long uptime = mClocks.uptimeMillis();
final int N = ws.size();
for (int i=0; i<N; i++) {
- noteStopWakeLocked(ws.get(i), pid, null, name, historyName, type, elapsedRealtime,
+ noteStopWakeLocked(ws.getUid(i), pid, null, name, historyName, type, elapsedRealtime,
uptime);
}
@@ -4441,11 +4441,11 @@ public class BatteryStatsImpl extends BatteryStats {
WorkSource workSource) {
final int N = workSource.size();
for (int i = 0; i < N; ++i) {
- final int uid = mapUid(workSource.get(i));
+ final int uid = mapUid(workSource.getUid(i));
noteLongPartialWakeLockStartInternal(name, historyName, uid);
}
- final ArrayList<WorkChain> workChains = workSource.getWorkChains();
+ final List<WorkChain> workChains = workSource.getWorkChains();
if (workChains != null) {
for (int i = 0; i < workChains.size(); ++i) {
final WorkChain workChain = workChains.get(i);
@@ -4478,11 +4478,11 @@ public class BatteryStatsImpl extends BatteryStats {
WorkSource workSource) {
final int N = workSource.size();
for (int i = 0; i < N; ++i) {
- final int uid = mapUid(workSource.get(i));
+ final int uid = mapUid(workSource.getUid(i));
noteLongPartialWakeLockFinishInternal(name, historyName, uid);
}
- final ArrayList<WorkChain> workChains = workSource.getWorkChains();
+ final List<WorkChain> workChains = workSource.getWorkChains();
if (workChains != null) {
for (int i = 0; i < workChains.size(); ++i) {
final WorkChain workChain = workChains.get(i);
@@ -4615,11 +4615,11 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteGpsChangedLocked(WorkSource oldWs, WorkSource newWs) {
for (int i = 0; i < newWs.size(); ++i) {
- noteStartGpsLocked(newWs.get(i), null);
+ noteStartGpsLocked(newWs.getUid(i), null);
}
for (int i = 0; i < oldWs.size(); ++i) {
- noteStopGpsLocked((oldWs.get(i)), null);
+ noteStopGpsLocked((oldWs.getUid(i)), null);
}
List<WorkChain>[] wcs = WorkSource.diffChains(oldWs, newWs);
@@ -5564,7 +5564,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteBluetoothScanStartedFromSourceLocked(WorkSource ws, boolean isUnoptimized) {
final int N = ws.size();
for (int i = 0; i < N; i++) {
- noteBluetoothScanStartedLocked(null, ws.get(i), isUnoptimized);
+ noteBluetoothScanStartedLocked(null, ws.getUid(i), isUnoptimized);
}
final List<WorkChain> workChains = ws.getWorkChains();
@@ -5602,7 +5602,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteBluetoothScanStoppedFromSourceLocked(WorkSource ws, boolean isUnoptimized) {
final int N = ws.size();
for (int i = 0; i < N; i++) {
- noteBluetoothScanStoppedLocked(null, ws.get(i), isUnoptimized);
+ noteBluetoothScanStoppedLocked(null, ws.getUid(i), isUnoptimized);
}
final List<WorkChain> workChains = ws.getWorkChains();
@@ -5633,7 +5633,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteBluetoothScanResultsFromSourceLocked(WorkSource ws, int numNewResults) {
final int N = ws.size();
for (int i = 0; i < N; i++) {
- int uid = mapUid(ws.get(i));
+ int uid = mapUid(ws.getUid(i));
getUidStatsLocked(uid).noteBluetoothScanResultsLocked(numNewResults);
}
@@ -5692,7 +5692,7 @@ public class BatteryStatsImpl extends BatteryStats {
mGlobalWifiRunningTimer.startRunningLocked(elapsedRealtime);
int N = ws.size();
for (int i=0; i<N; i++) {
- int uid = mapUid(ws.get(i));
+ int uid = mapUid(ws.getUid(i));
getUidStatsLocked(uid).noteWifiRunningLocked(elapsedRealtime);
}
@@ -5715,7 +5715,7 @@ public class BatteryStatsImpl extends BatteryStats {
final long elapsedRealtime = mClocks.elapsedRealtime();
int N = oldWs.size();
for (int i=0; i<N; i++) {
- int uid = mapUid(oldWs.get(i));
+ int uid = mapUid(oldWs.getUid(i));
getUidStatsLocked(uid).noteWifiStoppedLocked(elapsedRealtime);
}
@@ -5729,7 +5729,7 @@ public class BatteryStatsImpl extends BatteryStats {
N = newWs.size();
for (int i=0; i<N; i++) {
- int uid = mapUid(newWs.get(i));
+ int uid = mapUid(newWs.getUid(i));
getUidStatsLocked(uid).noteWifiRunningLocked(elapsedRealtime);
}
@@ -5757,7 +5757,7 @@ public class BatteryStatsImpl extends BatteryStats {
mGlobalWifiRunningTimer.stopRunningLocked(elapsedRealtime);
int N = ws.size();
for (int i=0; i<N; i++) {
- int uid = mapUid(ws.get(i));
+ int uid = mapUid(ws.getUid(i));
getUidStatsLocked(uid).noteWifiStoppedLocked(elapsedRealtime);
}
@@ -5963,7 +5963,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteFullWifiLockAcquiredFromSourceLocked(WorkSource ws) {
int N = ws.size();
for (int i=0; i<N; i++) {
- final int uid = mapUid(ws.get(i));
+ final int uid = mapUid(ws.getUid(i));
noteFullWifiLockAcquiredLocked(uid);
}
@@ -5980,7 +5980,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteFullWifiLockReleasedFromSourceLocked(WorkSource ws) {
int N = ws.size();
for (int i=0; i<N; i++) {
- final int uid = mapUid(ws.get(i));
+ final int uid = mapUid(ws.getUid(i));
noteFullWifiLockReleasedLocked(uid);
}
@@ -5997,7 +5997,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteWifiScanStartedFromSourceLocked(WorkSource ws) {
int N = ws.size();
for (int i=0; i<N; i++) {
- final int uid = mapUid(ws.get(i));
+ final int uid = mapUid(ws.getUid(i));
noteWifiScanStartedLocked(uid);
}
@@ -6014,7 +6014,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteWifiScanStoppedFromSourceLocked(WorkSource ws) {
int N = ws.size();
for (int i=0; i<N; i++) {
- final int uid = mapUid(ws.get(i));
+ final int uid = mapUid(ws.getUid(i));
noteWifiScanStoppedLocked(uid);
}
@@ -6031,7 +6031,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteWifiBatchedScanStartedFromSourceLocked(WorkSource ws, int csph) {
int N = ws.size();
for (int i=0; i<N; i++) {
- noteWifiBatchedScanStartedLocked(ws.get(i), csph);
+ noteWifiBatchedScanStartedLocked(ws.getUid(i), csph);
}
final List<WorkChain> workChains = ws.getWorkChains();
@@ -6045,7 +6045,7 @@ public class BatteryStatsImpl extends BatteryStats {
public void noteWifiBatchedScanStoppedFromSourceLocked(WorkSource ws) {
int N = ws.size();
for (int i=0; i<N; i++) {
- noteWifiBatchedScanStoppedLocked(ws.get(i));
+ noteWifiBatchedScanStoppedLocked(ws.getUid(i));
}
final List<WorkChain> workChains = ws.getWorkChains();
diff --git a/core/tests/coretests/src/android/os/WorkSourceTest.java b/core/tests/coretests/src/android/os/WorkSourceTest.java
index e94d60c32bfe..4206fd239528 100644
--- a/core/tests/coretests/src/android/os/WorkSourceTest.java
+++ b/core/tests/coretests/src/android/os/WorkSourceTest.java
@@ -228,13 +228,13 @@ public class WorkSourceTest extends TestCase {
WorkSource ws = new WorkSource();
ws.set(10);
assertEquals(1, ws.size());
- assertEquals(10, ws.get(0));
+ assertEquals(10, ws.getUid(0));
WorkSource ws2 = new WorkSource();
ws2.set(20, "foo");
assertEquals(1, ws2.size());
- assertEquals(20, ws2.get(0));
- assertEquals("foo", ws2.getName(0));
+ assertEquals(20, ws2.getUid(0));
+ assertEquals("foo", ws2.getPackageName(0));
}
public void testDiffChains_noChanges() {
@@ -410,8 +410,8 @@ public class WorkSourceTest extends TestCase {
assertTrue(ws2.remove(ws1));
assertEquals(0, ws1.size());
- assertEquals(50, ws1.get(0));
- assertEquals("foo", ws1.getName(0));
+ assertEquals(50, ws1.getUid(0));
+ assertEquals("foo", ws1.getPackageName(0));
}
public void testTransferWorkChains() {
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
index e1f65979bec3..34c5842d9a2f 100644
--- a/services/core/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -1947,11 +1947,11 @@ public class LocationManagerService extends ILocationManager.Stub {
if (workSource.size() > 0) {
// If the WorkSource has one or more non-chained UIDs, make sure they're accompanied
// by tags.
- return workSource.getName(0) != null;
+ return workSource.getPackageName(0) != null;
} else {
// For now, make sure callers have supplied an attribution tag for use with
// AppOpsManager. This might be relaxed in the future.
- final ArrayList<WorkChain> workChains = workSource.getWorkChains();
+ final List<WorkChain> workChains = workSource.getWorkChains();
return workChains != null && !workChains.isEmpty() &&
workChains.get(0).getAttributionTag() != null;
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 4bb29f014d0e..3045a904d444 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -8649,7 +8649,7 @@ public class ActivityManagerService extends IActivityManager.Stub
mBatteryStatsService.noteWakupAlarm(sourcePkg, sourceUid, workSource, tag);
if (workSource != null) {
- String workSourcePackage = workSource.getName(0);
+ String workSourcePackage = workSource.getPackageName(0);
int workSourceUid = workSource.getAttributionUid();
if (workSourcePackage == null) {
workSourcePackage = sourcePkg;
diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java
index fb57d69f0db9..d8dbfc9caca2 100644
--- a/services/core/java/com/android/server/location/GnssLocationProvider.java
+++ b/services/core/java/com/android/server/location/GnssLocationProvider.java
@@ -1173,14 +1173,15 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
if (newWork != null) {
for (int i = 0; i < newWork.size(); i++) {
mAppOps.startOpNoThrow(AppOpsManager.OP_GPS,
- newWork.get(i), newWork.getName(i));
+ newWork.getUid(i), newWork.getPackageName(i));
}
}
// Update sources that are no longer tracked.
if (goneWork != null) {
for (int i = 0; i < goneWork.size(); i++) {
- mAppOps.finishOp(AppOpsManager.OP_GPS, goneWork.get(i), goneWork.getName(i));
+ mAppOps.finishOp(AppOpsManager.OP_GPS, goneWork.getUid(i),
+ goneWork.getPackageName(i));
}
}
}
diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
index befe4e968b12..65155b604916 100644
--- a/services/core/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -107,6 +107,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.List;
import java.util.Objects;
/**
@@ -1141,9 +1142,9 @@ public final class PowerManagerService extends SystemService
opPackageName = workChain.getAttributionTag();
opUid = workChain.getAttributionUid();
} else {
- opPackageName = workSource.getName(0) != null
- ? workSource.getName(0) : wakeLock.mPackageName;
- opUid = workSource.get(0);
+ opPackageName = workSource.getPackageName(0) != null
+ ? workSource.getPackageName(0) : wakeLock.mPackageName;
+ opUid = workSource.getUid(0);
}
} else {
opPackageName = wakeLock.mPackageName;
@@ -1970,13 +1971,13 @@ public final class PowerManagerService extends SystemService
private boolean wakeLockAffectsUser(WakeLock wakeLock, @UserIdInt int userId) {
if (wakeLock.mWorkSource != null) {
for (int k = 0; k < wakeLock.mWorkSource.size(); k++) {
- final int uid = wakeLock.mWorkSource.get(k);
+ final int uid = wakeLock.mWorkSource.getUid(k);
if (userId == UserHandle.getUserId(uid)) {
return true;
}
}
- final ArrayList<WorkChain> workChains = wakeLock.mWorkSource.getWorkChains();
+ final List<WorkChain> workChains = wakeLock.mWorkSource.getWorkChains();
if (workChains != null) {
for (int k = 0; k < workChains.size(); k++) {
final int uid = workChains.get(k).getAttributionUid();
diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
index 6a90d0bbd77f..2510b60955d3 100644
--- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
+++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
@@ -713,7 +713,7 @@ public class KeyValueBackupTaskTest {
// Verify has set work source and hasn't unset yet.
verify(mBackupManagerService)
.setWorkSource(
- argThat(workSource -> workSource.get(0) == PACKAGE_1.uid));
+ argThat(workSource -> workSource.getUid(0) == PACKAGE_1.uid));
verify(mBackupManagerService, never()).setWorkSource(null);
});
KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1);
diff --git a/tools/stats_log_api_gen/main.cpp b/tools/stats_log_api_gen/main.cpp
index f62fef076f48..18e2da3791c5 100644
--- a/tools/stats_log_api_gen/main.cpp
+++ b/tools/stats_log_api_gen/main.cpp
@@ -1309,7 +1309,7 @@ static void write_java_work_source_method(FILE* out,
fprintf(out, " write_non_chained(code");
for (int argIndex = 1; argIndex <= argIndexMax; argIndex++) {
if (argIndex == attributionArg) {
- fprintf(out, ", ws.get(i), ws.getName(i)");
+ fprintf(out, ", ws.getUid(i), ws.getPackageName(i)");
} else {
fprintf(out, ", arg%d", argIndex);
}
@@ -1318,7 +1318,7 @@ static void write_java_work_source_method(FILE* out,
fprintf(out, " }\n"); // close for-loop
// write() component.
- fprintf(out, " ArrayList<WorkSource.WorkChain> workChains = ws.getWorkChains();\n");
+ fprintf(out, " List<WorkSource.WorkChain> workChains = ws.getWorkChains();\n");
fprintf(out, " if (workChains != null) {\n");
fprintf(out, " for (WorkSource.WorkChain wc : workChains) {\n");
fprintf(out, " write(code");
@@ -1407,7 +1407,7 @@ write_stats_log_java(FILE* out, const Atoms& atoms, const AtomDecl &attributionD
fprintf(out, "\n");
fprintf(out, "import android.os.WorkSource;\n");
fprintf(out, "import android.util.SparseArray;\n");
- fprintf(out, "import java.util.ArrayList;\n");
+ fprintf(out, "import java.util.List;\n");
fprintf(out, "\n");
fprintf(out, "\n");
fprintf(out, "/**\n");
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 93960de89d89..6610683da2d4 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -4226,7 +4226,7 @@ public class WifiManager {
if (ws == null) {
mWorkSource = null;
} else {
- ws.clearNames();
+ ws = ws.withoutNames();
if (mWorkSource == null) {
changed = mWorkSource != null;
mWorkSource = new WorkSource(ws);