summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorKweku Adams <kwekua@google.com>2019-05-07 12:22:47 -0700
committerKweku Adams <kwekua@google.com>2019-05-07 12:33:43 -0700
commitd1f4b90e2856c6e1175eeea417bc329d8caa1287 (patch)
tree7a38ae933619047d5f301af8c7a60de478d1eb6e /core/java/android
parent9192a430afaac8b21e69e2990fc0f93a2eb6dbb5 (diff)
Using ParceledListSlice to send large lists over Binder.
JobScheduler.getAllPendingJobs() and .getAllJobSnapshots() can potentially contain enough data to exceed the Binder limit. Using a ParceledListSlice will ensure the data can still be sent over Binder. Bug: 70648761 Test: atest CtsJobSchedulerTestCases Test: atest CtsBatterySavingTestCases Change-Id: I79ea32eac56473ca996cc00312b30d0f72ce22c9
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/JobSchedulerImpl.java4
-rw-r--r--core/java/android/app/job/IJobScheduler.aidl5
2 files changed, 5 insertions, 4 deletions
diff --git a/core/java/android/app/JobSchedulerImpl.java b/core/java/android/app/JobSchedulerImpl.java
index 5494e2a8855c..e8770185305c 100644
--- a/core/java/android/app/JobSchedulerImpl.java
+++ b/core/java/android/app/JobSchedulerImpl.java
@@ -83,7 +83,7 @@ public class JobSchedulerImpl extends JobScheduler {
@Override
public List<JobInfo> getAllPendingJobs() {
try {
- return mBinder.getAllPendingJobs();
+ return mBinder.getAllPendingJobs().getList();
} catch (RemoteException e) {
return null;
}
@@ -110,7 +110,7 @@ public class JobSchedulerImpl extends JobScheduler {
@Override
public List<JobSnapshot> getAllJobSnapshots() {
try {
- return mBinder.getAllJobSnapshots();
+ return mBinder.getAllJobSnapshots().getList();
} catch (RemoteException e) {
return null;
}
diff --git a/core/java/android/app/job/IJobScheduler.aidl b/core/java/android/app/job/IJobScheduler.aidl
index 53b33c22dd81..3006f50e54fc 100644
--- a/core/java/android/app/job/IJobScheduler.aidl
+++ b/core/java/android/app/job/IJobScheduler.aidl
@@ -19,6 +19,7 @@ package android.app.job;
import android.app.job.JobInfo;
import android.app.job.JobSnapshot;
import android.app.job.JobWorkItem;
+import android.content.pm.ParceledListSlice;
/**
* IPC interface that supports the app-facing {@link #JobScheduler} api.
@@ -30,8 +31,8 @@ interface IJobScheduler {
int scheduleAsPackage(in JobInfo job, String packageName, int userId, String tag);
void cancel(int jobId);
void cancelAll();
- List<JobInfo> getAllPendingJobs();
+ ParceledListSlice getAllPendingJobs();
JobInfo getPendingJob(int jobId);
List<JobInfo> getStartedJobs();
- List<JobSnapshot> getAllJobSnapshots();
+ ParceledListSlice getAllJobSnapshots();
}