mirror of
https://github.com/bitwarden/mobile
synced 2025-12-15 07:43:37 +00:00
Send feature for mobile (#1256)
* Send feature for mobile * added fallback for KdfIterations * additional property exclusions for tests * support encryptedFileData as byte array comparison in SendServiceTests * formatting * requested changes * additional changes * change position of send service registration to match declaration order
This commit is contained in:
86
src/App/Controls/ExtendedTimePicker.cs
Normal file
86
src/App/Controls/ExtendedTimePicker.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
using System;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace Bit.App.Controls
|
||||
{
|
||||
public class ExtendedTimePicker : TimePicker
|
||||
{
|
||||
private string _format;
|
||||
|
||||
public static readonly BindableProperty PlaceHolderProperty = BindableProperty.Create(
|
||||
nameof(PlaceHolder), typeof(string), typeof(ExtendedTimePicker));
|
||||
|
||||
public string PlaceHolder
|
||||
{
|
||||
get { return (string)GetValue(PlaceHolderProperty); }
|
||||
set { SetValue(PlaceHolderProperty, value); }
|
||||
}
|
||||
|
||||
public static readonly BindableProperty NullableTimeProperty = BindableProperty.Create(
|
||||
nameof(NullableTime), typeof(TimeSpan?), typeof(ExtendedTimePicker));
|
||||
|
||||
public TimeSpan? NullableTime
|
||||
{
|
||||
get { return (TimeSpan?)GetValue(NullableTimeProperty); }
|
||||
set
|
||||
{
|
||||
SetValue(NullableTimeProperty, value);
|
||||
UpdateTime();
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateTime()
|
||||
{
|
||||
if (NullableTime.HasValue)
|
||||
{
|
||||
if (_format != null)
|
||||
{
|
||||
Format = _format;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Format = PlaceHolder;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnBindingContextChanged()
|
||||
{
|
||||
base.OnBindingContextChanged();
|
||||
if (BindingContext != null)
|
||||
{
|
||||
_format = Format;
|
||||
UpdateTime();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnPropertyChanged(string propertyName = null)
|
||||
{
|
||||
base.OnPropertyChanged(propertyName);
|
||||
|
||||
if (propertyName == TimeProperty.PropertyName || (propertyName == IsFocusedProperty.PropertyName &&
|
||||
!IsFocused && (Time.ToString("t") ==
|
||||
DateTime.Now.TimeOfDay.ToString("t"))))
|
||||
{
|
||||
NullableTime = Time;
|
||||
UpdateTime();
|
||||
}
|
||||
|
||||
if (propertyName == NullableTimeProperty.PropertyName)
|
||||
{
|
||||
if (NullableTime.HasValue)
|
||||
{
|
||||
Time = NullableTime.Value;
|
||||
if (Time.ToString(_format) == DateTime.Now.TimeOfDay.ToString(_format))
|
||||
{
|
||||
UpdateTime();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
UpdateTime();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user