From 9bf75facd8b9e7ed775172530f44f2dd1d98831b Mon Sep 17 00:00:00 2001 From: Kevin Rocard Date: Tue, 9 Apr 2019 16:25:26 -0700 Subject: [PATCH] Add AudioAttributes.getAllowedCapturePolicy Bug: 129948989 Bug: 128454287 Test: atest AudioAttributesTest Change-Id: Ide4a6c160791ade1b93796ba4d2fca9e3c1f9eed Signed-off-by: Kevin Rocard --- api/current.txt | 1 + media/java/android/media/AudioAttributes.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/api/current.txt b/api/current.txt index ccfc0f5fd57f2..0cda5e4210d55 100644 --- a/api/current.txt +++ b/api/current.txt @@ -23041,6 +23041,7 @@ package android.media { public final class AudioAttributes implements android.os.Parcelable { method public boolean areHapticChannelsMuted(); method public int describeContents(); + method public int getAllowedCapturePolicy(); method public int getContentType(); method public int getFlags(); method public int getUsage(); diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java index 9d4bce7b43010..2dd701bf19b4a 100644 --- a/media/java/android/media/AudioAttributes.java +++ b/media/java/android/media/AudioAttributes.java @@ -534,6 +534,23 @@ public final class AudioAttributes implements Parcelable { return (mFlags & FLAG_MUTE_HAPTIC) != 0; } + /** + * Return the capture policy. + * @return the capture policy set by {@link Builder#setAllowedCapturePolicy(int)} or + * the default if it was not called. + */ + @CapturePolicy + public int getAllowedCapturePolicy() { + if ((mFlags & FLAG_NO_SYSTEM_CAPTURE) == FLAG_NO_SYSTEM_CAPTURE) { + return ALLOW_CAPTURE_BY_NONE; + } + if ((mFlags & FLAG_NO_MEDIA_PROJECTION) == FLAG_NO_MEDIA_PROJECTION) { + return ALLOW_CAPTURE_BY_SYSTEM; + } + return ALLOW_CAPTURE_BY_ALL; + } + + /** * Builder class for {@link AudioAttributes} objects. *

Here is an example where Builder is used to define the