Files
packages_apps_Settings/src/com/android/settings/DefaultRingtonePreference.java
Ting Yu a89d02598f Settings: Phone ringtone setting for Multi SIM device [2/3]
Support displaying phone ringtone setting for each slot as follows:
"Phone ringtone - SIM 1"
"Phone ringtone - SIM 2"

The purpose is to distinguish incoming call from each slot by ringtone.

Depends-On: I9c6ccff938122332d222853d469ad9a623c7d193

Bug: 118735436
Test: Manual
Change-Id: I06c59016e9b6da51ed8a4678a66674fc48c20e40
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
2025-12-10 00:41:30 +09:00

76 lines
2.3 KiB
Java

/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.util.AttributeSet;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
public class DefaultRingtonePreference extends RingtonePreference {
private static final String TAG = "DefaultRingtonePreference";
public DefaultRingtonePreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onPrepareRingtonePickerIntent(Intent ringtonePickerIntent) {
super.onPrepareRingtonePickerIntent(ringtonePickerIntent);
/*
* Since this preference is for choosing the default ringtone, it
* doesn't make sense to show a 'Default' item.
*/
ringtonePickerIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, false);
}
@Override
protected void onSaveRingtone(Uri ringtoneUri) {
if (ringtoneUri == null) {
setActualDefaultRingtoneUri(ringtoneUri);
return;
}
if (!isValidRingtoneUri(ringtoneUri)) {
Log.e(TAG, "onSaveRingtone for URI:" + ringtoneUri
+ " ignored: invalid ringtone Uri");
return;
}
setActualDefaultRingtoneUri(ringtoneUri);
}
@VisibleForTesting
void setActualDefaultRingtoneUri(Uri ringtoneUri) {
RingtoneManager.setActualDefaultRingtoneUriBySlot(mUserContext, getRingtoneType(),
ringtoneUri, getSlotId());
}
@Override
protected Uri onRestoreRingtone() {
return RingtoneManager.getActualDefaultRingtoneUriBySlot(mUserContext, getRingtoneType(),
getSlotId());
}
}