Skip to content

Instantly share code, notes, and snippets.

@zjn0505
Last active August 29, 2018 12:20
Show Gist options
  • Select an option

  • Save zjn0505/5bad7e68645eca15bbba8e16a365b63d to your computer and use it in GitHub Desktop.

Select an option

Save zjn0505/5bad7e68645eca15bbba8e16a365b63d to your computer and use it in GitHub Desktop.
private void processNluForText(@NonNull final String result) {
Timber.d("processNluForText(String)");
Timber.v(result);
apiAi.query(VoiceServiceStaticHelper.getRequestQueryData(getSessionId(), result, true, sharedPreferencesManager, resourcesLoader))
.compose(this.<ApiAiResponse>processNlpResponse())
.subscribe(new Subscriber<NlpResponse>() {
@Override
public void onCompleted() {
Timber.d("NLP request completed successfully.");
unsubscribe();
}
@Override
public void onError(Throwable e) {
Timber.e(e, "Error occurred while processing NLP request.");
notificationsManager.showNotification(NormalNotification.builder("")
.titleResource(R.string.nlp_response_error)
.type(NormalNotification.Type.DEBUG)
.iconResource(R.drawable.ic_debug)
.build()
);
handleNlpErrorRelay();
unsubscribe();
}
@Override
public void onNext(NlpResponse nlpResponse) {
handleNlpReceivedRelay(nlpResponse);
}
});
}
private Observable.Transformer<ApiAiResponse, NlpResponse> processNlpResponse() {
return observable -> observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe(this::nlpStartedRelay)
.doOnNext(response -> Timber.d(response.toString()))
.map(this::mapDialogFlowResponse);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment