コード例 #1
0
        public void LoadPost(bool local)
        {
            try
            {
                var combiner = new FeedCombiner(null, PostFeedAdapter.ListDiffer, Activity);

                //combiner.AddStoryPostView();
                combiner.AddPostBoxPostView("feed", -1);

                switch (AppSettings.ShowStory)
                {
                case true:
                    combiner.AddStoryPostView("feed", -1);
                    break;
                }

                switch (local)
                {
                case true:
                    combiner.AddGreetingAlertPostView();
                    break;
                }

                SqLiteDatabase dbDatabase = new SqLiteDatabase();
                var            json       = dbDatabase.GetDataPost();

                switch (string.IsNullOrEmpty(json))
                {
                case false when local:
                {
                    var postObject = JsonConvert.DeserializeObject <PostObject>(json);
                    switch (postObject?.Data.Count)
                    {
                    case > 0:
                        MainRecyclerView.ApiPostAsync.LoadDataApi(postObject.Status, postObject, "0");
                        MainRecyclerView.ScrollToPosition(0);
                        break;
                    }

                    //Start Updating the news feed every few minus
                    StartApiService();
                    StartHandler();
                    return;
                }
                }

                switch (PostFeedAdapter.ListDiffer.Count)
                {
                case <= 5:
                    StartApiService();
                    break;

                default:
                {
                    var item = PostFeedAdapter.ListDiffer.LastOrDefault();

                    var lastItem = PostFeedAdapter.ListDiffer.IndexOf(item);

                    item = PostFeedAdapter.ListDiffer[lastItem];

                    string offset;
                    switch (item.TypeView)
                    {
                    case PostModelType.Divider:
                    case PostModelType.ViewProgress:
                    case PostModelType.AdMob1:
                    case PostModelType.AdMob2:
                    case PostModelType.AdMob3:
                    case PostModelType.FbAdNative:
                    case PostModelType.AdsPost:
                    case PostModelType.SuggestedGroupsBox:
                    case PostModelType.SuggestedUsersBox:
                    case PostModelType.CommentSection:
                    case PostModelType.AddCommentSection:
                        item   = PostFeedAdapter.ListDiffer.LastOrDefault(a => a.TypeView != PostModelType.Divider && a.TypeView != PostModelType.ViewProgress && a.TypeView != PostModelType.AdMob1 && a.TypeView != PostModelType.AdMob2 && a.TypeView != PostModelType.AdMob3 && a.TypeView != PostModelType.FbAdNative && a.TypeView != PostModelType.AdsPost && a.TypeView != PostModelType.SuggestedGroupsBox && a.TypeView != PostModelType.SuggestedUsersBox && a.TypeView != PostModelType.CommentSection && a.TypeView != PostModelType.AddCommentSection);
                        offset = item?.PostData?.PostId ?? "0";
                        Console.WriteLine(offset);
                        break;

                    default:
                        offset = item.PostData?.PostId ?? "0";
                        break;
                    }

                    StartApiService(offset, "Insert");
                    break;
                }
                }

                //Start Updating the news feed every few minus
                StartHandler();
            }
            catch (Exception e)
            {
                Methods.DisplayReportResultTrack(e);
            }
        }