mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-15 10:54:27 -05:00
7ecc843451
Signed-off-by: Tavi <tavi@divested.dev>
77 lines
4.0 KiB
Diff
77 lines
4.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jean-Michel Trivi <jmtrivi@google.com>
|
|
Date: Mon, 24 Jun 2024 17:29:14 -0700
|
|
Subject: [PATCH] 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
|
|
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a8d2785d69314086dc3b5b2531386fefff079ce7)
|
|
Merged-In: Iac9f27f14bae29e0fabc31e05da2357f6f4f16c7
|
|
Change-Id: Iac9f27f14bae29e0fabc31e05da2357f6f4f16c7
|
|
---
|
|
media/java/android/media/RingtoneManager.java | 8 ++++++--
|
|
.../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 918a9d8943dd..1e1142387d14 100644
|
|
--- a/media/java/android/media/RingtoneManager.java
|
|
+++ b/media/java/android/media/RingtoneManager.java
|
|
@@ -833,9 +833,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 d3c10574ea13..f58016acd290 100644
|
|
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
|
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
|
|
@@ -1781,7 +1781,7 @@ public class SettingsProvider extends ContentProvider {
|
|
cacheName = Settings.System.ALARM_ALERT_CACHE;
|
|
}
|
|
if (cacheName != null) {
|
|
- if (!isValidAudioUri(name, value)) {
|
|
+ if (!isValidMediaUri(name, value)) {
|
|
return false;
|
|
}
|
|
final File cacheFile = new File(
|
|
@@ -1816,7 +1816,7 @@ public class SettingsProvider extends ContentProvider {
|
|
}
|
|
}
|
|
|
|
- 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(
|
|
@@ -1834,10 +1834,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;
|
|
}
|
|
}
|