Loading res/xml/sound_settings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ android:key="media_volume" android:icon="@*android:drawable/ic_audio_media" android:title="@string/media_volume_option_title" settings:controller="com.android.settings.notification.MediaVolumePreferenceController" android:order="-170"/> <!-- Alarm volume --> Loading @@ -34,6 +35,7 @@ android:key="alarm_volume" android:icon="@*android:drawable/ic_audio_alarm" android:title="@string/alarm_volume_option_title" settings:controller="com.android.settings.notification.AlarmVolumePreferenceController" android:order="-160"/> <!-- Ring volume --> Loading @@ -41,6 +43,7 @@ android:key="ring_volume" android:icon="@*android:drawable/ic_audio_ring_notif" android:title="@string/ring_volume_option_title" settings:controller="com.android.settings.notification.RingVolumePreferenceController" android:order="-150"/> <!-- Notification volume --> Loading @@ -48,6 +51,7 @@ android:key="notification_volume" android:icon="@*android:drawable/ic_audio_ring_notif" android:title="@string/notification_volume_option_title" settings:controller="com.android.settings.notification.NotificationVolumePreferenceController" android:order="-140"/> <!-- Also vibrate for calls --> Loading src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java +7 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.support.v7.preference.Preference; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.accounts.AccountRestrictionHelper; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.SliderPreferenceController; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.AbstractPreferenceController; Loading @@ -32,17 +33,18 @@ import com.android.settingslib.core.AbstractPreferenceController; * restriction */ public abstract class AdjustVolumeRestrictedPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin { SliderPreferenceController implements PreferenceControllerMixin { private AccountRestrictionHelper mHelper; public AdjustVolumeRestrictedPreferenceController(Context context) { this(context, new AccountRestrictionHelper(context)); public AdjustVolumeRestrictedPreferenceController(Context context, String key) { this(context, new AccountRestrictionHelper(context), key); } @VisibleForTesting AdjustVolumeRestrictedPreferenceController(Context context, AccountRestrictionHelper helper) { super(context); AdjustVolumeRestrictedPreferenceController(Context context, AccountRestrictionHelper helper, String key) { super(context, key); mHelper = helper; } Loading src/com/android/settings/notification/AlarmVolumePreferenceController.java +4 −16 Original line number Diff line number Diff line Loading @@ -20,32 +20,21 @@ import android.content.Context; 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 VolumeSeekBarPreferenceController { private static final String KEY_ALARM_VOLUME = "alarm_volume"; private AudioHelper mHelper; public AlarmVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) { this(context, callback, lifecycle, new AudioHelper(context)); } @VisibleForTesting AlarmVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle, AudioHelper helper) { super(context, callback, lifecycle); mHelper = helper; public AlarmVolumePreferenceController(Context context) { super(context, KEY_ALARM_VOLUME); } @Override public boolean isAvailable() { public int getAvailabilityStatus() { return mContext.getResources().getBoolean(R.bool.config_show_alarm_volume) && !mHelper.isSingleVolume(); && !mHelper.isSingleVolume() ? AVAILABLE : DISABLED_UNSUPPORTED; } @Override Loading @@ -62,5 +51,4 @@ public class AlarmVolumePreferenceController extends public int getMuteIcon() { return com.android.internal.R.drawable.ic_audio_alarm_mute; } } src/com/android/settings/notification/AudioHelper.java +24 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.notification; import android.annotation.UserIdInt; import android.content.Context; import android.media.AudioManager; import android.media.AudioSystem; import android.os.UserHandle; import android.os.UserManager; Loading @@ -29,9 +30,11 @@ import com.android.settings.Utils; public class AudioHelper { private Context mContext; private AudioManager mAudioManager; public AudioHelper(Context context) { mContext = context; mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); } public boolean isSingleVolume() { Loading @@ -49,4 +52,25 @@ public class AudioHelper { public Context createPackageContextAsUser(@UserIdInt int profileId) { return Utils.createPackageContextAsUser(mContext, profileId); } public int getRingerModeInternal() { return mAudioManager.getRingerModeInternal(); } public int getLastAudibleStreamVolume(int stream) { return mAudioManager.getLastAudibleStreamVolume(stream); } public int getStreamVolume(int stream) { return mAudioManager.getStreamVolume(stream); } public boolean setStreamVolume(int stream, int volume) { mAudioManager.setStreamVolume(stream, volume, 0); return true; } public int getMaxVolume(int stream) { return mAudioManager.getStreamMaxVolume(stream); } } src/com/android/settings/notification/MediaVolumePreferenceController.java +6 −5 Original line number Diff line number Diff line Loading @@ -27,13 +27,15 @@ public class MediaVolumePreferenceController extends private static final String KEY_MEDIA_VOLUME = "media_volume"; public MediaVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) { super(context, callback, lifecycle); public MediaVolumePreferenceController(Context context) { super(context, KEY_MEDIA_VOLUME); } @Override public boolean isAvailable() { return mContext.getResources().getBoolean(R.bool.config_show_media_volume); public int getAvailabilityStatus() { return mContext.getResources().getBoolean(R.bool.config_show_media_volume) ? AVAILABLE : DISABLED_UNSUPPORTED; } @Override Loading @@ -50,5 +52,4 @@ public class MediaVolumePreferenceController extends public int getMuteIcon() { return com.android.internal.R.drawable.ic_audio_media_mute; } } Loading
res/xml/sound_settings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ android:key="media_volume" android:icon="@*android:drawable/ic_audio_media" android:title="@string/media_volume_option_title" settings:controller="com.android.settings.notification.MediaVolumePreferenceController" android:order="-170"/> <!-- Alarm volume --> Loading @@ -34,6 +35,7 @@ android:key="alarm_volume" android:icon="@*android:drawable/ic_audio_alarm" android:title="@string/alarm_volume_option_title" settings:controller="com.android.settings.notification.AlarmVolumePreferenceController" android:order="-160"/> <!-- Ring volume --> Loading @@ -41,6 +43,7 @@ android:key="ring_volume" android:icon="@*android:drawable/ic_audio_ring_notif" android:title="@string/ring_volume_option_title" settings:controller="com.android.settings.notification.RingVolumePreferenceController" android:order="-150"/> <!-- Notification volume --> Loading @@ -48,6 +51,7 @@ android:key="notification_volume" android:icon="@*android:drawable/ic_audio_ring_notif" android:title="@string/notification_volume_option_title" settings:controller="com.android.settings.notification.NotificationVolumePreferenceController" android:order="-140"/> <!-- Also vibrate for calls --> Loading
src/com/android/settings/notification/AdjustVolumeRestrictedPreferenceController.java +7 −5 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.support.v7.preference.Preference; import com.android.internal.annotations.VisibleForTesting; import com.android.settings.accounts.AccountRestrictionHelper; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.SliderPreferenceController; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.AbstractPreferenceController; Loading @@ -32,17 +33,18 @@ import com.android.settingslib.core.AbstractPreferenceController; * restriction */ public abstract class AdjustVolumeRestrictedPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin { SliderPreferenceController implements PreferenceControllerMixin { private AccountRestrictionHelper mHelper; public AdjustVolumeRestrictedPreferenceController(Context context) { this(context, new AccountRestrictionHelper(context)); public AdjustVolumeRestrictedPreferenceController(Context context, String key) { this(context, new AccountRestrictionHelper(context), key); } @VisibleForTesting AdjustVolumeRestrictedPreferenceController(Context context, AccountRestrictionHelper helper) { super(context); AdjustVolumeRestrictedPreferenceController(Context context, AccountRestrictionHelper helper, String key) { super(context, key); mHelper = helper; } Loading
src/com/android/settings/notification/AlarmVolumePreferenceController.java +4 −16 Original line number Diff line number Diff line Loading @@ -20,32 +20,21 @@ import android.content.Context; 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 VolumeSeekBarPreferenceController { private static final String KEY_ALARM_VOLUME = "alarm_volume"; private AudioHelper mHelper; public AlarmVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) { this(context, callback, lifecycle, new AudioHelper(context)); } @VisibleForTesting AlarmVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle, AudioHelper helper) { super(context, callback, lifecycle); mHelper = helper; public AlarmVolumePreferenceController(Context context) { super(context, KEY_ALARM_VOLUME); } @Override public boolean isAvailable() { public int getAvailabilityStatus() { return mContext.getResources().getBoolean(R.bool.config_show_alarm_volume) && !mHelper.isSingleVolume(); && !mHelper.isSingleVolume() ? AVAILABLE : DISABLED_UNSUPPORTED; } @Override Loading @@ -62,5 +51,4 @@ public class AlarmVolumePreferenceController extends public int getMuteIcon() { return com.android.internal.R.drawable.ic_audio_alarm_mute; } }
src/com/android/settings/notification/AudioHelper.java +24 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.settings.notification; import android.annotation.UserIdInt; import android.content.Context; import android.media.AudioManager; import android.media.AudioSystem; import android.os.UserHandle; import android.os.UserManager; Loading @@ -29,9 +30,11 @@ import com.android.settings.Utils; public class AudioHelper { private Context mContext; private AudioManager mAudioManager; public AudioHelper(Context context) { mContext = context; mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE); } public boolean isSingleVolume() { Loading @@ -49,4 +52,25 @@ public class AudioHelper { public Context createPackageContextAsUser(@UserIdInt int profileId) { return Utils.createPackageContextAsUser(mContext, profileId); } public int getRingerModeInternal() { return mAudioManager.getRingerModeInternal(); } public int getLastAudibleStreamVolume(int stream) { return mAudioManager.getLastAudibleStreamVolume(stream); } public int getStreamVolume(int stream) { return mAudioManager.getStreamVolume(stream); } public boolean setStreamVolume(int stream, int volume) { mAudioManager.setStreamVolume(stream, volume, 0); return true; } public int getMaxVolume(int stream) { return mAudioManager.getStreamMaxVolume(stream); } }
src/com/android/settings/notification/MediaVolumePreferenceController.java +6 −5 Original line number Diff line number Diff line Loading @@ -27,13 +27,15 @@ public class MediaVolumePreferenceController extends private static final String KEY_MEDIA_VOLUME = "media_volume"; public MediaVolumePreferenceController(Context context, Callback callback, Lifecycle lifecycle) { super(context, callback, lifecycle); public MediaVolumePreferenceController(Context context) { super(context, KEY_MEDIA_VOLUME); } @Override public boolean isAvailable() { return mContext.getResources().getBoolean(R.bool.config_show_media_volume); public int getAvailabilityStatus() { return mContext.getResources().getBoolean(R.bool.config_show_media_volume) ? AVAILABLE : DISABLED_UNSUPPORTED; } @Override Loading @@ -50,5 +52,4 @@ public class MediaVolumePreferenceController extends public int getMuteIcon() { return com.android.internal.R.drawable.ic_audio_media_mute; } }