Another column for the greylist.
Bug: 129746861
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: Ia687d3fcb8f87df7ee9665ff99be291fdf559d1d
(cherry picked from commit 14b288735b6eee592330e1b79535f8921762bfa6)
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 8035987..57f6c39 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -6274,6 +6274,7 @@
addGreylistPattern("\"content://media/[a-z]+/audio/media\"");
addGreylistPattern("substr\\(_data, length\\(_data\\)-length\\(_display_name\\), 1\\) as filename_prevchar");
addGreylistPattern("\\*" + maybeAs);
+ addGreylistPattern("case when \\(datetaken >= \\d+ and datetaken < \\d+\\) then datetaken \\* \\d+ when \\(datetaken >= \\d+ and datetaken < \\d+\\) then datetaken when \\(datetaken >= \\d+ and datetaken < \\d+\\) then datetaken / \\d+ else \\d+ end");
}
@GuardedBy("sProjectionMapCache")
diff --git a/tests/src/com/android/providers/media/MediaProviderTest.java b/tests/src/com/android/providers/media/MediaProviderTest.java
index 3282552..ce5b2fc 100644
--- a/tests/src/com/android/providers/media/MediaProviderTest.java
+++ b/tests/src/com/android/providers/media/MediaProviderTest.java
@@ -466,6 +466,12 @@
}
@Test
+ public void testGreylist_129746861() {
+ assertTrue(isGreylistMatch(
+ "case when (datetaken >= 157680000 and datetaken < 1892160000) then datetaken * 1000 when (datetaken >= 157680000000 and datetaken < 1892160000000) then datetaken when (datetaken >= 157680000000000 and datetaken < 1892160000000000) then datetaken / 1000 else 0 end"));
+ }
+
+ @Test
public void testComputeProjection() throws Exception {
final SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
final ArrayMap<String, String> map = new ArrayMap<>();