Add FEATURE_AUDIO_PRO test to CTS-V Pro Audio test module.
Bug: 136799122
Test: build, install, run.
Change-Id: Id3aa3df4db31a5f19673ecaccd6f2a0062e516ed
diff --git a/apps/CtsVerifier/res/layout/pro_audio.xml b/apps/CtsVerifier/res/layout/pro_audio.xml
index 71edb71..3182499 100644
--- a/apps/CtsVerifier/res/layout/pro_audio.xml
+++ b/apps/CtsVerifier/res/layout/pro_audio.xml
@@ -13,6 +13,24 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
+ android:text="@string/proAudioHasProAudiolbl"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textSize="18sp"/>
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:paddingLeft="10dp"
+ android:paddingRight="10dp"
+ android:id="@+id/proAudioHasProAudioLbl"
+ android:textSize="18sp"/>
+ </LinearLayout>
+
+ <LinearLayout android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <TextView
android:text="@string/proAudioHasLLAlbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
diff --git a/apps/CtsVerifier/res/values/strings.xml b/apps/CtsVerifier/res/values/strings.xml
index 057ac46..557a7ea 100755
--- a/apps/CtsVerifier/res/values/strings.xml
+++ b/apps/CtsVerifier/res/values/strings.xml
@@ -4424,6 +4424,7 @@
<!-- Pro Audio Tests -->
<string name="pro_audio_latency_test">Pro Audio Test</string>
+ <string name="proAudioHasProAudiolbl">Has Pro Audio</string>
<string name="proAudioHasLLAlbl">Has Low-Latency Audio</string>
<string name="proAudioInputLbl">Audio Input:</string>
<string name="proAudioOutputLbl">Audio Output:</string>
@@ -4444,6 +4445,10 @@
<string name="audio_proaudio_NA">N/A</string>
<string name="audio_proaudio_pending">pending...</string>
+ <string name="audio_proaudio_nopa_title">Pro Audio Test</string>
+ <string name="audio_proaudio_nopa_message">This device does not set the FEATURE_AUDIO_PRO
+ flag and therefore does not need to run this test.</string>
+
<!-- MIDI Test -->
<string name="midi_test">MIDI Test</string>
<string name="ndk_midi_test">Native MIDI API Test</string>
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/audio/ProAudioActivity.java b/apps/CtsVerifier/src/com/android/cts/verifier/audio/ProAudioActivity.java
index 30bc5fc..07a2d4d 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/audio/ProAudioActivity.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/audio/ProAudioActivity.java
@@ -46,6 +46,7 @@
private static final boolean DEBUG = false;
// Flags
+ private boolean mClaimsProAudio;
private boolean mClaimsLowLatencyAudio; // CDD ProAudio section C-1-1
private boolean mClaimsMIDI; // CDD ProAudio section C-1-4
private boolean mClaimsUSBHostMode; // CDD ProAudio section C-1-3
@@ -75,10 +76,19 @@
CheckBox mClaimsHDMICheckBox;
+ // Borrowed from PassFailButtons.java
+ private static final int INFO_DIALOG_ID = 1337;
+ private static final String INFO_DIALOG_TITLE_ID = "infoDialogTitleId";
+ private static final String INFO_DIALOG_MESSAGE_ID = "infoDialogMessageId";
+
public ProAudioActivity() {
super();
}
+ private boolean claimsProAudio() {
+ return getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_PRO);
+ }
+
private boolean claimsLowLatencyAudio() {
// CDD Section C-1-1: android.hardware.audio.low_latency
return getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_LOW_LATENCY);
@@ -158,13 +168,13 @@
}
private void calculatePass() {
- boolean hasPassed =
- mClaimsLowLatencyAudio && mClaimsMIDI &&
+ boolean hasPassed = !mClaimsProAudio ||
+ (mClaimsLowLatencyAudio && mClaimsMIDI &&
mClaimsUSBHostMode && mClaimsUSBPeripheralMode &&
(!mClaimsHDMI || isHDMIValid()) &&
mOutputDevInfo != null && mInputDevInfo != null &&
mRoundTripLatency != 0.0 && mRoundTripLatency <= LATENCY_MS_LIMIT &&
- mRoundTripConfidence >= CONFIDENCE_LIMIT;
+ mRoundTripConfidence >= CONFIDENCE_LIMIT);
getPassButton().setEnabled(hasPassed);
}
@@ -261,6 +271,16 @@
setPassFailButtonClickListeners();
setInfoResources(R.string.proaudio_test, R.string.proaudio_info, -1);
+ mClaimsProAudio = claimsProAudio();
+ ((TextView)findViewById(R.id.proAudioHasProAudioLbl)).setText("" + mClaimsProAudio);
+
+ if (!mClaimsProAudio) {
+ Bundle args = new Bundle();
+ args.putInt(INFO_DIALOG_TITLE_ID, R.string.pro_audio_latency_test);
+ args.putInt(INFO_DIALOG_MESSAGE_ID, R.string.audio_proaudio_nopa_message);
+ showDialog(INFO_DIALOG_ID, args);
+ }
+
mClaimsLowLatencyAudio = claimsLowLatencyAudio();
((TextView)findViewById(R.id.proAudioHasLLALbl)).setText("" + mClaimsLowLatencyAudio);