Starting session
private fun setUpSession() {
// mtContext used for acces to underlying MtProto protocol
authData = mtContext.authenticate().get(TIMEOUT, TimeUnit.MILLISECONDS)
// get MtProto authentication data
val authText = gson.toJson(authData)
val restoredAuthData = gson.fromJson(authText, AuthData::class.java)
// create session object
session = mtContext.createSession()
.setTag("rpc")
.setScheduler(mtContext.defaultScheduler)
.setAuthData(authData)
.build()
//
val updatesManager = mtContext.createUpdatesManager(session) { true }
updatesManager.listener = UpdatesManagerListener()
// initialize session state listener
val sessionListener = object : Session.Listener {
override fun onStarted(p0: Session?) {
binding.textviewFirst.text = "Authorize to proceed"
binding.authorizeCaller.isEnabled = true
binding.authorizeCallee.isEnabled = true
}
override fun onStopped(p0: Session?) {}
override fun onConnected(p0: Session?, p1: Int) {}
override fun onDisconnected(p0: Session?, p1: Int) {}
override fun onError(p0: Session?, p1: Exception?) {}
override fun onMessage(p0: Session?, p1: TLType?) {}
override fun onNewSessionCreated(p0: Session?) {}
}
session.addListener(sessionListener)
// start session
session.start()
}Last updated
