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

Commit a8af51b2 authored by Jason Monk's avatar Jason Monk Committed by Android (Google) Code Review
Browse files

Merge "Handle adjust volume user restriction" into mnc-dev

parents a2bd2eac 72965ad5
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.Vibrator;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
@@ -81,6 +82,15 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
    private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications";
    private static final String KEY_NOTIFICATION_ACCESS = "manage_notification_access";
    private static final String KEY_ZEN_ACCESS = "manage_zen_access";
    private static final String KEY_ZEN_MODE = "zen_mode";

    private static final String[] RESTRICTED_KEYS = {
        KEY_MEDIA_VOLUME,
        KEY_ALARM_VOLUME,
        KEY_RING_VOLUME,
        KEY_ZEN_ACCESS,
        KEY_ZEN_MODE,
    };

    private static final int SAMPLE_CUTOFF = 2000;  // manually cap sample playback at 2 seconds

@@ -109,6 +119,8 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
    private ComponentName mSuppressor;
    private int mRingerMode = -1;

    private UserManager mUserManager;

    @Override
    protected int getMetricsCategory() {
        return MetricsLogger.NOTIFICATION;
@@ -119,6 +131,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
        super.onCreate(savedInstanceState);
        mContext = getActivity();
        mPM = mContext.getPackageManager();
        mUserManager = UserManager.get(getContext());
        mVoiceCapable = Utils.isVoiceCapable(mContext);
        mSecure = new LockPatternUtils(getActivity()).isSecure(UserHandle.myUserId());

@@ -175,6 +188,13 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
        for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
            volumePref.onActivityResume();
        }
        boolean isRestricted = mUserManager.hasUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME);
        for (String key : RESTRICTED_KEYS) {
            Preference pref = findPreference(key);
            if (pref != null) {
                pref.setEnabled(!isRestricted);
            }
        }
    }

    @Override
+4 −0
Original line number Diff line number Diff line
@@ -139,6 +139,10 @@ public class VolumeSeekBarPreference extends SeekBarPreference
        updateIconView();
        mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
        updateSuppressionText();
        if (!isEnabled()) {
            mSeekBar.setEnabled(false);
            mVolumizer.stop();
        }
    }

    // during initialization, this preference is the SeekBar listener
+10 −2
Original line number Diff line number Diff line
@@ -22,16 +22,17 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.service.notification.ZenModeConfig;
import android.util.Log;

import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.RestrictedSettingsFragment;

import java.util.Objects;

abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
abstract public class ZenModeSettingsBase extends RestrictedSettingsFragment {
    protected static final String TAG = "ZenModeSettings";
    protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

@@ -45,6 +46,10 @@ abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
    abstract protected void onZenModeChanged();
    abstract protected void onZenModeConfigChanged();

    public ZenModeSettingsBase() {
        super(UserManager.DISALLOW_ADJUST_VOLUME);
    }

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
@@ -60,6 +65,9 @@ abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
        updateZenMode(true /*fireChanged*/);
        updateZenModeConfig(true /*fireChanged*/);
        mSettingsObserver.register();
        if (isUiRestricted()) {
            finish();
        }
    }

    @Override