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

Commit d4c3dff6 authored by Andres Morales's avatar Andres Morales Committed by Android Git Automerger
Browse files

am 4897fa87: Merge "fix CC for work profiles" into mnc-dev

* commit '4897fa87':
  fix CC for work profiles
parents 18d86828 4897fa87
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -118,7 +118,10 @@ public final class ChooseLockSettingsHelper {
            boolean returnCredentials, boolean external, boolean hasChallenge,
            long challenge) {
        boolean launched = false;
        switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId())) {

        int effectiveUserId = Utils.getEffectiveUserId(mActivity);

        switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
            case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
                launched = launchConfirmationActivity(request, title, header, description,
                        returnCredentials || hasChallenge
+16 −10
Original line number Diff line number Diff line
@@ -28,8 +28,8 @@ import com.android.settingslib.animation.DisappearAnimationUtils;

import android.app.Fragment;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.content.Intent;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.CountDownTimer;
@@ -98,6 +98,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
        private AppearAnimationUtils mAppearAnimationUtils;
        private DisappearAnimationUtils mDisappearAnimationUtils;
        private boolean mBlockImm;
        private int mEffectiveUserId;

        // required constructor for fragments
        public ConfirmLockPasswordFragment() {
@@ -108,6 +109,8 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mLockPatternUtils = new LockPatternUtils(getActivity());
            mEffectiveUserId = Utils.getEffectiveUserId(getActivity());

            if (savedInstanceState != null) {
                mNumWrongConfirmAttempts = savedInstanceState.getInt(
                        KEY_NUM_WRONG_CONFIRM_ATTEMPTS, 0);
@@ -118,7 +121,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            final int storedQuality = mLockPatternUtils.getKeyguardStoredPasswordQuality(
                    UserHandle.myUserId());
                    mEffectiveUserId);
            View view = inflater.inflate(R.layout.confirm_lock_password, null);

            mPasswordEntry = (TextView) view.findViewById(R.id.password_entry);
@@ -238,7 +241,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
        @Override
        public void onResume() {
            super.onResume();
            long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId());
            long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId);
            if (deadline != 0) {
                handleAttemptLockout(deadline);
            } else {
@@ -314,7 +317,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
                return;
            }

            onPasswordChecked(false, intent, 0);
            onPasswordChecked(false, intent, 0, mEffectiveUserId);
        }

        private boolean isInternalActivity() {
@@ -324,11 +327,12 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
        private void startVerifyPassword(final String pin, final Intent intent) {
            long challenge = getActivity().getIntent().getLongExtra(
                    ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0);
            final int localEffectiveUserId = mEffectiveUserId;
            mPendingLockCheck = LockPatternChecker.verifyPassword(
                    mLockPatternUtils,
                    pin,
                    challenge,
                    UserHandle.myUserId(),
                    localEffectiveUserId,
                    new LockPatternChecker.OnVerifyCallback() {
                        @Override
                        public void onVerified(byte[] token, int timeoutMs) {
@@ -340,16 +344,17 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
                                        ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
                                        token);
                            }
                            onPasswordChecked(matched, intent, timeoutMs);
                            onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId);
                        }
                    });
        }

        private void startCheckPassword(final String pin, final Intent intent) {
            final int localEffectiveUserId = mEffectiveUserId;
            mPendingLockCheck = LockPatternChecker.checkPassword(
                    mLockPatternUtils,
                    pin,
                    UserHandle.myUserId(),
                    localEffectiveUserId,
                    new LockPatternChecker.OnCheckCallback() {
                        @Override
                        public void onChecked(boolean matched, int timeoutMs) {
@@ -361,7 +366,7 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
                                intent.putExtra(
                                        ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pin);
                            }
                            onPasswordChecked(matched, intent, timeoutMs);
                            onPasswordChecked(matched, intent, timeoutMs, localEffectiveUserId);
                        }
                    });
        }
