diff options
author | Yorke Lee <yorkelee@google.com> | 2015-07-15 16:34:08 -0700 |
---|---|---|
committer | Yorke Lee <yorkelee@google.com> | 2015-07-17 09:58:41 -0700 |
commit | 53845dd9c153aeb23999aac7f19dbb652976b565 (patch) | |
tree | 5b5adc9d5ac9b87facb695d08e2b90660f4db80c /src | |
parent | fa36ce56b56eafac5dcd9908cc14b9e4de608648 (diff) | |
download | android_packages_apps_PhoneCommon-53845dd9c153aeb23999aac7f19dbb652976b565.tar.gz android_packages_apps_PhoneCommon-53845dd9c153aeb23999aac7f19dbb652976b565.tar.bz2 android_packages_apps_PhoneCommon-53845dd9c153aeb23999aac7f19dbb652976b565.zip |
Fix SecurityException when trying to retrieve ringtone title
Use RingtoneManager.getRingtone instead of accessing MediaProvider
directly
Bug: 22430897
Change-Id: Ib7ec053b5b92ed3d1b77ef63ab339c9b8c4da87f
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/phone/common/util/SettingsUtil.java | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/com/android/phone/common/util/SettingsUtil.java b/src/com/android/phone/common/util/SettingsUtil.java index e473947..c297e1e 100644 --- a/src/com/android/phone/common/util/SettingsUtil.java +++ b/src/com/android/phone/common/util/SettingsUtil.java @@ -20,6 +20,7 @@ import android.content.Context; import android.content.SharedPreferences; import android.database.Cursor; import android.database.sqlite.SQLiteException; +import android.media.Ringtone; import android.media.RingtoneManager; import android.net.Uri; import android.os.Handler; @@ -82,17 +83,16 @@ public class SettingsUtil { summary = context.getString(R.string.ringtone_silent); } else { // Fetch the ringtone title from the media provider - try { - Cursor cursor = context.getContentResolver().query(ringtoneUri, - new String[] { MediaStore.Audio.Media.TITLE }, null, null, null); - if (cursor != null) { - if (cursor.moveToFirst()) { - summary = cursor.getString(0); + final Ringtone ringtone = RingtoneManager.getRingtone(context, ringtoneUri); + if (ringtone != null) { + try { + final String title = ringtone.getTitle(context); + if (!TextUtils.isEmpty(title)) { + summary = title; } - cursor.close(); + } catch (SQLiteException sqle) { + // Unknown title for the ringtone } - } catch (SQLiteException sqle) { - // Unknown title for the ringtone } } if (defaultRingtone) { |