package com.github.ajalt.reprint.reactive;

import android.support.annotation.Nullable;

import com.github.ajalt.reprint.core.AuthenticationFailureReason;

/**
 * A data class exception that holds the results of an authentication request failure.
 * <p/>
 * The values are the same as the arguments to {@link com.github.ajalt.reprint.core.AuthenticationListener#onFailure(AuthenticationFailureReason,
 * boolean, CharSequence, int, int)}
 */
public class AuthenticationFailure extends Exception {
    public final AuthenticationFailureReason failureReason;

    @Nullable
    public final CharSequence errorMessage;

    public final boolean fatal;
    public final int fromModule;
    public final int errorCode;

    public AuthenticationFailure(AuthenticationFailureReason failureReason, boolean fatal,
                                 @Nullable CharSequence errorMessage, int fromModule, int errorCode) {
        this.failureReason = failureReason;
        this.fatal = fatal;
        this.errorMessage = errorMessage;
        this.fromModule = fromModule;
        this.errorCode = errorCode;
    }
}

@@ -48,45 +48,66 @@
 ort 
-android.support.annotation.Nullable;%0A
+com.github.ajalt.reprint.core.AuthenticationFailureReason;
 %0Aimp
@@ -144,35 +144,21 @@
 ore.
-AuthenticationFailureReason
+ReprintModule
 ;%0A%0A/
@@ -253,440 +253,991 @@
 .%0A *
- %3Cp/%3E%0A * The values are the same as the arguments to %7B@link com.github.ajalt.reprint.core.AuthenticationListener#onFailure(AuthenticationFailureReason,%0A * boolean, CharSequence, int, int)%7D%0A */%0Apublic class AuthenticationFailure extends Exception %7B%0A    public final AuthenticationFailureReason failureReason;%0A%0A    @Nullable%0A    public final CharSequence errorMessage;%0A%0A    public final boolean fatal;%0A    public final int fromModule;
+/%0Apublic class AuthenticationFailure extends Exception %7B%0A    /**%0A     * The general reason for the failure.%0A     */%0A    public final AuthenticationFailureReason failureReason;%0A    /**%0A     * An informative string given by the underlying fingerprint sdk that can be displayed in the%0A     * ui. This string is never null, and will be localized to the current locale.%0A     */%0A    public final CharSequence errorMessage;%0A    /**%0A     * If true, the failure is unrecoverable and the sensor cannot be restarted. If false, you can%0A     * immediately resubscribe to restart the sensor.%0A     */%0A    public final boolean fatal;%0A    /**%0A     * The %7B@link ReprintModule#tag()%7D of the module that is currently active. This is useful to%0A     * know the meaning of the error code.%0A     */%0A    public final int fromModule;%0A    /**%0A     * The specific error code returned by the module's underlying sdk. Check the constants defined%0A     * in the module for possible values and their meanings.%0A     */
 %0A   
@@ -1394,18 +1394,8 @@
     
-@Nullable 
 Char

Add javadoc to AuthenticationFailure