fix QuickUnlock with Unicode characters like emojis (length correction was incorrect or misleading), fixes #161
This commit is contained in:
@@ -340,8 +340,13 @@ namespace keepass2android
|
||||
{
|
||||
KcpPassword kcpPassword = (KcpPassword) App.Kp2a.GetDb().KpDatabase.MasterKey.GetUserKey(typeof (KcpPassword));
|
||||
String password = kcpPassword.Password.ReadString();
|
||||
String expectedPasswordPart = password.Substring(Math.Max(0, password.Length - _quickUnlockLength),
|
||||
Math.Min(password.Length, _quickUnlockLength));
|
||||
|
||||
var passwordStringInfo = new System.Globalization.StringInfo(password);
|
||||
|
||||
int passwordLength = passwordStringInfo.LengthInTextElements;
|
||||
|
||||
String expectedPasswordPart = passwordStringInfo.SubstringByTextElements(Math.Max(0, passwordLength - _quickUnlockLength),
|
||||
Math.Min(passwordLength, _quickUnlockLength));
|
||||
return expectedPasswordPart;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user