diff options
| author | 2024-06-24 17:29:14 -0700 | |
|---|---|---|
| committer | 2024-06-28 14:29:28 -0700 | |
| commit | f9d8d4945a05e3c8ed4b5e98caef56c462397304 (patch) | |
| tree | 401e7c1f9a27b1a5d1ccab90217580c1f410f28b | |
| parent | 41f9ecdbcf2c9628db15475f423d5cf930f34d46 (diff) | |
RingtoneManager: allow video ringtone URI
When checking the MIME type for the default ringtone, also
allow it to refer to video content.
Bug: 205837340
Test: see POC + atest android.media.audio.cts.RingtoneManagerTest
Merged-In: Id9b81e2db8314bc16df77d0a9221ce93143a8012
Change-Id: Iac9f27f14bae29e0fabc31e05da2357f6f4f16c7
| -rw-r--r-- | media/java/android/media/RingtoneManager.java | 8 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 11 |
2 files changed, 13 insertions, 6 deletions
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java index ff369c8a5eee..11c80d3578b1 100644 --- a/media/java/android/media/RingtoneManager.java +++ b/media/java/android/media/RingtoneManager.java @@ -924,9 +924,13 @@ public class RingtoneManager { + " ignored: failure to find mimeType (no access from this context?)"); return; } - if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg"))) { + if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg") + || mimeType.equals("application/x-flac") + // also check for video ringtones + || mimeType.startsWith("video/") || mimeType.equals("application/mp4"))) { Log.e(TAG, "setActualDefaultRingtoneUri for URI:" + ringtoneUri - + " ignored: associated mimeType:" + mimeType + " is not an audio type"); + + " ignored: associated MIME type:" + mimeType + + " is not a recognized audio or video type"); return; } } diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java index b785d6f7f858..44f043ee75aa 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java @@ -1985,7 +1985,7 @@ public class SettingsProvider extends ContentProvider { File cacheFile = getCacheFile(name, callingUserId); if (cacheFile != null) { - if (!isValidAudioUri(name, value)) { + if (!isValidMediaUri(name, value)) { return false; } // Invalidate any relevant cache files @@ -2046,7 +2046,7 @@ public class SettingsProvider extends ContentProvider { return true; } - private boolean isValidAudioUri(String name, String uri) { + private boolean isValidMediaUri(String name, String uri) { if (uri != null) { Uri audioUri = Uri.parse(uri); if (Settings.AUTHORITY.equals( @@ -2064,10 +2064,13 @@ public class SettingsProvider extends ContentProvider { return false; } if (!(mimeType.startsWith("audio/") || mimeType.equals("application/ogg") - || mimeType.equals("application/x-flac"))) { + || mimeType.equals("application/x-flac") + // also check for video ringtones + || mimeType.startsWith("video/") || mimeType.equals("application/mp4"))) { Slog.e(LOG_TAG, "mutateSystemSetting for setting: " + name + " URI: " + audioUri - + " ignored: associated mimeType: " + mimeType + " is not an audio type"); + + " ignored: associated MIME type: " + mimeType + + " is not a recognized audio or video type"); return false; } } |