private void PopulateView(View gv, PwGroup pw) { _pwGroup = pw; ImageView iv = (ImageView)gv.FindViewById(Resource.Id.icon); Database db; try { db = App.Kp2a.FindDatabaseForElement(pw); } catch (Exception e) { //for some reason, since Android 12 we get here when the database is reloaded (after making remote changes and selecting sync) //we can just ignore this. Console.WriteLine(e); return; } db.DrawableFactory.AssignDrawableTo(iv, _groupBaseActivity, db.KpDatabase, pw.IconId, pw.CustomIconUuid, true); gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible; gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible; _textview.Text = pw.Name; if (_defaultTextColor == null) { _defaultTextColor = _textview.TextColors.DefaultColor; } if (_groupBaseActivity.IsBeingMoved(_pwGroup.Uuid)) { int elementBeingMoved = Context.Resources.GetColor(Resource.Color.element_being_moved); _textview.SetTextColor(new Color(elementBeingMoved)); } else { _textview.SetTextColor(new Color((int)_defaultTextColor)); } _label.Text = _groupBaseActivity.GetString(Resource.String.group) + " - "; uint numEntries = CountEntries(pw); if (numEntries == 1) { _label.Text += Context.GetString(Resource.String.Entry_singular); } else { Java.Lang.Object obj = (int)numEntries; _label.Text += Context.GetString(Resource.String.Entry_plural, obj); } }
private void PopulateView(View gv, PwGroup pw) { _pwGroup = pw; ImageView iv = (ImageView)gv.FindViewById(Resource.Id.icon); Database db = App.Kp2a.FindDatabaseForElement(pw); db.DrawableFactory.AssignDrawableTo(iv, _groupBaseActivity, db.KpDatabase, pw.IconId, pw.CustomIconUuid, true); gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible; gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible; _textview.Text = pw.Name; if (_defaultTextColor == null) { _defaultTextColor = _textview.TextColors.DefaultColor; } if (_groupBaseActivity.IsBeingMoved(_pwGroup.Uuid)) { int elementBeingMoved = Context.Resources.GetColor(Resource.Color.element_being_moved); _textview.SetTextColor(new Color(elementBeingMoved)); } else { _textview.SetTextColor(new Color((int)_defaultTextColor)); } _label.Text = _groupBaseActivity.GetString(Resource.String.group) + " - "; uint numEntries = CountEntries(pw); if (numEntries == 1) { _label.Text += Context.GetString(Resource.String.Entry_singular); } else { Java.Lang.Object obj = (int)numEntries; _label.Text += Context.GetString(Resource.String.Entry_plural, obj); } }
private void PopulateView(View ev, PwEntry pw, int pos) { _entry = pw; _pos = pos; ev.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible; ev.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible; Database db = App.Kp2a.FindDatabaseForElement(_entry); ImageView iv = (ImageView)ev.FindViewById(Resource.Id.icon); bool isExpired = pw.Expires && pw.ExpiryTime < DateTime.Now; if (isExpired) { db.DrawableFactory.AssignDrawableTo(iv, Context, db.KpDatabase, PwIcon.Expired, PwUuid.Zero, false); } else { db.DrawableFactory.AssignDrawableTo(iv, Context, db.KpDatabase, pw.IconId, pw.CustomIconUuid, false); } String title = pw.Strings.ReadSafe(PwDefs.TitleField); var str = new SpannableString(title); if (isExpired) { str.SetSpan(new StrikethroughSpan(), 0, title.Length, SpanTypes.ExclusiveExclusive); } _textView.TextFormatted = str; if (_defaultTextColor == null) { _defaultTextColor = _textView.TextColors.DefaultColor; } if (_groupActivity.IsBeingMoved(_entry.Uuid)) { int elementBeingMoved = Context.Resources.GetColor(Resource.Color.element_being_moved); _textView.SetTextColor(new Color(elementBeingMoved)); } else { _textView.SetTextColor(new Color((int)_defaultTextColor)); } String detail = pw.Strings.ReadSafe(PwDefs.UserNameField); detail = SprEngine.Compile(detail, new SprContext(_entry, db.KpDatabase, SprCompileFlags.All)); if ((_showDetail == false) || (String.IsNullOrEmpty(detail))) { _textviewDetails.Visibility = ViewStates.Gone; } else { var strDetail = new SpannableString(detail); if (isExpired) { strDetail.SetSpan(new StrikethroughSpan(), 0, detail.Length, SpanTypes.ExclusiveExclusive); } _textviewDetails.TextFormatted = strDetail; _textviewDetails.Visibility = ViewStates.Visible; } if ((!_showGroupFullPath) || (!_isSearchResult)) { _textgroupFullPath.Visibility = ViewStates.Gone; } else { String groupDetail = pw.ParentGroup.GetFullPath(); if (App.Kp2a.OpenDatabases.Count() > 1) { groupDetail += "(" + App.Kp2a.GetFileStorage(db.Ioc).GetDisplayName(db.Ioc) + ")"; } var strGroupDetail = new SpannableString(groupDetail); if (isExpired) { strGroupDetail.SetSpan(new StrikethroughSpan(), 0, groupDetail.Length, SpanTypes.ExclusiveExclusive); } _textgroupFullPath.TextFormatted = strGroupDetail; _textgroupFullPath.Visibility = ViewStates.Visible; } }