private async Task <int> GetTreeHealthValue() { // Create UI for tree health selection. AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetTitle("How healthy is this tree?"); builder.SetItems(new string[] { "Dead", "Distressed", "Healthy" }, Choose_Click); builder.SetOnCancelListener(this); builder.Show(); // Get the selected terminal. _healthCompletionSource = new TaskCompletionSource <int>(); int selectedIndex = await _healthCompletionSource.Task; // Return a tree health value based on the users selection. switch (selectedIndex) { case 0: // Dead tree. return(0); case 1: // Distressed tree. return(5); case 2: // Healthy tree. return(10); default: return(0); } }
public static Task <int> ShowPickerDialog(Context context, int defaultIndex, string[] displayedData) { var tcs = new TaskCompletionSource <int>(); AlertDialog.Builder builder = new AlertDialog.Builder(context); var picker = new NumberPicker(context); picker.MinValue = 0; picker.MaxValue = displayedData.Length - 1; picker.Value = defaultIndex; picker.SetDisplayedValues(displayedData); var parent = new FrameLayout(context); parent.AddView(picker, new FrameLayout.LayoutParams( FrameLayout.LayoutParams.WrapContent, FrameLayout.LayoutParams.WrapContent, GravityFlags.Center)); builder.SetView(parent); builder.SetPositiveButton("OK", (senderAlert, args) => { tcs.SetResult(picker.Value); }); builder.SetNegativeButton("Cancel", (senderAlert, args) => { tcs.SetResult(-1); }); var listener = new PickerDialogInterfaceOnCancelListener(tcs); builder.SetOnCancelListener(listener); builder.Create().Show(); return(tcs.Task); }
private void SpecialClicked(Button b, WeaponItem atk, bool ranged) { AlertDialog.Builder builderSingle = new AlertDialog.Builder(this); builderSingle.SetTitle("Special"); List <String> options = new List <string>(); List <WeaponSpecialAbility> specialList = ranged?WeaponSpecialAbility.RangedAbilities:WeaponSpecialAbility.MeleeAbilities; bool [] itemschecked = new bool[specialList.Count]; int i = 0; foreach (WeaponSpecialAbility ab in specialList) { options.Add(ab.Name); if (atk.SpecialAbilities != null && atk.SpecialAbilities.Contains(ab.Name)) { itemschecked[i] = true; } i++; } builderSingle.SetMultiChoiceItems(options.ToArray(), itemschecked, (sender, args) => { int index = args.Which; string special = options[index]; SortedDictionary <string, string> dict = new SortedDictionary <string, string>(atk.SpecialAbilitySet); if (args.IsChecked) { dict[special] = special; } else { dict.Remove(special); } atk.SpecialAbilitySet = dict; }); builderSingle.ItemSelected += (object sender, AdapterView.ItemSelectedEventArgs e) => { if (ranged) { BuildRanged(); } else { BuildMeleeGroup(); } }; builderSingle.SetOnCancelListener(new SpecialListener(this, ranged)); builderSingle.Show(); }
public static async Task <object> ShowSingleChoiseDlg(Context context, string title, object[] items, string textProperty, bool bAllowAbort = true) { tcsScDlg = new TaskCompletionSource <int>(); List <string> textS = new List <string>(); foreach (object x in items) { try { if (x == null) { textS.Add("_empty_"); } else { x.GetType().GetProperty(textProperty).GetValue(x).ToString(); } } catch { textS.Add(string.Concat("_error_", x)); } } MainThread.BeginInvokeOnMainThread(() => { var builder = new AlertDialog.Builder(context).SetTitle(title); if (bAllowAbort) { builder = builder.SetNegativeButton(context.Resources.GetString(Resource.String.action_yes), (s, e) => { tcsYnMsg.TrySetResult(false); }); } builder = builder.SetSingleChoiceItems(textS.ToArray(), -1, new SingleChoiceClickListener(tcsScDlg)); builder = builder.SetOnCancelListener(new myDialogCancelListener <int>(tcsScDlg)); var dlg = builder.Create(); dlg.Show(); }); await tskScDlg; int iRes = tskScDlg.Result; if (iRes < 0) { return(null); } else { return(items[iRes]); } }
public void ShowChooseDialog(Activity activity) { AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.SetOnCancelListener(new DialogOnCancelListener(this)); string[] options = { GetString(Resource.String.menu_open_camera), GetString(Resource.String.menu_album) }; int MenuCameraIndex = 0; int menuAlbumIndex = 1; alertDialog.SetItems(options, new DialogInterfaceClickListenerClass( delegate(IDialogInterface dialog, int which) { if (which == MenuCameraIndex) { mActivity = activity; try { if (!RequestDocCameraPermission(activity)) { Logger.Error(Tag, "The user has forbidden to use the camera " + "to take permission or failed to apply for the camera to take permission!"); } else { DoTakePhoto(activity); } } catch (System.Exception e) { Logger.Error(Tag, "onShowFileChooser camera error: " + e.ToString()); } } else if (which == menuAlbumIndex) { try { Intent albumIntent = new Intent(Intent.ActionPick); albumIntent.SetType("image/*"); ICharSequence charSequence = null; activity.StartActivityForResult(Intent.CreateChooser(albumIntent, charSequence), FileChooserCodeAlbum); } catch (System.Exception e) { Logger.Error(Tag, "onShowFileChooser album error: " + e.ToString()); } } } )); alertDialog.Show(); }
private Dialog CreateRenameDialog() { View layout = View.Inflate(this, Resource.Layout.dialog_rename, null); mInput = (EditText)layout.FindViewById(Resource.Id.name); ((TextView)layout.FindViewById(Resource.Id.label)).SetText(Resource.String.gestures_rename_label); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetIcon(0); builder.SetTitle(GetString(Resource.String.gestures_rename_title)); builder.SetCancelable(true); builder.SetOnCancelListener(new DialogCancelListener(CleanupRenameDialog)); builder.SetNegativeButton(GetString(Resource.String.cancel_action), delegate { CleanupRenameDialog(); }); builder.SetPositiveButton(GetString(Resource.String.rename_action), delegate { ChangeGestureName(); }); builder.SetView(layout); return(builder.Create()); }
public static Task <bool?> Prompt(Context context, string title, string message, string positiveText, string negativeText) { var tcs = new TaskCompletionSource <bool?>(); var builder = new AlertDialog.Builder(context); builder.SetMessage(message); if (title != null) { builder.SetTitle(title); } builder.SetPositiveButton(positiveText, (sender, args) => tcs.TrySetResult(true)); builder.SetNegativeButton(negativeText, (sender, args) => tcs.TrySetResult(false)); builder.SetOnCancelListener(new DialogInterfaceOnCancelListener(() => tcs.TrySetResult(null))); builder.Show(); return(tcs.Task); }
internal static Task <string> SelectDatabase(Context context, string title, string except = null) { var tcs = new TaskCompletionSource <string>(); Exception ex = Android_Database.LoadDatabaseFileListSafe(context, out List <string> fileList); if (ex != null) { Toast.MakeText(context, ex.Message, ToastLength.Long).Show(); } if (!string.IsNullOrEmpty(except)) { if (fileList.Contains(except)) { fileList.Remove(except); } } if (fileList.Count == 0) { tcs.TrySetResult(null); return(tcs.Task); } string[] databaseNames = new string[fileList.Count]; for (int i = 0; i < fileList.Count; i++) { databaseNames[i] = Path.GetFileNameWithoutExtension(fileList[i]); } using (AlertDialog.Builder builder = new AlertDialog.Builder(context)) { builder.SetTitle(title); builder.SetItems(databaseNames, (sender2, args) => { tcs.TrySetResult(fileList[args.Which]); }); builder.SetOnCancelListener(new ActionDismissListener(() => { tcs.TrySetResult(null); })); builder.Show(); } return(tcs.Task); }
public static async Task <int> ShowSingleChoiseDlg(Context context, string title, IListAdapter items, bool bAllowAbort = true) { tcsScDlg = new TaskCompletionSource <int>(); MainThread.BeginInvokeOnMainThread(() => { var builder = new AlertDialog.Builder(context).SetTitle(title); if (bAllowAbort) { builder = builder.SetNegativeButton(context.Resources.GetString(Resource.String.action_abort), (s, e) => { tcsYnMsg.TrySetResult(false); }); } builder = builder.SetSingleChoiceItems(items, -1, new SingleChoiceClickListener(tcsScDlg)); builder = builder.SetOnCancelListener(new myDialogCancelListener <int>(tcsScDlg)); var dlg = builder.Create(); dlg.Show(); }); await tskScDlg; return(tskScDlg.Result); }
}//class public bool?ReadYesNoCancel(string prompt, bool?defaultYes, bool cancelButton) { bool? result = defaultYes; var w = new ManualResetEvent(false); Action exit = () => w.Set(); IDialogInterfaceOnCancelListener lsnrCancel = new IDIOCancelListener { Action = () => { System.Diagnostics.Debug.Assert(result == defaultYes, "NOT equal '" + result + " and '" + defaultYes + "'"); exit(); }, }; EventHandler dlgt = delegate { var bldr = new AlertDialog.Builder(_parent); bldr.SetMessage(prompt); bldr.SetCancelable(true); bldr.SetOnCancelListener(lsnrCancel); bldr.SetPositiveButton("Yes", delegate { result = true; exit(); }); bldr.SetNeutralButton("No", delegate { result = false; exit(); }); if (cancelButton) { bldr.SetNegativeButton("Cancel", delegate { result = null; exit(); }); } var dlg = bldr.Create(); dlg.Show(); }; UiInvokeNoWait(dlgt); w.WaitOne(); return(result); }
public void Show() { AlertDialog.Builder dialog = new AlertDialog.Builder(_context); dialog.SetTitle(Title); if (string.IsNullOrWhiteSpace(Message) == false) { dialog.SetMessage(Message); } if (Content != null) { dialog.SetView(Content); } dialog.SetPositiveButton(Positive, OnPositiveProc); dialog.SetNegativeButton(Negative, OnNegativeProc); if (string.IsNullOrWhiteSpace(Neutral) == false) { dialog.SetNeutralButton(Neutral, OnNeutralProc); } dialog.SetOnCancelListener(this); dialog.SetCancelable(IsCancellable); _dialog = dialog.Create(); Reshow(); }
public override bool PerformClick() { DefaultText = Context.GetString(Resource.String.text_nome); Builder = new AlertDialog.Builder(Context); Builder.SetTitle(SpinnerTitle); LayoutInflater inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService); View view = inflater.Inflate(Resource.Layout.dialog_recyclerview_search, null); Builder.SetView(view); EmptyText = (TextView)view.FindViewById(Resource.Id.txvEmpty); SearchView = view.FindViewById <Android.Widget.SearchView>(Resource.Id.searchText); SearchView.SetQueryHint(Context.GetString(Resource.String.text_search_hint)); var listView = view.FindViewById <RecyclerView>(Resource.Id.rvItems); ItemAdapter = new SpinnerItemAdapter(Context, Items, this, EmptyText, IsMultiSelect); ItemAdapter.Filter(null); listView.SetAdapter(ItemAdapter); listView.SetLayoutManager(new LinearLayoutManager(Context)); SearchView.QueryTextChange += (s, e) => { ItemAdapter.Filter(e.NewText); }; Builder.SetPositiveButton(Android.Resource.String.Ok, (s, e) => { OnCancel(Dialog); }); Builder.SetOnCancelListener(this); Dialog = Builder.Show(); return(true); }
public static Task <string> ShowDialog(Context context, string title, params string[] items) { var tcs = new TaskCompletionSource <string>(); AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.SetTitle(title); //public Builder SetSingleChoiceItems(string[] items, int checkedItem, EventHandler<DialogClickEventArgs> handler); builder.SetItems(items, (s, e) => { var item = items[e.Which]; tcs.SetResult(item); var dialog = s as AlertDialog; dialog.Dismiss(); }); var listener = new DialogInterfaceOnCancelListener(tcs); builder.SetOnCancelListener(listener); builder.SetNegativeButton("Cancel", (senderAlert, args) => { tcs.SetResult(""); }); builder.Create().Show(); return(tcs.Task); }
//---- public override string SafeReadLine(string prompt, string title) { string result = null; var w = new ManualResetEvent(false); Action exit = () => w.Set(); IDialogInterfaceOnCancelListener lsnrCancel = new IDIOCancelListener { Action = () => { System.Diagnostics.Debug.Assert(result == null, "NOT null '" + result + "'"); exit(); }, }; EventHandler dlgt = delegate { var bldr = new AlertDialog.Builder(_parent); bldr.SetTitle(title); bldr.SetMessage(prompt); // Set an EditText view to get user input final EditText input = new EditText(_parent); bldr.SetView(input); bldr.SetCancelable(true); bldr.SetOnCancelListener(lsnrCancel); bldr.SetPositiveButton("Yes", delegate { result = input.Text; exit(); }); bldr.SetNeutralButton("No", delegate { result = null; exit(); }); var dlg = bldr.Create(); dlg.Show(); }; UiInvokeNoWait(dlgt); w.WaitOne(); return(result); }
public static void ShowFilenameDialog(Activity activity, Func <string, Dialog, bool> onOpen, Func <string, Dialog, bool> onCreate, Action onCancel, bool showBrowseButton, string defaultFilename, string detailsText, int requestCodeBrowse) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.SetView(activity.LayoutInflater.Inflate(Resource.Layout.file_selection_filename, null)); if (onCancel != null) { builder.SetOnCancelListener(new CancelListener(onCancel)); } Dialog dialog = builder.Create(); dialog.Show(); Button openButton = (Button)dialog.FindViewById(Resource.Id.open); Button createButton = (Button)dialog.FindViewById(Resource.Id.create); TextView enterFilenameDetails = (TextView)dialog.FindViewById(Resource.Id.label_open_by_filename_details); openButton.Visibility = onOpen != null ? ViewStates.Visible : ViewStates.Gone; createButton.Visibility = onCreate != null? ViewStates.Visible : ViewStates.Gone; // Set the initial value of the filename EditText editFilename = (EditText)dialog.FindViewById(Resource.Id.file_filename); editFilename.Text = defaultFilename; enterFilenameDetails.Text = detailsText; enterFilenameDetails.Visibility = enterFilenameDetails.Text == "" ? ViewStates.Gone : ViewStates.Visible; // Open button if (onOpen != null) { openButton.Click += (sender, args) => { String fileName = ((EditText)dialog.FindViewById(Resource.Id.file_filename)).Text; if (onOpen(fileName, dialog)) { dialog.Dismiss(); } } } ; // Create button if (onCreate != null) { createButton.Click += (sender, args) => { String fileName = ((EditText)dialog.FindViewById(Resource.Id.file_filename)).Text; if (onCreate(fileName, dialog)) { dialog.Dismiss(); } } } ; Button cancelButton = (Button)dialog.FindViewById(Resource.Id.fnv_cancel); cancelButton.Click += delegate { dialog.Dismiss(); if (onCancel != null) { onCancel(); } }; ImageButton browseButton = (ImageButton)dialog.FindViewById(Resource.Id.browse_button); if (!showBrowseButton) { browseButton.Visibility = ViewStates.Invisible; } browseButton.Click += (sender, evt) => { string filename = ((EditText)dialog.FindViewById(Resource.Id.file_filename)).Text; Util.ShowBrowseDialog(activity, requestCodeBrowse, onCreate != null, /*TODO should we prefer ActionOpenDocument here?*/ false); }; }
/// <summary> /// Datenbankauswahl (bei mehreren Datenbanken) /// </summary> /// <returns>true - Datenbank wurde ausgewählt. false - Datenbankauswahl wird angezeigt.</returns> private bool SelectDatabase() { List <string> fileList; Exception ex = Android_Database.LoadDatabaseFileListSafe(this, out fileList); if (ex != null) { TRACE(ex); string text = "Bitte ggf. den Eintrag 'Zusätzlicher Datenbankpfad' in den Einstellungen prüfen."; TRACE("SplashScreen: {0}", ex.Message); TRACE("SplashScreen: {0}", text); text = ex.Message + "\n\n" + text; Toast.MakeText(this, text, ToastLength.Long).Show(); } if (fileList.Count == 1) { Android_Database.TryOpenDatabase(fileList[0]); return(true); } if (fileList.Count == 0) { return(true); } string[] databaseNames = new string[fileList.Count]; for (int i = 0; i < fileList.Count; i++) { databaseNames[i] = Path.GetFileNameWithoutExtension(fileList[i]); } AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetTitle("Datenbank auswählen:"); builder.SetItems(databaseNames, (sender2, args) => { string database = fileList[args.Which]; Android_Database.TryOpenDatabase(database); Settings.PutString("LastSelectedDatabase", database); this.ConvertAndStartMainScreen(); }); builder.SetOnCancelListener(new ActionDismissListener(() => { Android_Database.TryOpenDatabase(fileList[0]); this.ConvertAndStartMainScreen(); })); builder.Show(); return(false); /* * bool emulator = Android.OS.Environment.IsExternalStorageEmulated; * string status = Android.OS.Environment.ExternalStorageState; * bool canWrite = Android.OS.Environment.ExternalStorageDirectory.CanWrite(); * string sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; * string databasePath = Android_Database.Instance.GetDatabasePath(); * * TRACE("********************************************"); * TRACE("Is SD card emulated : {0}", emulator); * TRACE("SD card state : {0}", status); * TRACE("Can write SD card : {0}", canWrite); * TRACE("SD card path : {0}", sdCardPath); * TRACE("Database path : {0}", databasePath); * TRACE("Database on SD card : {0}", Android_Database.IsDatabaseOnSdCard); * TRACE("********************************************"); * * for (int progress=0; progress<100; progress+=10) * { * System.Threading.Thread.Sleep(1000); * * RunOnUiThread(() => * { * this.progressText.SetText(progress.ToString(), TextView.BufferType.Normal); * }); * } */ }
public override async Task <JObject> ExecuteTableOperationAsync(IMobileServiceTableOperation operation) { MobileServicePreconditionFailedException error; do { error = null; try { return(await operation.ExecuteAsync()); } catch (MobileServicePreconditionFailedException ex) { error = ex; } if (error != null) { var localItem = operation.Item.ToObject <ToDoItem>(); var serverValue = error.Value; var builder = new AlertDialog.Builder(this.activity); builder.SetTitle("Conflict between local and server versions"); builder.SetMessage("How do you want to resolve this conflict?\n\n" + "Local item: \n" + localItem + "\n\nServer item:\n" + serverValue.ToObject <ToDoItem>()); var clickTask = new TaskCompletionSource <int>(); builder.SetPositiveButton(LOCAL_VERSION, (which, e) => { clickTask.SetResult(1); }); builder.SetNegativeButton(SERVER_VERSION, (which, e) => { clickTask.SetResult(2); }); builder.SetOnCancelListener(new CancelListener(clickTask)); builder.Create().Show(); int command = await clickTask.Task; if (command == 1) { // Overwrite the server version and try the operation again by continuing the loop operation.Item[MobileServiceSystemColumns.Version] = serverValue[MobileServiceSystemColumns.Version]; continue; } else if (command == 2) { return((JObject)serverValue); } else { operation.AbortPush(); } } } while (error != null); return(null); }
private bool InitializeApp() { if (Android_Database.SQLiteConnection != null) { return(true); } List <string> fileList; try { fileList = this.GetFileList(); } catch (Exception ex) { string text = "Bitte ggf. den Eintrag 'Zusätzlicher Datenbankpfad' in den Einstellungen prüfen."; TRACE("SplashScreen: {0}", ex.Message); TRACE("SplashScreen: {0}", text); text = ex.Message + "\n\n" + text; Toast.MakeText(this, text, ToastLength.Long).Show(); this.ConvertAndStartMainScreen(); /* * Die Meldung kam bei Neuinstallation und könnte den Benutzer verwirren. * * var message = new AlertDialog.Builder(this); * message.SetMessage(text); * message.SetIcon(Resource.Drawable.ic_launcher); * message.SetPositiveButton("Ok", (s, e) => * { * this.ConvertAndStartMainScreen(); * }); * message.Create().Show(); */ return(false); } if (fileList.Count == 1) { Android_Database.SelectedDatabaseName = fileList[0]; return(true); } if (fileList.Count == 0) { return(true); } string[] databaseNames = new string[fileList.Count]; for (int i = 0; i < fileList.Count; i++) { databaseNames[i] = Path.GetFileNameWithoutExtension(fileList[i]); } AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetTitle("Datenbank auswählen:"); builder.SetItems(databaseNames, (sender2, args) => { Android_Database.SelectedDatabaseName = fileList[args.Which]; this.ConvertAndStartMainScreen(); }); builder.SetOnCancelListener(new OnDismissListener(() => { Android_Database.SelectedDatabaseName = fileList[0]; // Ersten Eintrag auswählen this.ConvertAndStartMainScreen(); })); builder.Show(); return(false); /* * bool emulator = Android.OS.Environment.IsExternalStorageEmulated; * string status = Android.OS.Environment.ExternalStorageState; * bool canWrite = Android.OS.Environment.ExternalStorageDirectory.CanWrite(); * string sdCardPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; * string databasePath = Android_Database.Instance.GetDatabasePath(); * * TRACE("********************************************"); * TRACE("Is SD card emulated : {0}", emulator); * TRACE("SD card state : {0}", status); * TRACE("Can write SD card : {0}", canWrite); * TRACE("SD card path : {0}", sdCardPath); * TRACE("Database path : {0}", databasePath); * TRACE("Database on SD card : {0}", Android_Database.IsDatabaseOnSdCard); * TRACE("********************************************"); * * for (int progress=0; progress<100; progress+=10) * { * System.Threading.Thread.Sleep(1000); * * RunOnUiThread(() => * { * this.progressText.SetText(progress.ToString(), TextView.BufferType.Normal); * }); * } */ }