package co.infinum.goldfinger.rx; import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import co.infinum.goldfinger.Goldfinger; import co.infinum.goldfinger.crypto.CipherCrypter; import co.infinum.goldfinger.crypto.CipherFactory; import co.infinum.goldfinger.crypto.MacCrypter; import co.infinum.goldfinger.crypto.MacFactory; import co.infinum.goldfinger.crypto.SignatureCrypter; import co.infinum.goldfinger.crypto.SignatureFactory; import io.reactivex.Observable; @SuppressWarnings("unused") public interface RxGoldfinger { /** * @deprecated Use {@link #hasFingerprintHardware(int)} instead. */ @Deprecated boolean hasFingerprintHardware(); /** * @see Goldfinger#hasFingerprintHardware(int) */ boolean hasFingerprintHardware(int authenticators); /** * @deprecated Use {@link #hasEnrolledFingerprint(int)} instead. */ @Deprecated boolean hasEnrolledFingerprint(); /** * @see Goldfinger#hasEnrolledFingerprint(int) */ boolean hasEnrolledFingerprint(int authenticators); /** * @deprecated Use {@link #canAuthenticate(int)} instead. */ @Deprecated boolean canAuthenticate(); /** * @see Goldfinger#canAuthenticate(int) */ boolean canAuthenticate(int authenticators); /** * @see Goldfinger#authenticate */ @NonNull Observable authenticate(@NonNull Goldfinger.PromptParams params); /** * @see Goldfinger#encrypt */ Observable encrypt(@NonNull Goldfinger.PromptParams params, @NonNull String key, @NonNull String value); /** * @see Goldfinger#decrypt */ Observable decrypt(@NonNull Goldfinger.PromptParams params, @NonNull String key, @NonNull String value); /** * @see Goldfinger#cancel */ void cancel(); /** * @see Goldfinger.Builder */ @SuppressWarnings("unused") class Builder { private Goldfinger.Builder goldfingerBuilder; public Builder(@NonNull Context context) { this.goldfingerBuilder = new Goldfinger.Builder(context); } @NonNull public RxGoldfinger build() { return new RxGoldfingerImpl(goldfingerBuilder.build()); } @NonNull public RxGoldfinger.Builder cipherCrypter(@Nullable CipherCrypter cipherCrypter) { goldfingerBuilder.cipherCrypter(cipherCrypter); return this; } @NonNull public RxGoldfinger.Builder cipherFactory(@Nullable CipherFactory cipherFactory) { goldfingerBuilder.cipherFactory(cipherFactory); return this; } @NonNull public RxGoldfinger.Builder logEnabled(boolean logEnabled) { goldfingerBuilder.logEnabled(logEnabled); return this; } @NonNull public RxGoldfinger.Builder macCrypter(@Nullable MacCrypter macCrypter) { goldfingerBuilder.macCrypter(macCrypter); return this; } @NonNull public RxGoldfinger.Builder macFactory(@Nullable MacFactory macFactory) { goldfingerBuilder.macFactory(macFactory); return this; } @NonNull public RxGoldfinger.Builder signatureCrypter(@Nullable SignatureCrypter signatureCrypter) { goldfingerBuilder.signatureCrypter(signatureCrypter); return this; } @NonNull public RxGoldfinger.Builder signatureFactory(@Nullable SignatureFactory signatureFactory) { goldfingerBuilder.signatureFactory(signatureFactory); return this; } } }