Inform receivers of restart attempt previous visibility
This way receivers like recents know whether the activity
was already visible before a restart attempt.
Bug: 154575664
Test: added test. Can also launch a running activity into
split-primary and it won't expand it.
Change-Id: If59ee1615fa36bbe3af9412194a7f96b9377528a
This commit is contained in:
@@ -38,7 +38,7 @@ public abstract class TaskStackChangeListener {
|
||||
public void onActivityPinned(String packageName, int userId, int taskId, int stackId) { }
|
||||
public void onActivityUnpinned() { }
|
||||
public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
|
||||
boolean clearedTask) { }
|
||||
boolean clearedTask, boolean wasVisible) { }
|
||||
public void onActivityForcedResizable(String packageName, int taskId, int reason) { }
|
||||
public void onActivityDismissingDockedStack() { }
|
||||
public void onActivityLaunchOnSecondaryDisplayFailed() { }
|
||||
|
||||
@@ -122,11 +122,12 @@ public class TaskStackChangeListeners extends TaskStackListener {
|
||||
|
||||
@Override
|
||||
public void onActivityRestartAttempt(RunningTaskInfo task, boolean homeTaskVisible,
|
||||
boolean clearedTask) throws RemoteException {
|
||||
boolean clearedTask, boolean wasVisible) throws RemoteException {
|
||||
final SomeArgs args = SomeArgs.obtain();
|
||||
args.arg1 = task;
|
||||
args.argi1 = homeTaskVisible ? 1 : 0;
|
||||
args.argi2 = clearedTask ? 1 : 0;
|
||||
args.argi3 = wasVisible ? 1 : 0;
|
||||
mHandler.removeMessages(H.ON_ACTIVITY_RESTART_ATTEMPT);
|
||||
mHandler.obtainMessage(H.ON_ACTIVITY_RESTART_ATTEMPT, args).sendToTarget();
|
||||
}
|
||||
@@ -305,9 +306,10 @@ public class TaskStackChangeListeners extends TaskStackListener {
|
||||
final RunningTaskInfo task = (RunningTaskInfo) args.arg1;
|
||||
final boolean homeTaskVisible = args.argi1 != 0;
|
||||
final boolean clearedTask = args.argi2 != 0;
|
||||
final boolean wasVisible = args.argi3 != 0;
|
||||
for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) {
|
||||
mTaskStackListeners.get(i).onActivityRestartAttempt(task,
|
||||
homeTaskVisible, clearedTask);
|
||||
homeTaskVisible, clearedTask, wasVisible);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user