Add ability to show/hide individual settings in Sounds page.
This adds the following 7 new boolean flags: config_show_alarm_volume config_show_charging_sounds config_show_media_volume config_show_notification_ringtone config_show_notification_volume config_show_screen_locking_sounds config_show_touch_sounds Which when set to false, will hide the respective preferences in Sounds page. Bug: 69813881 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.notification all pass. Change-Id: I84a2ce66b07c00d658422ce1a0eacaf9a01fae8a
This commit is contained in:
@@ -21,6 +21,7 @@ import android.media.AudioManager;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.notification.VolumeSeekBarPreference.Callback;
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
public class AlarmVolumePreferenceController extends
|
||||
@@ -43,7 +44,8 @@ public class AlarmVolumePreferenceController extends
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return !mHelper.isSingleVolume();
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_alarm_volume)
|
||||
&& !mHelper.isSingleVolume();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -21,6 +21,7 @@ import static com.android.settings.notification.SettingPref.TYPE_GLOBAL;
|
||||
import android.content.Context;
|
||||
|
||||
import android.provider.Settings.Global;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
@@ -33,7 +34,10 @@ public class ChargingSoundPreferenceController extends SettingPrefController {
|
||||
super(context, parent, lifecycle);
|
||||
mPreference = new SettingPref(
|
||||
TYPE_GLOBAL, KEY_CHARGING_SOUNDS, Global.CHARGING_SOUNDS_ENABLED, DEFAULT_ON);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_charging_sounds);
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.notification;
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import com.android.settings.notification.VolumeSeekBarPreference.Callback;
|
||||
import com.android.settings.R;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
public class MediaVolumePreferenceController extends
|
||||
@@ -32,7 +33,7 @@ public class MediaVolumePreferenceController extends
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return true;
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_media_volume);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -19,6 +19,8 @@ package com.android.settings.notification;
|
||||
import android.content.Context;
|
||||
import android.media.RingtoneManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
public class NotificationRingtonePreferenceController extends RingtonePreferenceControllerBase {
|
||||
|
||||
private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
|
||||
@@ -27,6 +29,11 @@ public class NotificationRingtonePreferenceController extends RingtonePreference
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_notification_ringtone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return KEY_NOTIFICATION_RINGTONE;
|
||||
|
@@ -20,6 +20,7 @@ import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.notification.VolumeSeekBarPreference.Callback;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
@@ -45,7 +46,8 @@ public class NotificationVolumePreferenceController extends
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return !Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume();
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_notification_volume)
|
||||
&& !Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -21,6 +21,7 @@ import static com.android.settings.notification.SettingPref.TYPE_SYSTEM;
|
||||
import android.content.Context;
|
||||
|
||||
import android.provider.Settings.System;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
@@ -35,4 +36,8 @@ public class ScreenLockSoundPreferenceController extends SettingPrefController {
|
||||
TYPE_SYSTEM, KEY_SCREEN_LOCKING_SOUNDS, System.LOCKSCREEN_SOUNDS_ENABLED, DEFAULT_ON);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_screen_locking_sounds);
|
||||
}
|
||||
}
|
||||
|
@@ -33,6 +33,7 @@ import com.android.settings.R;
|
||||
import com.android.settings.RingtonePreference;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.widget.PreferenceCategoryController;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
@@ -201,15 +202,45 @@ public class SoundSettings extends DashboardFragment {
|
||||
controllers.add(new WorkSoundPreferenceController(context, fragment, lifecycle));
|
||||
|
||||
// === Other Sound Settings ===
|
||||
controllers.add(new DialPadTonePreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new ScreenLockSoundPreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new ChargingSoundPreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new DockingSoundPreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new TouchSoundPreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new VibrateOnTouchPreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new DockAudioMediaPreferenceController(context, fragment, lifecycle));
|
||||
controllers.add(new BootSoundPreferenceController(context));
|
||||
controllers.add(new EmergencyTonePreferenceController(context, fragment, lifecycle));
|
||||
final DialPadTonePreferenceController dialPadTonePreferenceController =
|
||||
new DialPadTonePreferenceController(context, fragment, lifecycle);
|
||||
final ScreenLockSoundPreferenceController screenLockSoundPreferenceController =
|
||||
new ScreenLockSoundPreferenceController(context, fragment, lifecycle);
|
||||
final ChargingSoundPreferenceController chargingSoundPreferenceController =
|
||||
new ChargingSoundPreferenceController(context, fragment, lifecycle);
|
||||
final DockingSoundPreferenceController dockingSoundPreferenceController =
|
||||
new DockingSoundPreferenceController(context, fragment, lifecycle);
|
||||
final TouchSoundPreferenceController touchSoundPreferenceController =
|
||||
new TouchSoundPreferenceController(context, fragment, lifecycle);
|
||||
final VibrateOnTouchPreferenceController vibrateOnTouchPreferenceController =
|
||||
new VibrateOnTouchPreferenceController(context, fragment, lifecycle);
|
||||
final DockAudioMediaPreferenceController dockAudioMediaPreferenceController =
|
||||
new DockAudioMediaPreferenceController(context, fragment, lifecycle);
|
||||
final BootSoundPreferenceController bootSoundPreferenceController =
|
||||
new BootSoundPreferenceController(context);
|
||||
final EmergencyTonePreferenceController emergencyTonePreferenceController =
|
||||
new EmergencyTonePreferenceController(context, fragment, lifecycle);
|
||||
|
||||
controllers.add(dialPadTonePreferenceController);
|
||||
controllers.add(screenLockSoundPreferenceController);
|
||||
controllers.add(chargingSoundPreferenceController);
|
||||
controllers.add(dockingSoundPreferenceController);
|
||||
controllers.add(touchSoundPreferenceController);
|
||||
controllers.add(vibrateOnTouchPreferenceController);
|
||||
controllers.add(dockAudioMediaPreferenceController);
|
||||
controllers.add(bootSoundPreferenceController);
|
||||
controllers.add(emergencyTonePreferenceController);
|
||||
controllers.add(new PreferenceCategoryController(context,
|
||||
"other_sounds_and_vibrations_category",
|
||||
Arrays.asList(dialPadTonePreferenceController,
|
||||
screenLockSoundPreferenceController,
|
||||
chargingSoundPreferenceController,
|
||||
dockingSoundPreferenceController,
|
||||
touchSoundPreferenceController,
|
||||
vibrateOnTouchPreferenceController,
|
||||
dockAudioMediaPreferenceController,
|
||||
bootSoundPreferenceController,
|
||||
emergencyTonePreferenceController)));
|
||||
|
||||
return controllers;
|
||||
}
|
||||
|
@@ -23,6 +23,7 @@ import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
import android.os.AsyncTask;
|
||||
import android.provider.Settings.System;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
|
||||
@@ -53,4 +54,9 @@ public class TouchSoundPreferenceController extends SettingPrefController {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mContext.getResources().getBoolean(R.bool.config_show_touch_sounds);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user