From 54a9e49da38bc91cec808822aab56e88f21559f5 Mon Sep 17 00:00:00 2001 From: Marco Loaiza Date: Thu, 12 Jan 2023 17:01:07 +0000 Subject: Move DEVICE_ID_DEFAULT from VDM to Context - DEVICE_ID_DEFAULT refers to the non-virtual default device, having this constant in VDM might cause the impression that methods that return or make use of this are refering to a virtual device when they are not. - This constant is not extensibly used in VDM, including the method isValidVirtualDeviceId for which DEVICE_ID_DEFAULT returns false, making it not very clear why this should live in VDM. - For consistency also move DEVICE_ID_INVALID Bug: 266178780 Test: just refactor Change-Id: I31d32cb35c87deb09347fed34a422e457f0f8f3a --- core/api/current.txt | 4 ++-- core/java/android/app/ActivityThread.java | 4 ++-- core/java/android/app/ContextImpl.java | 6 +++--- core/java/android/companion/virtual/VirtualDevice.java | 5 +++-- .../android/companion/virtual/VirtualDeviceManager.java | 14 ++------------ core/java/android/content/Context.java | 13 +++++++++++-- core/java/android/hardware/SystemSensorManager.java | 2 +- .../src/android/app/activity/ActivityThreadTest.java | 2 +- core/tests/coretests/src/android/content/ContextTest.java | 2 +- media/java/android/media/AudioManager.java | 2 +- media/java/android/media/AudioRecord.java | 2 +- media/java/android/media/PlayerBase.java | 2 +- .../mediaframeworktest/unit/AudioManagerUnitTest.java | 2 +- .../mediaframeworktest/unit/AudioRecordUnitTest.java | 2 +- .../mediaframeworktest/unit/AudioTrackUnitTest.java | 2 +- .../companion/virtual/VirtualDeviceManagerService.java | 6 +++--- .../java/com/android/server/wm/ActivityTaskSupervisor.java | 3 ++- .../com/android/server/wm/WindowProcessController.java | 7 +++---- .../companion/virtual/VirtualDeviceManagerServiceTest.java | 4 ++-- .../server/companion/virtual/VirtualDeviceTest.java | 4 ++-- 20 files changed, 44 insertions(+), 44 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index c509c97cd29a..acaab0be9ee8 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -9311,8 +9311,6 @@ package android.companion.virtual { public final class VirtualDeviceManager { method @NonNull public java.util.List getVirtualDevices(); - field public static final int DEVICE_ID_DEFAULT = 0; // 0x0 - field public static final int DEVICE_ID_INVALID = -1; // 0xffffffff } } @@ -10078,6 +10076,8 @@ package android.content { field public static final int CONTEXT_RESTRICTED = 4; // 0x4 field public static final String CREDENTIAL_SERVICE = "credential"; field public static final String CROSS_PROFILE_APPS_SERVICE = "crossprofileapps"; + field public static final int DEVICE_ID_DEFAULT = 0; // 0x0 + field public static final int DEVICE_ID_INVALID = -1; // 0xffffffff field public static final String DEVICE_LOCK_SERVICE = "device_lock"; field public static final String DEVICE_POLICY_SERVICE = "device_policy"; field public static final String DISPLAY_HASH_SERVICE = "display_hash"; diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 421ba7cb63eb..a0473c7d6d26 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4559,7 +4559,7 @@ public final class ActivityThread extends ClientTransactionHandler ActivityManager.getService()); if (!service.isUiContext()) { // WindowProviderService is a UI Context. VirtualDeviceManager vdm = context.getSystemService(VirtualDeviceManager.class); - if (mLastReportedDeviceId == VirtualDeviceManager.DEVICE_ID_DEFAULT + if (mLastReportedDeviceId == Context.DEVICE_ID_DEFAULT || vdm.isValidVirtualDeviceId(mLastReportedDeviceId)) { service.updateDeviceId(mLastReportedDeviceId); } @@ -6087,7 +6087,7 @@ public final class ActivityThread extends ClientTransactionHandler private void updateDeviceIdForNonUIContexts(int deviceId) { // Invalid device id is treated as a no-op. - if (deviceId == VirtualDeviceManager.DEVICE_ID_INVALID) { + if (deviceId == Context.DEVICE_ID_INVALID) { return; } if (deviceId == mLastReportedDeviceId) { diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index e654b566e6ef..3837cbdd58b2 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -244,7 +244,7 @@ class ContextImpl extends Context { @UnsupportedAppUsage private @NonNull Resources mResources; private @Nullable Display mDisplay; // may be null if invalid display or not initialized yet. - private int mDeviceId = VirtualDeviceManager.DEVICE_ID_DEFAULT; + private int mDeviceId = Context.DEVICE_ID_DEFAULT; /** * If set to {@code true} the resources for this context will be configured for mDisplay which @@ -2756,7 +2756,7 @@ class ContextImpl extends Context { @Override public @NonNull Context createDeviceContext(int deviceId) { - if (deviceId != VirtualDeviceManager.DEVICE_ID_DEFAULT) { + if (deviceId != Context.DEVICE_ID_DEFAULT) { VirtualDeviceManager vdm = getSystemService(VirtualDeviceManager.class); if (!vdm.isValidVirtualDeviceId(deviceId)) { throw new IllegalArgumentException( @@ -3036,7 +3036,7 @@ class ContextImpl extends Context { @Override public void updateDeviceId(int updatedDeviceId) { - if (updatedDeviceId != VirtualDeviceManager.DEVICE_ID_DEFAULT) { + if (updatedDeviceId != Context.DEVICE_ID_DEFAULT) { VirtualDeviceManager vdm = getSystemService(VirtualDeviceManager.class); if (!vdm.isValidVirtualDeviceId(updatedDeviceId)) { throw new IllegalArgumentException( diff --git a/core/java/android/companion/virtual/VirtualDevice.java b/core/java/android/companion/virtual/VirtualDevice.java index f3f433540ef7..4a09186570e0 100644 --- a/core/java/android/companion/virtual/VirtualDevice.java +++ b/core/java/android/companion/virtual/VirtualDevice.java @@ -18,6 +18,7 @@ package android.companion.virtual; import android.annotation.NonNull; import android.annotation.Nullable; +import android.content.Context; import android.os.Parcel; import android.os.Parcelable; @@ -38,9 +39,9 @@ public final class VirtualDevice implements Parcelable { * @hide */ public VirtualDevice(int id, @Nullable String name) { - if (id <= VirtualDeviceManager.DEVICE_ID_DEFAULT) { + if (id <= Context.DEVICE_ID_DEFAULT) { throw new IllegalArgumentException("VirtualDevice ID mist be greater than " - + VirtualDeviceManager.DEVICE_ID_DEFAULT); + + Context.DEVICE_ID_DEFAULT); } mId = id; mName = name; diff --git a/core/java/android/companion/virtual/VirtualDeviceManager.java b/core/java/android/companion/virtual/VirtualDeviceManager.java index 3bc1628d3576..abcd2a045bcc 100644 --- a/core/java/android/companion/virtual/VirtualDeviceManager.java +++ b/core/java/android/companion/virtual/VirtualDeviceManager.java @@ -95,16 +95,6 @@ public final class VirtualDeviceManager { | DisplayManager.VIRTUAL_DISPLAY_FLAG_SUPPORTS_TOUCH | DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_FOCUS; - /** - * The default device ID, which is the ID of the primary (non-virtual) device. - */ - public static final int DEVICE_ID_DEFAULT = 0; - - /** - * Invalid device ID. - */ - public static final int DEVICE_ID_INVALID = -1; - /** * Broadcast Action: A Virtual Device was removed. * @@ -248,7 +238,7 @@ public final class VirtualDeviceManager { public int getDeviceIdForDisplayId(int displayId) { if (mService == null) { Log.w(TAG, "Failed to retrieve virtual devices; no virtual device manager service."); - return DEVICE_ID_DEFAULT; + return Context.DEVICE_ID_DEFAULT; } try { return mService.getDeviceIdForDisplayId(displayId); @@ -259,7 +249,7 @@ public final class VirtualDeviceManager { /** * Checks whether the passed {@code deviceId} is a valid virtual device ID or not. - * {@link VirtualDeviceManager#DEVICE_ID_DEFAULT} is not valid as it is the ID of the default + * {@link Context#DEVICE_ID_DEFAULT} is not valid as it is the ID of the default * device which is not a virtual device. {@code deviceId} must correspond to a virtual device * created by {@link VirtualDeviceManager#createVirtualDevice(int, VirtualDeviceParams)}. * diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index c8d48c189247..50ae4f8c0071 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -134,6 +134,15 @@ public abstract class Context { @VisibleForTesting public static final long OVERRIDABLE_COMPONENT_CALLBACKS = 193247900L; + /** + * The default device ID, which is the ID of the primary (non-virtual) device. + */ + public static final int DEVICE_ID_DEFAULT = 0; + /** + * Invalid device ID. + */ + public static final int DEVICE_ID_INVALID = -1; + /** @hide */ @IntDef(flag = true, prefix = { "MODE_" }, value = { MODE_PRIVATE, @@ -6972,7 +6981,7 @@ public abstract class Context { *

* Applications that run on virtual devices may use this method to access the default device * capabilities and functionality (by passing - * {@link android.companion.virtual.VirtualDeviceManager#DEVICE_ID_DEFAULT}. Similarly, + * {@link Context#DEVICE_ID_DEFAULT}. Similarly, * applications running on the default device may access the functionality of virtual devices. *

*

@@ -7339,7 +7348,7 @@ public abstract class Context { * determine whether they are running on a virtual device and identify that device. * * The device ID of the host device is - * {@link android.companion.virtual.VirtualDeviceManager#DEVICE_ID_DEFAULT} + * {@link Context#DEVICE_ID_DEFAULT} * *

* If the underlying device ID is changed by the system, for example, when an diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java index 9388ae3fd5e4..1a3e0b0d9c5a 100644 --- a/core/java/android/hardware/SystemSensorManager.java +++ b/core/java/android/hardware/SystemSensorManager.java @@ -17,10 +17,10 @@ package android.hardware; import static android.companion.virtual.VirtualDeviceManager.ACTION_VIRTUAL_DEVICE_REMOVED; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceManager.EXTRA_VIRTUAL_DEVICE_ID; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_SENSORS; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import android.companion.virtual.VirtualDeviceManager; diff --git a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java index e164e08e66e6..4f91e7a3545a 100644 --- a/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java +++ b/core/tests/coretests/src/android/app/activity/ActivityThreadTest.java @@ -16,7 +16,7 @@ package android.app.activity; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_INVALID; +import static android.content.Context.DEVICE_ID_INVALID; import static android.content.Intent.ACTION_EDIT; import static android.content.Intent.ACTION_VIEW; import static android.content.res.Configuration.ORIENTATION_LANDSCAPE; diff --git a/core/tests/coretests/src/android/content/ContextTest.java b/core/tests/coretests/src/android/content/ContextTest.java index 324f81084f98..d4784374745d 100644 --- a/core/tests/coretests/src/android/content/ContextTest.java +++ b/core/tests/coretests/src/android/content/ContextTest.java @@ -16,7 +16,7 @@ package android.content; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY; import static android.hardware.display.DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC; import static android.view.Display.DEFAULT_DISPLAY; diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 24c5b4172732..40e31237bc1b 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -16,9 +16,9 @@ package android.media; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; +import static android.content.Context.DEVICE_ID_DEFAULT; import android.annotation.CallbackExecutor; import android.annotation.IntDef; diff --git a/media/java/android/media/AudioRecord.java b/media/java/android/media/AudioRecord.java index b6ab262b60c5..7faa13c80c62 100644 --- a/media/java/android/media/AudioRecord.java +++ b/media/java/android/media/AudioRecord.java @@ -16,9 +16,9 @@ package android.media; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import android.annotation.CallbackExecutor; diff --git a/media/java/android/media/PlayerBase.java b/media/java/android/media/PlayerBase.java index 38115e19d608..3f44b09124e4 100644 --- a/media/java/android/media/PlayerBase.java +++ b/media/java/android/media/PlayerBase.java @@ -16,9 +16,9 @@ package android.media; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import android.annotation.NonNull; diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioManagerUnitTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioManagerUnitTest.java index 76543f4ce989..6089f4291f3e 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioManagerUnitTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioManagerUnitTest.java @@ -17,10 +17,10 @@ package com.android.mediaframeworktest.unit; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.AudioManager.FX_KEY_CLICK; import static org.mockito.ArgumentMatchers.anyInt; diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioRecordUnitTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioRecordUnitTest.java index 9c813c28d7d9..71228e2120c0 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioRecordUnitTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioRecordUnitTest.java @@ -16,10 +16,10 @@ package com.android.mediaframeworktest.unit; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import static org.junit.Assert.assertEquals; diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioTrackUnitTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioTrackUnitTest.java index ffed39ac82bf..ac24a1007170 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioTrackUnitTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/unit/AudioTrackUnitTest.java @@ -16,10 +16,10 @@ package com.android.mediaframeworktest.unit; -import static android.companion.virtual.VirtualDeviceManager.DEVICE_ID_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_CUSTOM; import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAULT; import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; +import static android.content.Context.DEVICE_ID_DEFAULT; import static android.media.AudioManager.AUDIO_SESSION_ID_GENERATE; import static org.junit.Assert.assertEquals; diff --git a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java index b0f2464ff52a..eb9aeeed259a 100644 --- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java @@ -84,7 +84,7 @@ public class VirtualDeviceManagerService extends SystemService { private final PendingTrampolineMap mPendingTrampolines = new PendingTrampolineMap(mHandler); private static AtomicInteger sNextUniqueIndex = new AtomicInteger( - VirtualDeviceManager.DEVICE_ID_DEFAULT + 1); + Context.DEVICE_ID_DEFAULT + 1); /** * Mapping from device IDs to virtual devices. @@ -325,7 +325,7 @@ public class VirtualDeviceManagerService extends SystemService { @Override // Binder call public int getDeviceIdForDisplayId(int displayId) { if (displayId == Display.INVALID_DISPLAY || displayId == Display.DEFAULT_DISPLAY) { - return VirtualDeviceManager.DEVICE_ID_DEFAULT; + return Context.DEVICE_ID_DEFAULT; } synchronized (mVirtualDeviceManagerLock) { for (int i = 0; i < mVirtualDevices.size(); i++) { @@ -335,7 +335,7 @@ public class VirtualDeviceManagerService extends SystemService { } } } - return VirtualDeviceManager.DEVICE_ID_DEFAULT; + return Context.DEVICE_ID_DEFAULT; } // Binder call diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index 407ffd055113..ead070c656cd 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java @@ -102,6 +102,7 @@ import android.app.servertransaction.PauseActivityItem; import android.app.servertransaction.ResumeActivityItem; import android.companion.virtual.VirtualDeviceManager; import android.content.ComponentName; +import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; @@ -1227,7 +1228,7 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks { int getDeviceIdForDisplayId(int displayId) { if (displayId == DEFAULT_DISPLAY || displayId == INVALID_DISPLAY) { - return VirtualDeviceManager.DEVICE_ID_DEFAULT; + return Context.DEVICE_ID_DEFAULT; } if (mVirtualDeviceManager == null) { mVirtualDeviceManager = diff --git a/services/core/java/com/android/server/wm/WindowProcessController.java b/services/core/java/com/android/server/wm/WindowProcessController.java index 3e279b26e304..cd244b728cc6 100644 --- a/services/core/java/com/android/server/wm/WindowProcessController.java +++ b/services/core/java/com/android/server/wm/WindowProcessController.java @@ -53,7 +53,6 @@ import android.app.ActivityThread; import android.app.IApplicationThread; import android.app.ProfilerInfo; import android.app.servertransaction.ConfigurationChangeItem; -import android.companion.virtual.VirtualDeviceManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -212,7 +211,7 @@ public class WindowProcessController extends ConfigurationContainer