diff options
| author | Kweku Adams <kwekua@google.com> | 2019-05-07 12:22:47 -0700 |
|---|---|---|
| committer | Kweku Adams <kwekua@google.com> | 2019-05-07 12:33:43 -0700 |
| commit | d1f4b90e2856c6e1175eeea417bc329d8caa1287 (patch) | |
| tree | 7a38ae933619047d5f301af8c7a60de478d1eb6e /core/java/android | |
| parent | 9192a430afaac8b21e69e2990fc0f93a2eb6dbb5 (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.java | 4 | ||||
| -rw-r--r-- | core/java/android/app/job/IJobScheduler.aidl | 5 |
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(); } |
