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

Commit 92cb37a0 authored by Jorim Jaggi's avatar Jorim Jaggi Committed by Android (Google) Code Review
Browse files

Merge "Start all resolver activities after keyguard is gone" into lmp-dev

parents ff56885d 85dc23cc
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ import com.android.systemui.statusbar.NotificationData.Entry;
import com.android.systemui.statusbar.phone.KeyguardTouchDelegate;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.policy.HeadsUpNotificationView;
import com.android.systemui.statusbar.policy.PreviewInflater;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;

import java.util.ArrayList;
@@ -260,10 +261,12 @@ public abstract class BaseStatusBar extends SystemUI implements
            final boolean isActivity = pendingIntent.isActivity();
            if (isActivity) {
                final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
                final boolean afterKeyguardGone = PreviewInflater.wouldLaunchResolverActivity(
                        mContext, pendingIntent.getIntent(), mCurrentUserId);
                dismissKeyguardThenExecute(new OnDismissAction() {
                    @Override
                    public boolean onDismiss() {
                        if (keyguardShowing) {
                        if (keyguardShowing && !afterKeyguardGone) {
                            try {
                                ActivityManagerNative.getDefault()
                                        .keyguardWaitingForActivityDrawn();
@@ -277,7 +280,7 @@ public abstract class BaseStatusBar extends SystemUI implements
                        }

                        boolean handled = superOnClickHandler(view, pendingIntent, fillInIntent);
                        overrideActivityPendingAppTransition(keyguardShowing);
                        overrideActivityPendingAppTransition(keyguardShowing && !afterKeyguardGone);

                        // close the shade if it was open
                        if (handled) {
@@ -287,7 +290,7 @@ public abstract class BaseStatusBar extends SystemUI implements
                        // Wait for activity start.
                        return handled;
                    }
                }, false /* afterKeyguardGone */);
                }, afterKeyguardGone);
                return true;
            } else {
                return super.onClickHandler(view, pendingIntent, fillInIntent);
@@ -1440,6 +1443,9 @@ public abstract class BaseStatusBar extends SystemUI implements

        public void onClick(final View v) {
            final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
            final boolean afterKeyguardGone = mIntent.isActivity()
                    && PreviewInflater.wouldLaunchResolverActivity(mContext, mIntent.getIntent(),
                            mCurrentUserId);
            dismissKeyguardThenExecute(new OnDismissAction() {
                public boolean onDismiss() {
                    if (mIsHeadsUp) {
@@ -1448,7 +1454,7 @@ public abstract class BaseStatusBar extends SystemUI implements
                    AsyncTask.execute(new Runnable() {
                        @Override
                        public void run() {
                            if (keyguardShowing) {
                            if (keyguardShowing && !afterKeyguardGone) {
                                try {
                                    ActivityManagerNative.getDefault()
                                            .keyguardWaitingForActivityDrawn();
@@ -1472,7 +1478,8 @@ public abstract class BaseStatusBar extends SystemUI implements
                                    // TODO: Dismiss Keyguard.
                                }
                                if (mIntent.isActivity()) {
                                    overrideActivityPendingAppTransition(keyguardShowing);
                                    overrideActivityPendingAppTransition(keyguardShowing
                                            && !afterKeyguardGone);
                                }
                            }

@@ -1490,7 +1497,7 @@ public abstract class BaseStatusBar extends SystemUI implements

                    return mIntent != null && mIntent.isActivity();
                }
            }, false /* afterKeyguardGone */);
            }, afterKeyguardGone);
        }
    }

+1 −1
Original line number Diff line number Diff line
@@ -24,5 +24,5 @@ import android.content.Intent;
 * Keyguard.
 */
public interface ActivityStarter {
    public void startActivity(Intent intent, boolean dismissShade, boolean afterKeyguardGone);
    public void startActivity(Intent intent, boolean dismissShade);
}
+4 −5
Original line number Diff line number Diff line
@@ -315,15 +315,15 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
    public void launchCamera() {
        mFlashlightController.killFlashlight();
        Intent intent = getCameraIntent();
        boolean wouldLaunchResolverActivity = mPreviewInflater.wouldLaunchResolverActivity(intent);
        boolean wouldLaunchResolverActivity = PreviewInflater.wouldLaunchResolverActivity(
                mContext, intent, mLockPatternUtils.getCurrentUser());
        if (intent == SECURE_CAMERA_INTENT && !wouldLaunchResolverActivity) {
            mContext.startActivityAsUser(intent, UserHandle.CURRENT);
        } else {

            // We need to delay starting the activity because ResolverActivity finishes itself if
            // launched behind lockscreen.
            mActivityStarter.startActivity(intent, false /* dismissShade */,
                    wouldLaunchResolverActivity /* afterKeyguardGone */);
            mActivityStarter.startActivity(intent, false /* dismissShade */);
        }
    }

@@ -337,8 +337,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
                }
            });
        } else {
            mActivityStarter.startActivity(PHONE_INTENT, false /* dismissShade */,
                    mPreviewInflater.wouldLaunchResolverActivity(PHONE_INTENT));
            mActivityStarter.startActivity(PHONE_INTENT, false /* dismissShade */);
        }
    }

