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

Commit f0a60dd2 authored by Jason Monk's avatar Jason Monk
Browse files

Don't allow do not disturb when volume restricted

Bug: 21642285
Change-Id: I8e31f809506b48855eb90c67727c026deb120af5
parent 2b61c6b1
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -28,6 +28,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View;
import android.view.View.OnAttachStateChangeListener;
import android.view.View.OnAttachStateChangeListener;
import android.view.ViewGroup;
import android.view.ViewGroup;
import android.widget.Toast;


import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsLogger;
import com.android.systemui.Prefs;
import com.android.systemui.Prefs;
@@ -98,6 +99,14 @@ public class DndTile extends QSTile<QSTile.BooleanState> {


    @Override
    @Override
    public void handleClick() {
    public void handleClick() {
        if (mController.isVolumeRestricted()) {
            // Collapse the panels, so the user can see the toast.
            mHost.collapsePanels();
            Toast.makeText(mContext, mContext.getString(
                    com.android.internal.R.string.error_message_change_not_allowed),
                    Toast.LENGTH_LONG).show();
            return;
        }
        mDisable.setAllowAnimation(true);
        mDisable.setAllowAnimation(true);
        mDisableTotalSilence.setAllowAnimation(true);
        mDisableTotalSilence.setAllowAnimation(true);
        MetricsLogger.action(mContext, getMetricsCategory(), !mState.value);
        MetricsLogger.action(mContext, getMetricsCategory(), !mState.value);
+1 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ public interface ZenModeController {
    ComponentName getEffectsSuppressor();
    ComponentName getEffectsSuppressor();
    boolean isCountdownConditionSupported();
    boolean isCountdownConditionSupported();
    int getCurrentUser();
    int getCurrentUser();
    boolean isVolumeRestricted();


    public static class Callback {
    public static class Callback {
        public void onZenChanged(int zen) {}
        public void onZenChanged(int zen) {}
+9 −0
Original line number Original line Diff line number Diff line
@@ -29,6 +29,7 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.net.Uri;
import android.os.Handler;
import android.os.Handler;
import android.os.UserHandle;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings.Global;
import android.provider.Settings.Global;
import android.provider.Settings.Secure;
import android.provider.Settings.Secure;
import android.service.notification.Condition;
import android.service.notification.Condition;
@@ -57,6 +58,7 @@ public class ZenModeControllerImpl implements ZenModeController {
    private final LinkedHashMap<Uri, Condition> mConditions = new LinkedHashMap<Uri, Condition>();
    private final LinkedHashMap<Uri, Condition> mConditions = new LinkedHashMap<Uri, Condition>();
    private final AlarmManager mAlarmManager;
    private final AlarmManager mAlarmManager;
    private final SetupObserver mSetupObserver;
    private final SetupObserver mSetupObserver;
    private final UserManager mUserManager;


    private int mUserId;
    private int mUserId;
    private boolean mRequesting;
    private boolean mRequesting;
@@ -84,6 +86,13 @@ public class ZenModeControllerImpl implements ZenModeController {
        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        mAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        mSetupObserver = new SetupObserver(handler);
        mSetupObserver = new SetupObserver(handler);
        mSetupObserver.register();
        mSetupObserver.register();
        mUserManager = context.getSystemService(UserManager.class);
    }

    @Override
    public boolean isVolumeRestricted() {
        return mUserManager.hasUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME,
                new UserHandle(mUserId));
    }
    }


    @Override
    @Override