Example #1
0
        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;
        }
Example #2
0
        /// <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;
        }