Example #1
0
        public void Handle(WallPostAddedOrEdited message)
        {
            if (!message.Edited)
            {
                return;
            }
            using (IEnumerator <IVirtualizable> enumerator = ((Collection <IVirtualizable>) this.PostsVM.Collection).GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    IVirtualizable current      = enumerator.Current;
                    WallPostItem   wallPostItem = current as WallPostItem;
                    if (wallPostItem != null && wallPostItem.WallPost.to_id == message.NewlyAddedWallPost.to_id && wallPostItem.WallPost.id == message.NewlyAddedWallPost.id)
                    {
                        List <WallPost> wallPosts = new List <WallPost>();
                        wallPosts.Add(message.NewlyAddedWallPost);
                        List <User>  users  = message.Users;
                        List <Group> groups = message.Groups;
                        // ISSUE: variable of the null type

                        double itemsWidth = 0.0;
                        this.PostsVM.Insert((IVirtualizable)Enumerable.First <IVirtualizable>(WallPostItemsGenerator.Generate(wallPosts, users, groups, null, itemsWidth)), ((Collection <IVirtualizable>) this.PostsVM.Collection).IndexOf(current));
                        this.PostsVM.Delete(current);
                        break;
                    }
                }
            }
        }
        private void AddNewsItemIfItIsNotThere()
        {
            if (this._wallPostData == null)
            {
                return;
            }
            if (!this.IsWallPostAddedToUI)
            {
                GroupsService.Current.AddCachedGroups((IEnumerable <Group>) this._wallPostData.Groups);
                WallPostItem         wallPostItem = new WallPostItem(this._width, new Thickness(), false, this._wallPostData, new Action <WallPostItem>(this.DeletedWallPost), false, null, false, false, true, true, null, null);
                MyVirtualizingPanel2 panel        = this._panel;
                int index = 0;
                List <IVirtualizable> itemsToInsert = new List <IVirtualizable>();
                itemsToInsert.Add((IVirtualizable)wallPostItem);
                int num = 0;
                // ISSUE: variable of the null type

                panel.InsertRemoveItems(index, itemsToInsert, num != 0, null);
                this.UpdateCanSomethingProperties();
            }
            if (this._wallResponseData == null)
            {
                return;
            }
            EventAggregator current       = EventAggregator.Current;
            OpenPostEvent   openPostEvent = new OpenPostEvent();

            openPostEvent.PostId = this._wallResponseData.WallPost.PostId;
            List <string> copyPostIds = this._wallResponseData.WallPost.CopyPostIds;

            openPostEvent.CopyPostIds = copyPostIds;
            current.Publish(openPostEvent);
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            // ISSUE: reference to a compiler-generated field
            // ISSUE: method pointer
            IEnumerable <IVirtualizable> arg_FD_0 = this._panel.VirtualizableItems;
            Func <IVirtualizable, bool>  arg_FD_1 = new Func <IVirtualizable, bool>((vi) => { return(vi is LikesItem); });

            if (Enumerable.FirstOrDefault <IVirtualizable>(arg_FD_0, arg_FD_1) == null)
            {
                double                width          = this._width;
                Thickness             margin         = new Thickness();
                WallPost              wallPost       = this._wallResponseData.WallPost;
                LikesInfo             likesAll       = this._wallResponseData.LikesAll;
                int                   num1           = this._wallResponseData.WallPost.likes.user_likes == 1 ? 1 : 0;
                User                  loggedInUser   = AppGlobalStateManager.Current.GlobalState.LoggedInUser;
                List <User>           users          = this._wallResponseData.Users;
                WallPostItem          wallPostItem1  = this.WallPostItem;
                int                   num2           = wallPostItem1 != null ? (wallPostItem1.CanShowLikesSeparator ? 1 : 0) : 0;
                LikesItem             likesItem      = new LikesItem(width, margin, wallPost, likesAll, num1 != 0, loggedInUser, users, num2 != 0);
                MyVirtualizingPanel2  panel1         = this._panel;
                int                   index1         = 1;
                List <IVirtualizable> itemsToInsert1 = new List <IVirtualizable>();
                itemsToInsert1.Add((IVirtualizable)likesItem);
                int num3 = 0;
                // ISSUE: variable of the null type
                panel1.InsertRemoveItems(index1, itemsToInsert1, num3 != 0, null);
            }
        }
        public void Handle(WallPostAddedOrEdited message)
        {
            if (!message.Edited)
            {
                return;
            }
            WallPostItem itemForWallPost = this.GetItemForWallPost(message.NewlyAddedWallPost.id, message.NewlyAddedWallPost.to_id);

            if (itemForWallPost == null)
            {
                return;
            }
            List <WallPost> wallPosts = new List <WallPost>();

            wallPosts.Add(message.NewlyAddedWallPost);
            List <User>           users           = message.Users;
            List <Group>          groups          = message.Groups;
            Action <WallPostItem> deletedCallback = new Action <WallPostItem>(this.DeletedCallback);
            double         itemsWidth             = 0.0;
            IVirtualizable virtualizable          = WallPostItemsGenerator.Generate(wallPosts, users, groups, deletedCallback, itemsWidth).First <IVirtualizable>();
            int            ind = this._wallVM.Collection.IndexOf((IVirtualizable)itemForWallPost);

            this._wallVM.Delete((IVirtualizable)itemForWallPost);
            this._wallVM.Insert(virtualizable, ind);
        }
        public static List <IVirtualizable> Generate(List <WallPost> wallPosts, List <User> users, List <Group> groups, Action <WallPostItem> deletedCallback = null, double itemsWidth = 0.0)
        {
            List <IVirtualizable> virtualizableList = new List <IVirtualizable>();
            double num1 = itemsWidth > 0.0 ? itemsWidth : WallPostItemsGenerator.Width;

            foreach (WallPost wallPost in wallPosts)
            {
                double    width  = num1;
                Thickness margin = new Thickness();
                int       num2   = 1;
                NewsItemDataWithUsersAndGroupsInfo wallPostWithInfo = new NewsItemDataWithUsersAndGroupsInfo();
                wallPostWithInfo.WallPost = wallPost;
                wallPostWithInfo.Groups   = groups;
                wallPostWithInfo.Profiles = users;
                Action <WallPostItem> deletedItemCallback = deletedCallback;
                int          num3         = 0;
                object       local1       = null;
                int          num4         = 0;
                int          num5         = 0;
                int          num6         = 1;
                int          num7         = 1;
                object       local2       = null;
                object       local3       = null;
                WallPostItem wallPostItem = new WallPostItem(width, margin, num2 != 0, wallPostWithInfo, deletedItemCallback, num3 != 0, (Action <long, User, Group>)local1, num4 != 0, num5 != 0, num6 != 0, num7 != 0, (NewsFeedAdsItem)local2, (Func <List <MenuItem> >)local3);
                virtualizableList.Add((IVirtualizable)wallPostItem);
            }
            return(virtualizableList);
        }
        public void Handle(WallPostAddedOrEdited message)
        {
            if (this._wallPostData == null || this._wallPostData.WallPost.to_id != message.NewlyAddedWallPost.to_id || this._wallPostData.WallPost.id != message.NewlyAddedWallPost.id)
            {
                return;
            }
            NewsItemDataWithUsersAndGroupsInfo usersAndGroupsInfo = new NewsItemDataWithUsersAndGroupsInfo();
            List <Group> groups = message.Groups;

            usersAndGroupsInfo.Groups = groups;
            List <User> users = message.Users;

            usersAndGroupsInfo.Profiles = users;
            WallPost newlyAddedWallPost = message.NewlyAddedWallPost;

            usersAndGroupsInfo.WallPost = newlyAddedWallPost;
            this._wallPostData          = usersAndGroupsInfo;
            WallPostItem wallPostItem1 = new WallPostItem(this._width, new Thickness(), false, this._wallPostData, null, false, null, false, false, true, true, null, null);
            WallPostItem wallPostItem2 = ((IEnumerable <IVirtualizable>) this._panel.VirtualizableItems).FirstOrDefault <IVirtualizable>() as WallPostItem;

            if (wallPostItem2 == null)
            {
                return;
            }
            this._panel.Substitute((IVirtualizable)wallPostItem2, (IVirtualizable)wallPostItem1);
        }
Example #6
0
 public void Handle(WallPostDeleted message)
 {
     foreach (IVirtualizable virtualizable in (Collection <IVirtualizable>) this.PostsVM.Collection)
     {
         WallPostItem wallPostItem = virtualizable as WallPostItem;
         if (wallPostItem != null && wallPostItem.WallPost.to_id == message.WallPost.to_id && wallPostItem.WallPost.id == message.WallPost.id)
         {
             this.PostsVM.Delete((IVirtualizable)wallPostItem);
             break;
         }
     }
 }
Example #7
0
 public void Handle(WallPostDeleted message)
 {
     using (IEnumerator <IVirtualizable> enumerator = ((Collection <IVirtualizable>) this.PostsVM.Collection).GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             WallPostItem current = enumerator.Current as WallPostItem;
             if (current != null && current.WallPost.to_id == message.WallPost.to_id && current.WallPost.id == message.WallPost.id)
             {
                 this.PostsVM.Delete((IVirtualizable)current);
                 break;
             }
         }
     }
 }
        public void Handle(WallPostAddedOrEdited message)
        {
            if (this._wallPostData == null || this._wallPostData.WallPost.to_id != message.NewlyAddedWallPost.to_id || this._wallPostData.WallPost.id != message.NewlyAddedWallPost.id)
            {
                return;
            }
            this._wallPostData = new NewsItemDataWithUsersAndGroupsInfo()
            {
                Groups   = message.Groups,
                Profiles = message.Users,
                WallPost = message.NewlyAddedWallPost
            };
            WallPostItem wallPostItem1 = new WallPostItem(this._width, new Thickness(), false, this._wallPostData, (Action <WallPostItem>)null, false, (Action <long, User, Group>)null, false, false, true, true, (NewsFeedAdsItem)null, (Func <List <MenuItem> >)null);
            WallPostItem wallPostItem2 = this._panel.VirtualizableItems.FirstOrDefault <IVirtualizable>() as WallPostItem;

            if (wallPostItem2 == null)
            {
                return;
            }
            this._panel.Substitute((IVirtualizable)wallPostItem2, (IVirtualizable)wallPostItem1);
        }
