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

Commit f5c06e23 authored by Adrian Roos's avatar Adrian Roos Committed by Android Git Automerger
Browse files

am c925e997: Eagerly dismiss Keyguard when launching notifications and phone

* commit 'c925e997004beccc306fa215201daa49f59174e7':
  Eagerly dismiss Keyguard when launching notifications and phone
parents a6cc9b85 4314f6d5
Loading
Loading
Loading
Loading
+11 −6
Original line number Original line Diff line number Diff line
@@ -83,6 +83,7 @@ import com.android.systemui.statusbar.phone.KeyguardTouchDelegate;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;


import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Collections;
import java.util.Locale;
import java.util.Locale;


@@ -117,6 +118,9 @@ public abstract class BaseStatusBar extends SystemUI implements
    public static final int EXPANDED_LEAVE_ALONE = -10000;
    public static final int EXPANDED_LEAVE_ALONE = -10000;
    public static final int EXPANDED_FULL_OPEN = -10001;
    public static final int EXPANDED_FULL_OPEN = -10001;


    /** If true, delays dismissing the Keyguard until the ActivityManager calls back. */
    protected static final boolean DELAY_DISMISS_TO_ACTIVITY_LAUNCH = false;

    protected CommandQueue mCommandQueue;
    protected CommandQueue mCommandQueue;
    protected IStatusBarService mBarService;
    protected IStatusBarService mBarService;
    protected H mHandler = createHandler();
    protected H mHandler = createHandler();
@@ -228,7 +232,7 @@ public abstract class BaseStatusBar extends SystemUI implements
            }
            }
            final boolean isActivity = pendingIntent.isActivity();
            final boolean isActivity = pendingIntent.isActivity();
            if (isActivity) {
            if (isActivity) {
                startNotificationActivity(new OnDismissAction() {
                dismissKeyguardThenExecute(new OnDismissAction() {
                    @Override
                    @Override
                    public boolean onDismiss() {
                    public boolean onDismiss() {
                        try {
                        try {
@@ -250,7 +254,8 @@ public abstract class BaseStatusBar extends SystemUI implements
                            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
                            animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE);
                            visibilityChanged(false);
                            visibilityChanged(false);
                        }
                        }
                        return handled; // Wait for activity start.
                        // Wait for activity start.
                        return handled && DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
                    }
                    }
                });
                });
                return true;
                return true;
@@ -479,7 +484,7 @@ public abstract class BaseStatusBar extends SystemUI implements
     * Takes the necessary steps to prepare the status bar for starting an activity, then starts it.
     * Takes the necessary steps to prepare the status bar for starting an activity, then starts it.
     * @param action A dismiss action that is called if it's safe to start the activity.
     * @param action A dismiss action that is called if it's safe to start the activity.
     */
     */
    protected void startNotificationActivity(OnDismissAction action) {
    protected void dismissKeyguardThenExecute(OnDismissAction action) {
        action.onDismiss();
        action.onDismiss();
    }
    }


@@ -1049,7 +1054,7 @@ public abstract class BaseStatusBar extends SystemUI implements
        }
        }


        public void onClick(final View v) {
        public void onClick(final View v) {
            startNotificationActivity(new OnDismissAction() {
            dismissKeyguardThenExecute(new OnDismissAction() {
                public boolean onDismiss() {
                public boolean onDismiss() {
                    try {
                    try {
                        // The intent we are sending is for the application, which
                        // The intent we are sending is for the application, which
@@ -1094,7 +1099,7 @@ public abstract class BaseStatusBar extends SystemUI implements
                    visibilityChanged(false);
                    visibilityChanged(false);


                    boolean waitForActivityLaunch = sent && mIntent.isActivity();
                    boolean waitForActivityLaunch = sent && mIntent.isActivity();
                    return waitForActivityLaunch;
                    return waitForActivityLaunch && DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
                }
                }
            });
            });
        }
        }
+18 −10
Original line number Original line Diff line number Diff line
@@ -2348,8 +2348,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
        }
        }
    };
    };


    public void startActivityDismissingKeyguard(Intent intent, boolean onlyProvisioned) {
    public void startActivityDismissingKeyguard(final Intent intent, boolean onlyProvisioned) {
        if (onlyProvisioned && !isDeviceProvisioned()) return;
        if (onlyProvisioned && !isDeviceProvisioned()) return;

        dismissKeyguardThenExecute(new OnDismissAction() {
            @Override
            public boolean onDismiss() {
                try {
                try {
                    // Dismiss the lock screen when Settings starts.
                    // Dismiss the lock screen when Settings starts.
                    ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
                    ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity();
@@ -2358,6 +2362,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
                mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
                mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
                animateCollapsePanels();
                animateCollapsePanels();

                return DELAY_DISMISS_TO_ACTIVITY_LAUNCH;
            }
        });
    }
    }


    private View.OnClickListener mClockClickListener = new View.OnClickListener() {
    private View.OnClickListener mClockClickListener = new View.OnClickListener() {
@@ -2418,7 +2426,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
    };
    };


    @Override
    @Override
    protected void startNotificationActivity(OnDismissAction action) {
    protected void dismissKeyguardThenExecute(OnDismissAction action) {
        if (mStatusBarKeyguardViewManager.isShowing()) {
        if (mStatusBarKeyguardViewManager.isShowing()) {
            mStatusBarKeyguardViewManager.dismissWithAction(action);
            mStatusBarKeyguardViewManager.dismissWithAction(action);
        } else {
        } else {