mirror of
https://github.com/bitwarden/mobile
synced 2025-12-16 08:13:20 +00:00
61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
using Bit.iOS.Core.Controllers;
|
|
using Bit.iOS.Core.Utilities;
|
|
using System;
|
|
using UIKit;
|
|
|
|
namespace Bit.iOS.Core.Views
|
|
{
|
|
public class SliderTableViewCell : ExtendedUITableViewCell
|
|
{
|
|
private string _detailRightSpace = "\t";
|
|
private int _value;
|
|
|
|
public SliderTableViewCell(string labelName, int value, int min, int max)
|
|
: base(UITableViewCellStyle.Value1, nameof(SwitchTableViewCell))
|
|
{
|
|
TextLabel.Text = labelName;
|
|
TextLabel.TextColor = ThemeHelpers.TextColor;
|
|
DetailTextLabel.TextColor = ThemeHelpers.MutedColor;
|
|
|
|
Slider = new UISlider
|
|
{
|
|
MinValue = min,
|
|
MaxValue = max,
|
|
TintColor = ThemeHelpers.PrimaryColor,
|
|
Frame = new CoreGraphics.CGRect(0, 0, 180, 30),
|
|
BackgroundColor = ThemeHelpers.BackgroundColor
|
|
};
|
|
Slider.ValueChanged += Slider_ValueChanged;
|
|
Value = value;
|
|
|
|
AccessoryView = Slider;
|
|
}
|
|
|
|
private void Slider_ValueChanged(object sender, EventArgs e)
|
|
{
|
|
var newValue = Convert.ToInt32(Math.Round(Slider.Value, 0));
|
|
bool valueChanged = newValue != Value;
|
|
|
|
Value = newValue;
|
|
|
|
if (valueChanged)
|
|
{
|
|
ValueChanged?.Invoke(this, null);
|
|
}
|
|
}
|
|
|
|
public UISlider Slider { get; set; }
|
|
public int Value
|
|
{
|
|
get { return _value; }
|
|
set
|
|
{
|
|
_value = value;
|
|
Slider.Value = value;
|
|
DetailTextLabel.Text = string.Concat(value.ToString(), _detailRightSpace);
|
|
}
|
|
}
|
|
public event EventHandler ValueChanged;
|
|
}
|
|
}
|