Example #9
0
 public WallPostItem(double width, Thickness margin, bool preview, NewsItemDataWithUsersAndGroupsInfo wallPostWithInfo, Action <WallPostItem> deletedItemCallback = null, bool suppressRepostButton = false, Action <long, User, Group> hideSourceItemsCallback = null, bool isFeedbackItem = false, bool showEarlierReplies = false, bool showDivideLine = true, bool showBackground = true, NewsFeedAdsItem parentAdItem = null, Func <List <MenuItem> > getExtraMenuItemsFunc = null)
     : base(width, margin, new Thickness())
 {
     WallPostItem.UpdateInstanceCount(true);
     this._parentAdItem          = parentAdItem;
     this._getExtraMenuItemsFunc = getExtraMenuItemsFunc;
     this._isFeedbackItem        = isFeedbackItem;
     this._showEarlierReplies    = showEarlierReplies;
     if (wallPostWithInfo.NewsItem != null)
     {
         this._wallPost = WallPostItem.GetWallPostFromNewsItem(wallPostWithInfo.NewsItem);
     }
     if (wallPostWithInfo.WallPost != null)
     {
         this._wallPost = wallPostWithInfo.WallPost;
     }
     this._users     = wallPostWithInfo.Profiles;
     this._groups    = wallPostWithInfo.Groups;
     this._preview   = preview;
     this.AdminLevel = 0;
     if (this.IsGroupPost)
     {
         this._fromGroup = this._groups.FirstOrDefault <Group>((Func <Group, bool>)(g => g.id == -this._wallPost.from_id)) ?? GroupsService.Current.GetCachedGroup(-this._wallPost.from_id) ?? new Group();
     }
     else
     {
         this._fromUser = this._users.FirstOrDefault <User>((Func <User, bool>)(p => p.uid == this._wallPost.from_id)) ?? new User();
     }
     if (this._wallPost.to_id < 0L)
     {
         this.AdminLevel = (this._groups.FirstOrDefault <Group>((Func <Group, bool>)(g => g.id == -this._wallPost.to_id)) ?? GroupsService.Current.GetCachedGroup(-this._wallPost.to_id) ?? new Group()).admin_level;
     }
     this._deletedItemCallback    = deletedItemCallback;
     this.HideSourceItemsCallback = hideSourceItemsCallback;
     this._suppressRepostButton   = suppressRepostButton;
     this._showDivideLine         = showDivideLine;
     this._showBackground         = showBackground;
     this.GenerateLayoutForWallPost();
 }
