Skip to content

Commit 04230a4

Browse files
author
spoeck
committed
feat: add contexts functionality for android
1 parent 51c3352 commit 04230a4

4 files changed

Lines changed: 44 additions & 4 deletions

File tree

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
import com.facebook.react.bridge.ReactContextBaseJavaModule;
99
import com.facebook.react.bridge.ReactMethod;
1010
import com.google.gson.Gson;
11+
import com.google.gson.reflect.TypeToken;
1112

1213
import java.util.HashMap;
1314
import java.util.Map;
15+
import java.util.List;
1416

1517
import ai.api.AIListener;
1618
import ai.api.AIServiceException;
@@ -21,6 +23,8 @@
2123
import ai.api.model.AIRequest;
2224
import ai.api.model.AIResponse;
2325
import ai.api.model.Result;
26+
import ai.api.model.AIContext;
27+
import ai.api.RequestExtras;
2428

2529
/**
2630
* Created by Anton Spöck on 2017-07-21
@@ -53,6 +57,7 @@ public class RNApiAiModule extends ReactContextBaseJavaModule implements AIListe
5357
AIConfiguration.SupportedLanguages.DEFAULT,
5458
AIConfiguration.RecognitionEngine.System);
5559
private AIDataService aiDataService;
60+
private List<AIContext> contexts;
5661

5762
private Callback onResultCallback;
5863
private Callback onErrorCallback;
@@ -77,6 +82,12 @@ public void setConfiguration(String clientAccessToken, String languageTag) {
7782
config = new AIConfiguration(clientAccessToken, AIConfiguration.SupportedLanguages.fromLanguageTag(languageTag), AIConfiguration.RecognitionEngine.System);
7883
}
7984

85+
@ReactMethod
86+
public void setContextsAsJson(String contextsAsJson) {
87+
Gson gson= new Gson();
88+
contexts = gson.fromJson(contextsAsJson, new TypeToken<List<AIContext>>(){}.getType());
89+
}
90+
8091

8192
@ReactMethod
8293
public void startListening(Callback onResult, Callback onError){//, Callback onListeningStarted, Callback onListeningCanceled, Callback onListeningFinished, Callback onAudioLevel) {
@@ -90,7 +101,18 @@ public void run() {
90101

91102
aiService = AIService.getService(getReactApplicationContext(), config);
92103
aiService.setListener(RNApiAiModule.this);
93-
aiService.startListening();
104+
105+
// set contexts
106+
if (contexts != null) {
107+
RequestExtras requestExtras = new RequestExtras(contexts, null);
108+
aiService.startListening(requestExtras);
109+
} else {
110+
111+
// start listening without context
112+
aiService.startListening();
113+
}
114+
115+
94116
}
95117
});
96118
}

example/index.android.js

Lines changed: 12 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-
"INSERT_YOUR_CLENT_ACCESS_TOKEN_HERE", ApiAi.LANG_GERMAN
26+
"INSERT_YOUR_CLENT_ACCESS_TOKEN_HERE ", ApiAi.LANG_GERMAN
2727
);
2828
}
2929

@@ -40,6 +40,17 @@ export default class App extends Component {
4040
<View style={{flex: 1, padding: 10}}>
4141
<Button title="Start Listening" onPress={() => {
4242

43+
/*
44+
const contexts = [{
45+
"name": "greetings",
46+
"lifespan": 3,
47+
"parameters": {
48+
"name": "Sam"
49+
}
50+
}];
51+
52+
ApiAi.setContexts(contexts);
53+
*/
4354

4455
ApiAi.onListeningStarted(() => {
4556
this.setState({listeningState: "started"});

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.0.2"
12+
"react-native-api-ai": "../"
1313
},
1414
"devDependencies": {
1515
"babel-jest": "20.0.3",

index.android.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
11
'use strict';
22

33
import { NativeModules } from 'react-native';
4-
module.exports = NativeModules.ApiAi;
4+
5+
let ApiAi = NativeModules.ApiAi;
6+
7+
ApiAi.setContexts = (contexts) => {
8+
ApiAi.setContextsAsJson(JSON.stringify(contexts))
9+
}
10+
11+
module.exports = ApiAi;

0 commit comments

Comments
 (0)