Merge "Fix not tracking splitting tasks correctly" into udc-dev
This commit is contained in:
@@ -127,23 +127,16 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta
|
||||
|
||||
@Override
|
||||
public void onTaskStageChanged(int taskId, @StageType int stage, boolean visible) {
|
||||
// If task is not visible but we are tracking it, stop tracking it
|
||||
if (!visible) {
|
||||
// If a task is not visible anymore or has been moved to undefined, stop tracking it.
|
||||
if (!visible || stage == SplitConfigurationOptions.STAGE_TYPE_UNDEFINED) {
|
||||
if (mMainStagePosition.taskId == taskId) {
|
||||
resetTaskId(mMainStagePosition);
|
||||
mMainStagePosition.taskId = INVALID_TASK_ID;
|
||||
} else if (mSideStagePosition.taskId == taskId) {
|
||||
resetTaskId(mSideStagePosition);
|
||||
mSideStagePosition.taskId = INVALID_TASK_ID;
|
||||
} // else it's an un-tracked child
|
||||
return;
|
||||
}
|
||||
|
||||
// If stage has moved to undefined, stop tracking the task
|
||||
if (stage == SplitConfigurationOptions.STAGE_TYPE_UNDEFINED) {
|
||||
resetTaskId(taskId == mMainStagePosition.taskId
|
||||
? mMainStagePosition : mSideStagePosition);
|
||||
return;
|
||||
}
|
||||
|
||||
if (stage == SplitConfigurationOptions.STAGE_TYPE_MAIN) {
|
||||
mMainStagePosition.taskId = taskId;
|
||||
} else {
|
||||
@@ -161,10 +154,6 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta
|
||||
mPinnedTaskId = INVALID_TASK_ID;
|
||||
}
|
||||
|
||||
private void resetTaskId(SplitStageInfo taskPosition) {
|
||||
taskPosition.taskId = -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return index 0 will be task in left/top position, index 1 in right/bottom position.
|
||||
* Will return empty array if device is not in staged split
|
||||
|
||||
Reference in New Issue
Block a user