public static async Task <int> GetCharacter(Skype4Sharp.User user) { string get_data = string.Format("{{\"skypename\":\"{0}\"}}", user.Username); string url = leancloudAPIDomain + tableName + "?where=" + WebUtility.UrlEncode(get_data); HttpRequestMessage request = App.mainSkype.mainFactory.createWebRequest_GET(url, new string[][] { new string[] { "X-LC-Id", LeanCloudKey.appID }, new string[] { "X-LC-Key", LeanCloudKey.appKey } }); string rawJSON = ""; using (var handler = new HttpClientHandler()) using (var client = new HttpClient(handler)) { client.DefaultRequestHeaders.Add("User-Agent", App.mainSkype.userAgent); var result = await client.SendAsync(request); rawJSON = await result.Content.ReadAsStringAsync(); } dynamic decodedJSON = JsonConvert.DeserializeObject(rawJSON); dynamic results = decodedJSON.results; if (results.Count > 0) { return(results[0].charID); } else { return(NotFound); } }
public static async Task GetCharAvatarUrlsForUsers(List <Skype4Sharp.User> users) { for (int i = 0; i < users.Count; i++) { Skype4Sharp.User user = users[i]; user.CharAvatarUri = await GetCharAvatarForUser(user); } }
protected override void OnNavigatedTo(NavigationEventArgs e) { showBackButton(); user = (Skype4Sharp.User)e.Parameter; nameBlock.Text = user.DisplayName; if (user.Username != App.mainSkype.selfProfile.Username) { signOutButton.Visibility = Visibility.Collapsed; } }
public static async Task <int> GetCharIDForUser(Skype4Sharp.User user) { int charID = await GetCharacter(user); if (charID == NotFound) { charID = GetHashCharID(user); } return(charID); }
public static int GetHashCharID(Skype4Sharp.User user) { int hash = 0; for (int i = 0; i < user.Username.Length; i++) { char ch = user.Username[i]; hash += ch; } return(hash % MaxCount); }
private void peopleListView_ItemClick(object sender, ItemClickEventArgs e) { Skype4Sharp.User user = (Skype4Sharp.User)e.ClickedItem; foreach (Skype4Sharp.Chat chat in recent) { if (chat.ChatLink.Contains(user.Username)) { enterInChat(chat); return; } } Frame.Navigate(typeof(ChatPage), user); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { senderBubble.Opacity = receiverBubble.Opacity = 0; if (e.Parameter is Skype4Sharp.Chat) { chat = (Skype4Sharp.Chat)e.Parameter; chatTopicBlock.Text = chat.Topic; avatarBitmap.UriSource = chat.CharAvatarUri; historyButton.Visibility = Visibility.Visible; if (chat.LastMessage.Sender != null && chat.LastMessage.Sender.Username == App.mainSkype.selfProfile.Username) { if (chat.LastMessage.Body != null) { sentMessageBlock.Text = chat.LastMessage.Body; senderBubblePop.Begin(); } } else { if (chat.LastMessage.Body != null) { receivedMessageBlock.Text = chat.LastMessage.Body; } } user = null; } else if (e.Parameter is Skype4Sharp.User) { user = (Skype4Sharp.User)e.Parameter; chatTopicBlock.Text = user.DisplayName; avatarBitmap.UriSource = user.CharAvatarUri; historyButton.Visibility = Visibility.Collapsed; comicsButton.Visibility = Visibility.Collapsed; chat = null; } refreshUnread(); showBackButton(); await loadCharacter(); if (chat != null && chat.LastMessage.Sender != null && chat.LastMessage.Sender.Username != App.mainSkype.selfProfile.Username && chat.LastMessage.Body != null) { receiverBubblePop.Begin(); } }
public static async Task <Uri> GetCharAvatarForUser(Skype4Sharp.User user) { return(new Uri("ms-appx:///Assets/CharacterAvatars/" + await GetCharIDForUser(user) + ".png")); }