@@ -384,14 +389,15 @@ public class ConfirmLockPassword extends ConfirmDeviceCredentialBaseActivity {
            }
        }

        private void onPasswordChecked(boolean matched, Intent intent, int timeoutMs) {
        private void onPasswordChecked(boolean matched, Intent intent, int timeoutMs,
                int effectiveUserId) {
            mPasswordEntryInputDisabler.setInputEnabled(true);
            if (matched) {
                startDisappearAnimation(intent);
            } else {
                if (timeoutMs > 0) {
                    long deadline = mLockPatternUtils.setLockoutAttemptDeadline(
                            UserHandle.myUserId(), timeoutMs);
                            effectiveUserId, timeoutMs);
                    handleAttemptLockout(deadline);
                } else {
                    showError(getErrorMessage());
+17 −10
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
        private AppearAnimationUtils mAppearAnimationUtils;
        private DisappearAnimationUtils mDisappearAnimationUtils;

        private int mEffectiveUserId;

        // required constructor for fragments
        public ConfirmLockPatternFragment() {

@@ -111,6 +113,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mLockPatternUtils = new LockPatternUtils(getActivity());
            mEffectiveUserId = Utils.getEffectiveUserId(getActivity());
        }

        @Override
@@ -151,7 +154,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                // on first launch, if no lock pattern is set, then finish with
                // success (don't want user to get stuck confirming something that
                // doesn't exist).
                if (!mLockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) {
                if (!mLockPatternUtils.isLockPatternEnabled(mEffectiveUserId)) {
                    getActivity().setResult(Activity.RESULT_OK);
                    getActivity().finish();
                }
@@ -203,7 +206,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
            super.onResume();

            // if the user is currently locked out, enforce it.
            long deadline = mLockPatternUtils.getLockoutAttemptDeadline(UserHandle.myUserId());
            long deadline = mLockPatternUtils.getLockoutAttemptDeadline(mEffectiveUserId);
            if (deadline != 0) {
                handleAttemptLockout(deadline);
            } else if (!mLockPatternView.isEnabled()) {
@@ -385,7 +388,7 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                    return;
                }

                onPatternChecked(pattern, false, intent, 0);
                onPatternChecked(pattern, false, intent, 0, mEffectiveUserId);
            }

            private boolean isInternalActivity() {
@@ -394,13 +397,14 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {

            private void startVerifyPattern(final List<LockPatternView.Cell> pattern,
                    final Intent intent) {
                final int localEffectiveUserId = mEffectiveUserId;
                long challenge = getActivity().getIntent().getLongExtra(
                        ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0);
                mPendingLockCheck = LockPatternChecker.verifyPattern(
                        mLockPatternUtils,
                        pattern,
                        challenge,
                        UserHandle.myUserId(),
                        localEffectiveUserId,
                        new LockPatternChecker.OnVerifyCallback() {
                            @Override
                            public void onVerified(byte[] token, int timeoutMs) {
@@ -412,7 +416,8 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                                            ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
                                            token);
                                }
                                onPatternChecked(pattern, matched, intent, timeoutMs);
                                onPatternChecked(pattern,
                                        matched, intent, timeoutMs, localEffectiveUserId);
                            }
                        });
            }
@@ -420,14 +425,15 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
            private void startCheckPattern(final List<LockPatternView.Cell> pattern,
                    final Intent intent) {
                if (pattern.size() < LockPatternUtils.MIN_PATTERN_REGISTER_FAIL) {
                    onPatternChecked(pattern, false, intent, 0);
                    onPatternChecked(pattern, false, intent, 0, mEffectiveUserId);
                    return;
                }

                final int localEffectiveUserId = mEffectiveUserId;
                mPendingLockCheck = LockPatternChecker.checkPattern(
                        mLockPatternUtils,
                        pattern,
                        UserHandle.myUserId(),
                        localEffectiveUserId,
                        new LockPatternChecker.OnCheckCallback() {
                            @Override
                            public void onChecked(boolean matched, int timeoutMs) {
@@ -438,20 +444,21 @@ public class ConfirmLockPattern extends ConfirmDeviceCredentialBaseActivity {
                                    intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD,
                                                    LockPatternUtils.patternToString(pattern));
                                }
                                onPatternChecked(pattern, matched, intent, timeoutMs);
                                onPatternChecked(pattern, matched, intent, timeoutMs,
                                        localEffectiveUserId);
                            }
                        });
            }

            private void onPatternChecked(List<LockPatternView.Cell> pattern,
                    boolean matched, Intent intent, int timeoutMs) {
                    boolean matched, Intent intent, int timeoutMs, int effectiveUserId) {
                mLockPatternView.setEnabled(true);
                if (matched) {
                    startDisappearAnimation(intent);
                } else {
                    if (timeoutMs > 0) {
                        long deadline = mLockPatternUtils.setLockoutAttemptDeadline(
                                UserHandle.myUserId(), timeoutMs);
                                effectiveUserId, timeoutMs);
                        handleAttemptLockout(deadline);
                    } else {
                        updateStage(Stage.NeedToUnlockWrong);
+12 −1
Original line number Diff line number Diff line
@@ -1235,4 +1235,15 @@ public final class Utils {
                Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        return str;
    }

    public static int getEffectiveUserId(Context context) {
        UserManager um = UserManager.get(context);
        if (um != null) {
            return um.getCredentialOwnerProfile(UserHandle.myUserId());
        } else {
            Log.e(TAG, "Unable to acquire UserManager");
            return UserHandle.myUserId();
        }
    }
}