diff --git a/src/Android/Android.csproj b/src/Android/Android.csproj
index bd3ef91fa..f04d1acf0 100644
--- a/src/Android/Android.csproj
+++ b/src/Android/Android.csproj
@@ -84,7 +84,7 @@
- 1.7.1
+ 1.7.2
122.0.0
diff --git a/src/Android/Services/BiometricService.cs b/src/Android/Services/BiometricService.cs
index c55673f19..ee717eb14 100644
--- a/src/Android/Services/BiometricService.cs
+++ b/src/Android/Services/BiometricService.cs
@@ -1,13 +1,13 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
using System.Threading.Tasks;
using Android.OS;
using Android.Security.Keystore;
using Bit.Core.Abstractions;
using Java.Security;
using Javax.Crypto;
+#if !FDROID
+using Microsoft.AppCenter.Crashes;
+#endif
namespace Bit.Droid.Services
{
@@ -74,6 +74,9 @@ namespace Bit.Droid.Services
catch (InvalidKeyException e)
{
// Fallback for old bitwarden users without a key
+#if !FDROID
+ Crashes.TrackError(e);
+#endif
CreateKey();
}
@@ -94,10 +97,13 @@ namespace Bit.Droid.Services
keyGen.Init(keyGenSpec);
keyGen.GenerateKey();
}
- catch
+ catch (Exception e)
{
// Catch silently to allow biometrics to function on devices that are in a state where key generation
// is not functioning
+#if !FDROID
+ Crashes.TrackError(e);
+#endif
}
}
}
diff --git a/src/App/App.csproj b/src/App/App.csproj
index 8894ca5ae..60e989699 100644
--- a/src/App/App.csproj
+++ b/src/App/App.csproj
@@ -16,10 +16,10 @@
-
-
+
+
-
+
diff --git a/src/App/Pages/Send/SendAddEditPage.xaml b/src/App/Pages/Send/SendAddEditPage.xaml
index b72250979..fc3009e07 100644
--- a/src/App/Pages/Send/SendAddEditPage.xaml
+++ b/src/App/Pages/Send/SendAddEditPage.xaml
@@ -256,23 +256,24 @@
x:Name="_btnOptions"
StyleClass="box-row-button"
TextColor="{DynamicResource PrimaryColor}"
- Margin="0" />
+ Margin="0"
+ Clicked="ToggleOptions_Clicked"/>
+ IsVisible="{Binding ShowOptions}" />
+ IsVisible="{Binding ShowOptions, Converter={StaticResource inverseBool}}" />
-
+
diff --git a/src/App/Pages/Send/SendAddEditPage.xaml.cs b/src/App/Pages/Send/SendAddEditPage.xaml.cs
index 3121acf0e..0f4ba6f4e 100644
--- a/src/App/Pages/Send/SendAddEditPage.xaml.cs
+++ b/src/App/Pages/Send/SendAddEditPage.xaml.cs
@@ -53,10 +53,9 @@ namespace Bit.App.Pages
_vm.SegmentedButtonFontSize = 13;
_vm.SegmentedButtonMargins = new Thickness(0, 10, 0, 0);
_vm.EditorMargins = new Thickness(0, 5, 0, 0);
- // Review this when https://github.com/bitwarden/mobile/pull/1454 workaround can be reverted
- //_btnOptions.WidthRequest = 70;
- //_btnOptionsDown.WidthRequest = 30;
- //_btnOptionsUp.WidthRequest = 30;
+ _btnOptions.WidthRequest = 70;
+ _btnOptionsDown.WidthRequest = 30;
+ _btnOptionsUp.WidthRequest = 30;
}
else if (Device.RuntimePlatform == Device.iOS)
{
diff --git a/src/App/Pages/Vault/AddEditPage.xaml b/src/App/Pages/Vault/AddEditPage.xaml
index 056214206..3e8c85ee2 100644
--- a/src/App/Pages/Vault/AddEditPage.xaml
+++ b/src/App/Pages/Vault/AddEditPage.xaml
@@ -732,7 +732,6 @@
diff --git a/src/App/Pages/Vault/AddEditPage.xaml.cs b/src/App/Pages/Vault/AddEditPage.xaml.cs
index 0fd9be75a..796866d8b 100644
--- a/src/App/Pages/Vault/AddEditPage.xaml.cs
+++ b/src/App/Pages/Vault/AddEditPage.xaml.cs
@@ -51,7 +51,6 @@ namespace Bit.App.Pages
_vm.CipherId = cipherId;
_vm.FolderId = folderId == "none" ? null : folderId;
_vm.CollectionIds = collectionId != null ? new HashSet(new List { collectionId }) : null;
- _vm.CollectionsRepeaterView = _collectionsRepeaterView;
_vm.Type = type;
_vm.DefaultName = name ?? appOptions?.SaveName;
_vm.DefaultUri = uri ?? appOptions?.Uri;
@@ -171,7 +170,6 @@ namespace Bit.App.Pages
{
RequestFocus(_nameEntry);
}
- _scrollView.Scrolled += (sender, args) => _vm.HandleScroll();
});
// Hide password reprompt option if using key connector
_passwordPrompt.IsVisible = !await _keyConnectorService.GetUsesKeyConnector();
diff --git a/src/App/Pages/Vault/AddEditPageViewModel.cs b/src/App/Pages/Vault/AddEditPageViewModel.cs
index f71c7ced9..40fd047f5 100644
--- a/src/App/Pages/Vault/AddEditPageViewModel.cs
+++ b/src/App/Pages/Vault/AddEditPageViewModel.cs
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Bit.App.Abstractions;
-using Bit.App.Controls;
using Bit.App.Models;
using Bit.App.Resources;
using Bit.Core;
@@ -44,7 +43,6 @@ namespace Bit.App.Pages
private int _ownershipSelectedIndex;
private bool _hasCollections;
private string _previousCipherId;
- private DateTime _lastHandledScrollTime;
private List _writeableCollections;
private string[] _additionalCipherProperties = new string[]
{
@@ -168,7 +166,7 @@ namespace Bit.App.Pages
public ExtendedObservableCollection Uris { get; set; }
public ExtendedObservableCollection Fields { get; set; }
public ExtendedObservableCollection Collections { get; set; }
- public RepeaterView CollectionsRepeaterView { get; set; }
+
public int TypeSelectedIndex
{
get => _typeSelectedIndex;
@@ -821,30 +819,13 @@ namespace Bit.App.Pages
{
var cols = _writeableCollections.Where(c => c.OrganizationId == Cipher.OrganizationId)
.Select(c => new CollectionViewModel { Collection = c }).ToList();
- HasCollections = cols.Any();
Collections.ResetWithRange(cols);
- Collections = new ExtendedObservableCollection(cols);
}
else
{
- HasCollections = false;
Collections.ResetWithRange(new List());
- Collections = new ExtendedObservableCollection(new List());
}
- }
-
- public void HandleScroll()
- {
- // workaround for https://github.com/xamarin/Xamarin.Forms/issues/13607
- // required for org ownership/collections to render properly in XF4.5+
- if (!HasCollections ||
- EditMode ||
- (DateTime.Now - _lastHandledScrollTime < TimeSpan.FromMilliseconds(200)))
- {
- return;
- }
- CollectionsRepeaterView.ItemsSource = Collections;
- _lastHandledScrollTime = DateTime.Now;
+ HasCollections = Collections.Any();
}
private void TriggerCipherChanged()
diff --git a/src/Core/Services/StateMigrationService.cs b/src/Core/Services/StateMigrationService.cs
index 91f74912c..209493d47 100644
--- a/src/Core/Services/StateMigrationService.cs
+++ b/src/Core/Services/StateMigrationService.cs
@@ -1,13 +1,11 @@
using System;
using System.Collections.Generic;
-using System.Diagnostics;
using System.Threading.Tasks;
using Bit.Core.Abstractions;
using Bit.Core.Enums;
using Bit.Core.Models.Data;
using Bit.Core.Models.Domain;
using Bit.Core.Utilities;
-using Newtonsoft.Json;
namespace Bit.Core.Services
{
@@ -354,7 +352,6 @@ namespace Bit.Core.Services
private async Task GetValueAsync(Storage storage, string key)
{
var value = await GetStorageService(storage).GetAsync(key);
- Log("GET", storage, key, JsonConvert.SerializeObject(value));
return value;
}
@@ -365,13 +362,11 @@ namespace Bit.Core.Services
await RemoveValueAsync(storage, key);
return;
}
- Log("SET", storage, key, JsonConvert.SerializeObject(value));
await GetStorageService(storage).SaveAsync(key, value);
}
private async Task RemoveValueAsync(Storage storage, string key)
{
- Log("REMOVE", storage, key, null);
await GetStorageService(storage).RemoveAsync(key);
}
@@ -387,29 +382,5 @@ namespace Bit.Core.Services
return _liteDbStorageService;
}
}
-
- private void Log(string tag, Storage storage, string key, string value)
- {
- // TODO Remove this once all bugs are squished
- string text;
- switch (storage)
- {
- case Storage.Secure:
- text = "SECURE / ";
- break;
- case Storage.Prefs:
- text = "PREFS / ";
- break;
- default:
- text = "LITEDB / ";
- break;
- }
- text += "Key: " + key + " / ";
- if (value != null)
- {
- text += "Value: " + value;
- }
- Debug.WriteLine(text, ">>> " + tag);
- }
}
}
diff --git a/src/iOS.ShareExtension/iOS.ShareExtension.csproj b/src/iOS.ShareExtension/iOS.ShareExtension.csproj
index 03e320315..124867571 100644
--- a/src/iOS.ShareExtension/iOS.ShareExtension.csproj
+++ b/src/iOS.ShareExtension/iOS.ShareExtension.csproj
@@ -167,7 +167,7 @@
-
+
4.4.0
diff --git a/src/iOS/iOS.csproj b/src/iOS/iOS.csproj
index e7f830539..66c0d0b2d 100644
--- a/src/iOS/iOS.csproj
+++ b/src/iOS/iOS.csproj
@@ -183,7 +183,7 @@
- 1.7.1
+ 1.7.2