diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index 873a88d86..af2c93557 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -151,13 +151,14 @@
..\..\packages\Plugin.CurrentActivity.1.0.1\lib\MonoAndroid10\Plugin.CurrentActivity.dll
True
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\MonoAndroid\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\MonoAndroid\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\MonoAndroid\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\MonoAndroid\Plugin.Fingerprint.Abstractions.dll
+
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\MonoAndroid\Plugin.Fingerprint.Android.Samsung.dll
..\..\packages\Xam.Plugins.Settings.2.5.4\lib\MonoAndroid10\Plugin.Settings.dll
diff --git a/src/Android/MainActivity.cs b/src/Android/MainActivity.cs
index 6d34d039c..cfa25950a 100644
--- a/src/Android/MainActivity.cs
+++ b/src/Android/MainActivity.cs
@@ -5,7 +5,6 @@ using Android.Views;
using Android.OS;
using Bit.App.Abstractions;
using XLabs.Ioc;
-using Plugin.Fingerprint.Abstractions;
using Plugin.Settings.Abstractions;
using Plugin.Connectivity.Abstractions;
using Acr.UserDialogs;
@@ -68,7 +67,6 @@ namespace Bit.Android
Resolver.Resolve(),
Resolver.Resolve(),
Resolver.Resolve(),
- Resolver.Resolve(),
Resolver.Resolve(),
Resolver.Resolve(),
Resolver.Resolve(),
diff --git a/src/Android/Resources/Resource.Designer.cs b/src/Android/Resources/Resource.Designer.cs
index d34203de4..041a15faf 100644
--- a/src/Android/Resources/Resource.Designer.cs
+++ b/src/Android/Resources/Resource.Designer.cs
@@ -187,6 +187,8 @@ namespace Bit.Android
global::PCLCrypto.Resource.String.Hello = global::Bit.Android.Resource.String.Hello;
global::Plugin.Fingerprint.Resource.Drawable.fingerprint_white = global::Bit.Android.Resource.Drawable.fingerprint_white;
global::Plugin.Fingerprint.Resource.Id.fingerprint_btnCancel = global::Bit.Android.Resource.Id.fingerprint_btnCancel;
+ global::Plugin.Fingerprint.Resource.Id.fingerprint_btnFallback = global::Bit.Android.Resource.Id.fingerprint_btnFallback;
+ global::Plugin.Fingerprint.Resource.Id.fingerprint_imgFingerprint = global::Bit.Android.Resource.Id.fingerprint_imgFingerprint;
global::Plugin.Fingerprint.Resource.Id.fingerprint_txtReason = global::Bit.Android.Resource.Id.fingerprint_txtReason;
global::Plugin.Fingerprint.Resource.Layout.FingerprintDialog = global::Bit.Android.Resource.Layout.FingerprintDialog;
global::Splat.Resource.String.library_name = global::Bit.Android.Resource.String.library_name;
@@ -2800,8 +2802,8 @@ namespace Bit.Android
public partial class Id
{
- // aapt resource value: 0x7f0c00b5
- public const int action0 = 2131493045;
+ // aapt resource value: 0x7f0c00b7
+ public const int action0 = 2131493047;
// aapt resource value: 0x7f0c0062
public const int action_bar = 2131492962;
@@ -2827,8 +2829,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0063
public const int action_context_bar = 2131492963;
- // aapt resource value: 0x7f0c00b9
- public const int action_divider = 2131493049;
+ // aapt resource value: 0x7f0c00bb
+ public const int action_divider = 2131493051;
// aapt resource value: 0x7f0c0003
public const int action_menu_divider = 2131492867;
@@ -2872,26 +2874,26 @@ namespace Bit.Android
// aapt resource value: 0x7f0c004c
public const int buttonPanel = 2131492940;
- // aapt resource value: 0x7f0c0089
- public const int button_add_response = 2131493001;
+ // aapt resource value: 0x7f0c008b
+ public const int button_add_response = 2131493003;
- // aapt resource value: 0x7f0c0084
- public const int button_attachment = 2131492996;
+ // aapt resource value: 0x7f0c0086
+ public const int button_attachment = 2131492998;
- // aapt resource value: 0x7f0c008e
- public const int button_login = 2131493006;
+ // aapt resource value: 0x7f0c0090
+ public const int button_login = 2131493008;
- // aapt resource value: 0x7f0c008a
- public const int button_refresh = 2131493002;
+ // aapt resource value: 0x7f0c008c
+ public const int button_refresh = 2131493004;
- // aapt resource value: 0x7f0c0085
- public const int button_send = 2131492997;
+ // aapt resource value: 0x7f0c0087
+ public const int button_send = 2131492999;
- // aapt resource value: 0x7f0c0092
- public const int button_update = 2131493010;
+ // aapt resource value: 0x7f0c0094
+ public const int button_update = 2131493012;
- // aapt resource value: 0x7f0c00b6
- public const int cancel_action = 2131493046;
+ // aapt resource value: 0x7f0c00b8
+ public const int cancel_action = 2131493048;
// aapt resource value: 0x7f0c0033
public const int center = 2131492915;
@@ -2905,8 +2907,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0c005a
public const int checkbox = 2131492954;
- // aapt resource value: 0x7f0c00bc
- public const int chronometer = 2131493052;
+ // aapt resource value: 0x7f0c00be
+ public const int chronometer = 2131493054;
// aapt resource value: 0x7f0c003b
public const int clip_horizontal = 2131492923;
@@ -2959,8 +2961,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0024
public const int end = 2131492900;
- // aapt resource value: 0x7f0c00c1
- public const int end_padder = 2131493057;
+ // aapt resource value: 0x7f0c00c3
+ public const int end_padder = 2131493059;
// aapt resource value: 0x7f0c002b
public const int enterAlways = 2131492907;
@@ -2986,11 +2988,17 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0036
public const int fill_vertical = 2131492918;
- // aapt resource value: 0x7f0c007b
- public const int fingerprint_btnCancel = 2131492987;
+ // aapt resource value: 0x7f0c007c
+ public const int fingerprint_btnCancel = 2131492988;
+
+ // aapt resource value: 0x7f0c007d
+ public const int fingerprint_btnFallback = 2131492989;
// aapt resource value: 0x7f0c007a
- public const int fingerprint_txtReason = 2131492986;
+ public const int fingerprint_imgFingerprint = 2131492986;
+
+ // aapt resource value: 0x7f0c007b
+ public const int fingerprint_txtReason = 2131492987;
// aapt resource value: 0x7f0c0040
public const int @fixed = 2131492928;
@@ -3013,47 +3021,47 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0047
public const int image = 2131492935;
- // aapt resource value: 0x7f0c00c0
- public const int info = 2131493056;
-
- // aapt resource value: 0x7f0c0080
- public const int input_email = 2131492992;
+ // aapt resource value: 0x7f0c00c2
+ public const int info = 2131493058;
// aapt resource value: 0x7f0c0082
- public const int input_message = 2131492994;
+ public const int input_email = 2131492994;
- // aapt resource value: 0x7f0c007f
- public const int input_name = 2131492991;
-
- // aapt resource value: 0x7f0c008d
- public const int input_password = 2131493005;
+ // aapt resource value: 0x7f0c0084
+ public const int input_message = 2131492996;
// aapt resource value: 0x7f0c0081
- public const int input_subject = 2131492993;
+ public const int input_name = 2131492993;
+
+ // aapt resource value: 0x7f0c008f
+ public const int input_password = 2131493007;
+
+ // aapt resource value: 0x7f0c0083
+ public const int input_subject = 2131492995;
// aapt resource value: 0x7f0c0000
public const int item_touch_helper_previous_elevation = 2131492864;
- // aapt resource value: 0x7f0c0094
- public const int label_author = 2131493012;
-
- // aapt resource value: 0x7f0c0095
- public const int label_date = 2131493013;
-
- // aapt resource value: 0x7f0c0087
- public const int label_last_updated = 2131492999;
-
- // aapt resource value: 0x7f0c007c
- public const int label_message = 2131492988;
-
// aapt resource value: 0x7f0c0096
- public const int label_text = 2131493014;
+ public const int label_author = 2131493014;
- // aapt resource value: 0x7f0c0090
- public const int label_title = 2131493008;
+ // aapt resource value: 0x7f0c0097
+ public const int label_date = 2131493015;
- // aapt resource value: 0x7f0c0091
- public const int label_version = 2131493009;
+ // aapt resource value: 0x7f0c0089
+ public const int label_last_updated = 2131493001;
+
+ // aapt resource value: 0x7f0c007e
+ public const int label_message = 2131492990;
+
+ // aapt resource value: 0x7f0c0098
+ public const int label_text = 2131493016;
+
+ // aapt resource value: 0x7f0c0092
+ public const int label_title = 2131493010;
+
+ // aapt resource value: 0x7f0c0093
+ public const int label_version = 2131493011;
// aapt resource value: 0x7f0c0037
public const int left = 2131492919;
@@ -3061,35 +3069,35 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0013
public const int light = 2131492883;
- // aapt resource value: 0x7f0c00ba
- public const int line1 = 2131493050;
+ // aapt resource value: 0x7f0c00bc
+ public const int line1 = 2131493052;
- // aapt resource value: 0x7f0c00be
- public const int line3 = 2131493054;
+ // aapt resource value: 0x7f0c00c0
+ public const int line3 = 2131493056;
// aapt resource value: 0x7f0c0014
public const int listMode = 2131492884;
- // aapt resource value: 0x7f0c0097
- public const int list_attachments = 2131493015;
+ // aapt resource value: 0x7f0c0099
+ public const int list_attachments = 2131493017;
- // aapt resource value: 0x7f0c008b
- public const int list_feedback_messages = 2131493003;
+ // aapt resource value: 0x7f0c008d
+ public const int list_feedback_messages = 2131493005;
// aapt resource value: 0x7f0c0049
public const int list_item = 2131492937;
+ // aapt resource value: 0x7f0c009c
+ public const int loadingImage = 2131493020;
+
// aapt resource value: 0x7f0c009a
- public const int loadingImage = 2131493018;
+ public const int loadingProgressBar = 2131493018;
- // aapt resource value: 0x7f0c0098
- public const int loadingProgressBar = 2131493016;
+ // aapt resource value: 0x7f0c009d
+ public const int loadingProgressWheel = 2131493021;
- // aapt resource value: 0x7f0c009b
- public const int loadingProgressWheel = 2131493019;
-
- // aapt resource value: 0x7f0c00b8
- public const int media_actions = 2131493048;
+ // aapt resource value: 0x7f0c00ba
+ public const int media_actions = 2131493050;
// aapt resource value: 0x7f0c0025
public const int middle = 2131492901;
@@ -3097,77 +3105,77 @@ namespace Bit.Android
// aapt resource value: 0x7f0c003f
public const int mini = 2131492927;
- // aapt resource value: 0x7f0c00a7
- public const int mr_art = 2131493031;
-
- // aapt resource value: 0x7f0c009c
- public const int mr_chooser_list = 2131493020;
-
- // aapt resource value: 0x7f0c009f
- public const int mr_chooser_route_desc = 2131493023;
-
- // aapt resource value: 0x7f0c009d
- public const int mr_chooser_route_icon = 2131493021;
+ // aapt resource value: 0x7f0c00a9
+ public const int mr_art = 2131493033;
// aapt resource value: 0x7f0c009e
- public const int mr_chooser_route_name = 2131493022;
-
- // aapt resource value: 0x7f0c00a4
- public const int mr_close = 2131493028;
-
- // aapt resource value: 0x7f0c00aa
- public const int mr_control_divider = 2131493034;
-
- // aapt resource value: 0x7f0c00b0
- public const int mr_control_play_pause = 2131493040;
-
- // aapt resource value: 0x7f0c00b3
- public const int mr_control_subtitle = 2131493043;
-
- // aapt resource value: 0x7f0c00b2
- public const int mr_control_title = 2131493042;
-
- // aapt resource value: 0x7f0c00b1
- public const int mr_control_title_container = 2131493041;
-
- // aapt resource value: 0x7f0c00a5
- public const int mr_custom_control = 2131493029;
-
- // aapt resource value: 0x7f0c00a6
- public const int mr_default_control = 2131493030;
+ public const int mr_chooser_list = 2131493022;
// aapt resource value: 0x7f0c00a1
- public const int mr_dialog_area = 2131493025;
+ public const int mr_chooser_route_desc = 2131493025;
+
+ // aapt resource value: 0x7f0c009f
+ public const int mr_chooser_route_icon = 2131493023;
// aapt resource value: 0x7f0c00a0
- public const int mr_expandable_area = 2131493024;
+ public const int mr_chooser_route_name = 2131493024;
- // aapt resource value: 0x7f0c00b4
- public const int mr_group_expand_collapse = 2131493044;
-
- // aapt resource value: 0x7f0c00a8
- public const int mr_media_main_control = 2131493032;
-
- // aapt resource value: 0x7f0c00a3
- public const int mr_name = 2131493027;
-
- // aapt resource value: 0x7f0c00a9
- public const int mr_playback_control = 2131493033;
-
- // aapt resource value: 0x7f0c00a2
- public const int mr_title_bar = 2131493026;
-
- // aapt resource value: 0x7f0c00ab
- public const int mr_volume_control = 2131493035;
+ // aapt resource value: 0x7f0c00a6
+ public const int mr_close = 2131493030;
// aapt resource value: 0x7f0c00ac
- public const int mr_volume_group_list = 2131493036;
+ public const int mr_control_divider = 2131493036;
+
+ // aapt resource value: 0x7f0c00b2
+ public const int mr_control_play_pause = 2131493042;
+
+ // aapt resource value: 0x7f0c00b5
+ public const int mr_control_subtitle = 2131493045;
+
+ // aapt resource value: 0x7f0c00b4
+ public const int mr_control_title = 2131493044;
+
+ // aapt resource value: 0x7f0c00b3
+ public const int mr_control_title_container = 2131493043;
+
+ // aapt resource value: 0x7f0c00a7
+ public const int mr_custom_control = 2131493031;
+
+ // aapt resource value: 0x7f0c00a8
+ public const int mr_default_control = 2131493032;
+
+ // aapt resource value: 0x7f0c00a3
+ public const int mr_dialog_area = 2131493027;
+
+ // aapt resource value: 0x7f0c00a2
+ public const int mr_expandable_area = 2131493026;
+
+ // aapt resource value: 0x7f0c00b6
+ public const int mr_group_expand_collapse = 2131493046;
+
+ // aapt resource value: 0x7f0c00aa
+ public const int mr_media_main_control = 2131493034;
+
+ // aapt resource value: 0x7f0c00a5
+ public const int mr_name = 2131493029;
+
+ // aapt resource value: 0x7f0c00ab
+ public const int mr_playback_control = 2131493035;
+
+ // aapt resource value: 0x7f0c00a4
+ public const int mr_title_bar = 2131493028;
+
+ // aapt resource value: 0x7f0c00ad
+ public const int mr_volume_control = 2131493037;
// aapt resource value: 0x7f0c00ae
- public const int mr_volume_item_icon = 2131493038;
+ public const int mr_volume_group_list = 2131493038;
- // aapt resource value: 0x7f0c00af
- public const int mr_volume_slider = 2131493039;
+ // aapt resource value: 0x7f0c00b0
+ public const int mr_volume_item_icon = 2131493040;
+
+ // aapt resource value: 0x7f0c00b1
+ public const int mr_volume_slider = 2131493041;
// aapt resource value: 0x7f0c001e
public const int multiply = 2131492894;
@@ -3268,8 +3276,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0c001b
public const int showTitle = 2131492891;
- // aapt resource value: 0x7f0c00c2
- public const int sliding_tabs = 2131493058;
+ // aapt resource value: 0x7f0c00c4
+ public const int sliding_tabs = 2131493060;
// aapt resource value: 0x7f0c0074
public const int snackbar_action = 2131492980;
@@ -3301,8 +3309,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0039
public const int start = 2131492921;
- // aapt resource value: 0x7f0c00b7
- public const int status_bar_latest_event_content = 2131493047;
+ // aapt resource value: 0x7f0c00b9
+ public const int status_bar_latest_event_content = 2131493049;
// aapt resource value: 0x7f0c006d
public const int submit_area = 2131492973;
@@ -3310,23 +3318,23 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0016
public const int tabMode = 2131492886;
- // aapt resource value: 0x7f0c00bf
- public const int text = 2131493055;
+ // aapt resource value: 0x7f0c00c1
+ public const int text = 2131493057;
- // aapt resource value: 0x7f0c00bd
- public const int text2 = 2131493053;
+ // aapt resource value: 0x7f0c00bf
+ public const int text2 = 2131493055;
// aapt resource value: 0x7f0c0055
public const int textSpacerNoButtons = 2131492949;
- // aapt resource value: 0x7f0c0099
- public const int textViewStatus = 2131493017;
+ // aapt resource value: 0x7f0c009b
+ public const int textViewStatus = 2131493019;
- // aapt resource value: 0x7f0c008c
- public const int text_headline = 2131493004;
+ // aapt resource value: 0x7f0c008e
+ public const int text_headline = 2131493006;
- // aapt resource value: 0x7f0c00bb
- public const int time = 2131493051;
+ // aapt resource value: 0x7f0c00bd
+ public const int time = 2131493053;
// aapt resource value: 0x7f0c004b
public const int title = 2131492939;
@@ -3334,8 +3342,8 @@ namespace Bit.Android
// aapt resource value: 0x7f0c0050
public const int title_template = 2131492944;
- // aapt resource value: 0x7f0c00c3
- public const int toolbar = 2131493059;
+ // aapt resource value: 0x7f0c00c5
+ public const int toolbar = 2131493061;
// aapt resource value: 0x7f0c003a
public const int top = 2131492922;
@@ -3352,17 +3360,17 @@ namespace Bit.Android
// aapt resource value: 0x7f0c001c
public const int useLogo = 2131492892;
- // aapt resource value: 0x7f0c008f
- public const int view_header = 2131493007;
+ // aapt resource value: 0x7f0c0091
+ public const int view_header = 2131493009;
// aapt resource value: 0x7f0c000a
public const int view_offset_helper = 2131492874;
- // aapt resource value: 0x7f0c00ad
- public const int volume_item_container = 2131493037;
+ // aapt resource value: 0x7f0c00af
+ public const int volume_item_container = 2131493039;
- // aapt resource value: 0x7f0c0093
- public const int web_update_details = 2131493011;
+ // aapt resource value: 0x7f0c0095
+ public const int web_update_details = 2131493013;
// aapt resource value: 0x7f0c0010
public const int wide = 2131492880;
@@ -3373,20 +3381,20 @@ namespace Bit.Android
// aapt resource value: 0x7f0c001d
public const int wrap_content = 2131492893;
- // aapt resource value: 0x7f0c0083
- public const int wrapper_attachments = 2131492995;
+ // aapt resource value: 0x7f0c0085
+ public const int wrapper_attachments = 2131492997;
- // aapt resource value: 0x7f0c007e
- public const int wrapper_feedback = 2131492990;
+ // aapt resource value: 0x7f0c0080
+ public const int wrapper_feedback = 2131492992;
- // aapt resource value: 0x7f0c007d
- public const int wrapper_feedback_scroll = 2131492989;
-
- // aapt resource value: 0x7f0c0086
- public const int wrapper_messages = 2131492998;
+ // aapt resource value: 0x7f0c007f
+ public const int wrapper_feedback_scroll = 2131492991;
// aapt resource value: 0x7f0c0088
- public const int wrapper_messages_buttons = 2131493000;
+ public const int wrapper_messages = 2131493000;
+
+ // aapt resource value: 0x7f0c008a
+ public const int wrapper_messages_buttons = 2131493002;
static Id()
{
diff --git a/src/Android/packages.config b/src/Android/packages.config
index d87f81023..36bf933be 100644
--- a/src/Android/packages.config
+++ b/src/Android/packages.config
@@ -16,7 +16,7 @@
-
+
diff --git a/src/App/Abstractions/Services/ILockService.cs b/src/App/Abstractions/Services/ILockService.cs
index 540d29d01..95d823c7d 100644
--- a/src/App/Abstractions/Services/ILockService.cs
+++ b/src/App/Abstractions/Services/ILockService.cs
@@ -1,11 +1,12 @@
using Bit.App.Enums;
using System;
+using System.Threading.Tasks;
namespace Bit.App.Abstractions
{
public interface ILockService
{
void UpdateLastActivity(DateTime? activityDate = null);
- LockType GetLockType(bool forceLock);
+ Task GetLockTypeAsync(bool forceLock);
}
}
\ No newline at end of file
diff --git a/src/App/App.cs b/src/App/App.cs
index 4706f18a5..811bd7a04 100644
--- a/src/App/App.cs
+++ b/src/App/App.cs
@@ -4,7 +4,6 @@ using Bit.App.Abstractions;
using Bit.App.Pages;
using Xamarin.Forms;
using System.Diagnostics;
-using Plugin.Fingerprint.Abstractions;
using System.Threading.Tasks;
using Plugin.Settings.Abstractions;
using Bit.App.Controls;
@@ -27,7 +26,6 @@ namespace Bit.App
private readonly IUserDialogs _userDialogs;
private readonly ISyncService _syncService;
private readonly IAuthService _authService;
- private readonly IFingerprint _fingerprint;
private readonly ISettings _settings;
private readonly ILockService _lockService;
private readonly IGoogleAnalyticsService _googleAnalyticsService;
@@ -42,7 +40,6 @@ namespace Bit.App
IUserDialogs userDialogs,
IDatabaseService databaseService,
ISyncService syncService,
- IFingerprint fingerprint,
ISettings settings,
ILockService lockService,
IGoogleAnalyticsService googleAnalyticsService,
@@ -56,7 +53,6 @@ namespace Bit.App
_userDialogs = userDialogs;
_syncService = syncService;
_authService = authService;
- _fingerprint = fingerprint;
_settings = settings;
_lockService = lockService;
_googleAnalyticsService = googleAnalyticsService;
@@ -245,7 +241,7 @@ namespace Bit.App
return;
}
- var lockType = _lockService.GetLockType(forceLock);
+ var lockType = await _lockService.GetLockTypeAsync(forceLock);
if(lockType == Enums.LockType.None)
{
return;
diff --git a/src/App/App.csproj b/src/App/App.csproj
index 59d9433ba..f66f8f184 100644
--- a/src/App/App.csproj
+++ b/src/App/App.csproj
@@ -401,13 +401,11 @@
..\..\packages\Xam.Plugin.Connectivity.2.3.0\lib\portable-net45+wp80+win8+wpa81\Plugin.Connectivity.Abstractions.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\portable-net45+win8+wpa81+wp8\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\portable-net45+win8+wpa81+wp8\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\portable-net45+win8+wpa81+wp8\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\portable-net45+win8+wpa81+wp8\Plugin.Fingerprint.Abstractions.dll
..\..\packages\Xam.Plugins.Settings.2.5.4\lib\portable-net45+wp80+win8+wpa81\Plugin.Settings.dll
diff --git a/src/App/Pages/Settings/SettingsFeaturesPage.cs b/src/App/Pages/Settings/SettingsFeaturesPage.cs
index 0b0d99147..af67eec1f 100644
--- a/src/App/Pages/Settings/SettingsFeaturesPage.cs
+++ b/src/App/Pages/Settings/SettingsFeaturesPage.cs
@@ -13,22 +13,14 @@ namespace Bit.App.Pages
{
public class SettingsFeaturesPage : ExtendedContentPage
{
- private readonly IAuthService _authService;
- private readonly IUserDialogs _userDialogs;
private readonly ISettings _settings;
private readonly IAppSettingsService _appSettings;
- private readonly IFingerprint _fingerprint;
- private readonly IPushNotification _pushNotification;
private readonly IGoogleAnalyticsService _googleAnalyticsService;
public SettingsFeaturesPage()
{
- _authService = Resolver.Resolve();
- _userDialogs = Resolver.Resolve();
_settings = Resolver.Resolve();
_appSettings = Resolver.Resolve();
- _fingerprint = Resolver.Resolve();
- _pushNotification = Resolver.Resolve();
_googleAnalyticsService = Resolver.Resolve();
Init();
diff --git a/src/App/Pages/Settings/SettingsPage.cs b/src/App/Pages/Settings/SettingsPage.cs
index 62d85e715..d814ee5b2 100644
--- a/src/App/Pages/Settings/SettingsPage.cs
+++ b/src/App/Pages/Settings/SettingsPage.cs
@@ -52,7 +52,7 @@ namespace Bit.App.Pages
private LongDetailViewCell RateCellLong { get; set; }
private ExtendedTableView Table { get; set; }
- private void Init()
+ private async void Init()
{
PinCell = new ExtendedSwitchCell
{
@@ -80,7 +80,7 @@ namespace Bit.App.Pages
TwoStepCell
};
- if(_fingerprint.IsAvailable)
+ if((await _fingerprint.GetAvailabilityAsync()) == FingerprintAvailability.Available)
{
var fingerprintName = Helpers.OnPlatform(iOS: AppResources.TouchID, Android: AppResources.Fingerprint,
WinPhone: AppResources.Fingerprint);
@@ -88,7 +88,7 @@ namespace Bit.App.Pages
{
Text = string.Format(AppResources.UnlockWith, fingerprintName),
On = _settings.GetValueOrDefault(Constants.SettingFingerprintUnlockOn, false),
- IsEnabled = _fingerprint.IsAvailable
+ IsEnabled = true
};
securitySecion.Insert(1, FingerprintCell);
}
diff --git a/src/App/Services/LockService.cs b/src/App/Services/LockService.cs
index 190dd166d..0d2a33f08 100644
--- a/src/App/Services/LockService.cs
+++ b/src/App/Services/LockService.cs
@@ -3,6 +3,7 @@ using Bit.App.Abstractions;
using Plugin.Settings.Abstractions;
using Plugin.Fingerprint.Abstractions;
using Bit.App.Enums;
+using System.Threading.Tasks;
namespace Bit.App.Services
{
@@ -35,7 +36,7 @@ namespace Bit.App.Services
_appSettings.LastActivity = activityDate.GetValueOrDefault(DateTime.UtcNow);
}
- public LockType GetLockType(bool forceLock)
+ public async Task GetLockTypeAsync(bool forceLock)
{
// Only lock if they are logged in
if(!_authService.IsAuthenticated)
@@ -64,7 +65,8 @@ namespace Bit.App.Services
// What method are we using to unlock?
var fingerprintUnlock = _settings.GetValueOrDefault(Constants.SettingFingerprintUnlockOn, false);
var pinUnlock = _settings.GetValueOrDefault(Constants.SettingPinUnlockOn, false);
- if(fingerprintUnlock && _fingerprint.IsAvailable)
+ var fingerprintAvailability = await _fingerprint.GetAvailabilityAsync();
+ if(fingerprintUnlock && fingerprintAvailability == FingerprintAvailability.Available)
{
return LockType.Fingerprint;
}
diff --git a/src/App/packages.config b/src/App/packages.config
index 84b9e923e..d3d51f970 100644
--- a/src/App/packages.config
+++ b/src/App/packages.config
@@ -9,7 +9,7 @@
-
+
diff --git a/src/iOS.Extension/LoadingViewController.cs b/src/iOS.Extension/LoadingViewController.cs
index 64cf0beea..4622e6094 100644
--- a/src/iOS.Extension/LoadingViewController.cs
+++ b/src/iOS.Extension/LoadingViewController.cs
@@ -100,7 +100,7 @@ namespace Bit.iOS.Extension
}
var lockService = Resolver.Resolve();
- var lockType = lockService.GetLockType(false);
+ var lockType = lockService.GetLockTypeAsync(false).GetAwaiter().GetResult();
switch(lockType)
{
case App.Enums.LockType.Fingerprint:
diff --git a/src/iOS.Extension/iOS.Extension.csproj b/src/iOS.Extension/iOS.Extension.csproj
index ce28a4f28..cadb3e546 100644
--- a/src/iOS.Extension/iOS.Extension.csproj
+++ b/src/iOS.Extension/iOS.Extension.csproj
@@ -310,13 +310,11 @@
..\..\packages\Xam.Plugin.Connectivity.2.3.0\lib\Xamarin.iOS10\Plugin.Connectivity.Abstractions.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\Xamarin.iOS10\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\Xamarin.iOS10\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\Xamarin.iOS10\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\Xamarin.iOS10\Plugin.Fingerprint.Abstractions.dll
..\..\packages\Xam.Plugins.Settings.2.5.4\lib\Xamarin.iOS10\Plugin.Settings.dll
diff --git a/src/iOS.Extension/packages.config b/src/iOS.Extension/packages.config
index a16e4fd95..ee0ad96c7 100644
--- a/src/iOS.Extension/packages.config
+++ b/src/iOS.Extension/packages.config
@@ -12,7 +12,7 @@
-
+
diff --git a/src/iOS/AppDelegate.cs b/src/iOS/AppDelegate.cs
index 01c1d77e1..306f0bff1 100644
--- a/src/iOS/AppDelegate.cs
+++ b/src/iOS/AppDelegate.cs
@@ -12,7 +12,6 @@ using Plugin.Connectivity;
using Acr.UserDialogs;
using Bit.App.Repositories;
using Plugin.Fingerprint;
-using Plugin.Fingerprint.Abstractions;
using Plugin.Settings.Abstractions;
using System.Diagnostics;
using Xamarin.Forms;
@@ -65,7 +64,6 @@ namespace Bit.iOS
Resolver.Resolve(),
Resolver.Resolve(),
Resolver.Resolve(),
- Resolver.Resolve(),
Resolver.Resolve(),
_lockService,
Resolver.Resolve(),
diff --git a/src/iOS/iOS.csproj b/src/iOS/iOS.csproj
index b20f33933..3eeb07e3e 100644
--- a/src/iOS/iOS.csproj
+++ b/src/iOS/iOS.csproj
@@ -324,13 +324,11 @@
..\..\packages\Xam.Plugin.Connectivity.2.3.0\lib\Xamarin.iOS10\Plugin.Connectivity.Abstractions.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\Xamarin.iOS10\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\Xamarin.iOS10\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\Xamarin.iOS10\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\Xamarin.iOS10\Plugin.Fingerprint.Abstractions.dll
..\..\packages\Xam.Plugins.Settings.2.5.4\lib\Xamarin.iOS10\Plugin.Settings.dll
diff --git a/src/iOS/packages.config b/src/iOS/packages.config
index 5e282ae7d..ab5e46578 100644
--- a/src/iOS/packages.config
+++ b/src/iOS/packages.config
@@ -14,7 +14,7 @@
-
+
diff --git a/test/Android.Test/Android.Test.csproj b/test/Android.Test/Android.Test.csproj
index a57d2a5a3..2d11180f9 100644
--- a/test/Android.Test/Android.Test.csproj
+++ b/test/Android.Test/Android.Test.csproj
@@ -78,13 +78,14 @@
..\..\packages\PInvoke.Windows.Core.0.3.152\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll
True
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\MonoAndroid\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\MonoAndroid\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\MonoAndroid\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\MonoAndroid\Plugin.Fingerprint.Abstractions.dll
+
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\MonoAndroid\Plugin.Fingerprint.Android.Samsung.dll
@@ -102,7 +103,9 @@
-
+
+ Designer
+
diff --git a/test/Android.Test/packages.config b/test/Android.Test/packages.config
index 37873cfbd..ed5e84b8b 100644
--- a/test/Android.Test/packages.config
+++ b/test/Android.Test/packages.config
@@ -5,6 +5,6 @@
-
+
\ No newline at end of file
diff --git a/test/App.Test/App.Test.csproj b/test/App.Test/App.Test.csproj
index 1658e8829..989a9a414 100644
--- a/test/App.Test/App.Test.csproj
+++ b/test/App.Test/App.Test.csproj
@@ -61,13 +61,11 @@
..\..\packages\PInvoke.Windows.Core.0.3.152\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll
True
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\net45\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\net45\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\net45\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\net45\Plugin.Fingerprint.Abstractions.dll
..\..\packages\Xam.Plugins.Settings.2.5.4\lib\net45\Plugin.Settings.dll
@@ -115,7 +113,9 @@
-
+
+ Designer
+
diff --git a/test/App.Test/packages.config b/test/App.Test/packages.config
index 7c12de97d..43e7bd7aa 100644
--- a/test/App.Test/packages.config
+++ b/test/App.Test/packages.config
@@ -6,7 +6,7 @@
-
+
diff --git a/test/iOS.Test/iOS.Test.csproj b/test/iOS.Test/iOS.Test.csproj
index 6d0455250..dc9332023 100644
--- a/test/iOS.Test/iOS.Test.csproj
+++ b/test/iOS.Test/iOS.Test.csproj
@@ -130,13 +130,11 @@
..\..\packages\PInvoke.Windows.Core.0.3.152\lib\portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10\PInvoke.Windows.Core.dll
True
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\Xamarin.iOS10\Plugin.Fingerprint.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\Xamarin.iOS10\Plugin.Fingerprint.dll
-
- ..\..\packages\Plugin.Fingerprint.1.2.0\lib\Xamarin.iOS10\Plugin.Fingerprint.Abstractions.dll
- True
+
+ ..\..\packages\Plugin.Fingerprint.1.4.4\lib\Xamarin.iOS10\Plugin.Fingerprint.Abstractions.dll
diff --git a/test/iOS.Test/packages.config b/test/iOS.Test/packages.config
index b619c08ec..682eeabf6 100644
--- a/test/iOS.Test/packages.config
+++ b/test/iOS.Test/packages.config
@@ -5,7 +5,7 @@
-
+