summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/app/ActivityManager.java4
-rw-r--r--core/java/android/app/ActivityManagerNative.java10
-rw-r--r--core/java/android/app/IActivityManager.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java2
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java7
-rw-r--r--services/core/java/com/android/server/media/MediaSessionStack.java2
-rw-r--r--services/tests/servicestests/src/com/android/server/am/ActivityManagerTest.java2
7 files changed, 15 insertions, 14 deletions
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 31fe39027fb0..c96bd39eeffe 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -1507,7 +1507,7 @@ public class ActivityManager {
throws SecurityException {
try {
return ActivityManagerNative.getDefault().getRecentTasks(maxNum,
- flags, UserHandle.myUserId());
+ flags, UserHandle.myUserId()).getList();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -1532,7 +1532,7 @@ public class ActivityManager {
throws SecurityException {
try {
return ActivityManagerNative.getDefault().getRecentTasks(maxNum,
- flags, userId);
+ flags, userId).getList();
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index cee5646a73b3..9e9dabbb6aaf 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -683,10 +683,10 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
int maxNum = data.readInt();
int fl = data.readInt();
int userId = data.readInt();
- List<ActivityManager.RecentTaskInfo> list = getRecentTasks(maxNum,
+ ParceledListSlice<ActivityManager.RecentTaskInfo> list = getRecentTasks(maxNum,
fl, userId);
reply.writeNoException();
- reply.writeTypedList(list);
+ list.writeToParcel(reply, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
return true;
}
@@ -3741,7 +3741,7 @@ class ActivityManagerProxy implements IActivityManager
reply.recycle();
return list;
}
- public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
+ public ParceledListSlice<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
int flags, int userId) throws RemoteException {
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
@@ -3751,8 +3751,8 @@ class ActivityManagerProxy implements IActivityManager
data.writeInt(userId);
mRemote.transact(GET_RECENT_TASKS_TRANSACTION, data, reply, 0);
reply.readException();
- ArrayList<ActivityManager.RecentTaskInfo> list
- = reply.createTypedArrayList(ActivityManager.RecentTaskInfo.CREATOR);
+ final ParceledListSlice<ActivityManager.RecentTaskInfo> list = ParceledListSlice.CREATOR
+ .createFromParcel(reply);
data.recycle();
reply.recycle();
return list;
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 3f7ff0bede57..4570f1fdb206 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -136,7 +136,7 @@ public interface IActivityManager extends IInterface {
ActivityManager.TaskDescription description, Bitmap thumbnail) throws RemoteException;
public Point getAppTaskThumbnailSize() throws RemoteException;
public List<RunningTaskInfo> getTasks(int maxNum, int flags) throws RemoteException;
- public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
+ public ParceledListSlice<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum,
int flags, int userId) throws RemoteException;
public ActivityManager.TaskThumbnail getTaskThumbnail(int taskId) throws RemoteException;
public List<RunningServiceInfo> getServices(int maxNum, int flags) throws RemoteException;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 8ee34a4cbd45..8530d667daa5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -512,7 +512,7 @@ public abstract class BaseStatusBar extends SystemUI implements
recentTask = ActivityManagerNative.getDefault().getRecentTasks(1,
ActivityManager.RECENT_WITH_EXCLUDED
| ActivityManager.RECENT_INCLUDE_PROFILES,
- mCurrentUserId);
+ mCurrentUserId).getList();
} catch (RemoteException e) {
// Abandon hope activity manager not running.
}
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index 5893f9018631..82d9782c91d6 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -9078,7 +9078,8 @@ public final class ActivityManagerService extends ActivityManagerNative
}
@Override
- public List<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, int flags, int userId) {
+ public ParceledListSlice<ActivityManager.RecentTaskInfo> getRecentTasks(int maxNum, int flags,
+ int userId) {
final int callingUid = Binder.getCallingUid();
userId = mUserController.handleIncomingUser(Binder.getCallingPid(), callingUid, userId,
false, ALLOW_FULL_ONLY, "getRecentTasks", null);
@@ -9094,7 +9095,7 @@ public final class ActivityManagerService extends ActivityManagerNative
if (!isUserRunning(userId, ActivityManager.FLAG_AND_UNLOCKED)) {
Slog.i(TAG, "user " + userId + " is still locked. Cannot load recents");
- return Collections.emptyList();
+ return ParceledListSlice.emptyList();
}
mRecentTasks.loadUserRecentsLocked(userId);
@@ -9193,7 +9194,7 @@ public final class ActivityManagerService extends ActivityManagerNative
maxNum--;
}
}
- return res;
+ return new ParceledListSlice<>(res);
}
}
diff --git a/services/core/java/com/android/server/media/MediaSessionStack.java b/services/core/java/com/android/server/media/MediaSessionStack.java
index 61c320bced3c..cc007eff9075 100644
--- a/services/core/java/com/android/server/media/MediaSessionStack.java
+++ b/services/core/java/com/android/server/media/MediaSessionStack.java
@@ -81,7 +81,7 @@ public class MediaSessionStack {
ActivityManager.RECENT_IGNORE_HOME_STACK_TASKS |
ActivityManager.RECENT_IGNORE_UNAVAILABLE |
ActivityManager.RECENT_INCLUDE_PROFILES |
- ActivityManager.RECENT_WITH_EXCLUDED, record.getUserId());
+ ActivityManager.RECENT_WITH_EXCLUDED, record.getUserId()).getList();
if (tasks != null && !tasks.isEmpty()) {
ActivityManager.RecentTaskInfo recentTask = tasks.get(0);
if (recentTask.baseIntent != null)
diff --git a/services/tests/servicestests/src/com/android/server/am/ActivityManagerTest.java b/services/tests/servicestests/src/com/android/server/am/ActivityManagerTest.java
index 625fe7768990..bd9e6d19269b 100644
--- a/services/tests/servicestests/src/com/android/server/am/ActivityManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/am/ActivityManagerTest.java
@@ -43,7 +43,7 @@ public class ActivityManagerTest extends AndroidTestCase {
private void testTaskIdsForUser(int userId) throws RemoteException {
List<ActivityManager.RecentTaskInfo> recentTasks = service.getRecentTasks(
- 100, 0, userId);
+ 100, 0, userId).getList();
if(recentTasks != null) {
for(ActivityManager.RecentTaskInfo recentTask : recentTasks) {
int taskId = recentTask.persistentId;