Update sound summary when it is set to None.
Currently when the sound is set to None, we don't update the summary, unless users go to other pages and come back. Now we refreash it for a better user experience. Fixes: 134994978 Test: robotest Change-Id: I5d9c0238ee31e0c26ebde3201794c17737791c62
This commit is contained in:
@@ -20,6 +20,7 @@ import android.content.Context;
|
||||
import android.media.Ringtone;
|
||||
import android.media.RingtoneManager;
|
||||
import android.net.Uri;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
@@ -54,11 +55,12 @@ public abstract class RingtonePreferenceControllerBase extends AbstractPreferenc
|
||||
mContext, getRingtoneType());
|
||||
|
||||
final CharSequence summary;
|
||||
if (ringtoneUri == null) {
|
||||
summary = null;
|
||||
} else {
|
||||
try {
|
||||
summary = Ringtone.getTitle(
|
||||
mContext, ringtoneUri, false /* followSettingsUri */, true /* allowRemote */);
|
||||
} catch (IllegalArgumentException e) {
|
||||
Log.w(TAG, "Error getting ringtone summary.", e);
|
||||
return;
|
||||
}
|
||||
if (summary != null) {
|
||||
ThreadUtils.postOnMainThread(() -> preference.setSummary(summary));
|
||||
|
@@ -64,16 +64,6 @@ public class RingtonePreferenceControllerBaseTest {
|
||||
verify(preference).setSummary(anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_nullRingtone_shouldNotGetTitle() {
|
||||
Preference preference = mock(Preference.class);
|
||||
Settings.System.putString(mContext.getContentResolver(), Settings.System.RINGTONE, null);
|
||||
|
||||
mController.updateState(preference);
|
||||
|
||||
verify(preference, never()).setSummary(anyString());
|
||||
}
|
||||
|
||||
private class RingtonePreferenceControllerBaseTestable
|
||||
extends RingtonePreferenceControllerBase {
|
||||
RingtonePreferenceControllerBaseTestable(Context context) {
|
||||
|
Reference in New Issue
Block a user