Merge "Don't backup ringtone on non-telephony devices." into lmp-mr1-dev
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user