async void loginB_Click(object sender, RoutedEventArgs e)
        {
            if (codeTB.IsEnabled)
            {
                loginB.Content   = "Logging in...";
                loginB.IsEnabled = codeTB.IsEnabled = false;
                await Telestat.LoginCode(codeTB.Text);
            }
            else
            {
                loginB.Content              = "Logging in...";
                loginB.IsEnabled            = countryCodeCB.IsEnabled =
                    countryNameCB.IsEnabled = phoneTB.IsEnabled = false;

                Telestat.SetPhoneNumber(countryCodeCB.Text, phoneTB.Text);

                Timer timer = null;
                timer = new Timer((obj) =>
                {
                    if (!loggedIn)
                    {
                        File.Delete("session.dat");

                        Dispatcher.Invoke(() => {
                            loginB.Content   = "Login";
                            loginB.IsEnabled = true;
                        });
                    }
                    timer.Dispose();
                },
                                  null, 5000, Timeout.Infinite);

                await Telestat.Login();
            }
        }
Exemple #2
0
        async Task BeginBackup()
        {
            await Task.Factory.StartNew(() =>
            {
                while (backuping)
                {
                    var msgs       = Telestat.GetMessages(offset).Result; // Downloaded
                    var addedCount = Telestat.Conversation.AddMessages(msgs);

                    totalDownloaded += msgs.Count;
                    offset          += msgs.Count;

                    Telestat.Conversation.Save(msgs);

                    var percentage = GetPercentage(Telestat.Conversation.GetMessagesCount(), Telestat.TotalMessages);

                    Dispatcher.Invoke(() =>
                    {
                        messageTB.Content = "Retrieving messages... " +
                                            percentage.ToString("0.00") + "%";
                        percentagePB.Value = (int)(percentage * 100f); // * 100 because maximum value is 10000 (more precission)
                    });

                    if (addedCount == 0) // we retrieved the first messages, get back where we left it
                    {
                        offset = Telestat.Conversation.GetMessagesCount();
                    }

                    if (msgs.Count == 0)
                    {
                        Success();

                        Dispatcher.Invoke(() => {
                            backupB.IsEnabled = false;
                            messageTB.Content = "Messages retrieved: " + totalDownloaded;
                        });

                        MessageBox.Show("You successfully generated a backup of " +
                                        Telestat.ContactToBackup.FullName, "Success", MessageBoxButton.OK,
                                        MessageBoxImage.Information);

                        break;
                    }

                    if (totalDownloaded % 10000 == 0)
                    {
                        Dispatcher.Invoke(() => messageTB.Content = "10 seconds pause to prevent «flood wait»...");
                        Thread.Sleep(10000);
                    }
                    else if (totalDownloaded % 1000 == 0)
                    {
                        Thread.Sleep(5000);
                    }
                    else
                    {
                        Thread.Sleep(1000);
                    }
                }
            });
        }
        async void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            await Telestat.Conversation.Save();

            cardGrid.Children.Add(await Telestat.GetBigCard());
            await LoadInformation();
        }
Exemple #4
0
        public async Task <BitmapImage> GetSmallProfilePhoto()
        {
            try
            {
                if (SmallImage == null)
                {
                    SmallImage = await Telestat.DownloadImage(ifl_small);
                }
            } catch (InvalidOperationException) { } // File migrate

            return(SmallImage);
        }
Exemple #5
0
        async void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            Telestat.Conversation = new Conversation(Telestat.ContactToBackup.ID,
                                                     Telestat.ContactToBackup.FullName); // TODO check if group, if it is NOT, "Chat with", else, group title on html

            cardGrid.Children.Add(await Telestat.GetBigCard());

            Telestat.Conversation.LoadProgress += Conversation_LoadProgress;
            await Telestat.Conversation.Load();

            Telestat.Conversation.LoadProgress -= Conversation_LoadProgress;

            backupB.Content   = "Begin backup!";
            backupB.IsEnabled = true;
        }
 async void step2_Loaded(object sender, RoutedEventArgs e)
 {
     start();
     await Telestat.GetDialogs();
 }
        async void logoutB_Click(object sender, RoutedEventArgs e)
        {
            await Telestat.Logout();

            Application.Current.Shutdown();
        }