mirror of
https://github.com/bitwarden/mobile.git
synced 2024-09-27 03:52:57 +02:00
4aad34cd75
* Dynamic theme switching and visual tweaks * update action runner to use macos-11 for iOS 15 support * additional tweaks * refinements * refinements * formatting and tweaks
73 lines
2.6 KiB
C#
73 lines
2.6 KiB
C#
using System.ComponentModel;
|
|
using Android.Content;
|
|
using Android.Graphics;
|
|
using Android.OS;
|
|
using Bit.App.Controls;
|
|
using Bit.Droid.Renderers;
|
|
using Xamarin.Forms;
|
|
using Xamarin.Forms.Platform.Android;
|
|
|
|
[assembly: ExportRenderer(typeof(ExtendedStepper), typeof(ExtendedStepperRenderer))]
|
|
namespace Bit.Droid.Renderers
|
|
{
|
|
public class ExtendedStepperRenderer : StepperRenderer
|
|
{
|
|
public ExtendedStepperRenderer(Context context)
|
|
: base(context)
|
|
{}
|
|
|
|
protected override void OnElementChanged(ElementChangedEventArgs<Stepper> e)
|
|
{
|
|
base.OnElementChanged(e);
|
|
UpdateBgColor();
|
|
UpdateFgColor();
|
|
}
|
|
|
|
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
|
|
{
|
|
base.OnElementPropertyChanged(sender, e);
|
|
|
|
if (e.PropertyName == ExtendedStepper.StepperBackgroundColorProperty.PropertyName)
|
|
{
|
|
UpdateBgColor();
|
|
}
|
|
else if (e.PropertyName == ExtendedStepper.StepperForegroundColorProperty.PropertyName)
|
|
{
|
|
UpdateFgColor();
|
|
}
|
|
}
|
|
|
|
private void UpdateBgColor()
|
|
{
|
|
if (Control != null && Element is ExtendedStepper view)
|
|
{
|
|
if (Build.VERSION.SdkInt >= BuildVersionCodes.Q)
|
|
{
|
|
Control.GetChildAt(0)?.Background?.SetColorFilter(
|
|
new BlendModeColorFilter(view.StepperBackgroundColor.ToAndroid(), BlendMode.Multiply));
|
|
Control.GetChildAt(1)?.Background?.SetColorFilter(
|
|
new BlendModeColorFilter(view.StepperBackgroundColor.ToAndroid(), BlendMode.Multiply));
|
|
}
|
|
else
|
|
{
|
|
Control.GetChildAt(0)?.Background?.SetColorFilter(
|
|
view.StepperBackgroundColor.ToAndroid(), PorterDuff.Mode.Multiply);
|
|
Control.GetChildAt(1)?.Background?.SetColorFilter(
|
|
view.StepperBackgroundColor.ToAndroid(), PorterDuff.Mode.Multiply);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void UpdateFgColor()
|
|
{
|
|
if (Control != null && Element is ExtendedStepper view)
|
|
{
|
|
var btn0 = Control.GetChildAt(0) as Android.Widget.Button;
|
|
btn0?.SetTextColor(view.StepperForegroundColor.ToAndroid());
|
|
var btn1 = Control.GetChildAt(1) as Android.Widget.Button;
|
|
btn1?.SetTextColor(view.StepperForegroundColor.ToAndroid());
|
|
}
|
|
}
|
|
}
|
|
}
|