Example #10
0
 public void Handle(WallPostAddedOrEdited message)
 {
     if (!message.Edited)
     {
         return;
     }
     foreach (IVirtualizable virtualizable in (Collection <IVirtualizable>) this.PostsVM.Collection)
     {
         WallPostItem wallPostItem = virtualizable as WallPostItem;
         if (wallPostItem != null && wallPostItem.WallPost.to_id == message.NewlyAddedWallPost.to_id && wallPostItem.WallPost.id == message.NewlyAddedWallPost.id)
         {
             List <WallPost> wallPosts = new List <WallPost>();
             wallPosts.Add(message.NewlyAddedWallPost);
             List <User>  users      = message.Users;
             List <Group> groups     = message.Groups;
             object       local      = null;
             double       itemsWidth = 0.0;
             this.PostsVM.Insert(WallPostItemsGenerator.Generate(wallPosts, users, groups, (Action <WallPostItem>)local, itemsWidth).First <IVirtualizable>(), this.PostsVM.Collection.IndexOf(virtualizable));
             this.PostsVM.Delete(virtualizable);
             break;
         }
     }
 }
        public static List <IVirtualizable> Generate(List <WallPost> wallPosts, List <User> users, List <Group> groups, Action <WallPostItem> deletedCallback = null, double itemsWidth = 0.0)
        {
            List <IVirtualizable> virtualizableList = new List <IVirtualizable>();
            double num1 = itemsWidth > 0.0 ? itemsWidth : WallPostItemsGenerator.Width;

            foreach (WallPost wallPost in wallPosts)
            {
                if (wallPost.IsMarkedAsAds == true && AppGlobalStateManager.Current.GlobalState.HideADs == true)
                {
                    continue;
                }

                double width = num1;
                NewsItemDataWithUsersAndGroupsInfo wallPostWithInfo = new NewsItemDataWithUsersAndGroupsInfo();
                wallPostWithInfo.WallPost = wallPost;
                wallPostWithInfo.Groups   = groups;
                wallPostWithInfo.Profiles = users;

                WallPostItem wallPostItem = new WallPostItem(width, new Thickness(), true, wallPostWithInfo, deletedCallback, false, null, false, false, true, true, null, null);
                virtualizableList.Add(wallPostItem);
            }
            return(virtualizableList);
        }
 private void DeletedCallback(WallPostItem obj)
 {
     this.WallVM.Delete((IVirtualizable)obj);
 }
Example #13
0
 private void ItemDeletedCallback(WallPostItem obj)
 {
     this.SearchVM.Delete((IVirtualizable)obj);
 }
