diff options
author | 2023-10-30 22:03:34 -0700 | |
---|---|---|
committer | 2023-11-01 16:11:21 -0700 | |
commit | 5119937803947cecc8133813cb2f3d96dfec50cf (patch) | |
tree | 248dfd04133573d33258bfd094e1f380dfd88dd3 | |
parent | a411970daf9b0f1aceaf42737f2539bb55792e11 (diff) |
Refactor audio aconfig flags
- Rename/repackage MIDI, AudioPolicy, Audioserver flags
- Add flag libraries not included in framework as static libs within
system server
- Remove direct module dependencies in framework in favor of filegroup
Test: Compiles
Bug: 308062714
Change-Id: I45546b67a5a4214680e98ba789aabe33b0a30439
-rw-r--r-- | AconfigFlags.bp | 10 | ||||
-rw-r--r-- | core/api/current.txt | 16 | ||||
-rw-r--r-- | core/api/system-current.txt | 2 | ||||
-rw-r--r-- | core/api/test-current.txt | 10 | ||||
-rw-r--r-- | media/java/android/media/AudioManager.java | 5 | ||||
-rw-r--r-- | media/java/android/media/audiopolicy/AudioPolicy.java | 1 | ||||
-rw-r--r-- | media/java/android/media/midi/MidiUmpDeviceService.java | 20 | ||||
-rw-r--r-- | services/core/Android.bp | 1 | ||||
-rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 4 | ||||
-rw-r--r-- | services/core/java/com/android/server/audio/HardeningEnforcer.java | 2 | ||||
-rw-r--r-- | services/midi/Android.bp | 1 | ||||
-rw-r--r-- | services/midi/java/com/android/server/midi/MidiService.java | 2 |
12 files changed, 32 insertions, 42 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 372ae6da4959..be5010bcdddd 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -29,6 +29,7 @@ aconfig_srcjars = [ ":android.service.notification.flags-aconfig-java{.generated_srcjars}", ":android.view.flags-aconfig-java{.generated_srcjars}", ":android.view.accessibility.flags-aconfig-java{.generated_srcjars}", + ":audio-framework-aconfig", ":camera_platform_flags_core_java_lib{.generated_srcjars}", ":com.android.window.flags.window-aconfig-java{.generated_srcjars}", ":android.hardware.biometrics.flags-aconfig-java{.generated_srcjars}", @@ -39,7 +40,6 @@ aconfig_srcjars = [ ":android.companion.virtual.flags-aconfig-java{.generated_srcjars}", ":android.view.inputmethod.flags-aconfig-java{.generated_srcjars}", ":android.widget.flags-aconfig-java{.generated_srcjars}", - ":com.android.media.audio.flags-aconfig-java{.generated_srcjars}", ":com.android.media.flags.bettertogether-aconfig-java{.generated_srcjars}", ":sdk_sandbox_flags_lib{.generated_srcjars}", ":android.permission.flags-aconfig-java{.generated_srcjars}", @@ -54,7 +54,6 @@ aconfig_srcjars = [ ":android.view.contentprotection.flags-aconfig-java{.generated_srcjars}", ":android.service.voice.flags-aconfig-java{.generated_srcjars}", ":android.media.tv.flags-aconfig-java{.generated_srcjars}", - ":aconfig_midi_flags_java_lib{.generated_srcjars}", ":android.service.autofill.flags-aconfig-java{.generated_srcjars}", ":com.android.net.flags-aconfig-java{.generated_srcjars}", ":device_policy_aconfig_flags_lib{.generated_srcjars}", @@ -393,13 +392,6 @@ java_aconfig_library { defaults: ["framework-minus-apex-aconfig-java-defaults"], } -// Media Audio -java_aconfig_library { - name: "com.android.media.audio.flags-aconfig-java", - aconfig_declarations: "aconfig_audio_flags", - defaults: ["framework-minus-apex-aconfig-java-defaults"], -} - // Permissions aconfig_declarations { name: "android.permission.flags-aconfig", diff --git a/core/api/current.txt b/core/api/current.txt index 7e3da2279311..78dc6286b0db 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -25847,15 +25847,15 @@ package android.media.midi { method public abstract void onDisconnect(android.media.midi.MidiReceiver); } - @FlaggedApi("com.android.media.midi.flags.virtual_ump") public abstract class MidiUmpDeviceService extends android.app.Service { + @FlaggedApi("android.media.midi.virtual_ump") public abstract class MidiUmpDeviceService extends android.app.Service { ctor public MidiUmpDeviceService(); - method @FlaggedApi("com.android.media.midi.flags.virtual_ump") @Nullable public final android.media.midi.MidiDeviceInfo getDeviceInfo(); - method @FlaggedApi("com.android.media.midi.flags.virtual_ump") @NonNull public final java.util.List<android.media.midi.MidiReceiver> getOutputPortReceivers(); - method @FlaggedApi("com.android.media.midi.flags.virtual_ump") @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); - method @FlaggedApi("com.android.media.midi.flags.virtual_ump") public void onClose(); - method @FlaggedApi("com.android.media.midi.flags.virtual_ump") public void onDeviceStatusChanged(@NonNull android.media.midi.MidiDeviceStatus); - method @FlaggedApi("com.android.media.midi.flags.virtual_ump") @NonNull public abstract java.util.List<android.media.midi.MidiReceiver> onGetInputPortReceivers(); - field @FlaggedApi("com.android.media.midi.flags.virtual_ump") public static final String SERVICE_INTERFACE = "android.media.midi.MidiUmpDeviceService"; + method @FlaggedApi("android.media.midi.virtual_ump") @Nullable public final android.media.midi.MidiDeviceInfo getDeviceInfo(); + method @FlaggedApi("android.media.midi.virtual_ump") @NonNull public final java.util.List<android.media.midi.MidiReceiver> getOutputPortReceivers(); + method @FlaggedApi("android.media.midi.virtual_ump") @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); + method @FlaggedApi("android.media.midi.virtual_ump") public void onClose(); + method @FlaggedApi("android.media.midi.virtual_ump") public void onDeviceStatusChanged(@NonNull android.media.midi.MidiDeviceStatus); + method @FlaggedApi("android.media.midi.virtual_ump") @NonNull public abstract java.util.List<android.media.midi.MidiReceiver> onGetInputPortReceivers(); + field @FlaggedApi("android.media.midi.virtual_ump") public static final String SERVICE_INTERFACE = "android.media.midi.MidiUmpDeviceService"; } } diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 183b925cefd5..c4e9e20bb91a 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -6748,7 +6748,7 @@ package android.media.audiopolicy { method public boolean setUidDeviceAffinity(int, @NonNull java.util.List<android.media.AudioDeviceInfo>); method public boolean setUserIdDeviceAffinity(int, @NonNull java.util.List<android.media.AudioDeviceInfo>); method public String toLogFriendlyString(); - method @FlaggedApi("com.android.media.audio.flags.audio_policy_update_mixing_rules_api") @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int updateMixingRules(@NonNull java.util.List<android.util.Pair<android.media.audiopolicy.AudioMix,android.media.audiopolicy.AudioMixingRule>>); + method @FlaggedApi("android.media.audiopolicy.audio_policy_update_mixing_rules_api") @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_ROUTING) public int updateMixingRules(@NonNull java.util.List<android.util.Pair<android.media.audiopolicy.AudioMix,android.media.audiopolicy.AudioMixingRule>>); field public static final int FOCUS_POLICY_DUCKING_DEFAULT = 0; // 0x0 field public static final int FOCUS_POLICY_DUCKING_IN_APP = 0; // 0x0 field public static final int FOCUS_POLICY_DUCKING_IN_POLICY = 1; // 0x1 diff --git a/core/api/test-current.txt b/core/api/test-current.txt index a3ebe6e72712..dbfb9edfe1c0 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1802,8 +1802,8 @@ package android.media { public class AudioManager { method @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public int abandonAudioFocusForTest(@NonNull android.media.AudioFocusRequest, @NonNull String); - method @FlaggedApi("com.android.media.audio.flags.focus_freeze_test_api") @RequiresPermission("Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED") public boolean enterAudioFocusFreezeForTest(@NonNull java.util.List<java.lang.Integer>); - method @FlaggedApi("com.android.media.audio.flags.focus_freeze_test_api") @RequiresPermission("Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED") public boolean exitAudioFocusFreezeForTest(); + method @FlaggedApi("android.media.audio.focus_freeze_test_api") @RequiresPermission("Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED") public boolean enterAudioFocusFreezeForTest(@NonNull java.util.List<java.lang.Integer>); + method @FlaggedApi("android.media.audio.focus_freeze_test_api") @RequiresPermission("Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED") public boolean exitAudioFocusFreezeForTest(); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void forceComputeCsdOnAllDevices(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public void forceUseFrameworkMel(boolean); method @NonNull @RequiresPermission(android.Manifest.permission.CALL_AUDIO_INTERCEPTION) public android.media.AudioRecord getCallDownlinkExtractionAudioRecord(@NonNull android.media.AudioFormat); @@ -1811,9 +1811,9 @@ package android.media { method @RequiresPermission(android.Manifest.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED) public float getCsd(); method @Nullable public static android.media.AudioDeviceInfo getDeviceInfoFromType(int); method @IntRange(from=0) @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public long getFadeOutDurationOnFocusLossMillis(@NonNull android.media.AudioAttributes); - method @FlaggedApi("com.android.media.audio.flags.focus_freeze_test_api") @NonNull @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public java.util.List<java.lang.Integer> getFocusDuckedUidsForTest(); - method @FlaggedApi("com.android.media.audio.flags.focus_freeze_test_api") @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public long getFocusFadeOutDurationForTest(); - method @FlaggedApi("com.android.media.audio.flags.focus_freeze_test_api") @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public long getFocusUnmuteDelayAfterFadeOutForTest(); + method @FlaggedApi("android.media.audio.focus_freeze_test_api") @NonNull @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public java.util.List<java.lang.Integer> getFocusDuckedUidsForTest(); + method @FlaggedApi("android.media.audio.focus_freeze_test_api") @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public long getFocusFadeOutDurationForTest(); + method @FlaggedApi("android.media.audio.focus_freeze_test_api") @RequiresPermission("android.permission.QUERY_AUDIO_STATE") public long getFocusUnmuteDelayAfterFadeOutForTest(); method @Nullable public static android.media.AudioHalVersionInfo getHalVersion(); method public static final int[] getPublicStreamTypes(); method @NonNull public java.util.List<java.lang.Integer> getReportedSurroundFormats(); diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index eea635771dc3..5d211f460cc5 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -20,8 +20,8 @@ import static android.companion.virtual.VirtualDeviceParams.DEVICE_POLICY_DEFAUL import static android.companion.virtual.VirtualDeviceParams.POLICY_TYPE_AUDIO; import static android.content.Context.DEVICE_ID_DEFAULT; -import static com.android.media.audio.flags.Flags.autoPublicVolumeApiHardening; -import static com.android.media.audio.flags.Flags.FLAG_FOCUS_FREEZE_TEST_API; +import static android.media.audio.Flags.autoPublicVolumeApiHardening; +import static android.media.audio.Flags.FLAG_FOCUS_FREEZE_TEST_API; import android.Manifest; import android.annotation.CallbackExecutor; @@ -686,6 +686,7 @@ public class AudioManager { FLAG_ABSOLUTE_VOLUME, }) @Retention(RetentionPolicy.SOURCE) + // TODO(308698465) remove due to potential conflict with the new flags class public @interface Flags {} /** diff --git a/media/java/android/media/audiopolicy/AudioPolicy.java b/media/java/android/media/audiopolicy/AudioPolicy.java index 9ced2a45a6f7..e16849811b9d 100644 --- a/media/java/android/media/audiopolicy/AudioPolicy.java +++ b/media/java/android/media/audiopolicy/AudioPolicy.java @@ -49,7 +49,6 @@ import android.util.Pair; import android.util.Slog; import com.android.internal.annotations.GuardedBy; -import com.android.media.audio.flags.Flags; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/media/java/android/media/midi/MidiUmpDeviceService.java b/media/java/android/media/midi/MidiUmpDeviceService.java index c54bfce840aa..bbbef4755dc5 100644 --- a/media/java/android/media/midi/MidiUmpDeviceService.java +++ b/media/java/android/media/midi/MidiUmpDeviceService.java @@ -16,8 +16,6 @@ package android.media.midi; -import static com.android.media.midi.flags.Flags.FLAG_VIRTUAL_UMP; - import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; @@ -57,11 +55,11 @@ import java.util.List; * android:resource="@xml/device_info" /> * </service></pre> */ -@FlaggedApi(FLAG_VIRTUAL_UMP) +@FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public abstract class MidiUmpDeviceService extends Service { private static final String TAG = "MidiUmpDeviceService"; - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public static final String SERVICE_INTERFACE = "android.media.midi.MidiUmpDeviceService"; private IMidiManager mMidiManager; @@ -80,7 +78,7 @@ public abstract class MidiUmpDeviceService extends Service { } }; - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) @Override public void onCreate() { mMidiManager = IMidiManager.Stub.asInterface( @@ -118,7 +116,7 @@ public abstract class MidiUmpDeviceService extends Service { * The number of input and output ports must be equal and non-zero. * @return list of MidiReceivers */ - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public abstract @NonNull List<MidiReceiver> onGetInputPortReceivers(); /** @@ -127,7 +125,7 @@ public abstract class MidiUmpDeviceService extends Service { * The number of input and output ports must be equal and non-zero. * @return the list of MidiReceivers */ - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public final @NonNull List<MidiReceiver> getOutputPortReceivers() { if (mServer == null) { return new ArrayList<MidiReceiver>(); @@ -140,7 +138,7 @@ public abstract class MidiUmpDeviceService extends Service { * Returns the {@link MidiDeviceInfo} instance for this service * @return the MidiDeviceInfo of the virtual MIDI device if it was successfully created */ - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public final @Nullable MidiDeviceInfo getDeviceInfo() { return mDeviceInfo; } @@ -149,7 +147,7 @@ public abstract class MidiUmpDeviceService extends Service { * Called to notify when the {@link MidiDeviceStatus} has changed * @param status the current status of the MIDI device */ - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public void onDeviceStatusChanged(@NonNull MidiDeviceStatus status) { } @@ -157,11 +155,11 @@ public abstract class MidiUmpDeviceService extends Service { * Called to notify when the virtual MIDI device running in this service has been closed by * all its clients */ - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) public void onClose() { } - @FlaggedApi(FLAG_VIRTUAL_UMP) + @FlaggedApi(Flags.FLAG_VIRTUAL_UMP) @Override public @Nullable IBinder onBind(@NonNull Intent intent) { if (SERVICE_INTERFACE.equals(intent.getAction()) && mServer != null) { diff --git a/services/core/Android.bp b/services/core/Android.bp index 7dbf61bab3a9..a14f3fee5303 100644 --- a/services/core/Android.bp +++ b/services/core/Android.bp @@ -183,6 +183,7 @@ java_library_static { "android.hardware.power.stats-V2-java", "android.hidl.manager-V1.2-java", "cbor-java", + "com.android.media.audio-aconfig-java", "dropbox_flags_lib", "icu4j_calendar_astronomer", "android.security.aaid_aidl-java", diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index a8fa313abc7a..b209fb006268 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -37,6 +37,7 @@ import static android.provider.Settings.Secure.VOLUME_HUSH_MUTE; import static android.provider.Settings.Secure.VOLUME_HUSH_OFF; import static android.provider.Settings.Secure.VOLUME_HUSH_VIBRATE; +import static com.android.media.audio.Flags.bluetoothMacAddressAnonymization; import static com.android.server.audio.SoundDoseHelper.ACTION_CHECK_MUSIC_ACTIVE; import static com.android.server.utils.EventLogger.Event.ALOGE; import static com.android.server.utils.EventLogger.Event.ALOGI; @@ -203,7 +204,6 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.SomeArgs; import com.android.internal.util.DumpUtils; import com.android.internal.util.Preconditions; -import com.android.media.audio.flags.Flags; import com.android.server.EventLogTags; import com.android.server.LocalServices; import com.android.server.SystemService; @@ -10509,7 +10509,7 @@ public class AudioService extends IAudioService.Stub } private boolean isBluetoothPrividged() { - if (!Flags.bluetoothMacAddressAnonymization()) { + if (!bluetoothMacAddressAnonymization()) { return true; } return PackageManager.PERMISSION_GRANTED == mContext.checkCallingOrSelfPermission( diff --git a/services/core/java/com/android/server/audio/HardeningEnforcer.java b/services/core/java/com/android/server/audio/HardeningEnforcer.java index c7556dacb783..4ceb83b2e1c9 100644 --- a/services/core/java/com/android/server/audio/HardeningEnforcer.java +++ b/services/core/java/com/android/server/audio/HardeningEnforcer.java @@ -15,7 +15,7 @@ */ package com.android.server.audio; -import static com.android.media.audio.flags.Flags.autoPublicVolumeApiHardening; +import static android.media.audio.Flags.autoPublicVolumeApiHardening; import android.Manifest; import android.content.Context; diff --git a/services/midi/Android.bp b/services/midi/Android.bp index a385fe38495b..2ea28a313706 100644 --- a/services/midi/Android.bp +++ b/services/midi/Android.bp @@ -20,6 +20,5 @@ java_library_static { srcs: [":services.midi-sources"], libs: [ "services.core", - "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 2f47cc7160b7..39aaab25d7be 100644 --- a/services/midi/java/com/android/server/midi/MidiService.java +++ b/services/midi/java/com/android/server/midi/MidiService.java @@ -16,7 +16,7 @@ package com.android.server.midi; -import static com.android.media.midi.flags.Flags.virtualUmp; +import static android.media.midi.Flags.virtualUmp; import android.Manifest; import android.annotation.NonNull; |