Merge "Don't send callback with null topActivity" into tm-dev

This commit is contained in:
TreeHugger Robot
2022-03-24 21:13:07 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 1 deletions

View File

@@ -469,6 +469,10 @@ public final class VirtualDeviceManager {
/**
* Called when the top activity is changed.
*
* <p>Note: When there are no activities running on the virtual display, the
* {@link #onDisplayEmpty(int)} will be called. If the value topActivity is cached, it
* should be cleared when {@link #onDisplayEmpty(int)} is called.
*
* @param displayId The display ID on which the activity change happened.
* @param topActivity The component name of the top activity.
*/

View File

@@ -165,7 +165,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController
@Override
public void onTopActivityChanged(ComponentName topActivity, int uid) {
if (mActivityListener != null) {
// Don't send onTopActivityChanged() callback when topActivity is null because it's defined
// as @NonNull in ActivityListener interface. Sends onDisplayEmpty() callback instead when
// there is no activity running on virtual display.
if (mActivityListener != null && topActivity != null) {
// Post callback on the main thread so it doesn't block activity launching
mHandler.post(() ->
mActivityListener.onTopActivityChanged(Display.INVALID_DISPLAY, topActivity));