mirror of
https://github.com/bitwarden/android.git
synced 2024-12-29 04:18:33 +03:00
292908f53f
* EC-259 Added Account switching on share extension on iOS, also improved performance for this and exception handling * EC-259 code formatting * EC-259 Added account switching to Share extension Send view * EC-259 Fixed navigation on share extension when a forms page is already presented * EC-259 Fix send text UI update when going from the iOS extension * EC-259 Improved DateTimeViewModel with helper property to easily setup date and time at the same time and applied on usage
91 lines
2.8 KiB
C#
91 lines
2.8 KiB
C#
using System.Runtime.CompilerServices;
|
|
using System.Threading.Tasks;
|
|
using Bit.App.Behaviors;
|
|
using Xamarin.CommunityToolkit.UI.Views;
|
|
using Xamarin.Forms;
|
|
|
|
namespace Bit.App.Pages
|
|
{
|
|
public partial class SendAddOnlyOptionsView : ContentView
|
|
{
|
|
public SendAddOnlyOptionsView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private SendAddEditPageViewModel ViewModel => BindingContext as SendAddEditPageViewModel;
|
|
|
|
public void SetMainScrollView(ScrollView scrollView)
|
|
{
|
|
_notesEditor.Behaviors.Add(new EditorPreventAutoBottomScrollingOnFocusedBehavior { ParentScrollView = scrollView });
|
|
}
|
|
|
|
private void OnMaxAccessCountTextChanged(object sender, TextChangedEventArgs e)
|
|
{
|
|
if (ViewModel is null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(e.NewTextValue))
|
|
{
|
|
ViewModel.MaxAccessCount = null;
|
|
_maxAccessCountStepper.Value = 0;
|
|
return;
|
|
}
|
|
// accept only digits
|
|
if (!int.TryParse(e.NewTextValue, out int _))
|
|
{
|
|
((Entry)sender).Text = e.OldTextValue;
|
|
}
|
|
}
|
|
|
|
protected override void OnPropertyChanged([CallerMemberName] string propertyName = null)
|
|
{
|
|
base.OnPropertyChanged(propertyName);
|
|
|
|
if (propertyName == nameof(BindingContext)
|
|
&&
|
|
ViewModel != null)
|
|
{
|
|
ViewModel.PropertyChanged += ViewModel_PropertyChanged;
|
|
}
|
|
}
|
|
|
|
private void ViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
|
|
{
|
|
if (!_lazyDeletionDateTimePicker.IsLoaded
|
|
&&
|
|
e.PropertyName == nameof(SendAddEditPageViewModel.ShowDeletionCustomPickers)
|
|
&&
|
|
ViewModel.ShowDeletionCustomPickers)
|
|
{
|
|
_lazyDeletionDateTimePicker.LoadViewAsync();
|
|
}
|
|
|
|
if (!_lazyExpirationDateTimePicker.IsLoaded
|
|
&&
|
|
e.PropertyName == nameof(SendAddEditPageViewModel.ShowExpirationCustomPickers)
|
|
&&
|
|
ViewModel.ShowExpirationCustomPickers)
|
|
{
|
|
_lazyExpirationDateTimePicker.LoadViewAsync();
|
|
}
|
|
}
|
|
}
|
|
|
|
public class SendAddOnlyOptionsLazyView : LazyView<SendAddOnlyOptionsView>
|
|
{
|
|
public ScrollView MainScrollView { get; set; }
|
|
|
|
public override async ValueTask LoadViewAsync()
|
|
{
|
|
await base.LoadViewAsync();
|
|
|
|
if (Content is SendAddOnlyOptionsView optionsView)
|
|
{
|
|
optionsView.SetMainScrollView(MainScrollView);
|
|
}
|
|
}
|
|
}
|
|
}
|