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

Commit b00ff01f authored by Ricky Wai's avatar Ricky Wai Committed by Android (Google) Code Review
Browse files

Merge "Fix SystemUI crash for work challenge" into nyc-dev

parents dc63f7c6 a8c37a18
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -1843,13 +1843,14 @@ public abstract class BaseStatusBar extends SystemUI implements
                                            .getIdentifier();
                                    if (mLockPatternUtils.isSeparateProfileChallengeEnabled(userId)
                                            && mKeyguardManager.isDeviceLocked(userId)) {
                                        if (startWorkChallengeIfNecessary(userId,
                                                intent.getIntentSender(), notificationKey)) {
                                            // Show work challenge, do not run pendingintent and
                                            // remove notification
                                        startWorkChallenge(userId, intent.getIntentSender(),
                                                notificationKey);
                                            return;
                                        }
                                    }
                                }
                                try {
                                    intent.send(null, 0, null, null, null, null,
                                            getActivityOptions());
@@ -1885,21 +1886,25 @@ public abstract class BaseStatusBar extends SystemUI implements
            }, afterKeyguardGone);
        }

        public void startWorkChallenge(int userId, IntentSender intendSender,
        public boolean startWorkChallengeIfNecessary(int userId, IntentSender intendSender,
                String notificationKey) {
            final Intent newIntent = mKeyguardManager.createConfirmDeviceCredentialIntent(null,
                    null, userId);
            if (newIntent == null) {
                return false;
            }
            final Intent callBackIntent = new Intent(
                    WORK_CHALLENGE_UNLOCKED_NOTIFICATION_ACTION);
            callBackIntent.putExtra(Intent.EXTRA_INTENT, intendSender);
            callBackIntent.putExtra(Intent.EXTRA_INDEX, notificationKey);
            callBackIntent.setPackage(mContext.getPackageName());

            final Intent newIntent = mKeyguardManager.createConfirmDeviceCredentialIntent(null,
                    null, userId);
            newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            newIntent.putExtra(Intent.EXTRA_INTENT, PendingIntent
                    .getBroadcast(mContext, 0, callBackIntent, 0).getIntentSender());
            mContext.startActivity(newIntent);
            return true;
        }

        public void register(ExpandableNotificationRow row, StatusBarNotification sbn) {