Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4ef7b5f9 authored by Julia Reynolds's avatar Julia Reynolds Committed by Android (Google) Code Review
Browse files

Merge "Make volume sliders sliceable" into pi-dev

parents 3ac16896 56063797
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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 -->
@@ -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 -->
@@ -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 -->
@@ -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 -->
+7 −5
Original line number Diff line number Diff line
@@ -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;

@@ -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;
    }

+4 −16
Original line number Diff line number Diff line
@@ -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
@@ -62,5 +51,4 @@ public class AlarmVolumePreferenceController extends
    public int getMuteIcon() {
        return com.android.internal.R.drawable.ic_audio_alarm_mute;
    }

}
+24 −0
Original line number Diff line number Diff line
@@ -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;
@@ -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() {
@@ -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);
    }
}
+6 −5
Original line number Diff line number Diff line
@@ -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
@@ -50,5 +52,4 @@ public class MediaVolumePreferenceController extends
    public int getMuteIcon() {
        return com.android.internal.R.drawable.ic_audio_media_mute;
    }

}
Loading