Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -3213,6 +3213,7 @@ package android.companion.virtual { method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void registerIntentInterceptor(@NonNull android.content.IntentFilter, @NonNull java.util.concurrent.Executor, @NonNull android.companion.virtual.VirtualDeviceManager.IntentInterceptorCallback); method public void removeActivityListener(@NonNull android.companion.virtual.VirtualDeviceManager.ActivityListener); method public void removeSoundEffectListener(@NonNull android.companion.virtual.VirtualDeviceManager.SoundEffectListener); method @FlaggedApi(Flags.FLAG_DYNAMIC_POLICY) @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void setDevicePolicy(int, int); method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void setShowPointerIcon(boolean); method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void unregisterIntentInterceptor(@NonNull android.companion.virtual.VirtualDeviceManager.IntentInterceptorCallback); } core/java/android/companion/virtual/IVirtualDevice.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,12 @@ interface IVirtualDevice { @EnforcePermission("CREATE_VIRTUAL_DEVICE") void close(); /** * Specifies a policy for this virtual device. */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void setDevicePolicy(int policyType, int devicePolicy); /** * Notifies that an audio session being started. */ Loading core/java/android/companion/virtual/VirtualDeviceInternal.java +9 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,15 @@ public class VirtualDeviceInternal { } } void setDevicePolicy(@VirtualDeviceParams.DynamicPolicyType int policyType, @VirtualDeviceParams.DevicePolicy int devicePolicy) { try { mVirtualDevice.setDevicePolicy(policyType, devicePolicy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @NonNull VirtualDpad createVirtualDpad(@NonNull VirtualDpadConfig config) { try { Loading core/java/android/companion/virtual/VirtualDeviceManager.java +25 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.companion.virtual; import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import android.annotation.CallbackExecutor; import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; Loading Loading @@ -59,6 +60,8 @@ import android.os.RemoteException; import android.util.Log; import android.view.Surface; import com.android.internal.util.AnnotationValidations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -512,6 +515,28 @@ public final class VirtualDeviceManager { mVirtualDeviceInternal.close(); } /** * Specifies a policy for this virtual device. * * <p>Policies define the system behavior that may be specific for this virtual device. The * given policy must be able to be changed dynamically during the lifetime of the device. * * @param policyType the type of policy, i.e. which behavior to specify a policy for. * @param devicePolicy the value of the policy, i.e. how to interpret the device behavior. * * @see VirtualDeviceParams#POLICY_TYPE_RECENTS */ @FlaggedApi(Flags.FLAG_DYNAMIC_POLICY) @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void setDevicePolicy(@VirtualDeviceParams.DynamicPolicyType int policyType, @VirtualDeviceParams.DevicePolicy int devicePolicy) { AnnotationValidations.validate( VirtualDeviceParams.DynamicPolicyType.class, null, policyType); AnnotationValidations.validate( VirtualDeviceParams.DevicePolicy.class, null, devicePolicy); mVirtualDeviceInternal.setDevicePolicy(policyType, devicePolicy); } /** * Creates a virtual dpad. * Loading core/java/android/companion/virtual/VirtualDeviceParams.java +19 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,17 @@ public final class VirtualDeviceParams implements Parcelable { @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface PolicyType {} /** * Policy types that can be dynamically changed during the virtual device's lifetime. * * @see VirtualDeviceManager.VirtualDevice#setDevicePolicy * @hide */ @IntDef(prefix = "POLICY_TYPE_", value = {POLICY_TYPE_RECENTS}) @Retention(RetentionPolicy.SOURCE) @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface DynamicPolicyType {} /** * Tells the sensor framework how to handle sensor requests from contexts associated with this * virtual device, namely the sensors returned by Loading Loading @@ -374,6 +385,14 @@ public final class VirtualDeviceParams implements Parcelable { return mDevicePolicies.get(policyType, DEVICE_POLICY_DEFAULT); } /** * Returns all device policies. * @hide */ public @NonNull SparseIntArray getDevicePolicies() { return mDevicePolicies; } /** * Returns the configurations for all sensors that should be created for this device. * Loading Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -3213,6 +3213,7 @@ package android.companion.virtual { method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void registerIntentInterceptor(@NonNull android.content.IntentFilter, @NonNull java.util.concurrent.Executor, @NonNull android.companion.virtual.VirtualDeviceManager.IntentInterceptorCallback); method public void removeActivityListener(@NonNull android.companion.virtual.VirtualDeviceManager.ActivityListener); method public void removeSoundEffectListener(@NonNull android.companion.virtual.VirtualDeviceManager.SoundEffectListener); method @FlaggedApi(Flags.FLAG_DYNAMIC_POLICY) @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void setDevicePolicy(int, int); method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void setShowPointerIcon(boolean); method @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void unregisterIntentInterceptor(@NonNull android.companion.virtual.VirtualDeviceManager.IntentInterceptorCallback); }
core/java/android/companion/virtual/IVirtualDevice.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,12 @@ interface IVirtualDevice { @EnforcePermission("CREATE_VIRTUAL_DEVICE") void close(); /** * Specifies a policy for this virtual device. */ @EnforcePermission("CREATE_VIRTUAL_DEVICE") void setDevicePolicy(int policyType, int devicePolicy); /** * Notifies that an audio session being started. */ Loading
core/java/android/companion/virtual/VirtualDeviceInternal.java +9 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,15 @@ public class VirtualDeviceInternal { } } void setDevicePolicy(@VirtualDeviceParams.DynamicPolicyType int policyType, @VirtualDeviceParams.DevicePolicy int devicePolicy) { try { mVirtualDevice.setDevicePolicy(policyType, devicePolicy); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } @NonNull VirtualDpad createVirtualDpad(@NonNull VirtualDpadConfig config) { try { Loading
core/java/android/companion/virtual/VirtualDeviceManager.java +25 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.companion.virtual; import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import android.annotation.CallbackExecutor; import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.IntRange; import android.annotation.NonNull; Loading Loading @@ -59,6 +60,8 @@ import android.os.RemoteException; import android.util.Log; import android.view.Surface; import com.android.internal.util.AnnotationValidations; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -512,6 +515,28 @@ public final class VirtualDeviceManager { mVirtualDeviceInternal.close(); } /** * Specifies a policy for this virtual device. * * <p>Policies define the system behavior that may be specific for this virtual device. The * given policy must be able to be changed dynamically during the lifetime of the device. * * @param policyType the type of policy, i.e. which behavior to specify a policy for. * @param devicePolicy the value of the policy, i.e. how to interpret the device behavior. * * @see VirtualDeviceParams#POLICY_TYPE_RECENTS */ @FlaggedApi(Flags.FLAG_DYNAMIC_POLICY) @RequiresPermission(android.Manifest.permission.CREATE_VIRTUAL_DEVICE) public void setDevicePolicy(@VirtualDeviceParams.DynamicPolicyType int policyType, @VirtualDeviceParams.DevicePolicy int devicePolicy) { AnnotationValidations.validate( VirtualDeviceParams.DynamicPolicyType.class, null, policyType); AnnotationValidations.validate( VirtualDeviceParams.DevicePolicy.class, null, devicePolicy); mVirtualDeviceInternal.setDevicePolicy(policyType, devicePolicy); } /** * Creates a virtual dpad. * Loading
core/java/android/companion/virtual/VirtualDeviceParams.java +19 −0 Original line number Diff line number Diff line Loading @@ -149,6 +149,17 @@ public final class VirtualDeviceParams implements Parcelable { @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface PolicyType {} /** * Policy types that can be dynamically changed during the virtual device's lifetime. * * @see VirtualDeviceManager.VirtualDevice#setDevicePolicy * @hide */ @IntDef(prefix = "POLICY_TYPE_", value = {POLICY_TYPE_RECENTS}) @Retention(RetentionPolicy.SOURCE) @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface DynamicPolicyType {} /** * Tells the sensor framework how to handle sensor requests from contexts associated with this * virtual device, namely the sensors returned by Loading Loading @@ -374,6 +385,14 @@ public final class VirtualDeviceParams implements Parcelable { return mDevicePolicies.get(policyType, DEVICE_POLICY_DEFAULT); } /** * Returns all device policies. * @hide */ public @NonNull SparseIntArray getDevicePolicies() { return mDevicePolicies; } /** * Returns the configurations for all sensors that should be created for this device. * Loading