summaryrefslogtreecommitdiff
path: root/protocols/Telegram/tdlib/td/example/uwp/app/MainPage.xaml.cs
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Telegram/tdlib/td/example/uwp/app/MainPage.xaml.cs')
-rw-r--r--protocols/Telegram/tdlib/td/example/uwp/app/MainPage.xaml.cs171
1 files changed, 171 insertions, 0 deletions
diff --git a/protocols/Telegram/tdlib/td/example/uwp/app/MainPage.xaml.cs b/protocols/Telegram/tdlib/td/example/uwp/app/MainPage.xaml.cs
new file mode 100644
index 0000000000..9bdf5070ee
--- /dev/null
+++ b/protocols/Telegram/tdlib/td/example/uwp/app/MainPage.xaml.cs
@@ -0,0 +1,171 @@
+//
+// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018
+//
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+using System;
+using System.IO;
+using Td = Telegram.Td;
+using TdApi = Telegram.Td.Api;
+using Windows.UI.Core;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+
+namespace TdApp
+{
+ public sealed partial class MainPage : Page
+ {
+ public System.Collections.ObjectModel.ObservableCollection<string> Items { get; set; }
+
+ private static MyClientResultHandler _handler;
+
+ public MainPage()
+ {
+ InitializeComponent();
+
+ Items = new System.Collections.ObjectModel.ObservableCollection<string>();
+ _handler = new MyClientResultHandler(this);
+
+ System.Threading.Tasks.Task.Run(() =>
+ {
+ try
+ {
+ Td.Log.SetFilePath(Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "log"));
+ _client = Td.Client.Create(_handler);
+ var parameters = new TdApi.TdlibParameters();
+ parameters.DatabaseDirectory = Windows.Storage.ApplicationData.Current.LocalFolder.Path;
+ parameters.UseSecretChats = true;
+ parameters.UseMessageDatabase = true;
+ parameters.ApiId = 94575;
+ parameters.ApiHash = "a3406de8d171bb422bb6ddf3bbd800e2";
+ parameters.SystemLanguageCode = "en";
+ parameters.DeviceModel = "en";
+ parameters.SystemVersion = "en";
+ parameters.ApplicationVersion = "1.0.0";
+ _client.Send(new TdApi.SetTdlibParameters(parameters), null);
+ _client.Send(new TdApi.CheckDatabaseEncryptionKey(), null);
+ _client.Run();
+ }
+ catch (Exception ex)
+ {
+ Print(ex.ToString());
+ }
+ });
+ }
+
+ public void Print(String str)
+ {
+ var delayTask = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
+ {
+ Items.Insert(0, str.Substring(0, Math.Min(1024, str.Length)));
+ });
+ }
+
+ private static Td.Client _client;
+
+ private void AcceptCommand(String command)
+ {
+ Input.Text = string.Empty;
+ Items.Insert(0, string.Format(">>{0}", command));
+ }
+ private void Button_Click(object sender, RoutedEventArgs e)
+ {
+ var command = Input.Text;
+
+ if (command.StartsWith("DESTROY"))
+ {
+ AcceptCommand("Destroy");
+ _client.Send(new TdApi.Destroy(), _handler);
+ }
+ else if (command.StartsWith("lo"))
+ {
+ AcceptCommand("LogOut");
+ _client.Send(new TdApi.LogOut(), _handler);
+ }
+ else if (command.StartsWith("gas"))
+ {
+ AcceptCommand(command);
+ _client.Send(new TdApi.GetAuthorizationState(), _handler);
+ }
+ else if (command.StartsWith("sap"))
+ {
+ var args = command.Split(" ".ToCharArray(), 2);
+ AcceptCommand(command);
+ _client.Send(new TdApi.SetAuthenticationPhoneNumber(args[1], false, false), _handler);
+ }
+ else if (command.StartsWith("cac"))
+ {
+ var args = command.Split(" ".ToCharArray(), 2);
+ AcceptCommand(command);
+ _client.Send(new TdApi.CheckAuthenticationCode(args[1], String.Empty, String.Empty), _handler);
+ }
+ else if (command.StartsWith("cap"))
+ {
+ var args = command.Split(" ".ToCharArray(), 2);
+ AcceptCommand(command);
+ _client.Send(new TdApi.CheckAuthenticationPassword(args[1]), _handler);
+ }
+ else if (command.StartsWith("gco"))
+ {
+ var args = command.Split(" ".ToCharArray(), 2);
+ AcceptCommand(command);
+ _client.Send(new TdApi.SearchContacts(), _handler);
+ }
+ else if (command.StartsWith("df"))
+ {
+ var args = command.Split(" ".ToCharArray(), 2);
+ AcceptCommand(command);
+ _client.Send(new TdApi.DownloadFile(Int32.Parse(args[1]), 1), _handler);
+ }
+ else if (command.StartsWith("bench"))
+ {
+ var args = command.Split(" ".ToCharArray(), 2);
+ AcceptCommand(command);
+ var cnt = Int32.Parse(args[1]);
+ var handler = new BenchSimpleHandler(this, cnt);
+ for (int i = 0; i < cnt; i++)
+ {
+ _client.Send(new TdApi.TestSquareInt(123), handler);
+ }
+ }
+ }
+ }
+
+ class MyClientResultHandler : Td.ClientResultHandler
+ {
+ private MainPage _page;
+
+ public MyClientResultHandler(MainPage page)
+ {
+ _page = page;
+ }
+
+ public void OnResult(TdApi.BaseObject obj)
+ {
+ var str = obj.ToString();
+ _page.Print(str);
+ }
+ }
+
+ class BenchSimpleHandler : Td.ClientResultHandler
+ {
+ private MainPage _page;
+ private int _cnt;
+
+ public BenchSimpleHandler(MainPage page, int cnt)
+ {
+ _page = page;
+ _cnt = cnt;
+ }
+
+ public void OnResult(TdApi.BaseObject obj)
+ {
+ _cnt--;
+ if (_cnt == 0)
+ {
+ _page.Print("DONE");
+ }
+ }
+ }
+}