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

Commit 7a56861b authored by Roman Birg's avatar Roman Birg Committed by Gerrit Code Review
Browse files

LockSettingsStorage: fallback to cm legacy gesture file



Ticket: CYNGNOS-2462
Change-Id: I8780799ae00236aa8e482c2496c07cb503d07102
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent 999439bc
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ class LockSettingsStorage {
    private static final String LOCK_PATTERN_FILE = "gatekeeper.pattern.key";
    private static final String BASE_ZERO_LOCK_PATTERN_FILE = "gatekeeper.gesture.key";
    private static final String LEGACY_LOCK_PATTERN_FILE = "gesture.key";
    private static final String CM_LEGACY_LOCK_PATTERN_FILE = "cm_gesture.key";
    private static final String LOCK_PASSWORD_FILE = "gatekeeper.password.key";
    private static final String LEGACY_LOCK_PASSWORD_FILE = "password.key";

@@ -241,6 +242,11 @@ class LockSettingsStorage {
            return new CredentialHash(stored, CredentialHash.VERSION_LEGACY);
        }

        stored = readFile(getCmLegacyLockPatternFilename(userId));
        if (stored != null && stored.length > 0) {
            return new CredentialHash(stored, CredentialHash.VERSION_LEGACY);
        }

        return null;
    }

@@ -253,7 +259,8 @@ class LockSettingsStorage {
    public boolean hasPattern(int userId) {
        return hasFile(getLockPatternFilename(userId)) ||
            hasFile(getBaseZeroLockPatternFilename(userId)) ||
            hasFile(getLegacyLockPatternFilename(userId));
            hasFile(getLegacyLockPatternFilename(userId)) ||
            hasFile(getCmLegacyLockPatternFilename(userId));
    }

    private boolean hasFile(String name) {
@@ -380,6 +387,10 @@ class LockSettingsStorage {
        return getLockCredentialFilePathForUser(userId, LEGACY_LOCK_PATTERN_FILE);
    }

    String getCmLegacyLockPatternFilename(int userId) {
        return getLockCredentialFilePathForUser(userId, CM_LEGACY_LOCK_PATTERN_FILE);
    }

    @VisibleForTesting
    String getLegacyLockPasswordFilename(int userId) {
        return getLockCredentialFilePathForUser(userId, LEGACY_LOCK_PASSWORD_FILE);