public static Task <JwtLoginCredentials> GetInputAsync(string title) { var context = GetContext(); var tcs = new TaskCompletionSource <JwtLoginCredentials>(); var result = new JwtLoginCredentials(); AlertDialog dialog = null; AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.SetTitle(title); var viewInflated = LayoutInflater.From(context).Inflate(Resource.Layout.login_view, null, false); var userInput = viewInflated.FindViewById <AppCompatEditText>(Resource.Id.input_user); var passwordInput = viewInflated.FindViewById <AppCompatEditText>(Resource.Id.input_password); builder.SetView(viewInflated); builder.SetOnCancelListener(new DialogInterfaceOnCancelListener(() => tcs.TrySetResult(null))); builder.SetOnDismissListener(new DialogInterfaceOnDismissListener(() => tcs.TrySetResult(null))); builder.SetPositiveButton(Android.Resource.String.Ok, (sender, args) => { result.User = userInput.Text; result.Password = passwordInput.Text; tcs.TrySetResult(result); dialog.Dismiss(); }); builder.SetNegativeButton(Android.Resource.String.Cancel, (sender, args) => { tcs.TrySetResult(null); dialog.Cancel(); }); dialog = builder.Show(); return(tcs.Task); }
void OnActionSheetRequested(Page sender, ActionSheetArguments arguments) { // Verify that the page making the request is part of this activity if (!PageIsInThisContext(sender)) { return; } var builder = new AlertDialog.Builder(Activity); builder.SetTitle(arguments.Title); string[] items = arguments.Buttons.ToArray(); builder.SetItems(items, (o, args) => arguments.Result.TrySetResult(items[args.Which])); if (arguments.Cancel != null) { builder.SetPositiveButton(arguments.Cancel, (o, args) => arguments.Result.TrySetResult(arguments.Cancel)); } if (arguments.Destruction != null) { builder.SetNegativeButton(arguments.Destruction, (o, args) => arguments.Result.TrySetResult(arguments.Destruction)); } AlertDialog dialog = builder.Create(); builder.Dispose(); //to match current functionality of renderer we set cancelable on outside //and return null dialog.SetCanceledOnTouchOutside(true); dialog.CancelEvent += (o, e) => arguments.SetResult(null); dialog.Show(); }
public Dialog Build(AppCompatActivity activity, PromptConfig config) { var txt = new EditText(activity) { Id = Int32.MaxValue, Hint = config.Placeholder }; if (config.Text != null) { txt.Text = config.Text; txt.SetSelection(config.Text.Length); } if (config.MaxLength != null) { txt.SetFilters(new[] { new InputFilterLengthFilter(config.MaxLength.Value) }); } SetInputType(txt, config.InputType); if (config.AutoCorrectionConfig != AutoCorrectionConfig.Default) { switch (config.AutoCorrectionConfig) { case AutoCorrectionConfig.No: txt.InputType |= InputTypes.TextFlagNoSuggestions; // Add Flag break; case AutoCorrectionConfig.Yes: txt.InputType &= ~InputTypes.TextFlagNoSuggestions; // Remove Flag break; default: break; } } var builder = new AppCompatAlertDialog.Builder(activity, config.AndroidStyleId ?? 0) .SetCancelable(false) .SetMessage(config.Message) .SetTitle(config.Title) .SetView(txt) .SetPositiveButton(config.OkText, (s, a) => config.OnAction(new PromptResult(true, txt.Text.Trim())) ); if (config.IsCancellable) { builder.SetNegativeButton(config.CancelText, (s, a) => config.OnAction(new PromptResult(false, txt.Text.Trim())) ); } var dialog = builder.Create(); this.HookTextChanged(dialog, txt, config); return(dialog); }
public void SetNegativeButton(string text, EventHandler <DialogClickEventArgs> handler) { if (_useAppCompat) { _appcompatBuilder.SetNegativeButton(text, handler); } else { _legacyBuilder.SetNegativeButton(text, handler); } }
private void EnableDeviceAdmin_Click(object sender, EventArgs e) { if (Checkers.IsThisAppADeviceAdministrator()) { ComponentName devAdminReceiver = new ComponentName(Application.Context, Java.Lang.Class.FromType(typeof(AdminReceiver))); DevicePolicyManager dpm = (DevicePolicyManager)GetSystemService(Context.DevicePolicyService); dpm.RemoveActiveAdmin(devAdminReceiver); } else { using (AlertDialog.Builder builder = new AlertDialog.Builder(this)) { builder.SetMessage(Resource.String.dialogfordeviceaccessdescription); builder.SetPositiveButton(Resource.String.dialogallowbutton, new EventHandler <DialogClickEventArgs>(OnDialogPositiveButtonEventArgs)); builder.SetNegativeButton(Resource.String.dialogcancelbutton, null as EventHandler <DialogClickEventArgs>); builder.Show(); } } }
private void OpenDeleteDialog(int position) { var builder = new AlertDialog.Builder(this); builder.SetMessage(Resource.String.confirmAuthenticatorDelete); builder.SetTitle(Resource.String.warning); builder.SetPositiveButton(Resource.String.delete, async(sender, args) => { await _authSource.Delete(position); _authAdapter.NotifyItemRemoved(position); CheckEmptyState(); }); builder.SetNegativeButton(Resource.String.cancel, (sender, args) => { }); builder.SetCancelable(true); var dialog = builder.Create(); dialog.Show(); }
public override Android.App.Dialog OnCreateDialog(Bundle savedInstanceState) { var alert = new AlertDialog.Builder(Activity); alert.SetTitle(Resource.String.changeIcon); alert.SetNegativeButton(Resource.String.cancel, (EventHandler <DialogClickEventArgs>)null); alert.SetCancelable(false); var view = Activity.LayoutInflater.Inflate(Resource.Layout.dialogChangeIcon, null); _searchText = view.FindViewById <EditText>(Resource.Id.editSearch); _iconList = view.FindViewById <RecyclerView>(Resource.Id.list); alert.SetView(view); var dialog = alert.Create(); dialog.Show(); _searchText.TextChanged += OnSearchChanged; _iconListAdapter = new IconListAdapter(Context, _iconSource); _iconListAdapter.ItemClick += OnItemClick; _iconListAdapter.HasStableIds = true; _iconList.SetAdapter(_iconListAdapter); _iconList.HasFixedSize = true; _iconList.SetItemViewCacheSize(20); var layout = new FixedGridLayoutManager(Context, 6); _iconList.SetLayoutManager(layout); var cancelButton = dialog.GetButton((int)DialogButtonType.Negative); cancelButton.Click += (sender, e) => { dialog.Dismiss(); }; return(dialog); }
public Dialog Build(AppCompatActivity activity, PromptConfig config) { var txt = new EditText(activity) { Id = Int32.MaxValue, Hint = config.Placeholder }; if (config.Text != null) { txt.Text = config.Text; txt.SetSelection(config.Text.Length); } if (config.MaxLength != null) { txt.SetFilters(new[] { new InputFilterLengthFilter(config.MaxLength.Value) }); } SetInputType(txt, config.InputType); var builder = new AppCompatAlertDialog.Builder(activity, config.AndroidStyleId ?? 0) .SetCancelable(false) .SetMessage(config.Message) .SetTitle(config.Title) .SetView(txt) .SetPositiveButton(config.OkText, (s, a) => config.OnAction(new PromptResult(true, txt.Text.Trim())) ); if (config.IsCancellable) { builder.SetNegativeButton(config.CancelText, (s, a) => config.OnAction(new PromptResult(false, txt.Text.Trim())) ); } var dialog = builder.Create(); this.HookTextChanged(dialog, txt, config); return(dialog); }
private void OnDeleteClick(object item, int position) { var builder = new AlertDialog.Builder(this); builder.SetMessage(Resource.String.confirmCategoryDelete); builder.SetTitle(Resource.String.warning); builder.SetCancelable(true); builder.SetPositiveButton(Resource.String.delete, async(sender, args) => { await _categorySource.Delete(position); _categoryAdapter.NotifyItemRemoved(position); CheckEmptyState(); }); builder.SetNegativeButton(Resource.String.cancel, (sender, args) => { }); var dialog = builder.Create(); dialog.Show(); }
public override Dialog OnCreateDialog(Bundle savedInstanceState) { var alert = new AlertDialog.Builder(Activity); alert.SetTitle(Resource.String.changeIcon); alert.SetNegativeButton(Resource.String.cancel, (EventHandler <DialogClickEventArgs>)null); alert.SetCancelable(false); var view = Activity.LayoutInflater.Inflate(Resource.Layout.dialogIcon, null); _searchText = view.FindViewById <EditText>(Resource.Id.dialogIcon_search); _iconList = view.FindViewById <RecyclerView>(Resource.Id.dialogIcon_list); alert.SetView(view); var dialog = alert.Create(); dialog.Show(); dialog.Window.SetSoftInputMode(SoftInput.StateAlwaysVisible); _searchText.TextChanged += SearchChanged; _iconAdapter = new IconAdapter(Context, _iconSource); _iconAdapter.ItemClick += ItemClick; _iconAdapter.SetHasStableIds(true); _iconList.SetAdapter(_iconAdapter); _iconList.HasFixedSize = true; _iconList.SetItemViewCacheSize(20); var layout = new AuthListGridLayoutManager(Context, 6); _iconList.SetLayoutManager(layout); var cancelButton = dialog.GetButton((int)DialogButtonType.Negative); cancelButton.Click += _negativeButtonEvent.Invoke; return(dialog); }
private void SetupDeleteButton(View deleteButton) { if (_mediaList == null) { deleteButton.Visibility = ViewStates.Gone; return; } deleteButton.Click += (sender, args) => { var confirmation = new AlertDialog.Builder(Activity, Activity.GetThemedResourceId(Resource.Attribute.Dialog_Theme)); confirmation.SetMessage( "Do you really wish to delete this item from your lists? This action CAN NOT be undone!"); confirmation.SetTitle($"Delete {_media.Title.UserPreferred}"); confirmation.SetNegativeButton("Cancel", (cancelSender, cancelArgs) => { }); confirmation.SetPositiveButton("Delete", async(delSender, delArgs) => await DeleteMediaListItem()); confirmation.Show(); }; }
public Dialog Build(AppCompatActivity activity, ActionSheetConfig config) { var dlg = new AppCompatAlertDialog.Builder(activity, config.AndroidStyleId ?? 0) .SetTitle(config.Title); //.SetCustomTitle(new TextView(activity) { // Text = config.Title, // TextSize = 18.0f //}); if (config.ItemIcon != null || config.Options.Any(x => x.ItemIcon != null)) { var adapter = new ActionSheetListAdapter(activity, Android.Resource.Layout.SelectDialogItem, Android.Resource.Id.Text1, config); dlg.SetAdapter(adapter, (s, a) => config.Options[a.Which].Action?.Invoke()); } else { var array = config .Options .Select(x => x.Text) .ToArray(); dlg.SetItems(array, (s, args) => config.Options[args.Which].Action?.Invoke()); } if (config.Destructive != null) { dlg.SetNegativeButton(config.Destructive.Text, (s, a) => config.Destructive.Action?.Invoke()); } if (config.Cancel != null) { dlg.SetNeutralButton(config.Cancel.Text, (s, a) => config.Cancel.Action?.Invoke()); } return(dlg.Create()); }