Migrate Dial pad tones preference

Bug: 364899400
Test: atest DialPadTonePreferenceTest
Flag: com.android.settings.flags.catalyst_sound_screen
Change-Id: I5939a4d41ad61337f38bd5d48a1cb74f14f1e397
This commit is contained in:
Mill Chen
2024-10-09 18:52:03 +00:00
parent aeb05239de
commit 898feed16a
6 changed files with 154 additions and 7 deletions

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2024 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.notification
import android.content.Context
import android.provider.Settings.System.DTMF_TONE_WHEN_DIALING
import com.android.settings.R
import com.android.settings.Utils
import com.android.settingslib.datastore.SettingsSystemStore
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.SwitchPreference
import com.android.settingslib.preference.SwitchPreferenceBinding
// LINT.IfChange
class DialPadTonePreference :
SwitchPreference(DTMF_TONE_WHEN_DIALING, R.string.dial_pad_tones_title),
SwitchPreferenceBinding, PreferenceAvailabilityProvider {
override fun storage(context: Context) = SettingsSystemStore.get(context)
override fun isAvailable(context: Context) = Utils.isVoiceCapable(context)
}
// LINT.ThenChange(DialPadTonePreferenceController.java)

View File

@@ -16,24 +16,24 @@
package com.android.settings.notification;
import static android.provider.Settings.System.DTMF_TONE_WHEN_DIALING;
import static com.android.settings.notification.SettingPref.TYPE_SYSTEM;
import android.content.Context;
import android.provider.Settings.System;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settingslib.core.lifecycle.Lifecycle;
// LINT.IfChange
public class DialPadTonePreferenceController extends SettingPrefController {
private static final String KEY_DIAL_PAD_TONES = "dial_pad_tones";
public DialPadTonePreferenceController(Context context, SettingsPreferenceFragment parent,
Lifecycle lifecycle) {
super(context, parent, lifecycle);
mPreference = new SettingPref(
TYPE_SYSTEM, KEY_DIAL_PAD_TONES, System.DTMF_TONE_WHEN_DIALING, DEFAULT_ON) {
mPreference = new SettingPref(TYPE_SYSTEM, DTMF_TONE_WHEN_DIALING, DTMF_TONE_WHEN_DIALING,
DEFAULT_ON) {
@Override
public boolean isApplicable(Context context) {
return Utils.isVoiceCapable(context);
@@ -42,3 +42,4 @@ public class DialPadTonePreferenceController extends SettingPrefController {
}
}
// LINT.ThenChange(DialPadTonePreference.kt)

View File

@@ -40,7 +40,10 @@ class SoundScreen : PreferenceScreenCreator {
override fun fragmentClass(): Class<out Fragment>? = SoundSettings::class.java
override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
override fun getPreferenceHierarchy(context: Context) =
preferenceHierarchy(this) {
+DialPadTonePreference()
}
companion object {
const val KEY = "sound_screen"