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

Commit 6655e1b6 authored by Daniel U's avatar Daniel U
Browse files

Hint user that fingerprint cannot unlock FBE keys

Show a hint text to user noting that pattern/PIN/password is
required when decrypting the credential based storage when file
based encryption is turned on.

The hint text is the same as that of the device unlock screen after
device reboot.

Bug: 27964055
Change-Id: I0d5a493bab69eae5ce4742bd07d4851387863cac
parent 77359ad7
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -59,9 +59,15 @@
            android:layout_marginEnd="16dp"
            android:layout_marginTop="16dp"/>

        <View android:layout_width="match_parent"
        <TextView
            android:id="@+id/strongAuthRequiredText"
            style="@style/TextAppearance.ConfirmDeviceCredentialsStrongAuthRequiredText"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>
            android:layout_weight="1"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:gravity="center"/>

        <EditText
            android:id="@+id/password_entry"
+8 −2
Original line number Diff line number Diff line
@@ -59,9 +59,15 @@
            android:layout_marginEnd="16dp"
            android:layout_marginTop="16dp"/>

        <View android:layout_width="match_parent"
        <TextView
            android:id="@+id/strongAuthRequiredText"
            style="@style/TextAppearance.ConfirmDeviceCredentialsStrongAuthRequiredText"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="0.5"/>
            android:layout_weight="0.5"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:gravity="center"/>

        <com.android.internal.widget.LockPatternView
            android:id="@+id/lockPattern"
+7 −0
Original line number Diff line number Diff line
@@ -3089,6 +3089,13 @@
    <!-- Message to be used to explain the user that he needs to enter his work password to continue a
         particular operation. [CHAR LIMIT=70]-->
    <string name="lockpassword_confirm_your_password_generic_profile">Enter your work password to continue</string>
    <!-- An explanation text that the pattern needs to be solved since the device has just been restarted. [CHAR LIMIT=80] -->
    <string name="lockpassword_strong_auth_required_reason_restart_pattern">Pattern required after device restarts</string>
    <!-- An explanation text that the pin needs to be entered since the device has just been restarted. [CHAR LIMIT=80] -->
    <string name="lockpassword_strong_auth_required_reason_restart_pin">PIN required after device restarts</string>
    <!-- An explanation text that the password needs to be entered since the device has just been restarted. [CHAR LIMIT=80] -->
    <string name="lockpassword_strong_auth_required_reason_restart_password">Password required after device restarts</string>
    <!-- Security & location settings screen, change security method screen instruction if user
         enters incorrect PIN [CHAR LIMIT=30] -->
+5 −0
Original line number Diff line number Diff line
@@ -357,6 +357,11 @@
        <item name="android:textColor">@color/warning</item>
    </style>

    <style name="TextAppearance.ConfirmDeviceCredentialsStrongAuthRequiredText"
        parent="android:TextAppearance.Material.Body1">
        <item name="android:textColor">?android:attr/textColorSecondary</item>
    </style>

    <style name="TextAppearance.Small.SwitchBar">
        <item name="android:textColor">?android:attr/textColorPrimary</item>
        <item name="android:textStyle">normal</item>
+14 −1
Original line number Diff line number Diff line
@@ -66,6 +66,7 @@ public abstract class ConfirmDeviceCredentialBaseFragment extends OptionsMenuFra
            PACKAGE + ".ConfirmCredentials.showWhenLocked";

    private FingerprintUiHelper mFingerprintHelper;
    private boolean mIsStrongAuthRequired;
    private boolean mAllowFpAuthentication;
    protected Button mCancelButton;
    protected ImageView mFingerprintIcon;
@@ -73,6 +74,7 @@ public abstract class ConfirmDeviceCredentialBaseFragment extends OptionsMenuFra
    protected int mUserId;
    protected LockPatternUtils mLockPatternUtils;
    protected TextView mErrorTextView;
    protected TextView mStrongAuthRequiredTextView;
    protected final Handler mHandler = new Handler();

    @Override
@@ -85,7 +87,9 @@ public abstract class ConfirmDeviceCredentialBaseFragment extends OptionsMenuFra
        mUserId = Utils.getUserIdFromBundle(getActivity(), intent.getExtras());
        final UserManager userManager = UserManager.get(getActivity());
        mEffectiveUserId = userManager.getCredentialOwnerProfile(mUserId);
        mAllowFpAuthentication = mAllowFpAuthentication && !isFingerprintDisabledByAdmin();
        mIsStrongAuthRequired = isStrongAuthRequired();
        mAllowFpAuthentication = mAllowFpAuthentication && !isFingerprintDisabledByAdmin()
                && !mIsStrongAuthRequired;
        mLockPatternUtils = new LockPatternUtils(getActivity());
    }

@@ -93,6 +97,11 @@ public abstract class ConfirmDeviceCredentialBaseFragment extends OptionsMenuFra
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mCancelButton = (Button) view.findViewById(R.id.cancelButton);
        if (mStrongAuthRequiredTextView != null) {
            // INIVISIBLE instead of GONE because it also acts as a weighted spacer
            mStrongAuthRequiredTextView.setVisibility(
                    mIsStrongAuthRequired ? View.VISIBLE : View.INVISIBLE);
        }
        mFingerprintIcon = (ImageView) view.findViewById(R.id.fingerprintIcon);
        mFingerprintHelper = new FingerprintUiHelper(
                mFingerprintIcon,
@@ -123,6 +132,10 @@ public abstract class ConfirmDeviceCredentialBaseFragment extends OptionsMenuFra
        return (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0;
    }

    private boolean isStrongAuthRequired() {
        return !(UserManager.get(getContext()).isUserUnlocked(mEffectiveUserId));
    }

    @Override
    public void onResume() {
        super.onResume();
Loading