コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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;
            }
        }