+7 −5
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
import com.android.systemui.statusbar.policy.LocationControllerImpl;
import com.android.systemui.statusbar.policy.NetworkControllerImpl;
import com.android.systemui.statusbar.policy.NextAlarmController;
import com.android.systemui.statusbar.policy.PreviewInflater;
import com.android.systemui.statusbar.policy.RotationLockControllerImpl;
import com.android.systemui.statusbar.policy.SecurityControllerImpl;
import com.android.systemui.statusbar.policy.UserInfoController;
@@ -2070,8 +2071,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
    }

    @Override
    public void startActivity(Intent intent, boolean dismissShade, boolean afterKeyguardGone) {
        startActivityDismissingKeyguard(intent, false, dismissShade, afterKeyguardGone);
    public void startActivity(Intent intent, boolean dismissShade) {
        startActivityDismissingKeyguard(intent, false, dismissShade);
    }

    public ScrimController getScrimController() {
@@ -2960,9 +2961,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
    }

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

        final boolean afterKeyguardGone = PreviewInflater.wouldLaunchResolverActivity(
                mContext, intent, mCurrentUserId);
        final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing();
        dismissKeyguardThenExecute(new OnDismissAction() {
            @Override
@@ -3311,8 +3314,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
    }

    private void handleStartSettingsActivity(Intent intent, boolean onlyProvisioned) {
        startActivityDismissingKeyguard(intent, onlyProvisioned, true /* dismissShade */,
                false /* afterKeyguardGone */);
        startActivityDismissingKeyguard(intent, onlyProvisioned, true /* dismissShade */);
    }

    private static class FastColorDrawable extends Drawable {
+3 −4
Original line number Diff line number Diff line
@@ -497,20 +497,19 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL
        } else if (v == mAlarmStatus && mNextAlarm != null) {
            PendingIntent showIntent = mNextAlarm.getShowIntent();
            if (showIntent != null && showIntent.isActivity()) {
                mActivityStarter.startActivity(showIntent.getIntent(), true /* dismissShade */,
                        false /* afterKeyguardGone */);
                mActivityStarter.startActivity(showIntent.getIntent(), true /* dismissShade */);
            }
        }
    }

    private void startSettingsActivity() {
        mActivityStarter.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS),
                true /* dismissShade */, false /* afterKeyguardGone */);
                true /* dismissShade */);
    }

    private void startBatteryActivity() {
        mActivityStarter.startActivity(new Intent(Intent.ACTION_POWER_USAGE_SUMMARY),
                true /* dismissShade */, false /* afterKeyguardGone */);
                true /* dismissShade */);
    }

    public void setQSPanel(QSPanel qsp) {
Loading