mirror of
https://github.com/bitwarden/mobile.git
synced 2024-09-27 03:52:57 +02:00
a18e59a28a
* 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
87 lines
2.5 KiB
C#
87 lines
2.5 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|