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