/// <summary> /// Show Reaction dialog when user long click on react button /// </summary> public void LongClickDialog(GlobalClickEventArgs postData, NativePostAdapter nativeFeedAdapter, string namePage = "") { try { PostData = postData; NamePage = namePage; NativeFeedAdapter = nativeFeedAdapter; //Show Dialog With 6 React AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(Context); //Irrelevant code for customizing the buttons and title LayoutInflater inflater = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService); View dialogView = inflater.Inflate(Resource.Layout.XReactDialogLayout, null); InitializingReactImages(dialogView); SetReactionsArray(); ResetReactionsIcons(); ClickImageButtons(); dialogBuilder.SetView(dialogView); MReactAlertDialog = dialogBuilder.Create(); MReactAlertDialog.Window?.SetBackgroundDrawableResource(MReactDialogShape); Window window = MReactAlertDialog.Window; window?.SetLayout(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent); MReactAlertDialog.Show(); } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }
/// <summary> /// Method with 2 state set first React or back to default state /// </summary> public void ClickLikeAndDisLike(GlobalClickEventArgs postData, NativePostAdapter nativeFeedAdapter, string namePage = "") { try { PostData = postData; NamePage = namePage; NativeFeedAdapter = nativeFeedAdapter; //Code When User Click On Button //If State is true , dislike The Button And Return To Default State if (!Methods.CheckConnectivity()) { Toast.MakeText(Application.Context, Application.Context.GetString(Resource.String.Lbl_CheckYourInternetConnection), ToastLength.Short)?.Show(); return; } if (UserDetails.SoundControl) { Methods.AudioRecorderAndPlayer.PlayAudioFromAsset("reaction.mp3"); } if (MCurrentReactState) { PostData.NewsFeedClass.Reaction ??= new WoWonderClient.Classes.Posts.Reaction(); UpdateReactButtonByReaction(MDefaultReaction); if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { if (PostData.NewsFeedClass.Reaction != null) { if (PostData.NewsFeedClass.Reaction.Count > 0) { PostData.NewsFeedClass.Reaction.Count--; } else { PostData.NewsFeedClass.Reaction.Count = 0; } PostData.NewsFeedClass.Reaction.Type = ""; PostData.NewsFeedClass.Reaction.IsReacted = false; } } else { var x = Convert.ToInt32(PostData.NewsFeedClass.PostLikes); if (x > 0) { x--; } else { x = 0; } PostData.NewsFeedClass.IsLiked = false; PostData.NewsFeedClass.PostLikes = Convert.ToString(x, CultureInfo.InvariantCulture); } if (NamePage == "ImagePostViewerActivity" || NamePage == "MultiImagesPostViewerActivity") { //var ImgLike = PostData.View?.FindViewById<ImageView>(Resource.Id.image_like1); var likeCount = PostData.View?.FindViewById <TextView>(Resource.Id.LikeText1); if (likeCount != null && !likeCount.Text.Contains("K") && !likeCount.Text.Contains("M")) { var x = Convert.ToInt32(likeCount.Text); if (x > 0) { x--; } else { x = 0; } likeCount.Text = Convert.ToString(x, CultureInfo.InvariantCulture); } } else { var dataGlobal = nativeFeedAdapter?.ListDiffer?.Where(a => a.PostData?.Id == PostData.NewsFeedClass.PostId).ToList(); if (dataGlobal?.Count > 0) { foreach (var dataClass in from dataClass in dataGlobal let index = nativeFeedAdapter.ListDiffer.IndexOf(dataClass) where index > -1 select dataClass) { dataClass.PostData = postData.NewsFeedClass; if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { dataClass.PostData.PostLikes = PostData.NewsFeedClass.Reaction.Count.ToString(); } else { dataClass.PostData.PostLikes = PostData.NewsFeedClass.PostLikes; } nativeFeedAdapter.NotifyItemChanged(nativeFeedAdapter.ListDiffer.IndexOf(dataClass), "reaction"); } } var likeCount = PostData.View?.FindViewById <TextView>(Resource.Id.Likecount); if (likeCount != null) { if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { likeCount.Text = PostData.NewsFeedClass.Reaction.Count.ToString(); } else { likeCount.Text = PostData.NewsFeedClass.PostLikes; } } } if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { PollyController.RunRetryPolicyFunction(new List <Func <Task> > { () => RequestsAsync.Global.Post_Actions(PostData.NewsFeedClass.PostId, "reaction") }); } else { PollyController.RunRetryPolicyFunction(new List <Func <Task> > { () => RequestsAsync.Global.Post_Actions(PostData.NewsFeedClass.PostId, "like") }); } } else { UpdateReactButtonByReaction(MReactionPack[0]); if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { PostData.NewsFeedClass.Reaction ??= new WoWonderClient.Classes.Posts.Reaction(); if (PostData.NewsFeedClass.Reaction.IsReacted != null && !PostData.NewsFeedClass.Reaction.IsReacted.Value) { PostData.NewsFeedClass.Reaction.Count++; PostData.NewsFeedClass.Reaction.Type = "1"; PostData.NewsFeedClass.Reaction.IsReacted = true; } } else { var x = Convert.ToInt32(PostData.NewsFeedClass.PostLikes); x++; PostData.NewsFeedClass.IsLiked = true; PostData.NewsFeedClass.PostLikes = Convert.ToString(x, CultureInfo.InvariantCulture); } if (NamePage == "ImagePostViewerActivity" || NamePage == "MultiImagesPostViewerActivity") { var likeCount = PostData.View?.FindViewById <TextView>(Resource.Id.LikeText1); if (likeCount != null && !likeCount.Text.Contains("K") && !likeCount.Text.Contains("M")) { var x = Convert.ToInt32(likeCount.Text); x++; likeCount.Text = Convert.ToString(x, CultureInfo.InvariantCulture); } } else { var dataGlobal = nativeFeedAdapter?.ListDiffer?.Where(a => a.PostData?.Id == PostData.NewsFeedClass.PostId).ToList(); if (dataGlobal?.Count > 0) { foreach (var dataClass in from dataClass in dataGlobal let index = nativeFeedAdapter.ListDiffer.IndexOf(dataClass) where index > -1 select dataClass) { dataClass.PostData = postData.NewsFeedClass; if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { dataClass.PostData.PostLikes = PostData.NewsFeedClass.Reaction.Count.ToString(); } else { dataClass.PostData.PostLikes = PostData.NewsFeedClass.PostLikes; } nativeFeedAdapter.NotifyItemChanged(nativeFeedAdapter.ListDiffer.IndexOf(dataClass), "reaction"); } } var likeCount = PostData.View?.FindViewById <TextView>(Resource.Id.Likecount); if (likeCount != null) { if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { likeCount.Text = PostData.NewsFeedClass.Reaction.Count.ToString(); } else { likeCount.Text = PostData.NewsFeedClass.PostLikes; } } } if (AppSettings.PostButton == PostButtonSystem.ReactionDefault || AppSettings.PostButton == PostButtonSystem.ReactionSubShine) { string like = ListUtils.SettingsSiteList?.PostReactionsTypes?.FirstOrDefault(a => a.Value?.Name == "Like").Value?.Id ?? "1"; PollyController.RunRetryPolicyFunction(new List <Func <Task> > { () => RequestsAsync.Global.Post_Actions(PostData.NewsFeedClass.PostId, "reaction", like) }); } else { PollyController.RunRetryPolicyFunction(new List <Func <Task> > { () => RequestsAsync.Global.Post_Actions(PostData.NewsFeedClass.PostId, "like") }); } } } catch (Exception e) { Methods.DisplayReportResultTrack(e); } }