Skip to content

Commit 9ea539f

Browse files
author
spoeck
committed
feat: add UserEntity support for android
1 parent 17c0668 commit 9ea539f

4 files changed

Lines changed: 42 additions & 9 deletions

File tree

android/src/main/java/de/innfactory/apiai/RNApiAiModule.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,11 @@
2424
import ai.api.model.AIResponse;
2525
import ai.api.model.Result;
2626
import ai.api.model.AIContext;
27+
import ai.api.model.Entity;
28+
import ai.api.model.EntityEntry;
2729
import ai.api.RequestExtras;
2830

31+
2932
/**
3033
* Created by Anton Spöck on 2017-07-21
3134
**/
@@ -58,7 +61,7 @@ public class RNApiAiModule extends ReactContextBaseJavaModule implements AIListe
5861
AIConfiguration.RecognitionEngine.System);
5962
private AIDataService aiDataService;
6063
private List<AIContext> contexts;
61-
64+
private List<Entity> entities;
6265
private Callback onResultCallback;
6366
private Callback onErrorCallback;
6467
private Callback onListeningStartedCallback;
@@ -85,7 +88,14 @@ public void setConfiguration(String clientAccessToken, String languageTag) {
8588
@ReactMethod
8689
public void setContextsAsJson(String contextsAsJson) {
8790
Gson gson= new Gson();
88-
contexts = gson.fromJson(contextsAsJson, new TypeToken<List<AIContext>>(){}.getType());
91+
contexts = gson.fromJson(contextsAsJson, new TypeToken<List<Entity>>(){}.getType());
92+
}
93+
94+
95+
@ReactMethod
96+
public void setEntitiesAsJson(String userEntitiesAsJson) throws AIServiceException {
97+
Gson gson= new Gson();
98+
entities = gson.fromJson(userEntitiesAsJson, new TypeToken<List<Entity>>(){}.getType());
8999
}
90100

91101

@@ -103,10 +113,11 @@ public void run() {
103113
aiService.setListener(RNApiAiModule.this);
104114

105115
// set contexts
106-
if (contexts != null) {
107-
RequestExtras requestExtras = new RequestExtras(contexts, null);
116+
if (contexts != null || entities != null) {
117+
RequestExtras requestExtras = new RequestExtras(contexts, entities);
108118
aiService.startListening(requestExtras);
109119
contexts = null;
120+
entities = null;
110121
} else {
111122

112123
// start listening without context
@@ -268,10 +279,11 @@ protected AIResponse doInBackground(AIRequest... requests) {
268279
AIResponse response = null;
269280

270281
// set contexts
271-
if (contexts != null) {
272-
RequestExtras requestExtras = new RequestExtras(contexts, null);
282+
if (contexts != null || entities != null) {
283+
RequestExtras requestExtras = new RequestExtras(contexts, entities);
273284
response = aiDataService.request(aiRequest, requestExtras);
274285
contexts = null;
286+
entities = null;
275287
} else {
276288

277289
// start request without context

example/index.android.js

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export default class App extends Component {
2323
console.log(ApiAi);
2424

2525
ApiAi.setConfiguration(
26-
"57b6ce865e6e4b138a74a88cfd8bc526", ApiAi.LANG_GERMAN
26+
"INSERT_YOUR_CLIENT_ACCESS_TOKEN_HERE", ApiAi.LANG_GERMAN
2727
);
2828

2929

@@ -37,6 +37,23 @@ export default class App extends Component {
3737
}];
3838

3939
ApiAi.setContexts(contexts);
40+
41+
42+
const entities = [{
43+
"name":"shop",
44+
"extend":true,
45+
"entries":[
46+
{
47+
"value":"Media Markt",
48+
"synonyms":[
49+
"Media Markt",
50+
]
51+
}
52+
]
53+
}];
54+
55+
56+
ApiAi.setEntities(entities);
4057
}
4158

4259

example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"dependencies": {
1010
"react": "16.0.0-alpha.12",
1111
"react-native": "0.47.1",
12-
"react-native-api-ai": "^1.1.0"
12+
"react-native-api-ai": "../"
1313
},
1414
"devDependencies": {
1515
"babel-jest": "20.0.3",

index.android.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ let ApiAi = NativeModules.ApiAi;
66

77
ApiAi.setContexts = (contexts) => {
88
ApiAi.setContextsAsJson(JSON.stringify(contexts))
9-
}
9+
};
10+
11+
ApiAi.setEntities = (entities) => {
12+
ApiAi.setEntitiesAsJson(JSON.stringify(entities))
13+
};
1014

1115
module.exports = ApiAi;

0 commit comments

Comments
 (0)