private
void
sendMessage() {
final
String inputmessage =
this
.inputMessage.getText().toString().trim();
if
(!
this
.initialRequest) {
Message inputMessage =
new
Message();
inputMessage.setMessage(inputmessage);
inputMessage.setId(
"1"
);
messageArrayList.add(inputMessage);
}
else
{
Message inputMessage =
new
Message();
inputMessage.setMessage(inputmessage);
inputMessage.setId(
"100"
);
this
.initialRequest =
false
;
Toast.makeText(getApplicationContext(),
"Tap on the message for Voice"
,Toast.LENGTH_LONG).show();
}
this
.inputMessage.setText(
""
);
mAdapter.notifyDataSetChanged();
Thread thread =
new
Thread(
new
Runnable(){
public
void
run() {
try
{
Assistant assistantservice =
new
Assistant(
"2018-02-16"
);
assistantservice.setUsernameAndPassword(
"apikey"
,
"api"
);
InputData input =
new
InputData.Builder(inputmessage).build();
MessageOptions options =
new
MessageOptions.Builder().workspaceId(
"asdf"
).input(input).context(context).build();
MessageResponse response = assistantservice.message(options).execute();
Log.i(TAG,
"run: "
+response);
String outputText =
""
;
int
length=response.getOutput().getText().size();
Log.i(TAG,
"run: "
+length);
if
(length>
1
) {
for
(
int
i =
0
; i < length; i++) {
outputText +=
'\n'
+ response.getOutput().getText().get(i).trim();
}
}
else
outputText = response.getOutput().getText().get(
0
);
Log.i(TAG,
"run: "
+outputText);
if
(response.getContext() !=
null
)
{
context = response.getContext();
}
Message outMessage=
new
Message();
if
(response!=
null
)
{
if
(response.getOutput()!=
null
&& response.getOutput().containsKey(
"text"
))
{
ArrayList responseList = (ArrayList) response.getOutput().get(
"text"
);
if
(
null
!=responseList && responseList.size()>
0
){
outMessage.setMessage(outputText);
outMessage.setId(
"2"
);
}
messageArrayList.add(outMessage);
}
runOnUiThread(
new
Runnable() {
public
void
run() {
mAdapter.notifyDataSetChanged();
if
(mAdapter.getItemCount() >
1
) {
recyclerView.getLayoutManager().smoothScrollToPosition(recyclerView,
null
, mAdapter.getItemCount()-
1
);
}
}
});
}
}
catch
(Exception e) {
e.printStackTrace();
}
}
});
thread.start();