private static async Task <bool> MarkStarSingle(Items ListItem, bool RemoveFromList, string ActionType, bool Silent) { try { bool MarkStatus = false; string ItemId = ListItem.item_id; //Check if internet is available if (!NetworkInterface.GetIsNetworkAvailable() || ApiMessageError.StartsWith("(Off)")) { if (!Silent) { await EventProgressDisableUI("Off " + ActionType.ToLower() + "ring the item...", true); } Debug.WriteLine("Off " + ActionType.ToLower() + "ring the item..."); await AddOfflineSync(ItemId, ActionType); MarkStatus = true; } else { if (!Silent) { await EventProgressDisableUI(ActionType + "ring the item...", true); } Debug.WriteLine(ActionType + "ring the item..."); string[][] RequestHeader = new string[][] { new[] { "Authorization", "GoogleLogin auth=" + AppVariables.ApplicationSettings["ConnectApiAuth"].ToString() } }; HttpStringContent PostContent; if (ActionType == "Star") { PostContent = new HttpStringContent("i=" + ItemId + "&a=user/-/state/com.google/starred", Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/x-www-form-urlencoded"); } else { PostContent = new HttpStringContent("i=" + ItemId + "&r=user/-/state/com.google/starred", Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/x-www-form-urlencoded"); } HttpResponseMessage PostHttp = await AVDownloader.SendPostRequestAsync(7500, "News Scroll", RequestHeader, new Uri(ApiConnectionUrl + "edit-tag"), PostContent); if (PostHttp != null && (PostHttp.Content.ToString() == "OK" || PostHttp.Content.ToString().Contains("<error>Not found</error>"))) { MarkStatus = true; } } if (MarkStatus) { //Wait for busy database await ApiUpdate.WaitForBusyDatabase(); //Mark item in database and list TableItems TableEditItems = await SQLConnection.Table <TableItems>().Where(x => x.item_id == ItemId).FirstOrDefaultAsync(); if (TableEditItems != null) { if (ActionType == "Star") { TableEditItems.item_star_status = true; ListItem.item_star_status = Visibility.Visible; } else { TableEditItems.item_star_status = false; ListItem.item_star_status = Visibility.Collapsed; if (RemoveFromList) { List_StarredItems.Remove(ListItem); } } } //Update the items in database await SQLConnection.UpdateAsync(TableEditItems); } else { await AVMessageBox.Popup("Failed to " + ActionType.ToLower() + " item", "Please check your internet connection and try again.", "Ok", "", "", "", "", false); await EventProgressEnableUI(); } return(MarkStatus); } catch { Debug.WriteLine("Failed to un/star item."); return(false); } }
private static async Task <bool> MarkStarSingle(Items ListItem, bool RemoveFromList, string ActionType, bool Silent) { try { bool MarkStatus = false; string ItemId = ListItem.item_id; //Check if internet is available if (Connectivity.NetworkAccess != NetworkAccess.Internet || ApiMessageError.StartsWith("(Off)")) { if (!Silent) { EventProgressDisableUI("Off " + ActionType.ToLower() + "ring the item...", true); } Debug.WriteLine("Off " + ActionType.ToLower() + "ring the item..."); await AddOfflineSync(ItemId, ActionType); MarkStatus = true; } else { if (!Silent) { EventProgressDisableUI(ActionType + "ring the item...", true); } Debug.WriteLine(ActionType + "ring the item..."); string[][] RequestHeader = new string[][] { new[] { "Authorization", "GoogleLogin auth=" + AppSettingLoad("ConnectApiAuth").ToString() } }; StringContent PostContent; if (ActionType == "Star") { PostContent = new StringContent("i=" + ItemId + "&a=user/-/state/com.google/starred", Encoding.UTF8, "application/x-www-form-urlencoded"); } else { PostContent = new StringContent("i=" + ItemId + "&r=user/-/state/com.google/starred", Encoding.UTF8, "application/x-www-form-urlencoded"); } Uri PostUri = new Uri(ApiConnectionUrl + "edit-tag"); string PostHttp = await AVDownloader.SendPostRequestAsync(7500, "News Scroll", RequestHeader, PostUri, PostContent); if (PostHttp != null && (PostHttp == "OK" || PostHttp.Contains("<error>Not found</error>"))) { MarkStatus = true; } } if (MarkStatus) { //Mark item in database and list TableItems TableEditItems = await vSQLConnection.Table <TableItems>().Where(x => x.item_id == ItemId).FirstOrDefaultAsync(); if (TableEditItems != null) { if (ActionType == "Star") { TableEditItems.item_star_status = true; ListItem.item_star_status = true; ListItem.item_star_icon = ImageSource.FromResource("NewsScroll.Assets.iconStar-Dark.png"); } else { TableEditItems.item_star_status = false; ListItem.item_star_status = false; ListItem.item_star_icon = null; if (RemoveFromList) { List_StarredItems.Remove(ListItem); } } } //Update the items in database await vSQLConnection.UpdateAsync(TableEditItems); } else { List <string> messageAnswers = new List <string>(); messageAnswers.Add("Ok"); await MessagePopup.Popup("Failed to " + ActionType.ToLower() + " item", "Please check your internet connection and try again.", messageAnswers); EventProgressEnableUI(); } return(MarkStatus); } catch { Debug.WriteLine("Failed to un/star item."); return(false); } }