From acf41b8c7b36a0ec803b3dd82e7969b000138ed7 Mon Sep 17 00:00:00 2001 From: stellarNuke Date: Mon, 22 Jul 2024 20:46:50 +0530 Subject: [PATCH 1/5] updated android jnilibs to latest and minor fixes --- README.md | 7 +++++-- lib/src/client/platform/io/json_bindings.dart | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7332fb4c..9b3686d4 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,8 @@ A Dart wrapper for [tdlib](https://github.com/tdlib/td). Contains generated sche | Version | tdlib commit | td_api.tl revision | |---------|:-------------------------------------------------------------:|-----------------------------------------------------------------------------------:| -| 1.8.29 | last commit | [44b548c](https://github.com/tdlib/td/blob/44b548c/td/generate/scheme/td_api.tl) | +| 1.8.33 | last commit | latest | +| 1.8.29 | ----- | [44b548c](https://github.com/tdlib/td/blob/44b548c/td/generate/scheme/td_api.tl) | | 1.8.26 | [d7a31ad](https://github.com/ivk1800/tdlib-dart/tree/d7a31ad) | [b1b33cf](https://github.com/tdlib/td/blob/b1b33cf/td/generate/scheme/td_api.tl) | | 1.8.21 | [32d37d9](https://github.com/ivk1800/tdlib-dart/tree/32d37d9) | [404761c](https://github.com/tdlib/td/blob/404761c/td/generate/scheme/td_api.tl) | | 1.8.19 | [1a00bae](https://github.com/ivk1800/tdlib-dart/tree/1a00bae) | [986f1ab](https://github.com/tdlib/td/blob/986f1ab/td/generate/scheme/td_api.tl) | @@ -58,7 +59,9 @@ Future main() async { ### Getting started with flutter example 1. Obtain `api_id` and `api_hash` at https://my.telegram.org -2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download [prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases) binaries. Following the instraction below for setup tdlib. +2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download ~~[prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases)~~ +[releases]() + binaries. Following the instraction below for setup tdlib. 3. Open `example/lib/main.dart` and place obtained `api_id` and `api_hash` to appropriate methods `getApiId` and `getApiHash`. 4. Specify phone number and code in `getPhoneNumber` and `getCode` methods. Attention, the phone number must be specified from the test DC. If you don't want to use the test DC and want to authenticate with your account, change `useTestDc` to `false` in `TdlibParameters`. 5. cd `/example` diff --git a/lib/src/client/platform/io/json_bindings.dart b/lib/src/client/platform/io/json_bindings.dart index b5104813..c72cf5ab 100644 --- a/lib/src/client/platform/io/json_bindings.dart +++ b/lib/src/client/platform/io/json_bindings.dart @@ -80,7 +80,7 @@ class JsonBindings { } String _resolveFuncName(String name) => - '${Platform.isAndroid ? '_' : ''}td_json_client_$name'; + 'td_json_client_$name'; ffi.DynamicLibrary _openLib() { if (Platform.isMacOS || Platform.isIOS) { From 410a848c3744335be594c69a01a3f0475abb8805 Mon Sep 17 00:00:00 2001 From: stellarNuke Date: Mon, 22 Jul 2024 21:00:34 +0530 Subject: [PATCH 2/5] updated releases link in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b3686d4..31ab3d90 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Future main() async { ### Getting started with flutter example 1. Obtain `api_id` and `api_hash` at https://my.telegram.org 2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download ~~[prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases)~~ -[releases]() +[releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33) binaries. Following the instraction below for setup tdlib. 3. Open `example/lib/main.dart` and place obtained `api_id` and `api_hash` to appropriate methods `getApiId` and `getApiHash`. 4. Specify phone number and code in `getPhoneNumber` and `getCode` methods. Attention, the phone number must be specified from the test DC. If you don't want to use the test DC and want to authenticate with your account, change `useTestDc` to `false` in `TdlibParameters`. From c0d5efbef68a5e77b0263b126c4b31f3d0d14827 Mon Sep 17 00:00:00 2001 From: stellarNuke Date: Tue, 23 Jul 2024 17:36:49 +0530 Subject: [PATCH 3/5] readme update --- README.md | 161 +++++++++++++++++++++++--------- example/.gitignore | 51 ---------- example/lib/main.dart | 212 ------------------------------------------ example/pubspec.yaml | 13 --- 4 files changed, 116 insertions(+), 321 deletions(-) delete mode 100644 example/.gitignore delete mode 100644 example/lib/main.dart delete mode 100644 example/pubspec.yaml diff --git a/README.md b/README.md index 31ab3d90..ad26451c 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,5 @@ # tdlib-dart -A Dart wrapper for [tdlib](https://github.com/tdlib/td). Contains generated schema classes of [td_api.tl](https://github.com/tdlib/td/blob/master/td/generate/scheme/td_api.tl) and a client that interacts with lib through [ffi](https://dart.dev/guides/libraries/c-interop). - -| Version | tdlib commit | td_api.tl revision | -|---------|:-------------------------------------------------------------:|-----------------------------------------------------------------------------------:| -| 1.8.33 | last commit | latest | -| 1.8.29 | ----- | [44b548c](https://github.com/tdlib/td/blob/44b548c/td/generate/scheme/td_api.tl) | -| 1.8.26 | [d7a31ad](https://github.com/ivk1800/tdlib-dart/tree/d7a31ad) | [b1b33cf](https://github.com/tdlib/td/blob/b1b33cf/td/generate/scheme/td_api.tl) | -| 1.8.21 | [32d37d9](https://github.com/ivk1800/tdlib-dart/tree/32d37d9) | [404761c](https://github.com/tdlib/td/blob/404761c/td/generate/scheme/td_api.tl) | -| 1.8.19 | [1a00bae](https://github.com/ivk1800/tdlib-dart/tree/1a00bae) | [986f1ab](https://github.com/tdlib/td/blob/986f1ab/td/generate/scheme/td_api.tl) | -| 1.8.18 | [532fae5](https://github.com/ivk1800/tdlib-dart/tree/532fae5) | [daf4801](https://github.com/tdlib/td/blob/daf4801/td/generate/scheme/td_api.tl) | -| 1.8.15 | [3f91948](https://github.com/ivk1800/tdlib-dart/tree/3f91948) | [8893dc8](https://github.com/tdlib/td/blob/8893dc8/td/generate/scheme/td_api.tl) | -| 1.8.14 | [90171aa](https://github.com/ivk1800/tdlib-dart/tree/90171aa) | [4041ecb](https://github.com/tdlib/td/blob/4041ecb/td/generate/scheme/td_api.tl) | -| 1.8.13 | [d5ed66a](https://github.com/ivk1800/tdlib-dart/tree/d5ed66a) | [c95598e](https://github.com/tdlib/td/blob/c95598e/td/generate/scheme/td_api.tl) | -| 1.8.11 | [1b99276](https://github.com/ivk1800/tdlib-dart/tree/1b99276) | [1543c41](https://github.com/tdlib/td/blob/1543c41/td/generate/scheme/td_api.tl) | -| 1.8.9 | [5b8706c](https://github.com/ivk1800/tdlib-dart/tree/5b8706c) | [6cbe182](https://github.com/tdlib/td/blob/6cbe182/td/generate/scheme/td_api.tl) | -| 1.8.8 | [f069453](https://github.com/ivk1800/tdlib-dart/tree/f069453) | [bbe37ee](https://github.com/tdlib/td/blob/bbe37ee/td/generate/scheme/td_api.tl) | -| 1.8.7 | [60c2975](https://github.com/ivk1800/tdlib-dart/tree/60c2975) | [92f8093](https://github.com/tdlib/td/blob/92f8093/td/generate/scheme/td_api.tl) | -| 1.8.4 | [324fa2b](https://github.com/ivk1800/tdlib-dart/tree/324fa2b) | [d489014](https://github.com/tdlib/td/blob/d489014/td/generate/scheme/td_api.tl) | -| 1.8.0 | [781d969](https://github.com/ivk1800/tdlib-dart/tree/781d969) | [c0385078](https://github.com/tdlib/td/blob/c0385078/td/generate/scheme/td_api.tl) | -| 1.7.9 | [2dec79f](https://github.com/ivk1800/tdlib-dart/tree/2dec79f) | [8d7bda00](https://github.com/tdlib/td/blob/8d7bda00/td/generate/scheme/td_api.tl) | -| 1.7.3 | [2a29b25](https://github.com/ivk1800/tdlib-dart/tree/2a29b25) | - | - ### Table of Contents - [Example](#example) @@ -34,9 +12,11 @@ A Dart wrapper for [tdlib](https://github.com/tdlib/td). Contains generated sche - [Web](#web) ### Integration example + As an example of use, you can see the project [telegram-flutter](https://github.com/ivk1800/telegram-flutter). -### Example +### Dart Example + ```dart import 'package:tdlib/td_client.dart'; import 'package:tdlib/td_api.dart' as td; @@ -57,27 +37,102 @@ Future main() async { } ``` +### installation + +add the following code to your dependencies section in pubspec.yaml + +```yaml +dependencies: + tdlib: + git: + url: "https://github.com/stellarNuke/tdlib-dart" + ref: master +``` + ### Getting started with flutter example + 1. Obtain `api_id` and `api_hash` at https://my.telegram.org -2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download ~~[prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases)~~ -[releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33) - binaries. Following the instraction below for setup tdlib. -3. Open `example/lib/main.dart` and place obtained `api_id` and `api_hash` to appropriate methods `getApiId` and `getApiHash`. -4. Specify phone number and code in `getPhoneNumber` and `getCode` methods. Attention, the phone number must be specified from the test DC. If you don't want to use the test DC and want to authenticate with your account, change `useTestDc` to `false` in `TdlibParameters`. -5. cd `/example` -6. `flutter run` +2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download ~~[prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases)~~ + for android downnload from here => [ v1.8.33 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33) + binaries. +3. place the files in the desired platforms folder [instructions](### Prebuilt binaries) +4. import package + +```dart +import 'package:tdlib/td_client.dart'; +import 'package:tdlib/td_api.dart' as td; +``` + +5. create and initialize client + +```dart +late final Client client; +client = Client.create(); +await client.initialize(); +``` + +6. listen for updates received from the client + list of [All available update states](https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1_update.html) + +```dart +client.updates.listen((tda.TdObject event) async { + print('[EVENT] : ${event.toJson()}'); + var eventType = event.toJson()['@type']; + + if (eventType == 'updateAuthorizationState') { + tda.UpdateAuthorizationState update = event as tda.UpdateAuthorizationState; + tda.AuthorizationState authorizationState = update.authorizationState; + + //handle on different authorization states sent as update + + } + }, onError: (object) => {print(object.toString())}, cancelOnError: false, onDone: () => {print('[===========DONE LISTENING=========]')}); +``` + +**Note : The first authorization state received by the Application is always of the type authorizationStateWaitTdlibParameters. When it is received, the Application must provide parameters for TDLib initialization by calling the setTdlibParameters API method as mentioned below.** + +7. use an API method to send requests. + [All available methods](https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1_function.html) + +```dart +var params = tda.SetTdlibParameters( + apiHash: apiHash, + apiId: int.parse(apikey), + systemLanguageCode: 'en-US', + deviceModel: 'device model', + systemVersion: 'systemversion', + applicationVersion: 'v1', + useTestDc: false, + databaseDirectory: 'path', + filesDirectory: 'path', + databaseEncryptionKey: 'testkey', + useFileDatabase: true, + useChatInfoDatabase: true, + useMessageDatabase: true, + useSecretChats: false, + ); +await client.send(params) + +``` + +**_ Note : After call to `setTdlibParameters` in case of success Application will receive `updateAuthorizationState` with new state and just needs to handle that update.If user isn't authorized yet, then some of `authorizationStateWaitPhoneNumber, authorizationStateWaitEmailAddress, authorizationStateWaitEmailCode, authorizationStateWaitCode, authorizationStateWaitRegistration` and `authorizationStateWaitPassword `authorization states may be received. After completing these authorization steps, the Application will receive authorizationStateReady, meaning that authorization was successful and ordinary requests can be sent now. _** + +for more info go [official tdlib getting started](https://core.telegram.org/tdlib/getting-started) ### Prebuilt binaries -The tdlib binaries is built automatically using github actions and published on the [releases page](https://github.com/ivk1800/td-json-client-prebuilt/releases/). Follow the instructions below for each platform to configure flutter project to use tdlib + +The tdlib binaries is built automatically using github actions and published on the [releases page](https://github.com/ivk1800/td-json-client-prebuilt/releases/). For android downnload from here => [ v1.8.33 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33). Follow the instructions below for each platform to configure flutter project to use tdlib ### Android + Copy `.so` files from archive to `example/android/app/main/jniLibs`: + ``` -└── example - └── android - └── app - └── main - └── jniLibs +└── example + └── android + └── app + └── main + └── jniLibs └── arm64-v8a │ └── libtdjsonandroid.so └── armeabi-v7a @@ -87,15 +142,19 @@ Copy `.so` files from archive to `example/android/app/main/jniLibs`: └── x86_64 └── libtdjsonandroid.so ``` + 13. Open file `example/android/app/build.gradle` replace + ```groovy sourceSets { main.java.srcDirs += 'src/main/kotlin' } ``` -by + +by + ```groovy sourceSets { main { @@ -106,15 +165,18 @@ sourceSets { ``` ### iOS and macOS + 1. Copy `libtdjson.dylib` from archive to `example/ios` 2. Copy `libtdjson.dylib` from archive to `example/macos` + ``` -└── example - └── ios +└── example + └── ios │ └── libtdjson.dylib └── macos └── libtdjson.dylib ``` + 3. Open `Runner.xcworkspace` in Xcode. 4. Add `.dylib` file to project. 5. Find `Frameworks, Libraries, and EmbeddedContent`. @@ -123,18 +185,22 @@ sourceSets { 8. In Section `App Sandbox (Debug and Profile)` set true `Outgoing Connections (Client)`. ### Windows + 1. Copy files from archive to `example/windows/tdlib` + ``` -└── example - └── windows - └── tdlib +└── example + └── windows + └── tdlib └── libcrypto-1_1.dll └── libssl-1_1.dll └── tdjson.dll └── zlib1.dll ``` + 2. Open `example/windows/CMakeLists.txt`. 3. Add below line `set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}")`: + ``` # begin td set(dll_path "${CMAKE_CURRENT_SOURCE_DIR}/tdlib") @@ -146,15 +212,19 @@ install(FILES "${dll_path}/zlib1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" CO ``` ### Linux + 1. Copy file from archive to `example/linux/tdlib` + ``` -└── example - └── linux - └── tdlib +└── example + └── linux + └── tdlib └── libtdjson.so ``` + 2. Open `example/linux/CMakeLists.txt`. 3. Add at the end of file: + ``` # begin td install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/tdlib/libtdjson.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" @@ -163,4 +233,5 @@ install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/tdlib/libtdjson.so" DESTINATION "${IN ``` ### Web + TBD diff --git a/example/.gitignore b/example/.gitignore deleted file mode 100644 index 356550d5..00000000 --- a/example/.gitignore +++ /dev/null @@ -1,51 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.packages -.pub-cache/ -.pub/ -/build/ - -# Web related -lib/generated_plugin_registrant.dart - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -*.jugger.dart -*.freezed.dart -/android -/macos -/ios -/web -/windows -.metadata -/test \ No newline at end of file diff --git a/example/lib/main.dart b/example/lib/main.dart deleted file mode 100644 index 62099879..00000000 --- a/example/lib/main.dart +++ /dev/null @@ -1,212 +0,0 @@ -import 'dart:async'; -import 'dart:io'; -import 'package:flutter/foundation.dart' show kIsWeb; -import 'package:flutter/material.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:tdlib/td_api.dart' as td; -import 'package:tdlib/td_client.dart'; - -Future main() async { - runApp( - const MaterialApp( - home: MyApp(), - debugShowCheckedModeBanner: false, - ), - ); -} - -int getApiId() { - throw StateError('Obtain `api_id` at https://my.telegram.org'); -} - -String getApiHash() { - throw StateError('Obtain `api_hash` at https://my.telegram.org'); -} - -const String _TestDCMessage = ''' -Check User Authorization article https://core.telegram.org/api/auth#test-accounts - -If you wish to emulate an application of a user associated with DC number X, it -is sufficient to specify the phone number as 99966XYYYY, where YYYY are random -numbers, when registering the user. A user like this would always get XXXXX as -the login confirmation code (the DC number, repeated five times). -'''; - -String getPhoneNumber() { - throw StateError(_TestDCMessage); -} - -String getCode() { - throw StateError(_TestDCMessage); -} - -class MyApp extends StatefulWidget { - const MyApp({Key? key}) : super(key: key); - - @override - State createState() => _MyAppState(); -} - -class _MyAppState extends State { - Client? _client; - - StreamSubscription? _eventsSubscription; - - td.TdObject? _lastEvent; - td.AuthorizationState? _authorizationState; - td.ConnectionState? _connectionState; - - @override - void dispose() { - _destroy(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Scaffold( - appBar: AppBar(), - body: Column( - children: [ - ListTile( - title: const Text('last event'), - subtitle: Text('${_lastEvent?.toJson()}'), - ), - ListTile( - title: const Text('authorizationState'), - subtitle: Text('${_authorizationState?.runtimeType}'), - ), - ListTile( - title: const Text('connectionState'), - subtitle: Text('${_connectionState?.runtimeType}'), - ), - const Divider(), - ListTile( - title: const Text('initialize'), - onTap: _initialize, - ), - ListTile( - title: const Text('destroy'), - onTap: _destroy, - ), - const Divider(), - ListTile( - title: const Text('set network none'), - onTap: () { - _client?.send( - const td.SetNetworkType(type: td.NetworkTypeNone()), - ); - }, - ), - ListTile( - title: const Text('set network wifi'), - onTap: () { - _client?.send( - const td.SetNetworkType(type: td.NetworkTypeWiFi()), - ); - }, - ), - ListTile( - title: const Text('logout', style: TextStyle(color: Colors.red)), - onTap: () { - _client?.send(const td.LogOut()); - }, - ), - ], - ), - ); - } - - Future _onNewEvent(td.TdObject event) async { - if (event is td.UpdateConnectionState) { - setState(() { - _connectionState = event.state; - }); - } - - setState(() { - _lastEvent = event; - }); - if (event is td.UpdateAuthorizationState) { - await _onAuthorizationState(event.authorizationState); - } - } - - Future _onAuthorizationState( - td.AuthorizationState authorizationState, - ) async { - setState(() { - _authorizationState = authorizationState; - }); - if (authorizationState is td.AuthorizationStateWaitTdlibParameters) { - await _client?.send( - td.SetTdlibParameters( - systemVersion: '', - useTestDc: true, - useSecretChats: false, - useMessageDatabase: true, - useFileDatabase: true, - useChatInfoDatabase: true, - filesDirectory: await _getFilesDirectory(), - databaseDirectory: await _getDatabaseDirectory(), - systemLanguageCode: 'en', - deviceModel: 'unknown', - applicationVersion: '1.0.0', - apiId: getApiId(), - apiHash: getApiHash(), - databaseEncryptionKey: '', - ), - ); - } else if (authorizationState is td.AuthorizationStateWaitPhoneNumber) { - await _client?.send( - td.SetAuthenticationPhoneNumber(phoneNumber: getPhoneNumber()), - ); - } else if (authorizationState is td.AuthorizationStateWaitCode) { - await _client?.send(td.CheckAuthenticationCode(code: getCode())); - } - } - - void _initialize() { - if (_client != null) { - return; - } - - final Client newClient = Client.create(); - _client = newClient; - _eventsSubscription?.cancel(); - _eventsSubscription = newClient.updates.listen(_onNewEvent); - newClient.initialize(); - } - - void _destroy() { - _client?.destroy(); - _eventsSubscription?.cancel(); - _client = null; - - setState(() { - _connectionState = null; - _lastEvent = null; - _authorizationState = null; - }); - } - - Future _getFilesDirectory() async { - if (kIsWeb) { - return 'files'; - } - final Directory applicationSupportDirectory = - await getApplicationSupportDirectory(); - - return '${applicationSupportDirectory.path}/files'; - } - - Future _getDatabaseDirectory() async { - if (kIsWeb) { - return 'database'; - } - final Directory applicationSupportDirectory = - await getApplicationSupportDirectory(); - - return '${applicationSupportDirectory.path}/database'; - } -} diff --git a/example/pubspec.yaml b/example/pubspec.yaml deleted file mode 100644 index df508bf8..00000000 --- a/example/pubspec.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: example -publish_to: 'none' - -environment: - sdk: ">=2.12.0 <3.0.0" - flutter: ">=1.17.0" - -dependencies: - flutter: - sdk: flutter - path_provider: 2.0.9 - tdlib: - path: ../ \ No newline at end of file From a2f2893679bc35daf3b3d2f4e92bcea0b21242f8 Mon Sep 17 00:00:00 2001 From: Rohit K <82948475+stellarNuke@users.noreply.github.com> Date: Wed, 24 Jul 2024 12:45:15 +0530 Subject: [PATCH 4/5] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad26451c..fe3f8b56 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# tdlib-dart +# tdlib-dart fork of ivk1800/tdlib ### Table of Contents @@ -55,7 +55,7 @@ dependencies: 2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download ~~[prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases)~~ for android downnload from here => [ v1.8.33 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33) binaries. -3. place the files in the desired platforms folder [instructions](### Prebuilt binaries) +3. place the files in the desired platforms folder instructions below 4. import package ```dart From 705c0ebb0507ac654736192e995339ae3ae8c0cc Mon Sep 17 00:00:00 2001 From: Rohit K <82948475+stellarNuke@users.noreply.github.com> Date: Thu, 25 Jul 2024 07:15:12 +0530 Subject: [PATCH 5/5] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fe3f8b56..3daeeb4e 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ dependencies: 1. Obtain `api_id` and `api_hash` at https://my.telegram.org 2. Build tdlib for your operating system following the [instruction](https://github.com/tdlib/td#building) or download ~~[prebuild](https://github.com/ivk1800/td-json-client-prebuilt/releases)~~ - for android downnload from here => [ v1.8.33 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33) + for android downnload from here => [ v1.8.31 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.31) binaries. 3. place the files in the desired platforms folder instructions below 4. import package @@ -121,7 +121,7 @@ for more info go [official tdlib getting started](https://core.telegram.org/tdli ### Prebuilt binaries -The tdlib binaries is built automatically using github actions and published on the [releases page](https://github.com/ivk1800/td-json-client-prebuilt/releases/). For android downnload from here => [ v1.8.33 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.33). Follow the instructions below for each platform to configure flutter project to use tdlib +The tdlib binaries is built automatically using github actions and published on the [releases page](https://github.com/ivk1800/td-json-client-prebuilt/releases/). For android downnload from here => [ v1.8.31 releases](https://github.com/stellarNuke/tdlib-dart/releases/tag/v1.8.31). Follow the instructions below for each platform to configure flutter project to use tdlib ### Android