mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-12-22 20:47:57 +01:00
Add AuthenticatedConnectionInitiallyEstablished timestamp
This commit is contained in:
parent
c4289b2c18
commit
569f7417a8
2 changed files with 20 additions and 0 deletions
|
@ -314,6 +314,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
*/
|
||||
protected boolean authenticated = false;
|
||||
|
||||
// TODO: Migrate to ZonedDateTime once Smack's minimum required Android SDK level is 26 (8.0, Oreo) or higher.
|
||||
protected long authenticatedConnectionInitiallyEstablishedTimestamp;
|
||||
|
||||
/**
|
||||
* Flag that indicates if the user was authenticated with the server when the connection
|
||||
* to the server was closed (abruptly or not).
|
||||
|
@ -590,6 +593,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
}
|
||||
|
||||
protected void afterSuccessfulLogin(final boolean resumed) throws NotConnectedException, InterruptedException {
|
||||
if (!resumed) {
|
||||
authenticatedConnectionInitiallyEstablishedTimestamp = System.currentTimeMillis();
|
||||
}
|
||||
// Indicate that we're now authenticated.
|
||||
this.authenticated = true;
|
||||
|
||||
|
@ -1729,6 +1735,18 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
return lastStanzaReceived;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the timestamp when the connection was the first time authenticated, i.e., when the first successful login was
|
||||
* performed. Note that this value is not reset on disconnect, so it represents the timestamp from the last
|
||||
* authenticated connection. The value is also not reset on stream resumption.
|
||||
*
|
||||
* @return the timestamp or {@code null}.
|
||||
* @since 4.3.3
|
||||
*/
|
||||
public final long getAuthenticatedConnectionInitiallyEstablishedTimestamp() {
|
||||
return authenticatedConnectionInitiallyEstablishedTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Install a parsing exception callback, which will be invoked once an exception is encountered while parsing a
|
||||
* stanza.
|
||||
|
|
|
@ -527,6 +527,8 @@ public class XMPPTCPConnection extends AbstractXMPPConnection {
|
|||
// Reset the stream management session id to null, since if the stream is cleanly closed, i.e. sending a closing
|
||||
// stream tag, there is no longer a stream to resume.
|
||||
smSessionId = null;
|
||||
// Note that we deliberately do not reset authenticatedConnectionInitiallyEstablishedTimestamp here, so that the
|
||||
// information is available in the connectionClosedOnError() listeners.
|
||||
}
|
||||
authenticated = false;
|
||||
connected = false;
|
||||
|
|
Loading…
Reference in a new issue