public static void ShowTimePicker(OnTimePicked callback) { int hourOfDay = DateTime.Now.Hour; int minute = DateTime.Now.Minute; AndroidJavaObject dialog = new AndroidJavaObject("android.app.TimePickerDialog", GetActivity(), new AndroidNativePicker.OnTimeSetListenerPoxy(callback), hourOfDay, minute, true); dialog.Call("show"); }
static AndroidJavaObject CreateBaseTimePicker(int hourOfDay, int minute, OnTimePicked onTimePicked, Action onCancel, AGDialogTheme theme = AGDialogTheme.Default, bool is24HourFormat = true) { var listener = new OnTimeSetListenerPoxy(onTimePicked); var themeResource = AndroidDialogUtils.GetDialogTheme(theme); var dialog = AndroidDialogUtils.IsDefault(themeResource) ? new AndroidJavaObject(TimePickerClass, AGUtils.Activity, listener, hourOfDay, minute, is24HourFormat) : new AndroidJavaObject(TimePickerClass, AGUtils.Activity, themeResource, listener, hourOfDay, minute, is24HourFormat); dialog.Call("setOnCancelListener", new DialogOnCancelListenerPoxy(onCancel)); return(dialog); }
/// <summary> /// Shows the default Android time picker. /// </summary> /// <param name="hourOfDay">Hour of day.</param> /// <param name="minute">Minute. Not Zero-base as on Android!</param> /// <param name="onTimePicked">Time was picked callback.</param> /// <param name="onCancel">Dialog was cancelled callback.</param> /// <param name="theme">Dialog theme</param> /// <param name="is24HourFormat">If the picker is in 24 hour format</param> public static void ShowTimePicker(int hourOfDay, int minute, OnTimePicked onTimePicked, Action onCancel, AGDialogTheme theme = AGDialogTheme.Default, bool is24HourFormat = true) { if (AGUtils.IsNotAndroid()) { return; } AGUtils.RunOnUiThread(() => { var dialog = CreateBaseTimePicker(hourOfDay, minute, onTimePicked, onCancel, theme, is24HourFormat); AndroidDialogUtils.ShowWithImmersiveModeWorkaround(dialog); }); }
/// <summary> /// Shows the default Android time picker. /// </summary> /// <param name="hourOfDay">Hour of day.</param> /// <param name="minute">Minute. Not Zero-base as on Android!</param> /// <param name="onTimePicked">Time was picked callback.</param> /// <param name="onCancel">Dialog was cancelled callback.</param> /// <param name="theme">Dialog theme</param> public static void ShowTimePicker(int hourOfDay, int minute, OnTimePicked onTimePicked, Action onCancel, AGDialogTheme theme = AGDialogTheme.Default) { if (AGUtils.IsNotAndroidCheck()) { return; } AGUtils.RunOnUiThread(() => { var listener = new AGDateTimePicker.OnTimeSetListenerPoxy(onTimePicked); int themeResource = AndroidDialogUtils.GetDialogTheme(theme); var dialog = AndroidDialogUtils.IsDefault(themeResource) ? new AndroidJavaObject(TimePickerClass, AGUtils.Activity, listener, hourOfDay, minute, true) : new AndroidJavaObject(TimePickerClass, AGUtils.Activity, themeResource, listener, hourOfDay, minute, true); dialog.Call("setOnCancelListener", new DialogOnCancelListenerPoxy(onCancel)); dialog.Call("show"); }); }
/// <summary> /// Shows the default Android time picker. /// </summary> /// <param name="hourOfDay">Hour of day.</param> /// <param name="minute">Minute. Not Zero-base as on Android!</param> /// <param name="onTimePicked">Time was picked callback.</param> /// <param name="onCancel">Dialog was cancelled callback.</param> /// <param name="theme">Dialog theme</param> /// <param name="is24HourFormat">If the picker is in 24 hour format</param> public static void ShowTimePicker(int hourOfDay, int minute, OnTimePicked onTimePicked, Action onCancel, AGDialogTheme theme = AGDialogTheme.Default, bool is24HourFormat = true) { if (AGUtils.IsNotAndroidCheck()) { return; } AGUtils.RunOnUiThread(() => { var listener = new OnTimeSetListenerPoxy(onTimePicked); int themeResource = AndroidDialogUtils.GetDialogTheme(theme); var dialog = AndroidDialogUtils.IsDefault(themeResource) ? new AndroidJavaObject(TimePickerClass, AGUtils.Activity, listener, hourOfDay, minute, is24HourFormat) : new AndroidJavaObject(TimePickerClass, AGUtils.Activity, themeResource, listener, hourOfDay, minute, is24HourFormat); dialog.Call("setOnCancelListener", new DialogOnCancelListenerPoxy(onCancel)); AndroidDialogUtils.ShowWithImmersiveModeWorkaround(dialog); }); }
public OnTimeSetListenerPoxy(OnTimePicked onTimePicked) : base("android.app.TimePickerDialog$OnTimeSetListener") { _onTimePicked = onTimePicked; }