MIDI: Flag virtual UMP

This CL flags the new virtual UMP MIDI APIs in UmpMidiDeviceService.
This CL also adds a check in MidiService to enforce the flag.

Bug: 291115176
Bug: 301713211
Test: atest MidiEchoTest
Test: adb logcat *:S MidiService:V
Change-Id: I29d12ea35a4a4231a0e67e4abcef2a149ee48ebc
diff --git a/services/midi/Android.bp b/services/midi/Android.bp
index 5adcfba..4b5f8a7 100644
--- a/services/midi/Android.bp
+++ b/services/midi/Android.bp
@@ -19,4 +19,7 @@
     defaults: ["platform_service_defaults"],
     srcs: [":services.midi-sources"],
     libs: ["services.core"],
+    static_libs: [
+        "aconfig_midi_flags_java_lib",
+    ],
 }
diff --git a/services/midi/java/com/android/server/midi/MidiService.java b/services/midi/java/com/android/server/midi/MidiService.java
index 486ddb4..8085ed6 100644
--- a/services/midi/java/com/android/server/midi/MidiService.java
+++ b/services/midi/java/com/android/server/midi/MidiService.java
@@ -16,6 +16,8 @@
 
 package com.android.server.midi;
 
+import static com.android.media.midi.flags.Flags.virtualUmp;
+
 import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
@@ -1551,6 +1553,12 @@
                 return;
             }
 
+            if (!virtualUmp()) {
+                Log.w(TAG, "Skipping MIDI device service " + serviceInfo.packageName
+                        + ": virtual UMP flag not enabled");
+                return;
+            }
+
             Bundle properties = null;
             int numPorts = 0;
             boolean isPrivate = false;