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

Commit be8df5ae authored by John Spurlock's avatar John Spurlock Committed by Android (Google) Code Review
Browse files

Merge "Volume: delay dismissing panel when starting settings."

parents 4b8299b8 1dad2723
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -157,5 +157,8 @@

    <!-- Doze: should the significant motion sensor be used as a tease signal? -->
    <bool name="doze_tease_on_significant_motion">true</bool>

    <!-- Volume: time to delay dismissing the volume panel after a click is performed -->
    <integer name="volume_panel_dismiss_delay">200</integer>
</resources>
+6 −6
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ public class VolumePanel extends Handler {
            synchronized (sConfirmSafeVolumeLock) {
                sConfirmSafeVolumeDialog = null;
            }
            mVolumePanel.forceTimeout();
            mVolumePanel.forceTimeout(0);
            mVolumePanel.updateStates();
        }
    }
@@ -293,7 +293,7 @@ public class VolumePanel extends Handler {
                public boolean onTouchEvent(MotionEvent event) {
                    if (isShowing() && event.getAction() == MotionEvent.ACTION_OUTSIDE &&
                            sConfirmSafeVolumeDialog == null) {
                        forceTimeout();
                        forceTimeout(0);
                        return true;
                    }
                    return false;
@@ -718,8 +718,8 @@ public class VolumePanel extends Handler {
        obtainMessage(MSG_DISPLAY_SAFE_VOLUME_WARNING, flags, 0).sendToTarget();
    }

    public void postDismiss() {
        forceTimeout();
    public void postDismiss(long delay) {
        forceTimeout(delay);
    }

    public void postLayoutDirection(int layoutDirection) {
@@ -1205,9 +1205,9 @@ public class VolumePanel extends Handler {
        sendEmptyMessage(MSG_USER_ACTIVITY);
    }

    private void forceTimeout() {
    private void forceTimeout(long delay) {
        removeMessages(MSG_TIMEOUT);
        sendEmptyMessage(MSG_TIMEOUT);
        sendEmptyMessageDelayed(MSG_TIMEOUT, delay);
    }

    public ZenModeController getZenController() {
+20 −10
Original line number Diff line number Diff line
@@ -11,12 +11,14 @@ import android.media.session.ISessionController;
import android.media.session.MediaController;
import android.media.session.MediaSessionManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Handler;
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;

import com.android.systemui.R;
import com.android.systemui.SystemUI;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.statusbar.policy.ZenModeController;
@@ -45,6 +47,7 @@ public class VolumeUI extends SystemUI {
    private static final int DEFAULT = 1;  // enabled by default

    private final Handler mHandler = new Handler();

    private AudioManager mAudioManager;
    private MediaSessionManager mMediaSessionManager;
    private VolumeController mVolumeController;
@@ -52,6 +55,7 @@ public class VolumeUI extends SystemUI {

    private VolumePanel mDialogPanel;
    private VolumePanel mPanel;
    private int mDismissDelay;

    @Override
    public void start() {
@@ -79,6 +83,7 @@ public class VolumeUI extends SystemUI {
    }

    private void initPanel() {
        mDismissDelay = mContext.getResources().getInteger(R.integer.volume_panel_dismiss_delay);
        mPanel = new VolumePanel(mContext, null, new ZenModeControllerImpl(mContext, mHandler));
        mPanel.setCallback(new VolumePanel.Callback() {
            @Override
@@ -109,7 +114,9 @@ public class VolumeUI extends SystemUI {
    private final Runnable mStartZenSettings = new Runnable() {
        @Override
        public void run() {
            mDialogPanel.postDismiss();
            AsyncTask.execute(new Runnable() {
                @Override
                public void run() {
                    try {
                        // Dismiss the lock screen when Settings starts.
                        ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
@@ -119,6 +126,9 @@ public class VolumeUI extends SystemUI {
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
                }
            });
            mDialogPanel.postDismiss(mDismissDelay);
        }
    };

    /** For now, simply host an unmodified base volume panel in this process. */
@@ -153,7 +163,7 @@ public class VolumeUI extends SystemUI {

        @Override
        public void dismiss() throws RemoteException {
            mPanel.postDismiss();
            mPanel.postDismiss(0);
        }

        @Override