public async Task <string> ShowMessageOkAlertPopup( string titleText, string messageText, string okButtonText) { TitleText = titleText; MessageText = messageText; OkButtonText = okButtonText; var inputView = new MessageAlertOkView(titleText, messageText, okButtonText); var page = new CustomGeneralPopupView <string>(inputView); bool clicked = false; inputView.OkButtonEventHandler += (sender, args) => { if (clicked) { return; } clicked = true; IsShowing = false; page.PageClosingTaskCompletionSource.SetResult(okButtonText); }; IsShowing = true; return(await Navigate(page)); }
public async Task <string> ShowMoreOptionPopupView(string previousRoute) { var inputView = new MoreOptionPopup(); inputView.PreviousRoute = previousRoute; var page = new CustomGeneralPopupView <string>(inputView); bool clicked = false; inputView.CancelButtonEventHandler += (sender, args) => { if (clicked) { return; } clicked = true; IsShowing = false; page.PageClosingTaskCompletionSource.SetResult("Close"); }; IsShowing = true; return(await Navigate(page)); }
public async Task <T> ShowCustomViewAlertPopup <T>(object viewObject) { var page = new CustomGeneralPopupView <T>((View)viewObject); IsShowing = true; return(await Navigate(page)); }
public async Task <object> ShowInputSelectionPopup(string titleText, List <object> selectionList, string cancelButtonText) { TitleText = titleText; CancelButtonText = cancelButtonText; var inputView = new MultipleInputSectionPopup(selectionList, titleText); var page = new CustomGeneralPopupView <object>(inputView); inputView.CancelButtonEventHandler += (sender, args) => { page.PageClosingTaskCompletionSource.SetResult("Close"); }; bool clicked = false; inputView.InputSelectionEventHandler += async(sender, args) => { if (clicked) { return; } clicked = true; page.PageClosingTaskCompletionSource.SetResult(((MultipleInputSectionPopup)sender).InputSelectionStringResult); }; return(await Navigate(page)); }
public async Task <string> ShowInputTextOkCancelAlertPopup(string titleText, string messageText, string placeHolderText, string okButtonText, string cancelButtonText, string validationLabelText) { TitleText = titleText; MessageText = messageText; OkButtonText = okButtonText; PlaceHolderText = placeHolderText; CancelButtonText = cancelButtonText; ValidationLabelText = validationLabelText; var inputView = new InputTextOkCancelView( titleText, messageText, placeHolderText, okButtonText, cancelButtonText, validationLabelText); var page = new CustomGeneralPopupView <string>(inputView); bool clicked = false; inputView.OkButtonEventHandler += (sender, args) => { if (!string.IsNullOrEmpty(((InputTextOkCancelView)sender).TextInputResult)) { if (clicked) { return; } clicked = true; ((InputTextOkCancelView)sender).IsValidationLabelVisible = false; page.PageClosingTaskCompletionSource.SetResult(((InputTextOkCancelView)sender).TextInputResult); } else { ((InputTextOkCancelView)sender).IsValidationLabelVisible = true; } IsShowing = false; }; inputView.CancelButtonEventHandler += (sender, args) => { page.PageClosingTaskCompletionSource.SetResult(null); IsShowing = false; }; IsShowing = true; return(await Navigate(page)); }
/// <summary> /// Handle popup page Navigation /// </summary> /// <typeparam name="T"></typeparam> /// <param name="popup"></param> /// <returns></returns> private async Task <T> Navigate <T>(CustomGeneralPopupView <T> popup) { if (Device.RuntimePlatform == "Test") { return(default(T)); } ThreadingHelpers.InvokeOnMainThread(async() => { await _popupNavigation.PushAsync(popup); }); // await for the user to enter the text input var result = await popup.PageClosingTask; // Pop the page from Navigation Stack ThreadingHelpers.InvokeOnMainThread(async() => { try { await _popupNavigation.RemovePageAsync(popup); } catch { try { await _popupNavigation.PopAsync(); } catch { } } }); return(result); }