diff --git a/src/com/android/phone/common/util/SettingsUtil.java b/src/com/android/phone/common/util/SettingsUtil.java
index 859c1a5..d513f2c 100644
--- a/src/com/android/phone/common/util/SettingsUtil.java
+++ b/src/com/android/phone/common/util/SettingsUtil.java
@@ -36,6 +36,9 @@
 import java.lang.String;
 
 public class SettingsUtil {
+    private static final String DEFAULT_NOTIFICATION_URI_STRING =
+            Settings.System.DEFAULT_NOTIFICATION_URI.toString();
+
     /**
      * Obtain the setting for "vibrate when ringing" setting.
      *
@@ -72,12 +75,12 @@
         } else {
             final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
             // For voicemail notifications, we use the value saved in Phone's shared preferences.
-            String uriString = prefs.getString(key, null);
+            String uriString = prefs.getString(key, DEFAULT_NOTIFICATION_URI_STRING);
             if (TextUtils.isEmpty(uriString)) {
                 // silent ringtone
                 ringtoneUri = null;
             } else {
-                if (uriString.equals(Settings.System.DEFAULT_NOTIFICATION_URI.toString())) {
+                if (uriString.equals(DEFAULT_NOTIFICATION_URI_STRING)) {
                     // If it turns out that the voicemail notification is set to the system
                     // default notification, we retrieve the actual URI to prevent it from showing
                     // up as "Unknown Ringtone".
