public ContactsPage() { InitializeComponent(); _CreateBar(); _contactsCache = new ContactsCache(); _UpdateNotificationButtons(); App.Current.EntityService.StateCounter.PropertyChanged += StateCounter_PropertyChanged; App.Current.EntityService.StateCounter.UnreadMids.CollectionChanged += UnreadMids_CollectionChanged; if (App.Current.IsFirstRun || App.Current.LastContactsSync == DateTime.MinValue) // Is first run or never synced { SyncContactsDescription.Visibility = Visibility.Visible; SyncContactsButton.Visibility = Visibility.Visible; InviteFriendButton.Visibility = Visibility.Collapsed; FriendsPanel.Visibility = Visibility.Collapsed; // Empty list. } else { // Build View Model. InviteFriendButton.Visibility = Visibility.Visible; FriendsPanel.Visibility = Visibility.Visible; SyncContactsDescription.Visibility = Visibility.Collapsed; SyncContactsButton.Visibility = Visibility.Collapsed; var contacts = _contactsCache.GetItems(); App.Current.EntityService.Contacts.Clear(); foreach (var contact in contacts) { var friend = App.Current.EntityService.Friends.FirstOrDefault(x => x.Uid == contact.Uid); if (friend != null) { contact.Photo = friend.Photo; } else { if (App.Current.EntityService.CurrentUser.UserInfo.Uid == contact.Uid) { contact.Photo = App.Current.EntityService.CurrentUser.Photo; } else { contact.Photo = App.Current.EntityService.DefaultAvatar; } } App.Current.EntityService.Contacts.Add(contact); } _model = new ContactsByFirstName(App.Current.EntityService.Contacts.ToList()); FriendsPanel.ItemsSource = _model; // In a background get info about new contacts appeared in contacts book...let it be one time per 5 days TimeSpan span = TimeSpan.FromTicks(DateTime.Now.Ticks - App.Current.LastContactsSync.Ticks); if (span.Days > 5) { _SearchAllContactsOnPhone(_UpdateContacts); } } App.Current.IsFirstRun = false; }
/// <summary> /// Clears data before logging out. /// </summary> public void ClearAllData() { try { _settings.AccessToken = string.Empty; _settings.Password = string.Empty; _settings.Secret = string.Empty; _settings.Ts = -1; _settings.UserId = string.Empty; _settings.UserName = string.Empty; _dialogsCache.Clear(); _usersCache.Clear(); _friendsCache.Clear(); _messagesCache.Clear(); _usersCache.Clear(); _imageCache.Clear(); var contactsCache = new ContactsCache(); contactsCache.Clear(); Dialogs.Clear(); Friends.Clear(); FriendsRequests.Clear(); FriendsMutual.Clear(); OtherUsers.Clear(); Contacts.Clear(); CurrentPhoneContact = null; MessagesToForward = string.Empty; AttachedLatitude = string.Empty; AttachedLongitude = string.Empty; _isInited = false; AttachmentPhotos.Clear(); _stateCounter.CountOfRequests = 0; _stateCounter.UnreadMids.Clear(); App.Current.PushNotifications.SwitchOff(); App.Current.LastContactsSync = DateTime.MinValue; App.Current.LongPollService.TurnOff(); CurrentUser.FullName = string.Empty; CurrentUser.Photo = DefaultAvatar; } catch(Exception ex) { Debug.WriteLine("ClearAllData failed: " + ex.Message); } }
public ContactsPage() { InitializeComponent(); _CreateBar(); _contactsCache = new ContactsCache(); _UpdateNotificationButtons(); App.Current.EntityService.StateCounter.PropertyChanged += StateCounter_PropertyChanged; App.Current.EntityService.StateCounter.UnreadMids.CollectionChanged += UnreadMids_CollectionChanged; if (App.Current.IsFirstRun || App.Current.LastContactsSync == DateTime.MinValue) // Is first run or never synced { SyncContactsDescription.Visibility = Visibility.Visible; SyncContactsButton.Visibility = Visibility.Visible; InviteFriendButton.Visibility = Visibility.Collapsed; FriendsPanel.Visibility = Visibility.Collapsed; // Empty list. } else { // Build View Model. InviteFriendButton.Visibility = Visibility.Visible; FriendsPanel.Visibility = Visibility.Visible; SyncContactsDescription.Visibility = Visibility.Collapsed; SyncContactsButton.Visibility = Visibility.Collapsed; var contacts = _contactsCache.GetItems(); App.Current.EntityService.Contacts.Clear(); foreach (var contact in contacts) { var friend = App.Current.EntityService.Friends.FirstOrDefault(x => x.Uid == contact.Uid); if (friend != null) contact.Photo = friend.Photo; else { if (App.Current.EntityService.CurrentUser.UserInfo.Uid == contact.Uid) contact.Photo = App.Current.EntityService.CurrentUser.Photo; else contact.Photo = App.Current.EntityService.DefaultAvatar; } App.Current.EntityService.Contacts.Add(contact); } _model = new ContactsByFirstName(App.Current.EntityService.Contacts.ToList()); FriendsPanel.ItemsSource = _model; // In a background get info about new contacts appeared in contacts book...let it be one time per 5 days TimeSpan span = TimeSpan.FromTicks(DateTime.Now.Ticks - App.Current.LastContactsSync.Ticks); if (span.Days > 5) _SearchAllContactsOnPhone(_UpdateContacts); } App.Current.IsFirstRun = false; }