summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robin Lee <rgl@google.com> 2020-06-09 14:15:58 +0200
committer Robin Lee <rgl@google.com> 2020-06-09 15:44:00 +0200
commitb7f16fdde62edb01be4a160fd77c867dfe70e288 (patch)
treeae34eb9c2460ab42b3c7804991024fb4cb68758d
parentea14720b8a618de357d06d54f24d0965d8df94f1 (diff)
Add a killswitch for AudioRecordingDisclosureBar
This is applied exactly once per boot (not dynamic). Test: adb shell settings put global Test: adb reboot Bug: 152559914 Change-Id: I2e12ebd9cdce4433b5e85c9c22c5b7422dc287b8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tv/micdisclosure/AudioRecordingDisclosureBar.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/micdisclosure/AudioRecordingDisclosureBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/micdisclosure/AudioRecordingDisclosureBar.java
index 914868301d72..8b85a0961463 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/micdisclosure/AudioRecordingDisclosureBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/micdisclosure/AudioRecordingDisclosureBar.java
@@ -29,6 +29,8 @@ import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.PixelFormat;
+import android.provider.Settings;
+import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log;
import android.view.Gravity;
@@ -63,6 +65,9 @@ public class AudioRecordingDisclosureBar implements
// CtsSystemUiHostTestCases:TvMicrophoneCaptureIndicatorTest
private static final String LAYOUT_PARAMS_TITLE = "MicrophoneCaptureIndicator";
+ private static final String EXEMPT_PACKAGES_LIST = "sysui_mic_disclosure_exempt";
+ private static final String FORCED_PACKAGES_LIST = "sysui_mic_disclosure_forced";
+
@Retention(RetentionPolicy.SOURCE)
@IntDef(prefix = {"STATE_"}, value = {
STATE_NOT_SHOWN,
@@ -134,6 +139,8 @@ public class AudioRecordingDisclosureBar implements
mExemptPackages = new ArraySet<>(
Arrays.asList(mContext.getResources().getStringArray(
R.array.audio_recording_disclosure_exempt_apps)));
+ mExemptPackages.addAll(Arrays.asList(getGlobalStringArray(EXEMPT_PACKAGES_LIST)));
+ mExemptPackages.removeAll(Arrays.asList(getGlobalStringArray(FORCED_PACKAGES_LIST)));
mAudioActivityObservers = new AudioActivityObserver[]{
new RecordAudioAppOpObserver(mContext, this),
@@ -141,6 +148,11 @@ public class AudioRecordingDisclosureBar implements
};
}
+ private String[] getGlobalStringArray(String setting) {
+ String result = Settings.Global.getString(mContext.getContentResolver(), setting);
+ return TextUtils.isEmpty(result) ? new String[0] : result.split(",");
+ }
+
@UiThread
@Override
public void onAudioActivityStateChange(boolean active, String packageName) {