summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-08-15 23:31:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-08-15 23:31:11 +0000
commitdc6026ee43ec8faa6e56d619e4f602cd0b9480ac (patch)
tree90d2959e26482c7033127a1de95c3f741648025f
parentf333b2caa29520a2c02e8b88d8a58fad48d3f385 (diff)
parent1b1fca8c6d28b26964ac4a2124863d503771e0e8 (diff)
Merge "Remove now-unused access of IActivityManager for Uri grants"
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java29
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java16
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java3
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/JobStore.java8
-rw-r--r--apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java31
5 files changed, 40 insertions, 47 deletions
diff --git a/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java b/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java
index 005b1892f6a6..b7e8cf6e3fc8 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/GrantedUriPermissions.java
@@ -16,7 +16,6 @@
package com.android.server.job;
-import android.app.IActivityManager;
import android.app.UriGrantsManager;
import android.content.ClipData;
import android.content.ContentProvider;
@@ -40,7 +39,7 @@ public final class GrantedUriPermissions {
private final IBinder mPermissionOwner;
private final ArrayList<Uri> mUris = new ArrayList<>();
- private GrantedUriPermissions(IActivityManager am, int grantFlags, int uid, String tag)
+ private GrantedUriPermissions(int grantFlags, int uid, String tag)
throws RemoteException {
mGrantFlags = grantFlags;
mSourceUserId = UserHandle.getUserId(uid);
@@ -49,7 +48,7 @@ public final class GrantedUriPermissions {
.getService(UriGrantsManagerInternal.class).newUriPermissionOwner("job: " + tag);
}
- public void revoke(IActivityManager am) {
+ public void revoke() {
for (int i = mUris.size()-1; i >= 0; i--) {
LocalServices.getService(UriGrantsManagerInternal.class).revokeUriPermissionFromOwner(
mPermissionOwner, mUris.get(i), mGrantFlags, mSourceUserId);
@@ -62,7 +61,7 @@ public final class GrantedUriPermissions {
|Intent.FLAG_GRANT_READ_URI_PERMISSION)) != 0;
}
- public static GrantedUriPermissions createFromIntent(IActivityManager am, Intent intent,
+ public static GrantedUriPermissions createFromIntent(Intent intent,
int sourceUid, String targetPackage, int targetUserId, String tag) {
int grantFlags = intent.getFlags();
if (!checkGrantFlags(grantFlags)) {
@@ -73,44 +72,44 @@ public final class GrantedUriPermissions {
Uri data = intent.getData();
if (data != null) {
- perms = grantUri(am, data, sourceUid, targetPackage, targetUserId, grantFlags, tag,
+ perms = grantUri(data, sourceUid, targetPackage, targetUserId, grantFlags, tag,
perms);
}
ClipData clip = intent.getClipData();
if (clip != null) {
- perms = grantClip(am, clip, sourceUid, targetPackage, targetUserId, grantFlags, tag,
+ perms = grantClip(clip, sourceUid, targetPackage, targetUserId, grantFlags, tag,
perms);
}
return perms;
}
- public static GrantedUriPermissions createFromClip(IActivityManager am, ClipData clip,
+ public static GrantedUriPermissions createFromClip(ClipData clip,
int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag) {
if (!checkGrantFlags(grantFlags)) {
return null;
}
GrantedUriPermissions perms = null;
if (clip != null) {
- perms = grantClip(am, clip, sourceUid, targetPackage, targetUserId, grantFlags,
+ perms = grantClip(clip, sourceUid, targetPackage, targetUserId, grantFlags,
tag, perms);
}
return perms;
}
- private static GrantedUriPermissions grantClip(IActivityManager am, ClipData clip,
+ private static GrantedUriPermissions grantClip(ClipData clip,
int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag,
GrantedUriPermissions curPerms) {
final int N = clip.getItemCount();
for (int i = 0; i < N; i++) {
- curPerms = grantItem(am, clip.getItemAt(i), sourceUid, targetPackage, targetUserId,
+ curPerms = grantItem(clip.getItemAt(i), sourceUid, targetPackage, targetUserId,
grantFlags, tag, curPerms);
}
return curPerms;
}
- private static GrantedUriPermissions grantUri(IActivityManager am, Uri uri,
+ private static GrantedUriPermissions grantUri(Uri uri,
int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag,
GrantedUriPermissions curPerms) {
try {
@@ -118,7 +117,7 @@ public final class GrantedUriPermissions {
UserHandle.getUserId(sourceUid));
uri = ContentProvider.getUriWithoutUserId(uri);
if (curPerms == null) {
- curPerms = new GrantedUriPermissions(am, grantFlags, sourceUid, tag);
+ curPerms = new GrantedUriPermissions(grantFlags, sourceUid, tag);
}
UriGrantsManager.getService().grantUriPermissionFromOwner(curPerms.mPermissionOwner,
sourceUid, targetPackage, uri, grantFlags, sourceUserId, targetUserId);
@@ -129,16 +128,16 @@ public final class GrantedUriPermissions {
return curPerms;
}
- private static GrantedUriPermissions grantItem(IActivityManager am, ClipData.Item item,
+ private static GrantedUriPermissions grantItem(ClipData.Item item,
int sourceUid, String targetPackage, int targetUserId, int grantFlags, String tag,
GrantedUriPermissions curPerms) {
if (item.getUri() != null) {
- curPerms = grantUri(am, item.getUri(), sourceUid, targetPackage, targetUserId,
+ curPerms = grantUri(item.getUri(), sourceUid, targetPackage, targetUserId,
grantFlags, tag, curPerms);
}
Intent intent = item.getIntent();
if (intent != null && intent.getData() != null) {
- curPerms = grantUri(am, intent.getData(), sourceUid, targetPackage, targetUserId,
+ curPerms = grantUri(intent.getData(), sourceUid, targetPackage, targetUserId,
grantFlags, tag, curPerms);
}
return curPerms;
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
index 4e424c3ef3f2..a633350996cd 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobSchedulerService.java
@@ -963,7 +963,7 @@ public class JobSchedulerService extends com.android.server.SystemService
// changing. We can just directly enqueue this work in to the job.
if (toCancel.getJob().equals(job)) {
- toCancel.enqueueWorkLocked(ActivityManager.getService(), work);
+ toCancel.enqueueWorkLocked(work);
// If any of work item is enqueued when the source is in the foreground,
// exempt the entire job.
@@ -992,11 +992,11 @@ public class JobSchedulerService extends com.android.server.SystemService
}
// This may throw a SecurityException.
- jobStatus.prepareLocked(ActivityManager.getService());
+ jobStatus.prepareLocked();
if (work != null) {
// If work has been supplied, enqueue it into the new job.
- jobStatus.enqueueWorkLocked(ActivityManager.getService(), work);
+ jobStatus.enqueueWorkLocked(work);
}
if (toCancel != null) {
@@ -1144,7 +1144,7 @@ public class JobSchedulerService extends com.android.server.SystemService
*/
private void cancelJobImplLocked(JobStatus cancelled, JobStatus incomingJob, String reason) {
if (DEBUG) Slog.d(TAG, "CANCEL: " + cancelled.toShortString());
- cancelled.unprepareLocked(ActivityManager.getService());
+ cancelled.unprepareLocked();
stopTrackingJobLocked(cancelled, incomingJob, true /* writeBack */);
// Remove from pending queue.
if (mPendingJobs.remove(cancelled)) {
@@ -1449,7 +1449,7 @@ public class JobSchedulerService extends com.android.server.SystemService
private boolean stopTrackingJobLocked(JobStatus jobStatus, JobStatus incomingJob,
boolean removeFromPersisted) {
// Deal with any remaining work items in the old job.
- jobStatus.stopTrackingJobLocked(ActivityManager.getService(), incomingJob);
+ jobStatus.stopTrackingJobLocked(incomingJob);
// Remove from store as well as controllers.
final boolean removed = mJobs.remove(jobStatus, removeFromPersisted);
@@ -1705,7 +1705,7 @@ public class JobSchedulerService extends com.android.server.SystemService
if (rescheduledJob != null) {
try {
- rescheduledJob.prepareLocked(ActivityManager.getService());
+ rescheduledJob.prepareLocked();
} catch (SecurityException e) {
Slog.w(TAG, "Unable to regrant job permissions for " + rescheduledJob);
}
@@ -1713,13 +1713,13 @@ public class JobSchedulerService extends com.android.server.SystemService
} else if (jobStatus.getJob().isPeriodic()) {
JobStatus rescheduledPeriodic = getRescheduleJobForPeriodic(jobStatus);
try {
- rescheduledPeriodic.prepareLocked(ActivityManager.getService());
+ rescheduledPeriodic.prepareLocked();
} catch (SecurityException e) {
Slog.w(TAG, "Unable to regrant job permissions for " + rescheduledPeriodic);
}
startTrackingJobLocked(rescheduledPeriodic, jobStatus);
}
- jobStatus.unprepareLocked(ActivityManager.getService());
+ jobStatus.unprepareLocked();
reportActiveLocked();
mHandler.obtainMessage(MSG_CHECK_JOB_GREEDY).sendToTarget();
}
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
index 4d9f1331e6ff..782e6463d845 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java
@@ -18,7 +18,6 @@ package com.android.server.job;
import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock;
-import android.app.ActivityManager;
import android.app.job.IJobCallback;
import android.app.job.IJobService;
import android.app.job.JobInfo;
@@ -389,7 +388,7 @@ public final class JobServiceContext implements ServiceConnection {
try {
synchronized (mLock) {
assertCallerLocked(cb);
- return mRunningJob.completeWorkLocked(ActivityManager.getService(), workId);
+ return mRunningJob.completeWorkLocked(workId);
}
} finally {
Binder.restoreCallingIdentity(ident);
diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobStore.java b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java
index 4321fc716b4d..c2bdb6caffd3 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/JobStore.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/JobStore.java
@@ -20,8 +20,6 @@ import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock;
import static com.android.server.job.JobSchedulerService.sSystemClock;
import android.annotation.Nullable;
-import android.app.ActivityManager;
-import android.app.IActivityManager;
import android.app.job.JobInfo;
import android.content.ComponentName;
import android.content.Context;
@@ -180,7 +178,6 @@ public final class JobStore {
public void getRtcCorrectedJobsLocked(final ArrayList<JobStatus> toAdd,
final ArrayList<JobStatus> toRemove) {
final long elapsedNow = sElapsedRealtimeClock.millis();
- final IActivityManager am = ActivityManager.getService();
// Find the jobs that need to be fixed up, collecting them for post-iteration
// replacement with their new versions
@@ -192,7 +189,7 @@ public final class JobStore {
JobStatus newJob = new JobStatus(job,
elapsedRuntimes.first, elapsedRuntimes.second,
0, job.getLastSuccessfulRunTime(), job.getLastFailedRunTime());
- newJob.prepareLocked(am);
+ newJob.prepareLocked();
toAdd.add(newJob);
toRemove.add(job);
}
@@ -667,10 +664,9 @@ public final class JobStore {
jobs = readJobMapImpl(fis, rtcGood);
if (jobs != null) {
long now = sElapsedRealtimeClock.millis();
- IActivityManager am = ActivityManager.getService();
for (int i=0; i<jobs.size(); i++) {
JobStatus js = jobs.get(i);
- js.prepareLocked(am);
+ js.prepareLocked();
js.enqueueTime = now;
this.jobSet.add(js);
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
index 1133f7b851a4..adb43141b9c1 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
@@ -20,7 +20,6 @@ import static com.android.server.job.JobSchedulerService.ACTIVE_INDEX;
import static com.android.server.job.JobSchedulerService.sElapsedRealtimeClock;
import android.app.AppGlobals;
-import android.app.IActivityManager;
import android.app.job.JobInfo;
import android.app.job.JobWorkItem;
import android.content.ClipData;
@@ -528,7 +527,7 @@ public final class JobStatus {
/*innerFlags=*/ 0);
}
- public void enqueueWorkLocked(IActivityManager am, JobWorkItem work) {
+ public void enqueueWorkLocked(JobWorkItem work) {
if (pendingWork == null) {
pendingWork = new ArrayList<>();
}
@@ -536,7 +535,7 @@ public final class JobStatus {
nextPendingWorkId++;
if (work.getIntent() != null
&& GrantedUriPermissions.checkGrantFlags(work.getIntent().getFlags())) {
- work.setGrants(GrantedUriPermissions.createFromIntent(am, work.getIntent(), sourceUid,
+ work.setGrants(GrantedUriPermissions.createFromIntent(work.getIntent(), sourceUid,
sourcePackageName, sourceUserId, toShortString()));
}
pendingWork.add(work);
@@ -567,20 +566,20 @@ public final class JobStatus {
return executingWork != null && executingWork.size() > 0;
}
- private static void ungrantWorkItem(IActivityManager am, JobWorkItem work) {
+ private static void ungrantWorkItem(JobWorkItem work) {
if (work.getGrants() != null) {
- ((GrantedUriPermissions)work.getGrants()).revoke(am);
+ ((GrantedUriPermissions)work.getGrants()).revoke();
}
}
- public boolean completeWorkLocked(IActivityManager am, int workId) {
+ public boolean completeWorkLocked(int workId) {
if (executingWork != null) {
final int N = executingWork.size();
for (int i = 0; i < N; i++) {
JobWorkItem work = executingWork.get(i);
if (work.getWorkId() == workId) {
executingWork.remove(i);
- ungrantWorkItem(am, work);
+ ungrantWorkItem(work);
return true;
}
}
@@ -588,16 +587,16 @@ public final class JobStatus {
return false;
}
- private static void ungrantWorkList(IActivityManager am, ArrayList<JobWorkItem> list) {
+ private static void ungrantWorkList(ArrayList<JobWorkItem> list) {
if (list != null) {
final int N = list.size();
for (int i = 0; i < N; i++) {
- ungrantWorkItem(am, list.get(i));
+ ungrantWorkItem(list.get(i));
}
}
}
- public void stopTrackingJobLocked(IActivityManager am, JobStatus incomingJob) {
+ public void stopTrackingJobLocked(JobStatus incomingJob) {
if (incomingJob != null) {
// We are replacing with a new job -- transfer the work! We do any executing
// work first, since that was originally at the front of the pending work.
@@ -615,15 +614,15 @@ public final class JobStatus {
incomingJob.updateEstimatedNetworkBytesLocked();
} else {
// We are completely stopping the job... need to clean up work.
- ungrantWorkList(am, pendingWork);
+ ungrantWorkList(pendingWork);
pendingWork = null;
- ungrantWorkList(am, executingWork);
+ ungrantWorkList(executingWork);
executingWork = null;
}
updateEstimatedNetworkBytesLocked();
}
- public void prepareLocked(IActivityManager am) {
+ public void prepareLocked() {
if (prepared) {
Slog.wtf(TAG, "Already prepared: " + this);
return;
@@ -634,12 +633,12 @@ public final class JobStatus {
}
final ClipData clip = job.getClipData();
if (clip != null) {
- uriPerms = GrantedUriPermissions.createFromClip(am, clip, sourceUid, sourcePackageName,
+ uriPerms = GrantedUriPermissions.createFromClip(clip, sourceUid, sourcePackageName,
sourceUserId, job.getClipGrantFlags(), toShortString());
}
}
- public void unprepareLocked(IActivityManager am) {
+ public void unprepareLocked() {
if (!prepared) {
Slog.wtf(TAG, "Hasn't been prepared: " + this);
if (DEBUG_PREPARE && unpreparedPoint != null) {
@@ -652,7 +651,7 @@ public final class JobStatus {
unpreparedPoint = new Throwable().fillInStackTrace();
}
if (uriPerms != null) {
- uriPerms.revoke(am);
+ uriPerms.revoke();
uriPerms = null;
}
}