Example Bare Minimum Simple Telegram Client Java - OTR/Kotlin-Telegram-Client GitHub Wiki

The following example was taken from Java example by TD Light Team, but all the Handlers were removed. So the client just successfully logs in and does nothing.

package com.example;

import it.tdlight.client.APIToken;
import it.tdlight.client.AuthenticationData;
import it.tdlight.client.SimpleTelegramClient;
import it.tdlight.client.TDLibSettings;
import it.tdlight.common.Init;
import it.tdlight.common.utils.CantLoadLibrary;

import java.nio.file.Paths;

public class Minimal {
    private static SimpleTelegramClient client;

    public static void main(String[] args) throws CantLoadLibrary, InterruptedException {
        Init.start();
        var apiToken = APIToken.example();
        var settings = TDLibSettings.create(apiToken);
        var sessionPath = Paths.get("");
        settings.setDatabaseDirectoryPath(sessionPath.resolve("tdlib"));
        settings.setDownloadedFilesDirectoryPath(sessionPath.resolve("downloads"));
        client = new SimpleTelegramClient(settings);
        var authenticationData = AuthenticationData.consoleLogin();
        client.start(authenticationData);
        client.waitForExit();
    }
}

The same example but automatically converted from Java to Kotlin via IntelliJ IDEA (or Android Studio)

package com.example

import it.tdlight.client.APIToken
import it.tdlight.client.AuthenticationData
import it.tdlight.client.SimpleTelegramClient
import it.tdlight.client.TDLibSettings
import it.tdlight.common.Init
import it.tdlight.common.utils.CantLoadLibrary
import java.nio.file.Paths

object Minimal {
    private var client: SimpleTelegramClient? = null
    @Throws(CantLoadLibrary::class, InterruptedException::class)
    @JvmStatic
    fun main(args: Array<String>) {
        Init.start()
        val apiToken = APIToken.example()
        val settings = TDLibSettings.create(apiToken)
        val sessionPath = Paths.get("")
        settings.databaseDirectoryPath = sessionPath.resolve("tdlib")
        settings.downloadedFilesDirectoryPath = sessionPath.resolve("downloads")
        client = SimpleTelegramClient(settings)
        val authenticationData = AuthenticationData.consoleLogin()
        client!!.start(authenticationData)
        client!!.waitForExit()
    }
}

The same example but manually corrected and sinplified after conversion:

package com.example

import it.tdlight.client.APIToken
import it.tdlight.client.AuthenticationData
import it.tdlight.client.SimpleTelegramClient
import it.tdlight.client.TDLibSettings
import it.tdlight.common.Init
import kotlin.io.path.Path

fun main(args: Array<String>) {
    Init.start()
    val client: SimpleTelegramClient = SimpleTelegramClient(
        TDLibSettings.create(APIToken.example()).apply {
            databaseDirectoryPath = Path("").resolve("tdlib")
        }
    )
    client.start(AuthenticationData.consoleLogin())
    client.waitForExit()
}
⚠️ **GitHub.com Fallback** ⚠️