diff options
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); |