public FieldViewCell(VaultViewCipherPage page, VaultViewCipherPageModel.Field field, bool?a, bool?b) : base(field.Name, field.MaskedValue, string.Empty, "clipboard.png") { Value.FontFamily = Helpers.OnPlatform(iOS: "Menlo-Regular", Android: "monospace", Windows: "Courier"); if (Device.RuntimePlatform == Device.iOS) { Button1.Margin = new Thickness(10, 0); } Button1.Image = "eye"; Button1.Command = new Command(() => { field.Revealed = !field.Revealed; if (field.Revealed) { Button1.Image = "eye_slash.png"; Value.Text = field.Value; } else { Button1.Image = "eye.png"; Value.Text = field.MaskedValue; } }); Init(page, field, Button2); }
private async void GroupingOrCipherSelected(object sender, SelectedItemChangedEventArgs e) { var groupingOrCipher = e.SelectedItem as GroupingOrCipher; if (groupingOrCipher == null) { return; } if (groupingOrCipher.Grouping != null) { Page page; if (groupingOrCipher.Grouping.Node.Folder) { page = new VaultListCiphersPage(folder: true, folderId: groupingOrCipher.Grouping.Node.Id, groupingName: groupingOrCipher.Grouping.Node.Name); } else { page = new VaultListCiphersPage(collectionId: groupingOrCipher.Grouping.Node.Id, groupingName: groupingOrCipher.Grouping.Node.Name); } await Navigation.PushAsync(page); } else if (groupingOrCipher.Cipher != null) { var page = new VaultViewCipherPage(groupingOrCipher.Cipher.Type, groupingOrCipher.Cipher.Id); await Navigation.PushForDeviceAsync(page); } ((ListView)sender).SelectedItem = null; }
public EditCipherToolBarItem(VaultViewCipherPage page, string cipherId) { _page = page; _cipherId = cipherId; Text = AppResources.Edit; ClickAction = async() => await ClickedItem(); }
private void Init(VaultViewCipherPage page, VaultViewCipherPageModel.Field field, ExtendedButton copyButton) { Value.LineBreakMode = LineBreakMode.WordWrap; if (copyButton != null) { copyButton.Command = new Command(() => page.Copy(field.Value, field.Name)); } }
public EditCipherToolBarItem(VaultViewCipherPage page, string cipherId) { _page = page; _cipherId = cipherId; Text = AppResources.Edit; Icon = Helpers.ToolbarImage("cog.png"); ClickAction = async() => await ClickedItem(); }
public UriViewCell(VaultViewCipherPage page, VaultViewCipherPageModel.LoginUri uri) : base(uri.Label, uri.Host, uri.ShowLaunch ? "launch.png" : null, "clipboard.png") { Value.LineBreakMode = LineBreakMode.TailTruncation; if (Button1 != null) { Button1.Command = new Command(async() => { if (Device.RuntimePlatform == Device.Android && uri.IsApp) { await page._deviceActionService.LaunchAppAsync(uri.Value, page); } else if (uri.IsWebsite) { Device.OpenUri(new Uri(uri.Value)); } }); } Button2.Command = new Command(() => page.Copy(uri.Value, AppResources.URI)); }
private async void CipherSelected(object sender, SelectedItemChangedEventArgs e) { var cipher = e.SelectedItem as Cipher; if (cipher == null) { return; } string selection = null; if (!string.IsNullOrWhiteSpace(_uri)) { selection = await DisplayActionSheet(AppResources.AutofillOrView, AppResources.Cancel, null, AppResources.Autofill, AppResources.View); } if (selection == AppResources.View || string.IsNullOrWhiteSpace(_uri)) { var page = new VaultViewCipherPage(cipher.Type, cipher.Id); await Navigation.PushForDeviceAsync(page); } else if (selection == AppResources.Autofill) { if (_deviceInfoService.Version < 21) { Helpers.CipherMoreClickedAsync(this, cipher, !string.IsNullOrWhiteSpace(_uri)); } else { _googleAnalyticsService.TrackExtensionEvent("AutoFilled", _uri.StartsWith("http") ? "Website" : "App"); _deviceActionService.Autofill(cipher); } } ((ListView)sender).SelectedItem = null; }
private async void GroupingOrCipherSelected(object sender, SelectedItemChangedEventArgs e) { var groupingOrCipher = e.SelectedItem as GroupingOrCipher; if (groupingOrCipher == null) { return; } if (groupingOrCipher.Grouping != null) { Page page; if (groupingOrCipher.Grouping.Node.Folder) { page = new VaultListCiphersPage(folder: true, folderId: groupingOrCipher.Grouping.Node.Id, groupingName: groupingOrCipher.Grouping.Node.Name); } else { page = new VaultListCiphersPage(collectionId: groupingOrCipher.Grouping.Node.Id, groupingName: groupingOrCipher.Grouping.Node.Name); } await Navigation.PushAsync(page); } else if (groupingOrCipher.Cipher != null) { var cipher = groupingOrCipher.Cipher; string selection = null; if (!string.IsNullOrWhiteSpace(_uri)) { var options = new List <string> { AppResources.Autofill }; if (cipher.Type == Enums.CipherType.Login && _connectivity.IsConnected) { options.Add(AppResources.AutofillAndSave); } options.Add(AppResources.View); selection = await DisplayActionSheet(AppResources.AutofillOrView, AppResources.Cancel, null, options.ToArray()); } if (selection == AppResources.View || string.IsNullOrWhiteSpace(_uri)) { var page = new VaultViewCipherPage(cipher.Type, cipher.Id); await Navigation.PushForDeviceAsync(page); } else if (selection == AppResources.Autofill || selection == AppResources.AutofillAndSave) { if (selection == AppResources.AutofillAndSave) { if (!_connectivity.IsConnected) { Helpers.AlertNoConnection(this); } else { var uris = cipher.CipherModel.Login?.Uris?.ToList(); if (uris == null) { uris = new List <Models.LoginUri>(); } uris.Add(new Models.LoginUri { Uri = _uri.Encrypt(cipher.CipherModel.OrganizationId), Match = null }); cipher.CipherModel.Login.Uris = uris; await _deviceActionService.ShowLoadingAsync(AppResources.Saving); var saveTask = await _cipherService.SaveAsync(cipher.CipherModel); await _deviceActionService.HideLoadingAsync(); if (saveTask.Succeeded) { _googleAnalyticsService.TrackAppEvent("AddedLoginUriDuringAutofill"); } } } if (_deviceInfoService.Version < 21) { Helpers.CipherMoreClickedAsync(this, cipher, !string.IsNullOrWhiteSpace(_uri)); } else { _googleAnalyticsService.TrackExtensionEvent("AutoFilled", _uri.StartsWith("http") ? "Website" : "App"); _deviceActionService.Autofill(cipher); } } } ((ListView)sender).SelectedItem = null; }
public FieldViewCell(VaultViewCipherPage page, VaultViewCipherPageModel.Field field, bool?a) : base(field.Name, field.Value, "clipboard.png") { Init(page, field, Button1); }
public FieldViewCell(VaultViewCipherPage page, VaultViewCipherPageModel.Field field) : base(field.Name, field.Value == "true" ? "✓" : "-") { Init(page, field, null); }