tdlight-java/src/main/java/it/tdlight/client/AuthorizationStateReadyLoad...

53 lines
1.6 KiB
Java
Raw Normal View History

2022-07-12 17:53:52 +02:00
package it.tdlight.client;
import it.tdlight.common.TelegramClient;
import it.tdlight.jni.TdApi;
import it.tdlight.jni.TdApi.AuthorizationStateReady;
import it.tdlight.jni.TdApi.ChatList;
import it.tdlight.jni.TdApi.ChatListMain;
import it.tdlight.jni.TdApi.Error;
import it.tdlight.jni.TdApi.GetMe;
import it.tdlight.jni.TdApi.LoadChats;
import it.tdlight.jni.TdApi.UpdateAuthorizationState;
import it.tdlight.jni.TdApi.User;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final class AuthorizationStateReadyLoadChats implements GenericUpdateHandler<UpdateAuthorizationState> {
private static final Logger logger = LoggerFactory.getLogger(AuthorizationStateReadyLoadChats.class);
private final TelegramClient client;
private final ChatList chatList;
private boolean loaded;
public AuthorizationStateReadyLoadChats(TelegramClient client, ChatList chatList) {
this.client = client;
this.chatList = chatList;
}
@Override
public void onUpdate(UpdateAuthorizationState update) {
if (update.authorizationState.getConstructor() == AuthorizationStateReady.CONSTRUCTOR) {
client.send(new LoadChats(chatList, 2000), ok -> {
if (ok.getConstructor() == Error.CONSTRUCTOR) {
2022-07-12 18:35:08 +02:00
Error error = (Error) ok;
2022-07-12 17:53:52 +02:00
if (error.code != 404) {
throw new TelegramError((Error) ok);
}
logger.debug("All {} chats have already been loaded", chatList);
} else {
logger.debug("All chats have been loaded");
}
}, error -> logger.warn("Failed to execute TdApi.LoadChats()"));
}
}
public boolean isLoaded() {
return loaded;
}
}