Add fatal error handler
This commit is contained in:
parent
5c193b549b
commit
ed0961e027
@ -100,6 +100,10 @@ public class AsyncTdEasy {
|
||||
throw new InitializationException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
// Register fatal error handler
|
||||
fatalErrors.subscribe(settings.getFatalErrorHandler()::onFatalError);
|
||||
|
||||
return true;
|
||||
})
|
||||
.subscribeOn(Schedulers.boundedElastic())
|
||||
|
@ -0,0 +1,8 @@
|
||||
package it.tdlight.tdlibsession.td.easy;
|
||||
|
||||
import it.tdlight.tdlibsession.FatalErrorType;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
public interface FatalErrorHandler {
|
||||
Mono<String> onFatalError(FatalErrorType error);
|
||||
}
|
@ -21,6 +21,7 @@ public class TdEasySettings {
|
||||
private final Long phoneNumber;
|
||||
private final String botToken;
|
||||
private final ParameterRequestHandler parameterRequestHandler;
|
||||
private final FatalErrorHandler fatalErrorHandler;
|
||||
|
||||
public TdEasySettings(boolean useTestDc,
|
||||
String databaseDirectory,
|
||||
@ -38,7 +39,8 @@ public class TdEasySettings {
|
||||
boolean ignoreFileNames,
|
||||
@Nullable Long phoneNumber,
|
||||
@Nullable String botToken,
|
||||
@Nullable ParameterRequestHandler parameterRequestHandler) {
|
||||
@Nullable ParameterRequestHandler parameterRequestHandler,
|
||||
@Nullable FatalErrorHandler fatalErrorHandler) {
|
||||
this.useTestDc = useTestDc;
|
||||
this.databaseDirectory = databaseDirectory;
|
||||
this.filesDirectory = filesDirectory;
|
||||
@ -66,6 +68,10 @@ public class TdEasySettings {
|
||||
}
|
||||
}
|
||||
this.parameterRequestHandler = parameterRequestHandler;
|
||||
if (fatalErrorHandler == null) {
|
||||
fatalErrorHandler = error -> null;
|
||||
}
|
||||
this.fatalErrorHandler = fatalErrorHandler;
|
||||
}
|
||||
|
||||
public boolean isPhoneNumberSet() {
|
||||
@ -88,6 +94,10 @@ public class TdEasySettings {
|
||||
return Objects.requireNonNull(parameterRequestHandler, "You must set a parameter request handler");
|
||||
}
|
||||
|
||||
public FatalErrorHandler getFatalErrorHandler() {
|
||||
return Objects.requireNonNull(fatalErrorHandler, "You must set a fatal error handler");
|
||||
}
|
||||
|
||||
public static Builder newBuilder() {
|
||||
return new Builder();
|
||||
}
|
||||
@ -113,6 +123,8 @@ public class TdEasySettings {
|
||||
@Nullable
|
||||
private String botToken = null;
|
||||
private ParameterRequestHandler parameterRequestHandler;
|
||||
@Nullable
|
||||
private FatalErrorHandler fatalErrorHandler;
|
||||
|
||||
private Builder() {
|
||||
|
||||
@ -263,6 +275,15 @@ public class TdEasySettings {
|
||||
return parameterRequestHandler;
|
||||
}
|
||||
|
||||
public Builder setFatalErrorHandler(FatalErrorHandler fatalErrorHandler) {
|
||||
this.fatalErrorHandler = fatalErrorHandler;
|
||||
return this;
|
||||
}
|
||||
|
||||
public FatalErrorHandler getFatalErrorHandler() {
|
||||
return fatalErrorHandler;
|
||||
}
|
||||
|
||||
public TdEasySettings build() {
|
||||
return new TdEasySettings(useTestDc,
|
||||
databaseDirectory,
|
||||
@ -280,7 +301,8 @@ public class TdEasySettings {
|
||||
ignoreFileNames,
|
||||
phoneNumber,
|
||||
botToken,
|
||||
parameterRequestHandler
|
||||
parameterRequestHandler,
|
||||
fatalErrorHandler
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user