public static TimePickerFragment NewInstance(Action <DateTime> onTimeSelected) { TimePickerFragment frag = new TimePickerFragment(); frag.timeSelectedHandler = onTimeSelected; return(frag); }
void add_alarm(int alarm_number, string init_time, string init_days) { string nr = alarm_number.ToString(); string time_holder = init_time; var col_a = new LinearLayout(alarm_context); col_a.Orientation = Orientation.Horizontal; var col_b = new LinearLayout(alarm_context); col_b.Orientation = Orientation.Horizontal; TextView inputfield = new TextView(alarm_context); int day_width = 30; int day_height = 80; int padding_left = -26; int padding_bottom = 50; int row_width = 80; TextView alarm_label = new TextView(alarm_context); alarm_label.Text = "Alarm " + nr; alarm_label.SetWidth(px(row_width)); alarm_label.SetPadding(px(20), 0, 0, 0); CheckBox ma_knopje = new CheckBox(alarm_context); CheckBox di_knopje = new CheckBox(alarm_context); CheckBox wo_knopje = new CheckBox(alarm_context); CheckBox do_knopje = new CheckBox(alarm_context); CheckBox vr_knopje = new CheckBox(alarm_context); CheckBox za_knopje = new CheckBox(alarm_context); CheckBox zo_knopje = new CheckBox(alarm_context); Button change_button = new Button(alarm_context); ma_knopje.Text = "ma"; ma_knopje.SetWidth(px(day_width)); ma_knopje.SetHeight(px(day_height)); ma_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); ma_knopje.Click += delegate { add_day_repeat(); }; di_knopje.Text = "di"; di_knopje.SetWidth(px(day_width)); di_knopje.SetHeight(px(day_height)); di_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); di_knopje.Click += delegate { add_day_repeat(); }; wo_knopje.Text = "wo"; wo_knopje.SetWidth(px(day_width)); wo_knopje.SetHeight(px(day_height)); wo_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); wo_knopje.Click += delegate { add_day_repeat(); }; do_knopje.Text = "do"; do_knopje.SetWidth(px(day_width)); do_knopje.SetHeight(px(day_height)); do_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); do_knopje.Click += delegate { add_day_repeat(); }; vr_knopje.Text = "vr"; vr_knopje.SetWidth(px(day_width)); vr_knopje.SetHeight(px(day_height)); vr_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); vr_knopje.Click += delegate { add_day_repeat(); }; za_knopje.Text = "za"; za_knopje.SetWidth(px(day_width)); za_knopje.SetHeight(px(day_height)); za_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); za_knopje.Click += delegate { add_day_repeat(); }; zo_knopje.Text = "zo"; zo_knopje.SetWidth(px(day_width)); zo_knopje.SetHeight(px(day_height)); zo_knopje.SetPadding(px(padding_left), 0, 0, px(padding_bottom)); zo_knopje.Click += delegate { add_day_repeat(); }; //RunOnUiThread(() => //{ if (init_days[0] != ' ') { zo_knopje.Checked = true; } if (init_days[1] != ' ') { ma_knopje.Checked = true; } if (init_days[2] != ' ') { di_knopje.Checked = true; } if (init_days[3] != ' ') { wo_knopje.Checked = true; } if (init_days[4] != ' ') { do_knopje.Checked = true; } if (init_days[5] != ' ') { vr_knopje.Checked = true; } if (init_days[6] != ' ') { za_knopje.Checked = true; } //}); string cron_time = ""; void add_day_repeat() { string days = ""; if (zo_knopje.Checked) { days += "0,"; } if (ma_knopje.Checked) { days += "1,"; } if (di_knopje.Checked) { days += "2,"; } if (wo_knopje.Checked) { days += "3,"; } if (do_knopje.Checked) { days += "4,"; } if (vr_knopje.Checked) { days += "5,"; } if (za_knopje.Checked) { days += "6,"; } string tmp_days = ""; int tmp_days_i = 0; foreach (char ii in days) { if (days.Length - 1 != tmp_days_i) { tmp_days += ii; } else { days = tmp_days; } tmp_days_i++; } //simplify if (days.Contains("0,1,2,3,4,5,6")) { days = days.Replace("0,1,2,3,4,5,6", "0-6"); } if (days.Contains("1,2,3,4,5")) { days = days.Replace("1,2,3,4,5", "1-5"); } //1 time if (days == "") { DateTime currentTime = DateTime.Now; if (DateTime.DaysInMonth(currentTime.Year, currentTime.Month) == currentTime.Day) { currentTime = new DateTime(currentTime.Year, currentTime.Month + 1, 1); } else { currentTime = new DateTime(currentTime.Year, currentTime.Month, currentTime.Day + 1); } days = currentTime.Day + " " + currentTime.Month + " *"; } else { days = "* * " + days; } if (time_holder.Contains(":")) { string[] time_holder_arr = time_holder.Split(':'); cron_time = time_holder_arr[1] + " " + time_holder_arr[0] + " " + days; } else { cron_time = time_holder + " " + days; } //RunOnUiThread(() => //{ inputfield.Text = cron_time; change_button.Text = time_holder; //}); } int spacer_space_init = 20; Space spacer_init = new Space(alarm_context); spacer_init.SetMinimumWidth(px(spacer_space_init)); int spacer_space = 20; Space spacer_a = new Space(alarm_context); spacer_a.SetMinimumWidth(px(spacer_space)); Space spacer_b = new Space(alarm_context); spacer_b.SetMinimumWidth(px(spacer_space)); Button delete_button = new Button(alarm_context); delete_button.Text = "X"; delete_button.Click += delegate { mainlayout.RemoveView(col_a); mainlayout.RemoveView(col_b); }; delete_button.SetHeight(px(40)); LinearLayout.LayoutParams delete_offset = new LinearLayout.LayoutParams(px(50), -2); delete_offset.LeftMargin = px(-65); delete_offset.TopMargin = px(30); delete_button.LayoutParameters = delete_offset; LinearLayout.LayoutParams date_offset = new LinearLayout.LayoutParams(-2, px(40)) { TopMargin = px(-20) }; col_b.LayoutParameters = date_offset; //inputfield.Text = time_holder; inputfield.SetWidth(px(130)); inputfield.Gravity = GravityFlags.Center; change_button.Text = "edit"; change_button.Click += delegate { TimePickerFragment frag = TimePickerFragment.NewInstance( delegate(DateTime time) { time_holder = time.ToShortTimeString(); add_day_repeat(); }); frag.Show(FragmentManager, TimePickerFragment.TAG); }; LinearLayout.LayoutParams change_offset = new LinearLayout.LayoutParams(px(80), -2) { LeftMargin = px(row_width) - px(13) + px(spacer_space_init) }; change_button.LayoutParameters = change_offset; col_a.AddView(spacer_init); col_a.AddView(alarm_label); col_a.AddView(delete_button); col_a.AddView(spacer_a); col_a.AddView(ma_knopje); col_a.AddView(di_knopje); col_a.AddView(wo_knopje); col_a.AddView(do_knopje); col_a.AddView(vr_knopje); col_a.AddView(za_knopje); col_a.AddView(zo_knopje); col_b.AddView(spacer_b); col_b.AddView(change_button); col_b.AddView(inputfield); //RunOnUiThread(() => //{ mainlayout.AddView(col_a); mainlayout.AddView(col_b); //}); add_day_repeat(); }