Merge "Don't backup ringtone on non-telephony devices." into lmp-mr1-dev

This commit is contained in:
Marvin Paul
2014-12-29 23:18:15 +00:00
committed by Android (Google) Code Review

View File

@@ -30,6 +30,7 @@ import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import java.util.Locale;
@@ -38,11 +39,14 @@ public class SettingsHelper {
private static final String SILENT_RINGTONE = "_silent";
private Context mContext;
private AudioManager mAudioManager;
private TelephonyManager mTelephonyManager;
public SettingsHelper(Context context) {
mContext = context;
mAudioManager = (AudioManager) context
.getSystemService(Context.AUDIO_SERVICE);
mTelephonyManager = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
}
/**
@@ -75,12 +79,23 @@ public class SettingsHelper {
}
public String onBackupValue(String name, String value) {
// Special processing for backing up ringtones
// Special processing for backing up ringtones & notification sounds
if (Settings.System.RINGTONE.equals(name)
|| Settings.System.NOTIFICATION_SOUND.equals(name)) {
if (value == null) {
// Silent ringtone
return SILENT_RINGTONE;
if (Settings.System.RINGTONE.equals(name)) {
// For ringtones, we need to distinguish between non-telephony vs telephony
if (mTelephonyManager != null && mTelephonyManager.isVoiceCapable()) {
// Backup a null ringtone as silent on voice-capable devices
return SILENT_RINGTONE;
} else {
// Skip backup of ringtone on non-telephony devices.
return null;
}
} else {
// Backup a null notification sound as silent
return SILENT_RINGTONE;
}
} else {
return getCanonicalRingtoneValue(value);
}