clearup yubikey reading on ios

This commit is contained in:
Kyle Spearrin 2018-05-24 15:34:09 -04:00
parent d3003efe72
commit d3646e10a5
4 changed files with 24 additions and 8 deletions

View file

@ -1590,6 +1590,15 @@ namespace Bit.App.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to Hold your Yubikey near the top of the device..
/// </summary>
public static string HoldYubikeyNearTop {
get {
return ResourceManager.GetString("HoldYubikeyNearTop", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Host. /// Looks up a localized string similar to Host.
/// </summary> /// </summary>

View file

@ -1293,4 +1293,7 @@
<value>Organization</value> <value>Organization</value>
<comment>An entity of multiple related people (ex. a team or business organization).</comment> <comment>An entity of multiple related people (ex. a team or business organization).</comment>
</data> </data>
<data name="HoldYubikeyNearTop" xml:space="preserve">
<value>Hold your Yubikey near the top of the device.</value>
</data>
</root> </root>

View file

@ -21,6 +21,7 @@ using FFImageLoading.Forms.Touch;
using SimpleInjector; using SimpleInjector;
using XLabs.Ioc.SimpleInjectorContainer; using XLabs.Ioc.SimpleInjectorContainer;
using CoreNFC; using CoreNFC;
using Bit.App.Resources;
namespace Bit.iOS namespace Bit.iOS
{ {
@ -120,21 +121,26 @@ namespace Bit.iOS
if(listen) if(listen)
{ {
var del = new NFCReaderDelegate((success, message) => _nfcSession?.InvalidateSession();
_nfcSession?.Dispose();
_nfcSession = null;
_nfcSession = new NFCNdefReaderSession(new NFCReaderDelegate((success, message) =>
{ {
Debug.WriteLine((success ? "SUCCESS! " : "ERROR! ") + message);
if(success) if(success)
{
Device.BeginInvokeOnMainThread(() =>
{ {
MessagingCenter.Send(Xamarin.Forms.Application.Current, "GotYubiKeyOTP", message); MessagingCenter.Send(Xamarin.Forms.Application.Current, "GotYubiKeyOTP", message);
}
}); });
}
_nfcSession = new NFCNdefReaderSession(del, null, true); }), null, true);
_nfcSession.AlertMessage = AppResources.HoldYubikeyNearTop;
_nfcSession.BeginSession(); _nfcSession.BeginSession();
} }
else else
{ {
_nfcSession?.InvalidateSession(); _nfcSession?.InvalidateSession();
_nfcSession?.Dispose();
_nfcSession = null; _nfcSession = null;
} }
}); });

View file

@ -34,12 +34,10 @@ namespace Bit.iOS
foreach(var result in results) foreach(var result in results)
{ {
Debug.WriteLine("READ TAG: " + result);
var matches = _otpPattern.Matches(result); var matches = _otpPattern.Matches(result);
if(matches.Count > 0 && matches[0].Groups.Count > 1) if(matches.Count > 0 && matches[0].Groups.Count > 1)
{ {
var otp = matches[0].Groups[1].ToString(); var otp = matches[0].Groups[1].ToString();
Debug.WriteLine("TAG IS MATCH: " + otp);
_callback.Invoke(true, otp); _callback.Invoke(true, otp);
return; return;
} }