bitwarden-mobile/src/App/Platforms/Android/Handlers/TimePickerHandlerMappings.cs

40 lines
1.5 KiB
C#

using Android.Views;
using Bit.App.Controls;
using Microsoft.Maui.Handlers;
namespace Bit.App.Handlers
{
public class TimePickerHandlerMappings
{
public static void Setup()
{
TimePickerHandler.Mapper.AppendToMapping("CustomTimePickerHandler", (handler, timePicker) =>
{
if (timePicker is ExtendedTimePicker extTimePicker)
{
// center text
handler.PlatformView.Gravity = GravityFlags.CenterHorizontal;
// use placeholder until NullableTime set
if (!extTimePicker.NullableTime.HasValue && !string.IsNullOrWhiteSpace(extTimePicker.PlaceHolder))
{
handler.PlatformView.Text = extTimePicker.PlaceHolder;
}
}
});
TimePickerHandler.Mapper.AppendToMapping(nameof(ITimePicker.Time), UpdateTextPlaceholderOnFormatLikePlaceholder);
TimePickerHandler.Mapper.AppendToMapping(nameof(ITimePicker.Format), UpdateTextPlaceholderOnFormatLikePlaceholder);
}
private static void UpdateTextPlaceholderOnFormatLikePlaceholder(ITimePickerHandler handler, ITimePicker timePicker)
{
if (timePicker is ExtendedTimePicker extDatePicker && extDatePicker.Format == extDatePicker.PlaceHolder)
{
handler.PlatformView.Text = extDatePicker.PlaceHolder;
}
}
}
}