@Override
public Single<CharactersResponse> loadCharacter(String query,
String privateKey,
String publicKey,
long timestamp) {
if (characterSubscription == null || characterSubscription.isDisposed()) {
characterSubject = SingleSubject.create();
String hash = HashGenerator.generate(timestamp, privateKey, publicKey);
characterSubscription = api.getCharacters(query, publicKey, hash, timestamp)
.subscribeOn(scheduler.backgroundThread())
.subscribe(characterSubject::onSuccess);
}
return characterSubject.hide();
}