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

Commit 85f0c655 authored by Joseph Vincent's avatar Joseph Vincent Committed by Android (Google) Code Review
Browse files

Merge "Show customized message for private space lock setup screen" into main

parents 0fa75c4e 2d7985fb
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1310,6 +1310,10 @@
    <string name="privatespace_retry_signin_title">Sign in to set up Private Space</string>
    <!-- Summary for the Private Space account login error screen. [CHAR LIMIT=NONE] -->
    <string name="privatespace_retry_summary">You need to sign in to an account to set up Private Space</string>
    <!-- private space lock setup screen title. This title is asking the user to choose a type of screen lock (such as a pattern, PIN, or password) that they need to enter to unlock private space. [CHAR LIMIT=60] -->
    <string name="private_space_lock_setup_title">Choose a lock for your private space</string>
    <!-- private space lock setup screen description [CHAR LIMIT=NONE] -->
    <string name="private_space_lock_setup_description">You can unlock your private space using your fingerprint. For security, this option requires a backup lock.</string>
    <!-- TODO(b/309950257): Remove below strings once QSTIle fulfillment is complete. -->
    <!-- Header in hide Private Space settings page to unhide Private Space. [CHAR LIMIT=90] -->
@@ -1323,7 +1327,6 @@
    <!-- Note in hide Private Space settings page to inform that this is a development feature. [CHAR LIMIT=NONE] -->
    <string name="privatespace_development_note">Note to Googlers: The development of this feature is still in progress</string>
    <!-- Text shown when "Add fingerprint" button is disabled -->
    <string name="fingerprint_add_max">You can add up to <xliff:g id="count" example="5">%d</xliff:g> fingerprints</string>
    <!-- Text shown when users has enrolled a maximum number of fingerprints [CHAR LIMIT=NONE] -->
+34 −11
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROF

import static com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment.RESULT_FINISHED;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CALLER_APP_NAME;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_IS_CALLING_APP_ADMIN;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -86,6 +88,10 @@ import com.android.settingslib.widget.FooterPreference;

import com.google.android.setupcompat.util.WizardManagerHelper;

/**
 * Activity class that provides a generic implementation for displaying options to choose a lock
 * type, either for setting up a new lock or updating an existing lock.
 */
