RingtoneManager shouldn't be using custom columns.

Add to greylist to keep their usage working.

Bug: 115845621
Bug: 122813739
Test: cts-tradefed run commandAndExit cts-dev -m CtsMediaTestCases -t android.media.cts.RingtoneManagerTest
Change-Id: I358545f658ad2fbccfe94cc65c78bf42c92a3ab2
Merged-In: I358545f658ad2fbccfe94cc65c78bf42c92a3ab2
diff --git a/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java b/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java
index 864a0fa..e3c8d2a 100644
--- a/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java
+++ b/tests/tests/media/src/android/media/cts/RingtoneManagerTest.java
@@ -103,27 +103,21 @@
         super.tearDown();
     }
 
-    private boolean hasAudioOutput() {
-        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT);
-    }
-
-    private boolean isTV() {
-        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LEANBACK_ONLY);
+    private boolean isSupportedDevice() {
+        final PackageManager pm = mContext.getPackageManager();
+        return pm.hasSystemFeature(PackageManager.FEATURE_AUDIO_OUTPUT)
+                && !pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK_ONLY);
     }
 
     public void testConstructors() {
+        if (!isSupportedDevice()) return;
+
         new RingtoneManager(mActivity);
         new RingtoneManager(mContext);
     }
 
     public void testAccessMethods() {
-        if (isTV()) {
-            return;
-        }
-        if (!hasAudioOutput()) {
-            Log.i(TAG, "Skipping testAccessMethods(): device doesn't have audio output.");
-            return;
-        }
+        if (!isSupportedDevice()) return;
 
         Cursor c = mRingtoneManager.getCursor();
         assertTrue("Must have at least one ring tone available", c.getCount() > 0);
@@ -151,6 +145,8 @@
     }
 
     public void testSetType() {
+        if (!isSupportedDevice()) return;
+
         mRingtoneManager.setType(RingtoneManager.TYPE_ALARM);
         assertEquals(AudioManager.STREAM_ALARM, mRingtoneManager.inferStreamType());
         Cursor c = mRingtoneManager.getCursor();
@@ -160,13 +156,7 @@
     }
 
     public void testStopPreviousRingtone() {
-        if (isTV()) {
-            return;
-        }
-        if (!hasAudioOutput()) {
-            Log.i(TAG, "Skipping testStopPreviousRingtone(): device doesn't have audio output.");
-            return;
-        }
+        if (!isSupportedDevice()) return;
 
         Cursor c = mRingtoneManager.getCursor();
         assertTrue("Must have at least one ring tone available", c.getCount() > 0);
@@ -186,4 +176,15 @@
         mRingtoneManager.stopPreviousRingtone();
         assertFalse(newRingtone.isPlaying());
     }
+
+    public void testQuery() {
+        if (!isSupportedDevice()) return;
+
+        final Cursor c = mRingtoneManager.getCursor();
+        assertTrue(c.moveToFirst());
+        assertTrue(c.getInt(RingtoneManager.ID_COLUMN_INDEX) >= 0);
+        assertTrue(c.getString(RingtoneManager.TITLE_COLUMN_INDEX) != null);
+        assertTrue(c.getString(RingtoneManager.URI_COLUMN_INDEX),
+                c.getString(RingtoneManager.URI_COLUMN_INDEX).startsWith("content://"));
+    }
 }