Add Flags for VDM everywhere
Bug: 297220822
Test: atest VirtualDeviceManagerBasicTest
Change-Id: I03d6eb92c638abb1f2c42220bae0cc611b132710
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index fd92979b..e6d17e6 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -23,6 +23,7 @@
":camera_platform_flags_core_java_lib{.generated_srcjars}",
":com.android.window.flags.window-aconfig-java{.generated_srcjars}",
":com.android.text.flags-aconfig-java{.generated_srcjars}",
+ ":android.companion.virtual.flags-aconfig-java{.generated_srcjars}",
],
}
@@ -92,3 +93,16 @@
aconfig_declarations: "android.os.flags-aconfig",
defaults: ["framework-minus-apex-aconfig-java-defaults"],
}
+
+// VirtualDeviceManager
+java_aconfig_library {
+ name: "android.companion.virtual.flags-aconfig-java",
+ aconfig_declarations: "android.companion.virtual.flags-aconfig",
+ defaults: ["framework-minus-apex-aconfig-java-defaults"],
+}
+
+aconfig_declarations {
+ name: "android.companion.virtual.flags-aconfig",
+ package: "android.companion.virtual.flags",
+ srcs: ["core/java/android/companion/virtual/*.aconfig"],
+}
diff --git a/core/java/android/companion/virtual/VirtualDeviceManager.java b/core/java/android/companion/virtual/VirtualDeviceManager.java
index 060a5c8..af41370 100644
--- a/core/java/android/companion/virtual/VirtualDeviceManager.java
+++ b/core/java/android/companion/virtual/VirtualDeviceManager.java
@@ -32,6 +32,7 @@
import android.companion.AssociationInfo;
import android.companion.virtual.audio.VirtualAudioDevice;
import android.companion.virtual.audio.VirtualAudioDevice.AudioConfigurationChangeCallback;
+import android.companion.virtual.flags.Flags;
import android.companion.virtual.sensor.VirtualSensor;
import android.content.ComponentName;
import android.content.Context;
@@ -173,6 +174,9 @@
int associationId,
@NonNull VirtualDeviceParams params) {
Objects.requireNonNull(params, "params must not be null");
+ if (Flags.moreLogs()) {
+ Log.i(TAG, "Creating VirtualDevice");
+ }
try {
return new VirtualDevice(mService, mContext, associationId, params);
} catch (RemoteException e) {
diff --git a/core/java/android/companion/virtual/flags.aconfig b/core/java/android/companion/virtual/flags.aconfig
new file mode 100644
index 0000000..39b99c6
--- /dev/null
+++ b/core/java/android/companion/virtual/flags.aconfig
@@ -0,0 +1,8 @@
+package: "android.companion.virtual.flags"
+
+flag {
+ name: "more_logs"
+ namespace: "virtual_devices"
+ description: "More logs to test flags with"
+ bug: "291725823"
+}
diff --git a/services/companion/java/com/android/server/companion/virtual/Android.bp b/services/companion/java/com/android/server/companion/virtual/Android.bp
index 6526c78..7a7d376 100644
--- a/services/companion/java/com/android/server/companion/virtual/Android.bp
+++ b/services/companion/java/com/android/server/companion/virtual/Android.bp
@@ -1,6 +1,9 @@
java_aconfig_library {
name: "virtualdevice_flags_lib",
aconfig_declarations: "virtualdevice_flags",
+ static_libs: [
+ "android.companion.virtual.flags-aconfig-java",
+ ],
}
aconfig_declarations {
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 7429fbe..a135878 100644
--- a/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/virtual/VirtualDeviceManagerService.java
@@ -34,6 +34,7 @@
import android.companion.virtual.VirtualDevice;
import android.companion.virtual.VirtualDeviceManager;
import android.companion.virtual.VirtualDeviceParams;
+import android.companion.virtual.flags.Flags;
import android.companion.virtual.sensor.VirtualSensor;
import android.content.AttributionSource;
import android.content.Context;
@@ -323,6 +324,15 @@
@NonNull IVirtualDeviceSoundEffectListener soundEffectListener) {
createVirtualDevice_enforcePermission();
attributionSource.enforceCallingUid();
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ if (Flags.moreLogs()) {
+ Slog.i(TAG, "Creating VirtualDevice");
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+
final int callingUid = getCallingUid();
final String packageName = attributionSource.getPackageName();
if (!PermissionUtils.validateCallingPackageName(getContext(), packageName)) {
diff --git a/services/companion/java/com/android/server/companion/virtual/flags.aconfig b/services/companion/java/com/android/server/companion/virtual/flags.aconfig
index 4fe4c87..6297e91 100644
--- a/services/companion/java/com/android/server/companion/virtual/flags.aconfig
+++ b/services/companion/java/com/android/server/companion/virtual/flags.aconfig
@@ -1,3 +1,5 @@
+# OLD PACKAGE, DO NOT USE: Prefer `flags.aconfig` in core/java/android/companion/virtual
+# (or other custom files) to define your flags
package: "com.android.server.companion.virtual"
flag {