public class ChooseLockGeneric extends SettingsActivity {
    public static final String CONFIRM_CREDENTIALS = "confirm_credentials";

@@ -194,6 +200,8 @@ public class ChooseLockGeneric extends SettingsActivity {
        protected boolean mForBiometrics = false;

        private boolean mOnlyEnforceDevicePasswordRequirement = false;
        private int mExtraLockScreenTitleResId;
        private int mExtraLockScreenDescriptionResId;

        @Override
        public int getMetricsCategory() {
@@ -242,6 +250,10 @@ public class ChooseLockGeneric extends SettingsActivity {
            mForBiometrics = intent.getBooleanExtra(
                    ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, false);

            mExtraLockScreenTitleResId = intent.getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, -1);
            mExtraLockScreenDescriptionResId =
                    intent.getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION, -1);

            mRequestedMinComplexity = intent.getIntExtra(
                    EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_NONE);
            mOnlyEnforceDevicePasswordRequirement = intent.getBooleanExtra(
@@ -343,13 +355,19 @@ public class ChooseLockGeneric extends SettingsActivity {
                if (updateExistingLock) {
                    getActivity().setTitle(mDpm.getResources().getString(
                            LOCK_SETTINGS_UPDATE_PROFILE_LOCK_TITLE,
                            () -> getString(
                                    R.string.lock_settings_picker_update_profile_lock_title)));
                            () -> getString(mExtraLockScreenTitleResId != -1
                                    ? mExtraLockScreenTitleResId
                                    : R.string.lock_settings_picker_update_profile_lock_title)));
                } else {
                    getActivity().setTitle(mDpm.getResources().getString(
                            LOCK_SETTINGS_NEW_PROFILE_LOCK_TITLE,
                            () -> getString(R.string.lock_settings_picker_new_profile_lock_title)));
                            () -> getString(mExtraLockScreenTitleResId != -1
                                    ? mExtraLockScreenTitleResId
                                    : R.string.lock_settings_picker_new_profile_lock_title)));
                }
            } else if (mExtraLockScreenTitleResId != -1) {
                // Show customized screen lock title if it is passed as an extra in the intent.
                getActivity().setTitle(mExtraLockScreenTitleResId);
            } else {
                updateExistingLock = mLockPatternUtils.isSecure(mUserId);
                if (updateExistingLock) {
@@ -377,7 +395,16 @@ public class ChooseLockGeneric extends SettingsActivity {
            setHeaderView(R.layout.choose_lock_generic_biometric_header);
            TextView textView = getHeaderView().findViewById(R.id.biometric_header_description);

            if (mForFingerprint) {
            if (mIsManagedProfile) {
                textView.setText(mDpm.getResources().getString(
                        WORK_PROFILE_SCREEN_LOCK_SETUP_MESSAGE,
                        () -> getString(mExtraLockScreenDescriptionResId != -1
                                ? mExtraLockScreenDescriptionResId
                                : R.string.lock_settings_picker_profile_message)));
            } else if (mExtraLockScreenDescriptionResId != -1) {
                // Show customized description in screen lock if passed as an extra in the intent.
                textView.setText(mExtraLockScreenDescriptionResId);
            } else if (mForFingerprint) {
                if (mIsSetNewPassword) {
                    textView.setText(R.string.fingerprint_unlock_title);
                } else {
@@ -395,16 +422,10 @@ public class ChooseLockGeneric extends SettingsActivity {
                } else {
                    textView.setText(R.string.lock_settings_picker_biometric_message);
                }
            } else {
                if (mIsManagedProfile) {
                    textView.setText(mDpm.getResources().getString(
                            WORK_PROFILE_SCREEN_LOCK_SETUP_MESSAGE,
                            () -> getString(R.string.lock_settings_picker_profile_message)));
            } else {
                textView.setText("");
            }
        }
        }

        @Override
        public boolean onPreferenceTreeClick(Preference preference) {
@@ -426,6 +447,8 @@ public class ChooseLockGeneric extends SettingsActivity {
                }
                // Forward the target user id to  ChooseLockGeneric.
                chooseLockGenericIntent.putExtra(Intent.EXTRA_USER_ID, mUserId);
                chooseLockGenericIntent.putExtra(
                        EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, mExtraLockScreenTitleResId);
                chooseLockGenericIntent.putExtra(CONFIRM_CREDENTIALS, !mPasswordConfirmed);
                chooseLockGenericIntent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY,
                        mRequestedMinComplexity);
+8 −0
Original line number Diff line number Diff line
@@ -118,6 +118,14 @@ public final class ChooseLockSettingsHelper {
    public static final String EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY =
            "device_password_requirement_only";

    /** Intent extra for passing the screen title resource ID to show in the set lock screen. */
    public static final String EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE =
            "choose_lock_setup_screen_title";

    /** Intent extra for passing the description resource ID to show in the set lock screen. */
    public static final String EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION =
            "choose_lock_setup_screen_description";

    @VisibleForTesting @NonNull LockPatternUtils mLockPatternUtils;
    @NonNull private final Activity mActivity;
    @Nullable private final Fragment mFragment;
+6 −0
Original line number Diff line number Diff line
@@ -24,6 +24,8 @@ import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE;

import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CALLER_APP_NAME;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_IS_CALLING_APP_ADMIN;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -126,6 +128,10 @@ public class SetNewPasswordActivity extends Activity implements SetNewPasswordCo
                : new Intent(this, ChooseLockGeneric.class);
        intent.setAction(mNewPasswordAction);
        intent.putExtras(chooseLockFingerprintExtras);
        intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
                getIntent().getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, -1));
        intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION,
                getIntent().getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION, -1));
        if (mCallerAppName != null) {
            intent.putExtra(EXTRA_KEY_CALLER_APP_NAME, mCallerAppName);
        }
+8 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_LOW;

import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.ACCOUNT_LOGIN_ACTION;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.EXTRA_ACTION_TYPE;
import static com.android.settings.privatespace.PrivateSpaceSetupActivity.SET_LOCK_ACTION;
@@ -34,6 +36,7 @@ import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;

import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.overlay.FeatureFactory;

@@ -77,6 +80,11 @@ public class PrivateProfileContextHelperActivity extends FragmentActivity {
    private void createPrivateSpaceLock() {
        final Intent intent = new Intent(ACTION_SET_NEW_PASSWORD);
        intent.putExtra(EXTRA_PASSWORD_COMPLEXITY, PASSWORD_COMPLEXITY_LOW);
        intent.putExtra(
                EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, R.string.private_space_lock_setup_title);
        intent.putExtra(
                EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION,
                R.string.private_space_lock_setup_description);
        mVerifyDeviceLock.launch(intent);
    }

Loading