blob: 8495d8077d53e41d377d9b411461b61fa384d579 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
using System;
using Android.App;
using Android.Graphics;
using Android.OS;
using Android.Views;
using Android.Widget;
using AButton = Android.Widget.Button;
using AView = Android.Views.View;
namespace Xamarin.Forms.Platform.Android
{
[Obsolete("ActionSheet now uses default implementation.")]
public class ActionSheetRenderer : Dialog, AView.IOnClickListener
{
readonly ActionSheetArguments _arguments;
readonly LinearLayout _layout;
internal ActionSheetRenderer(ActionSheetArguments actionSheetArguments) : base(Forms.Context)
{
_arguments = actionSheetArguments;
_layout = new LinearLayout(Context);
}
void AView.IOnClickListener.OnClick(AView v)
{
var button = (AButton)v;
_arguments.SetResult(button.Text);
Hide();
}
public override void Cancel()
{
base.Cancel();
_arguments.SetResult(null);
}
public override void OnAttachedToWindow()
{
base.OnAttachedToWindow();
Window.SetGravity(GravityFlags.CenterVertical);
Window.SetLayout(-1, -2);
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetCanceledOnTouchOutside(true);
_layout.Orientation = Orientation.Vertical;
using (var layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.FillParent))
SetContentView(_layout, layoutParams);
if (_arguments.Destruction != null)
{
AButton destruct = AddButton(_arguments.Destruction);
destruct.Background.SetColorFilter(new Color(1, 0, 0, 1).ToAndroid(), PorterDuff.Mode.Multiply);
}
foreach (string button in _arguments.Buttons)
AddButton(button);
if (_arguments.Cancel != null)
{
AButton cancel = AddButton(_arguments.Cancel);
cancel.Background.SetColorFilter(new Color(0.5, 0.5, 0.5, 1).ToAndroid(), PorterDuff.Mode.Multiply);
}
SetTitle(_arguments.Title);
}
AButton AddButton(string name)
{
var button = new AButton(Context) { Text = name };
button.SetOnClickListener(this);
_layout.AddView(button);
return button;
}
}
}
|