Example #14
0
        private void GenerateLayoutForWallPost()
        {
            Stopwatch stopwatch = new Stopwatch();

            stopwatch.Start();
            Thickness margin = new Thickness();
            Action    action = null;

            if (this._preview)
            {
                action = new Action(this.OnMoreOptionsTap);
            }
            if (this._originalHeaderItem == null)
            {
                this._originalHeaderItem = new UserOrGroupHeaderItem(this.Width, new Thickness(), this.IsGroupPost, this._wallPost.date, this._fromUser, this._fromGroup, this.ExtraText, this.IconType, this.PostSourcePlatform, this._isFeedbackItem ? null : action, new Action(this.onNavigatedToUserOrGroup), this.ExtraTextEnd);
                this.VirtualizableChildren.Add((IVirtualizable)this._originalHeaderItem);
            }
            this._originalHeaderItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
            margin.Top += this._originalHeaderItem.FixedHeight + 8.0;
            if (!string.IsNullOrEmpty(this._wallPost.text))
            {
                if (this._originalTextItem == null)
                {
                    this._originalTextItem = new NewsTextItem(this.Width - 32.0, new Thickness(16.0, 0.0, 16.0, 0.0), this._wallPost.text, this._preview, (Action)(() => this.NavigateToWallPostWithComments(false)), 21.3, new FontFamily("Segoe WP"), 28.0, (Brush)null, false, 0.0, HorizontalAlignment.Left, this._wallPost.PostId, TextAlignment.Left, true);
                    this.VirtualizableChildren.Add((IVirtualizable)this._originalTextItem);
                }
                this._originalTextItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                margin.Top += this._originalTextItem.FixedHeight + 8.0;
            }
            this.CanShowLikesSeparator = true;
            if ((!this._wallPost.attachments.IsNullOrEmpty() ? 1 : (this._wallPost.geo != null ? 1 : 0)) != 0)
            {
                if (this._originalAttachmentsItem == null)
                {
                    this._originalAttachmentsItem = new AttachmentsItem(this.Width, new Thickness(), this._wallPost.attachments, this._wallPost.geo, this._wallPost.from_id == 0L || this._wallPost.id <= 0L ? "" : string.Format("{0}_{1}", (object)this._wallPost.from_id, (object)this._wallPost.id), this._wallPost.friends_only == 1, false, false, false, 0.0, false, !this._preview, this._wallPost.PostId);
                    this.VirtualizableChildren.Add((IVirtualizable)this._originalAttachmentsItem);
                }
                this._originalAttachmentsItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                margin.Top += this._originalAttachmentsItem.FixedHeight;
                this.CanShowLikesSeparator = !this._originalAttachmentsItem.IsLastAttachmentMedia;
            }
            if (this._wallPost.signer_id != 0L)
            {
                margin.Top += 8.0;
                if (this._originalSignerItem == null)
                {
                    this._originalSignerItem = new LinkToUserOrGroupItem(this.Width, new Thickness(), new long?(this._wallPost.signer_id), this._users, this._groups, null);
                    this.VirtualizableChildren.Add((IVirtualizable)this._originalSignerItem);
                }
                this._originalSignerItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                margin.Top += this._originalSignerItem.FixedHeight;
                this.CanShowLikesSeparator = true;
            }
            if (!this._wallPost.copy_history.IsNullOrEmpty())
            {
                int index = 0;
                foreach (WallPost wallPost in this._wallPost.copy_history)
                {
                    int currentInd = index;
                    WallPostItem.WallPostHistoryVirtItems historyVirtItems = this._historyVirtItemsDict.ContainsKey(currentInd) ? this._historyVirtItemsDict[currentInd] : new WallPostItem.WallPostHistoryVirtItems();
                    bool   isMale;
                    string pic;
                    string name;
                    this.GetNamePicAndSex(wallPost.from_id, out name, out pic, out isMale);
                    int                num1               = WallPostItem.GetIsProfilePhoto(wallPost.attachments, wallPost.post_source) ? 1 : 0;
                    bool               flag               = wallPost.owner_id < 0L;
                    int                num2               = wallPost.IsRepost() ? 1 : 0;
                    int                num3               = isMale ? 1 : 0;
                    int                num4               = flag ? 1 : 0;
                    string             extraText          = WallPostItem.GetExtraText(num1 != 0, num2 != 0, num3 != 0, num4 != 0);
                    string             extraTextEnd       = WallPostItem.GetExtraTextEnd(wallPost.IsReply);
                    PostSource         postSource         = wallPost.post_source;
                    PostSourcePlatform postSourcePlatform = (PostSourcePlatform)(postSource != null ? (int)postSource.GetPlatform() : 0);
                    string             subtitle           = "";
                    if (!string.IsNullOrEmpty(extraText))
                    {
                        subtitle = extraText.ToLowerInvariant();
                    }
                    else if (wallPost.date != 0)
                    {
                        subtitle = UIStringFormatterHelper.FormatDateTimeForUI(VKClient.Common.Utils.Extensions.UnixTimeStampToDateTime((double)wallPost.date, true));
                    }
                    if (!string.IsNullOrEmpty(extraTextEnd))
                    {
                        subtitle += string.Format(" {0}", (object)extraTextEnd);
                    }
                    margin.Top += 8.0;
                    if (historyVirtItems.HeaderItem == null)
                    {
                        historyVirtItems.HeaderItem = new UCItem(this.Width, new Thickness(), (Func <UserControlVirtualizable>)(() =>
                        {
                            RepostHeaderUC repostHeaderUc = new RepostHeaderUC();
                            this._wallRepostInfo          = new WallRepostInfo()
                            {
                                Pic                = pic,
                                Name               = name,
                                Subtitle           = subtitle,
                                PostSourcePlatform = postSourcePlatform,
                                Width              = this.Width - 16.0
                            };
                            WallRepostInfo configuration = this._wallRepostInfo;
                            repostHeaderUc.Configure(configuration, (Action)(() => this.LinkToUserOrGroupTap(currentInd)));
                            return((UserControlVirtualizable)repostHeaderUc);
                        }), (Func <double>)(() => 56.0), (Action <UserControlVirtualizable>)null, 0.0, false);
                        this.VirtualizableChildren.Add((IVirtualizable)historyVirtItems.HeaderItem);
                    }
                    historyVirtItems.HeaderItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                    margin.Top += historyVirtItems.HeaderItem.FixedHeight + 8.0;
                    if (!string.IsNullOrWhiteSpace(wallPost.text))
                    {
                        if (historyVirtItems.TextItem == null)
                        {
                            historyVirtItems.TextItem = new NewsTextItem(this.Width - 32.0, new Thickness(16.0, 0.0, 16.0, 0.0), wallPost.text, this._preview, (Action)(() => this.NavigateToWallPostWithComments(false)), 21.3, new FontFamily("Segoe WP"), 28.0, (Brush)null, false, 0.0, HorizontalAlignment.Left, wallPost.PostId, TextAlignment.Left, true);
                            this.VirtualizableChildren.Add((IVirtualizable)historyVirtItems.TextItem);
                        }
                        historyVirtItems.TextItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                        margin.Top += historyVirtItems.TextItem.FixedHeight + 8.0;
                    }
                    if ((!wallPost.attachments.IsNullOrEmpty() ? 1 : (wallPost.geo != null ? 1 : 0)) != 0)
                    {
                        if (historyVirtItems.AttachmentsItem == null)
                        {
                            string itemId = wallPost.from_id == 0L || wallPost.id <= 0L ? "" : string.Format("{0}_{1}", (object)wallPost.from_id, (object)wallPost.id);
                            historyVirtItems.AttachmentsItem = new AttachmentsItem(this.Width, new Thickness(), wallPost.attachments, wallPost.geo, itemId, wallPost.friends_only == 1, false, false, false, 0.0, false, !this._preview, wallPost.PostId);
                            this.VirtualizableChildren.Add((IVirtualizable)historyVirtItems.AttachmentsItem);
                        }
                        historyVirtItems.AttachmentsItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                        margin.Top += historyVirtItems.AttachmentsItem.FixedHeight;
                        this.CanShowLikesSeparator = !historyVirtItems.AttachmentsItem.IsLastAttachmentMedia;
                    }
                    if (wallPost.signer_id != 0L)
                    {
                        margin.Top += 8.0;
                        if (historyVirtItems.SignerItem == null)
                        {
                            historyVirtItems.SignerItem = new LinkToUserOrGroupItem(this.Width, new Thickness(), new long?(wallPost.signer_id), this._users, this._groups, null);
                            this.VirtualizableChildren.Add((IVirtualizable)historyVirtItems.SignerItem);
                        }
                        historyVirtItems.SignerItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                        margin.Top += historyVirtItems.SignerItem.FixedHeight;
                        this.CanShowLikesSeparator = true;
                    }
                    this._historyVirtItemsDict[index] = historyVirtItems;
                    ++index;
                }
            }
            if (this._preview)
            {
                bool isReply = this._wallPost.IsReply;
                if (!this.IsSuggestedPostponed && !this._isFeedbackItem && !isReply)
                {
                    if (this.CanShowLikesSeparator)
                    {
                        margin.Top += 8.0;
                    }
                    margin.Top = Math.Round(margin.Top);
                    if (this.LikesAndCommentsItem == null)
                    {
                        this.LikesAndCommentsItem = new LikesAndCommentsItem(this.Width, new Thickness(), this._wallPost, (Action)(() => this.NavigateToWallPostWithComments(true)), this._suppressRepostButton, this.CanShowLikesSeparator);
                        this.VirtualizableChildren.Add((IVirtualizable)this.LikesAndCommentsItem);
                    }
                    this.LikesAndCommentsItem.ViewMargin = new Thickness(0.0, margin.Top, 0.0, 0.0);
                    margin.Top += this.LikesAndCommentsItem.FixedHeight;
                }
                else if (isReply)
                {
                    margin.Top += 8.0;
                }
            }
            else
            {
                margin.Top += 8.0;
            }
            if (this._preview && this.IsSuggested && this._wallPost.can_publish == 1)
            {
                margin.Top += 8.0;
                if (this._publishRejectItem == null)
                {
                    this._publishRejectItem = new UCItem(this.Width, margin, (Func <UserControlVirtualizable>)(() =>
                    {
                        PublicRejectUC publicRejectUc     = new PublicRejectUC();
                        publicRejectUc.buttonPublish.Tap += new EventHandler <System.Windows.Input.GestureEventArgs>(this.buttonPublish_Tap);
                        publicRejectUc.buttonDelete.Tap  += new EventHandler <System.Windows.Input.GestureEventArgs>(this.buttonDelete_Tap);
                        return((UserControlVirtualizable)publicRejectUc);
                    }), (Func <double>)(() => 60.0), (Action <UserControlVirtualizable>)null, 0.0, false);
                    this.VirtualizableChildren.Add((IVirtualizable)this._publishRejectItem);
                }
                margin.Top += this._publishRejectItem.FixedHeight;
            }
            this._height = margin.Top;
            if (this._preview && this._showDivideLine)
            {
                this._height = this._height + this.DividerHeight;
            }
            stopwatch.Stop();
        }
 private void DeletedWallPost(WallPostItem obj)
 {
     Navigator.Current.GoBack();
 }
        private void AddNewsItemIfItIsNotThere()
        {
            if (this._wallPostData == null)
            {
                return;
            }
            if (!this.IsWallPostAddedToUI)
            {
                GroupsService.Current.AddCachedGroups((IEnumerable <Group>) this._wallPostData.Groups);
                WallPostItem         wallPostItem       = new WallPostItem(this._width, new Thickness(), false, this._wallPostData, new Action <WallPostItem>(this.DeletedWallPost), false, (Action <long, User, Group>)null, false, false, true, true, (NewsFeedAdsItem)null, (Func <List <MenuItem> >)null);
                MyVirtualizingPanel2 virtualizingPanel2 = this._panel;
                int index = 0;
                List <IVirtualizable> itemsToInsert = new List <IVirtualizable>();
                itemsToInsert.Add((IVirtualizable)wallPostItem);
                int num = 0;
                virtualizingPanel2.InsertRemoveItems(index, itemsToInsert, num != 0, null);
                this.UpdateCanSomethingProperties();
            }
            if (this._wallResponseData == null)
            {
                return;
            }
            EventAggregator.Current.Publish((object)new OpenPostEvent()
            {
                PostId      = this._wallResponseData.WallPost.PostId,
                CopyPostIds = this._wallResponseData.WallPost.CopyPostIds
            });
            if (this._wallResponseData.WallPost.IsSuggestedPostponed)
            {
                return;
            }
            List <IVirtualizable> virtualizableItems = this._panel.VirtualizableItems;

            Func <IVirtualizable, bool> predicate = new Func <IVirtualizable, bool>(vi => { return(vi is LikesItem); });//Func<IVirtualizable, bool> func = (Func<IVirtualizable, bool>) (vi => vi is LikesItem);


            if (virtualizableItems.FirstOrDefault <IVirtualizable>(predicate) != null)
            {
                return;
            }


            double                width                = this._width;
            Thickness             margin               = new Thickness();
            WallPost              wallPost             = this._wallResponseData.WallPost;
            LikesInfo             likesAll             = this._wallResponseData.LikesAll;
            int                   num1                 = this._wallResponseData.WallPost.likes.user_likes == 1 ? 1 : 0;
            User                  loggedInUser         = AppGlobalStateManager.Current.GlobalState.LoggedInUser;
            List <User>           users                = this._wallResponseData.Users;
            WallPostItem          wallPostItem1        = this.WallPostItem;
            int                   num2                 = wallPostItem1 != null ? (wallPostItem1.CanShowLikesSeparator ? 1 : 0) : 0;
            LikesItem             likesItem            = new LikesItem(width, margin, wallPost, likesAll, num1 != 0, loggedInUser, users, num2 != 0);
            MyVirtualizingPanel2  virtualizingPanel2_1 = this._panel;
            int                   index1               = 1;
            List <IVirtualizable> itemsToInsert1       = new List <IVirtualizable>();

            itemsToInsert1.Add((IVirtualizable)likesItem);
            int    num3   = 0;
            object local1 = null;

            virtualizingPanel2_1.InsertRemoveItems(index1, itemsToInsert1, num3 != 0, (IVirtualizable)local1);
        }
Example #17
0
 private void ItemDeletedCallback(WallPostItem obj)
 {
     this.SearchVM.Delete(obj);
 }