Merge "Report resizeTask failure as boolean result" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-19 01:39:54 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 5 deletions

View File

@@ -229,7 +229,16 @@ interface IActivityTaskManager {
void unregisterTaskStackListener(in ITaskStackListener listener);
void setTaskResizeable(int taskId, int resizeableMode);
void toggleFreeformWindowingMode(in IBinder token);
void resizeTask(int taskId, in Rect bounds, int resizeMode);
/**
* Resize the task with given bounds
*
* @param taskId The id of the task to set the bounds for.
* @param bounds The new bounds.
* @param resizeMode Resize mode defined as {@code ActivityTaskManager#RESIZE_MODE_*} constants.
* @return Return true on success. Otherwise false.
*/
boolean resizeTask(int taskId, in Rect bounds, int resizeMode);
void moveStackToDisplay(int stackId, int displayId);
void removeStack(int stackId);

View File

@@ -3319,7 +3319,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
}
@Override
public void resizeTask(int taskId, Rect bounds, int resizeMode) {
public boolean resizeTask(int taskId, Rect bounds, int resizeMode) {
mAmInternal.enforceCallingPermission(MANAGE_ACTIVITY_STACKS, "resizeTask()");
long ident = Binder.clearCallingIdentity();
try {
@@ -3328,10 +3328,11 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
MATCH_TASK_IN_STACKS_ONLY);
if (task == null) {
Slog.w(TAG, "resizeTask: taskId=" + taskId + " not found");
return;
return false;
}
if (!task.getWindowConfiguration().canResizeTask()) {
throw new IllegalArgumentException("resizeTask not allowed on task=" + task);
Slog.w(TAG, "resizeTask not allowed on task=" + task);
return false;
}
// Reparent the task to the right stack if necessary
@@ -3339,7 +3340,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
// After reparenting (which only resizes the task to the stack bounds), resize the
// task to the actual bounds provided
task.resize(bounds, resizeMode, preserveWindow);
return task.resize(bounds, resizeMode, preserveWindow);
}
} finally {
Binder.restoreCallingIdentity(ident);