Loading core/api/system-current.txt +3 −0 Original line number Diff line number Diff line Loading @@ -3010,6 +3010,7 @@ package android.companion.virtual { method @NonNull public java.util.Set<android.content.ComponentName> getBlockedCrossTaskNavigations(); method public int getDefaultActivityPolicy(); method public int getDefaultNavigationPolicy(); method public int getDefaultRecentsPolicy(); method public int getDevicePolicy(int); method public int getLockState(); method @Nullable public String getName(); Loading @@ -3026,6 +3027,7 @@ package android.companion.virtual { field public static final int NAVIGATION_POLICY_DEFAULT_ALLOWED = 0; // 0x0 field public static final int NAVIGATION_POLICY_DEFAULT_BLOCKED = 1; // 0x1 field public static final int POLICY_TYPE_SENSORS = 0; // 0x0 field public static final int RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS = 1; // 0x1 } public static final class VirtualDeviceParams.Builder { Loading @@ -3036,6 +3038,7 @@ package android.companion.virtual { method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setAllowedCrossTaskNavigations(@NonNull java.util.Set<android.content.ComponentName>); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setBlockedActivities(@NonNull java.util.Set<android.content.ComponentName>); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setBlockedCrossTaskNavigations(@NonNull java.util.Set<android.content.ComponentName>); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setDefaultRecentsPolicy(int); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setDevicePolicy(int, int); method @NonNull @RequiresPermission(value=android.Manifest.permission.ADD_ALWAYS_UNLOCKED_DISPLAY, conditional=true) public android.companion.virtual.VirtualDeviceParams.Builder setLockState(int); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setName(@NonNull String); core/java/android/companion/virtual/VirtualDeviceParams.java +50 −5 Original line number Diff line number Diff line Loading @@ -147,6 +147,19 @@ public final class VirtualDeviceParams implements Parcelable { */ public static final int POLICY_TYPE_SENSORS = 0; /** @hide */ @IntDef(flag = true, prefix = "RECENTS_POLICY_", value = {RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS}) @Retention(RetentionPolicy.SOURCE) @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface RecentsPolicy {} /** * If set, activities launched on this virtual device are allowed to appear in the host device * of the recently launched activities list. */ public static final int RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS = 1 << 0; private final int mLockState; @NonNull private final ArraySet<UserHandle> mUsersWithMatchingAccounts; @NonNull private final ArraySet<ComponentName> mAllowedCrossTaskNavigations; Loading @@ -161,6 +174,8 @@ public final class VirtualDeviceParams implements Parcelable { // Mapping of @PolicyType to @DevicePolicy @NonNull private final SparseIntArray mDevicePolicies; @NonNull private final List<VirtualSensorConfig> mVirtualSensorConfigs; @RecentsPolicy private final int mDefaultRecentsPolicy; private VirtualDeviceParams( @LockState int lockState, Loading @@ -173,7 +188,8 @@ public final class VirtualDeviceParams implements Parcelable { @ActivityPolicy int defaultActivityPolicy, @Nullable String name, @NonNull SparseIntArray devicePolicies, @NonNull List<VirtualSensorConfig> virtualSensorConfigs) { @NonNull List<VirtualSensorConfig> virtualSensorConfigs, @RecentsPolicy int defaultRecentsPolicy) { mLockState = lockState; mUsersWithMatchingAccounts = new ArraySet<>(Objects.requireNonNull(usersWithMatchingAccounts)); Loading @@ -188,6 +204,7 @@ public final class VirtualDeviceParams implements Parcelable { mName = name; mDevicePolicies = Objects.requireNonNull(devicePolicies); mVirtualSensorConfigs = Objects.requireNonNull(virtualSensorConfigs); mDefaultRecentsPolicy = defaultRecentsPolicy; } @SuppressWarnings("unchecked") Loading @@ -204,6 +221,7 @@ public final class VirtualDeviceParams implements Parcelable { mDevicePolicies = parcel.readSparseIntArray(); mVirtualSensorConfigs = new ArrayList<>(); parcel.readTypedList(mVirtualSensorConfigs, VirtualSensorConfig.CREATOR); mDefaultRecentsPolicy = parcel.readInt(); } /** Loading Loading @@ -328,6 +346,16 @@ public final class VirtualDeviceParams implements Parcelable { return mVirtualSensorConfigs; } /** * Returns the policy of how to handle activities in recents. * * @see RecentsPolicy */ @RecentsPolicy public int getDefaultRecentsPolicy() { return mDefaultRecentsPolicy; } @Override public int describeContents() { return 0; Loading @@ -346,6 +374,7 @@ public final class VirtualDeviceParams implements Parcelable { dest.writeString8(mName); dest.writeSparseIntArray(mDevicePolicies); dest.writeTypedList(mVirtualSensorConfigs); dest.writeInt(mDefaultRecentsPolicy); } @Override Loading Loading @@ -377,7 +406,8 @@ public final class VirtualDeviceParams implements Parcelable { && Objects.equals(mAllowedActivities, that.mAllowedActivities) && Objects.equals(mBlockedActivities, that.mBlockedActivities) && mDefaultActivityPolicy == that.mDefaultActivityPolicy && Objects.equals(mName, that.mName); && Objects.equals(mName, that.mName) && mDefaultRecentsPolicy == that.mDefaultRecentsPolicy; } @Override Loading @@ -385,7 +415,8 @@ public final class VirtualDeviceParams implements Parcelable { int hashCode = Objects.hash( mLockState, mUsersWithMatchingAccounts, mAllowedCrossTaskNavigations, mBlockedCrossTaskNavigations, mDefaultNavigationPolicy, mAllowedActivities, mBlockedActivities, mDefaultActivityPolicy, mName, mDevicePolicies); mBlockedActivities, mDefaultActivityPolicy, mName, mDevicePolicies, mDefaultRecentsPolicy); for (int i = 0; i < mDevicePolicies.size(); i++) { hashCode = 31 * hashCode + mDevicePolicies.keyAt(i); hashCode = 31 * hashCode + mDevicePolicies.valueAt(i); Loading @@ -407,6 +438,7 @@ public final class VirtualDeviceParams implements Parcelable { + " mDefaultActivityPolicy=" + mDefaultActivityPolicy + " mName=" + mName + " mDevicePolicies=" + mDevicePolicies + " mDefaultRecentsPolicy=" + mDefaultRecentsPolicy + ")"; } Loading Loading @@ -442,6 +474,7 @@ public final class VirtualDeviceParams implements Parcelable { @Nullable private String mName; @NonNull private SparseIntArray mDevicePolicies = new SparseIntArray(); @NonNull private List<VirtualSensorConfig> mVirtualSensorConfigs = new ArrayList<>(); private int mDefaultRecentsPolicy; /** * Sets the lock state of the device. The permission {@code ADD_ALWAYS_UNLOCKED_DISPLAY} Loading Loading @@ -646,6 +679,17 @@ public final class VirtualDeviceParams implements Parcelable { return this; } /** * Sets the policy to indicate how activities are handled in recents. * * @param defaultRecentsPolicy A policy specifying how to handle activities in recents. */ @NonNull public Builder setDefaultRecentsPolicy(@RecentsPolicy int defaultRecentsPolicy) { mDefaultRecentsPolicy = defaultRecentsPolicy; return this; } /** * Builds the {@link VirtualDeviceParams} instance. * Loading Loading @@ -684,7 +728,8 @@ public final class VirtualDeviceParams implements Parcelable { mDefaultActivityPolicy, mName, mDevicePolicies, mVirtualSensorConfigs); mVirtualSensorConfigs, mDefaultRecentsPolicy); } } } core/java/android/window/DisplayWindowPolicyController.java +3 −2 Original line number Diff line number Diff line Loading @@ -128,9 +128,10 @@ public abstract class DisplayWindowPolicyController { ActivityInfo activityInfo, int windowFlags, int systemWindowFlags); /** * Returns {@code true} if the tasks which is on this virtual display can be showed on Recents. * Returns {@code true} if the tasks which is on this virtual display can be showed in the * host device of the recently launched activities list. */ public abstract boolean canShowTasksInRecents(); public abstract boolean canShowTasksInHostDeviceRecents(); /** * This is called when the top activity of the display is changed. Loading services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +10 −21 Original line number Diff line number Diff line Loading @@ -16,8 +16,7 @@ package com.android.server.companion.virtual; import static android.companion.AssociationRequest.DEVICE_PROFILE_APP_STREAMING; import static android.companion.AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION; import static android.companion.virtual.VirtualDeviceParams.RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS; import static android.content.pm.ActivityInfo.FLAG_CAN_DISPLAY_ON_REMOTE_DEVICES; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; Loading @@ -26,10 +25,10 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.WindowConfiguration; import android.app.compat.CompatChanges; import android.companion.AssociationRequest; import android.companion.virtual.VirtualDeviceManager.ActivityListener; import android.companion.virtual.VirtualDeviceParams; import android.companion.virtual.VirtualDeviceParams.ActivityPolicy; import android.companion.virtual.VirtualDeviceParams.RecentsPolicy; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.ComponentName; Loading Loading @@ -127,10 +126,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @GuardedBy("mGenericWindowPolicyControllerLock") private final ArraySet<RunningAppsChangedListener> mRunningAppsChangedListeners = new ArraySet<>(); @Nullable private final @AssociationRequest.DeviceProfile String mDeviceProfile; @Nullable private final SecureWindowCallback mSecureWindowCallback; @Nullable private final List<String> mDisplayCategories; @RecentsPolicy private final int mDefaultRecentsPolicy; /** * Creates a window policy controller that is generic to the different use cases of virtual Loading @@ -156,7 +155,7 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController * launching. * @param secureWindowCallback Callback that is called when a secure window shows on the * virtual display. * @param deviceProfile The {@link AssociationRequest.DeviceProfile} of this virtual device. * @param defaultRecentsPolicy a policy to indicate how to handle activities in recents. */ public GenericWindowPolicyController(int windowFlags, int systemWindowFlags, @NonNull ArraySet<UserHandle> allowedUsers, Loading @@ -169,8 +168,8 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @NonNull PipBlockedCallback pipBlockedCallback, @NonNull ActivityBlockedCallback activityBlockedCallback, @NonNull SecureWindowCallback secureWindowCallback, @AssociationRequest.DeviceProfile String deviceProfile, @NonNull List<String> displayCategories) { @NonNull List<String> displayCategories, @RecentsPolicy int defaultRecentsPolicy) { super(); mAllowedUsers = allowedUsers; mAllowedCrossTaskNavigations = new ArraySet<>(allowedCrossTaskNavigations); Loading @@ -181,10 +180,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController mActivityBlockedCallback = activityBlockedCallback; setInterestedWindowFlags(windowFlags, systemWindowFlags); mActivityListener = activityListener; mDeviceProfile = deviceProfile; mPipBlockedCallback = pipBlockedCallback; mSecureWindowCallback = secureWindowCallback; mDisplayCategories = displayCategories; mDefaultRecentsPolicy = defaultRecentsPolicy; } /** Loading Loading @@ -318,18 +317,8 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController } @Override public boolean canShowTasksInRecents() { if (mDeviceProfile == null) { return true; } // TODO(b/234075973) : Remove this once proper API is ready. switch (mDeviceProfile) { case DEVICE_PROFILE_AUTOMOTIVE_PROJECTION: return false; case DEVICE_PROFILE_APP_STREAMING: default: return true; } public boolean canShowTasksInHostDeviceRecents() { return (mDefaultRecentsPolicy & RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS) != 0; } @Override Loading services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -679,8 +679,8 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub this::onEnteringPipBlocked, this::onActivityBlocked, this::onSecureWindowShown, mAssociationInfo.getDeviceProfile(), displayCategories); displayCategories, mParams.getDefaultRecentsPolicy()); gwpc.registerRunningAppsChangedListener(/* listener= */ this); return gwpc; } Loading Loading
core/api/system-current.txt +3 −0 Original line number Diff line number Diff line Loading @@ -3010,6 +3010,7 @@ package android.companion.virtual { method @NonNull public java.util.Set<android.content.ComponentName> getBlockedCrossTaskNavigations(); method public int getDefaultActivityPolicy(); method public int getDefaultNavigationPolicy(); method public int getDefaultRecentsPolicy(); method public int getDevicePolicy(int); method public int getLockState(); method @Nullable public String getName(); Loading @@ -3026,6 +3027,7 @@ package android.companion.virtual { field public static final int NAVIGATION_POLICY_DEFAULT_ALLOWED = 0; // 0x0 field public static final int NAVIGATION_POLICY_DEFAULT_BLOCKED = 1; // 0x1 field public static final int POLICY_TYPE_SENSORS = 0; // 0x0 field public static final int RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS = 1; // 0x1 } public static final class VirtualDeviceParams.Builder { Loading @@ -3036,6 +3038,7 @@ package android.companion.virtual { method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setAllowedCrossTaskNavigations(@NonNull java.util.Set<android.content.ComponentName>); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setBlockedActivities(@NonNull java.util.Set<android.content.ComponentName>); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setBlockedCrossTaskNavigations(@NonNull java.util.Set<android.content.ComponentName>); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setDefaultRecentsPolicy(int); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setDevicePolicy(int, int); method @NonNull @RequiresPermission(value=android.Manifest.permission.ADD_ALWAYS_UNLOCKED_DISPLAY, conditional=true) public android.companion.virtual.VirtualDeviceParams.Builder setLockState(int); method @NonNull public android.companion.virtual.VirtualDeviceParams.Builder setName(@NonNull String);
core/java/android/companion/virtual/VirtualDeviceParams.java +50 −5 Original line number Diff line number Diff line Loading @@ -147,6 +147,19 @@ public final class VirtualDeviceParams implements Parcelable { */ public static final int POLICY_TYPE_SENSORS = 0; /** @hide */ @IntDef(flag = true, prefix = "RECENTS_POLICY_", value = {RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS}) @Retention(RetentionPolicy.SOURCE) @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface RecentsPolicy {} /** * If set, activities launched on this virtual device are allowed to appear in the host device * of the recently launched activities list. */ public static final int RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS = 1 << 0; private final int mLockState; @NonNull private final ArraySet<UserHandle> mUsersWithMatchingAccounts; @NonNull private final ArraySet<ComponentName> mAllowedCrossTaskNavigations; Loading @@ -161,6 +174,8 @@ public final class VirtualDeviceParams implements Parcelable { // Mapping of @PolicyType to @DevicePolicy @NonNull private final SparseIntArray mDevicePolicies; @NonNull private final List<VirtualSensorConfig> mVirtualSensorConfigs; @RecentsPolicy private final int mDefaultRecentsPolicy; private VirtualDeviceParams( @LockState int lockState, Loading @@ -173,7 +188,8 @@ public final class VirtualDeviceParams implements Parcelable { @ActivityPolicy int defaultActivityPolicy, @Nullable String name, @NonNull SparseIntArray devicePolicies, @NonNull List<VirtualSensorConfig> virtualSensorConfigs) { @NonNull List<VirtualSensorConfig> virtualSensorConfigs, @RecentsPolicy int defaultRecentsPolicy) { mLockState = lockState; mUsersWithMatchingAccounts = new ArraySet<>(Objects.requireNonNull(usersWithMatchingAccounts)); Loading @@ -188,6 +204,7 @@ public final class VirtualDeviceParams implements Parcelable { mName = name; mDevicePolicies = Objects.requireNonNull(devicePolicies); mVirtualSensorConfigs = Objects.requireNonNull(virtualSensorConfigs); mDefaultRecentsPolicy = defaultRecentsPolicy; } @SuppressWarnings("unchecked") Loading @@ -204,6 +221,7 @@ public final class VirtualDeviceParams implements Parcelable { mDevicePolicies = parcel.readSparseIntArray(); mVirtualSensorConfigs = new ArrayList<>(); parcel.readTypedList(mVirtualSensorConfigs, VirtualSensorConfig.CREATOR); mDefaultRecentsPolicy = parcel.readInt(); } /** Loading Loading @@ -328,6 +346,16 @@ public final class VirtualDeviceParams implements Parcelable { return mVirtualSensorConfigs; } /** * Returns the policy of how to handle activities in recents. * * @see RecentsPolicy */ @RecentsPolicy public int getDefaultRecentsPolicy() { return mDefaultRecentsPolicy; } @Override public int describeContents() { return 0; Loading @@ -346,6 +374,7 @@ public final class VirtualDeviceParams implements Parcelable { dest.writeString8(mName); dest.writeSparseIntArray(mDevicePolicies); dest.writeTypedList(mVirtualSensorConfigs); dest.writeInt(mDefaultRecentsPolicy); } @Override Loading Loading @@ -377,7 +406,8 @@ public final class VirtualDeviceParams implements Parcelable { && Objects.equals(mAllowedActivities, that.mAllowedActivities) && Objects.equals(mBlockedActivities, that.mBlockedActivities) && mDefaultActivityPolicy == that.mDefaultActivityPolicy && Objects.equals(mName, that.mName); && Objects.equals(mName, that.mName) && mDefaultRecentsPolicy == that.mDefaultRecentsPolicy; } @Override Loading @@ -385,7 +415,8 @@ public final class VirtualDeviceParams implements Parcelable { int hashCode = Objects.hash( mLockState, mUsersWithMatchingAccounts, mAllowedCrossTaskNavigations, mBlockedCrossTaskNavigations, mDefaultNavigationPolicy, mAllowedActivities, mBlockedActivities, mDefaultActivityPolicy, mName, mDevicePolicies); mBlockedActivities, mDefaultActivityPolicy, mName, mDevicePolicies, mDefaultRecentsPolicy); for (int i = 0; i < mDevicePolicies.size(); i++) { hashCode = 31 * hashCode + mDevicePolicies.keyAt(i); hashCode = 31 * hashCode + mDevicePolicies.valueAt(i); Loading @@ -407,6 +438,7 @@ public final class VirtualDeviceParams implements Parcelable { + " mDefaultActivityPolicy=" + mDefaultActivityPolicy + " mName=" + mName + " mDevicePolicies=" + mDevicePolicies + " mDefaultRecentsPolicy=" + mDefaultRecentsPolicy + ")"; } Loading Loading @@ -442,6 +474,7 @@ public final class VirtualDeviceParams implements Parcelable { @Nullable private String mName; @NonNull private SparseIntArray mDevicePolicies = new SparseIntArray(); @NonNull private List<VirtualSensorConfig> mVirtualSensorConfigs = new ArrayList<>(); private int mDefaultRecentsPolicy; /** * Sets the lock state of the device. The permission {@code ADD_ALWAYS_UNLOCKED_DISPLAY} Loading Loading @@ -646,6 +679,17 @@ public final class VirtualDeviceParams implements Parcelable { return this; } /** * Sets the policy to indicate how activities are handled in recents. * * @param defaultRecentsPolicy A policy specifying how to handle activities in recents. */ @NonNull public Builder setDefaultRecentsPolicy(@RecentsPolicy int defaultRecentsPolicy) { mDefaultRecentsPolicy = defaultRecentsPolicy; return this; } /** * Builds the {@link VirtualDeviceParams} instance. * Loading Loading @@ -684,7 +728,8 @@ public final class VirtualDeviceParams implements Parcelable { mDefaultActivityPolicy, mName, mDevicePolicies, mVirtualSensorConfigs); mVirtualSensorConfigs, mDefaultRecentsPolicy); } } }
core/java/android/window/DisplayWindowPolicyController.java +3 −2 Original line number Diff line number Diff line Loading @@ -128,9 +128,10 @@ public abstract class DisplayWindowPolicyController { ActivityInfo activityInfo, int windowFlags, int systemWindowFlags); /** * Returns {@code true} if the tasks which is on this virtual display can be showed on Recents. * Returns {@code true} if the tasks which is on this virtual display can be showed in the * host device of the recently launched activities list. */ public abstract boolean canShowTasksInRecents(); public abstract boolean canShowTasksInHostDeviceRecents(); /** * This is called when the top activity of the display is changed. Loading
services/companion/java/com/android/server/companion/virtual/GenericWindowPolicyController.java +10 −21 Original line number Diff line number Diff line Loading @@ -16,8 +16,7 @@ package com.android.server.companion.virtual; import static android.companion.AssociationRequest.DEVICE_PROFILE_APP_STREAMING; import static android.companion.AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION; import static android.companion.virtual.VirtualDeviceParams.RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS; import static android.content.pm.ActivityInfo.FLAG_CAN_DISPLAY_ON_REMOTE_DEVICES; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS; Loading @@ -26,10 +25,10 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.WindowConfiguration; import android.app.compat.CompatChanges; import android.companion.AssociationRequest; import android.companion.virtual.VirtualDeviceManager.ActivityListener; import android.companion.virtual.VirtualDeviceParams; import android.companion.virtual.VirtualDeviceParams.ActivityPolicy; import android.companion.virtual.VirtualDeviceParams.RecentsPolicy; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.content.ComponentName; Loading Loading @@ -127,10 +126,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @GuardedBy("mGenericWindowPolicyControllerLock") private final ArraySet<RunningAppsChangedListener> mRunningAppsChangedListeners = new ArraySet<>(); @Nullable private final @AssociationRequest.DeviceProfile String mDeviceProfile; @Nullable private final SecureWindowCallback mSecureWindowCallback; @Nullable private final List<String> mDisplayCategories; @RecentsPolicy private final int mDefaultRecentsPolicy; /** * Creates a window policy controller that is generic to the different use cases of virtual Loading @@ -156,7 +155,7 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController * launching. * @param secureWindowCallback Callback that is called when a secure window shows on the * virtual display. * @param deviceProfile The {@link AssociationRequest.DeviceProfile} of this virtual device. * @param defaultRecentsPolicy a policy to indicate how to handle activities in recents. */ public GenericWindowPolicyController(int windowFlags, int systemWindowFlags, @NonNull ArraySet<UserHandle> allowedUsers, Loading @@ -169,8 +168,8 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController @NonNull PipBlockedCallback pipBlockedCallback, @NonNull ActivityBlockedCallback activityBlockedCallback, @NonNull SecureWindowCallback secureWindowCallback, @AssociationRequest.DeviceProfile String deviceProfile, @NonNull List<String> displayCategories) { @NonNull List<String> displayCategories, @RecentsPolicy int defaultRecentsPolicy) { super(); mAllowedUsers = allowedUsers; mAllowedCrossTaskNavigations = new ArraySet<>(allowedCrossTaskNavigations); Loading @@ -181,10 +180,10 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController mActivityBlockedCallback = activityBlockedCallback; setInterestedWindowFlags(windowFlags, systemWindowFlags); mActivityListener = activityListener; mDeviceProfile = deviceProfile; mPipBlockedCallback = pipBlockedCallback; mSecureWindowCallback = secureWindowCallback; mDisplayCategories = displayCategories; mDefaultRecentsPolicy = defaultRecentsPolicy; } /** Loading Loading @@ -318,18 +317,8 @@ public class GenericWindowPolicyController extends DisplayWindowPolicyController } @Override public boolean canShowTasksInRecents() { if (mDeviceProfile == null) { return true; } // TODO(b/234075973) : Remove this once proper API is ready. switch (mDeviceProfile) { case DEVICE_PROFILE_AUTOMOTIVE_PROJECTION: return false; case DEVICE_PROFILE_APP_STREAMING: default: return true; } public boolean canShowTasksInHostDeviceRecents() { return (mDefaultRecentsPolicy & RECENTS_POLICY_ALLOW_IN_HOST_DEVICE_RECENTS) != 0; } @Override Loading
services/companion/java/com/android/server/companion/virtual/VirtualDeviceImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -679,8 +679,8 @@ final class VirtualDeviceImpl extends IVirtualDevice.Stub this::onEnteringPipBlocked, this::onActivityBlocked, this::onSecureWindowShown, mAssociationInfo.getDeviceProfile(), displayCategories); displayCategories, mParams.getDefaultRecentsPolicy()); gwpc.registerRunningAppsChangedListener(/* listener= */ this); return gwpc; } Loading