Add logOutAsync and loadChatListMainAsync

This commit is contained in:
Andrea Cavalli 2024-03-21 00:56:40 +01:00
parent c2ad58fa70
commit 4d77c73e95
3 changed files with 25 additions and 2 deletions

View File

@ -26,7 +26,7 @@
<dependency> <dependency>
<groupId>it.tdlight</groupId> <groupId>it.tdlight</groupId>
<artifactId>tdlight-java-bom</artifactId> <artifactId>tdlight-java-bom</artifactId>
<version>3.3.2+td.1.8.26</version> <version>3.4.0+td.1.8.26</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>

View File

@ -12,7 +12,9 @@ import it.tdlight.client.SimpleTelegramClientFactory;
import it.tdlight.client.TDLibSettings; import it.tdlight.client.TDLibSettings;
import it.tdlight.jni.TdApi; import it.tdlight.jni.TdApi;
import it.tdlight.jni.TdApi.AuthorizationState; import it.tdlight.jni.TdApi.AuthorizationState;
import it.tdlight.jni.TdApi.CreatePrivateChat;
import it.tdlight.jni.TdApi.FormattedText; import it.tdlight.jni.TdApi.FormattedText;
import it.tdlight.jni.TdApi.GetChat;
import it.tdlight.jni.TdApi.InputMessageText; import it.tdlight.jni.TdApi.InputMessageText;
import it.tdlight.jni.TdApi.Message; import it.tdlight.jni.TdApi.Message;
import it.tdlight.jni.TdApi.MessageContent; import it.tdlight.jni.TdApi.MessageContent;
@ -75,9 +77,12 @@ public final class Example {
// Get me // Get me
TdApi.User me = app.getClient().getMeAsync().get(1, TimeUnit.MINUTES); TdApi.User me = app.getClient().getMeAsync().get(1, TimeUnit.MINUTES);
// Create the "saved messages" chat
var savedMessagesChat = app.getClient().send(new CreatePrivateChat(me.id, true)).get(1, TimeUnit.MINUTES);
// Send a test message // Send a test message
var req = new SendMessage(); var req = new SendMessage();
req.chatId = me.id; req.chatId = savedMessagesChat.id;
var txt = new InputMessageText(); var txt = new InputMessageText();
txt.text = new FormattedText("TDLight test", new TextEntity[0]); txt.text = new FormattedText("TDLight test", new TextEntity[0]);
req.inputMessageContent = txt; req.inputMessageContent = txt;

View File

@ -12,6 +12,8 @@ import it.tdlight.jni.TdApi;
import it.tdlight.jni.TdApi.ChatListArchive; import it.tdlight.jni.TdApi.ChatListArchive;
import it.tdlight.jni.TdApi.ChatListMain; import it.tdlight.jni.TdApi.ChatListMain;
import it.tdlight.jni.TdApi.Function; import it.tdlight.jni.TdApi.Function;
import it.tdlight.jni.TdApi.LoadChats;
import it.tdlight.jni.TdApi.LogOut;
import it.tdlight.jni.TdApi.Message; import it.tdlight.jni.TdApi.Message;
import it.tdlight.jni.TdApi.Update; import it.tdlight.jni.TdApi.Update;
import it.tdlight.jni.TdApi.User; import it.tdlight.jni.TdApi.User;
@ -504,6 +506,22 @@ public final class SimpleTelegramClient implements Authenticable, MutableTelegra
return meGetter.getMeAsync(); return meGetter.getMeAsync();
} }
/**
* Loads more chats from the main chat list. The loaded chats and their positions in the chat list will be sent through updates. Chats are sorted by the pair (chat.position.order, chat.id) in descending order. Returns a 404 error if all chats have been loaded.
*
**/
public CompletableFuture<Void> loadChatListMainAsync() {
return send(new LoadChats(new ChatListMain(), 2000)).thenAccept(ok -> {});
}
/**
* Closes the TDLib instance after a proper logout. Requires an available network connection. All local data will be destroyed. After the logout completes, updateAuthorizationState with authorizationStateClosed will be sent.
*
**/
public CompletableFuture<Void> logOutAsync() {
return send(new LogOut()).thenAccept(ok -> {});
}
public boolean isMainChatsListLoaded() { public boolean isMainChatsListLoaded() {
return mainChatsLoader.isLoaded(); return mainChatsLoader.isLoaded();
} }