Skip to content

Commit 5c729c7

Browse files
committed
Massive refactor to Organize and simplify interfaces.
1 parent 751016b commit 5c729c7

36 files changed

+551
-532
lines changed

README.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,15 +89,14 @@ which component you will be using.
8989

9090
```java
9191
component.updateConfiguration(builder ->
92-
builder .setRecognizerServiceType(() -> AndroidSpeechRecognizer.class)
93-
.setSynthesizerServiceType(() -> AndroidSpeechSynthesizer.class).build());
94-
95-
component.setup(
96-
context, status -> {
97-
if (status.isAvailable()) {
98-
// start using the functionality
99-
}
100-
});
92+
builder.setRecognizerServiceType(() -> AndroidSpeechRecognizer.class)
93+
.setSynthesizerServiceType(() -> AndroidSpeechSynthesizer.class).build());
94+
95+
component.setup(context, status -> {
96+
if (status.isAvailable()) {
97+
// start using the functionality
98+
}
99+
});
101100
```
102101

103102
The configuration builder is based on a `LazyProvider` interface.

app/src/main/java/com/chattylabs/demo/voice/BaseActivity.java

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import com.chattylabs.sdk.android.voice.ConversationalFlowComponent;
2323
import com.chattylabs.sdk.android.voice.GoogleSpeechRecognizer;
2424
import com.chattylabs.sdk.android.voice.GoogleSpeechSynthesizer;
25+
import com.chattylabs.sdk.android.voice.SpeechRecognizerComponent;
26+
import com.chattylabs.sdk.android.voice.SpeechSynthesizerComponent;
2527
import com.chattylabs.sdk.android.voice.TextFilterForUrl;
2628

2729
import java.util.Arrays;
@@ -32,36 +34,29 @@
3234

3335
import dagger.android.support.DaggerAppCompatActivity;
3436

35-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.*;
36-
3737
public class BaseActivity extends DaggerAppCompatActivity
3838
implements ActivityCompat.OnRequestPermissionsResultCallback {
3939

4040
private static final String ANDROID = "Android";
4141
private static final String GOOGLE = "Google";
4242

43+
private String addonType = ANDROID;
4344
private static LinkedHashMap<Integer, String> addonMap = new LinkedHashMap<>();
4445
static {
4546
addonMap.put(0, ANDROID);
4647
addonMap.put(1, GOOGLE);
4748
}
4849

49-
private static String ADDON_TYPE = ANDROID;
50-
5150
@Inject ConversationalFlowComponent component;
5251
ThreadUtils.SerialThread serialThread;
53-
SpeechSynthesizer synthesizer;
54-
SpeechRecognizer recognizer;
55-
56-
private Spinner addonSpinner;
57-
private ArrayAdapter<String> addonAdapter;
52+
SpeechSynthesizerComponent synthesizer;
53+
SpeechRecognizerComponent recognizer;
5854

5955
@Override
6056
protected void onCreate(Bundle savedInstanceState) {
6157
super.onCreate(savedInstanceState);
6258
serialThread = ThreadUtils.newSerialThread();
6359
setup();
64-
initCommonViews();
6560
//UpdateManager.register(this);
6661
}
6762

@@ -79,19 +74,19 @@ public void onDestroy() {
7974
component.shutdown();
8075
}
8176

82-
private void initCommonViews() {
83-
addonSpinner = findViewById(R.id.addon);
77+
void initCommonViews() {
78+
Spinner addonSpinner = findViewById(R.id.addon);
8479
if (addonSpinner != null) {
8580
// Create an ArrayAdapter of the addons
8681
List<String> addonList = Arrays.asList(addonMap.values().toArray(new String[addonMap.size()]));
87-
addonAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, addonList);
82+
ArrayAdapter<String> addonAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, addonList);
8883
addonAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
8984
addonSpinner.setAdapter(addonAdapter);
9085
addonSpinner.setSelection(0);
9186
addonSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
9287
@Override
9388
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
94-
ADDON_TYPE = addonMap.get(position);
89+
addonType = addonMap.get(position);
9590
setup();
9691
}
9792

@@ -106,14 +101,14 @@ private void setup() {
106101
component.updateConfiguration(builder ->
107102
builder .setGoogleCredentialsResourceFile(() -> R.raw.credential)
108103
.setRecognizerServiceType(() -> {
109-
if (GOOGLE.equals(ADDON_TYPE)) {
104+
if (GOOGLE.equals(addonType)) {
110105
return GoogleSpeechRecognizer.class;
111106
} else {
112107
return AndroidSpeechRecognizer.class;
113108
}
114109
})
115110
.setSynthesizerServiceType(() -> {
116-
if (GOOGLE.equals(ADDON_TYPE)) {
111+
if (GOOGLE.equals(addonType)) {
117112
return GoogleSpeechSynthesizer.class;
118113
} else {
119114
return AndroidSpeechSynthesizer.class;

app/src/main/java/com/chattylabs/demo/voice/BuildFromJsonActivity.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import com.chattylabs.sdk.android.common.Tag;
1313
import com.chattylabs.sdk.android.voice.Conversation;
14-
import com.chattylabs.sdk.android.voice.Flow;
14+
import com.chattylabs.sdk.android.voice.ConversationFlow;
1515
import com.chattylabs.sdk.android.voice.VoiceMatch;
1616
import com.chattylabs.sdk.android.voice.VoiceMessage;
1717
import com.chattylabs.sdk.android.voice.VoiceMismatch;
@@ -35,6 +35,7 @@ public class BuildFromJsonActivity extends BaseActivity {
3535
protected void onCreate(Bundle savedInstanceState) {
3636
super.onCreate(savedInstanceState);
3737
setContentView(R.layout.activity_build_from_json);
38+
initCommonViews();
3839
initViews();
3940
}
4041

@@ -63,7 +64,7 @@ private void loadConversation() {
6364
listViewAdapter.clear();
6465
listViewAdapter.notifyDataSetChanged();
6566
Conversation conversation = component.create(this);
66-
Flow flow = conversation.prepare();
67+
ConversationFlow flow = conversation.prepare();
6768
try {
6869
String dots = ". . .";
6970
VoiceNode firstNode = null;

app/src/main/java/com/chattylabs/demo/voice/CustomConversationActivity.java

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.media.AudioManager;
44
import android.os.Bundle;
5-
import android.support.annotation.NonNull;
65
import android.util.Log;
76
import android.util.Pair;
87
import android.util.SparseArray;
@@ -18,17 +17,10 @@
1817

1918
import com.chattylabs.sdk.android.common.HtmlUtils;
2019
import com.chattylabs.sdk.android.common.Tag;
21-
import com.chattylabs.sdk.android.voice.AndroidSpeechSynthesizer;
22-
import com.chattylabs.sdk.android.voice.GoogleSpeechSynthesizer;
20+
import com.chattylabs.sdk.android.voice.RecognizerListener;
2321
import com.chattylabs.sdk.android.voice.Peripheral;
2422

25-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.OnRecognizerError;
26-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.OnRecognizerMostConfidentResult;
27-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.OnRecognizerReady;
28-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.OnSynthesizerDone;
29-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.OnSynthesizerError;
30-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.OnSynthesizerStart;
31-
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.SynthesizerListener;
23+
import com.chattylabs.sdk.android.voice.SynthesizerListener;
3224
import static com.chattylabs.sdk.android.voice.ConversationalFlowComponent.matches;
3325

3426

@@ -60,6 +52,7 @@ protected void onCreate(Bundle savedInstanceState) {
6052
super.onCreate(savedInstanceState);
6153
setContentView(R.layout.activity_customize_the_component);
6254
peripheral = new Peripheral((AudioManager) getSystemService(AUDIO_SERVICE));
55+
initCommonViews();
6356
initViews();
6457
initActions();
6558
}
@@ -125,10 +118,10 @@ private void representQueue(int index) {
125118

126119
private void playByIndex(String text, int index) {
127120
synthesizer.playText(text, "default",
128-
(OnSynthesizerStart) utteranceId -> {
121+
(SynthesizerListener.OnStart) utteranceId -> {
129122
representQueue(index);
130123
},
131-
(OnSynthesizerDone) utteranceId -> {
124+
(SynthesizerListener.OnDone) utteranceId -> {
132125
Log.i(TAG, "on Done index: " + index);
133126
Pair<Integer, String> next = queue.get(index + 1);
134127
if (next != null && next.first == LISTEN) {
@@ -140,8 +133,8 @@ private void playByIndex(String text, int index) {
140133
} else synthesizer.resume();
141134
}
142135
},
143-
(OnSynthesizerError) (utteranceId, errorCode) -> {
144-
if (errorCode == SynthesizerListener.UNKNOWN_ERROR) {
136+
(SynthesizerListener.OnError) (utteranceId, errorCode) -> {
137+
if (errorCode == SynthesizerListener.Status.UNKNOWN_ERROR) {
145138
if (synthesizer.isEmpty()) {
146139
component.shutdown();
147140
} else synthesizer.resume();
@@ -152,9 +145,9 @@ private void playByIndex(String text, int index) {
152145
}
153146

154147
private void listen(int index) {
155-
recognizer.listen((OnRecognizerReady) bundle -> {
148+
recognizer.listen((RecognizerListener.OnReady) bundle -> {
156149
representQueue(index + 1);
157-
}, (OnRecognizerMostConfidentResult) o -> {
150+
}, (RecognizerListener.OnMostConfidentResult) o -> {
158151
representQueue(-1);
159152
SparseArray<String> news = getChecks(new SparseArray<>(), index + 1);
160153
if (news.size() > 0) {
@@ -169,7 +162,7 @@ private void listen(int index) {
169162
if (synthesizer.isEmpty()) {
170163
component.shutdown();
171164
} else synthesizer.resume();
172-
}, (OnRecognizerError) (i, i1) -> {
165+
}, (RecognizerListener.OnError) (i, i1) -> {
173166
Log.e(TAG, "Error " + i);
174167

175168
synthesizer.releaseCurrentQueue();

sdk-addon-android-speech/src/main/java/com/chattylabs/sdk/android/voice/AndroidSpeechRecognitionAdapter.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ abstract class AndroidSpeechRecognitionAdapter
2020
static final int LOW_SOUND = 2;
2121
static final int NORMAL_SOUND = 3;
2222

23-
private OnRecognizerReady onReady;
24-
private OnRecognizerResults onResults;
25-
private OnRecognizerPartialResults onPartialResults;
26-
private OnRecognizerMostConfidentResult onMostConfidentResult;
27-
private OnRecognizerError onError;
23+
private RecognizerListener.OnReady onReady;
24+
private RecognizerListener.OnResults onResults;
25+
private RecognizerListener.OnPartialResults onPartialResults;
26+
private RecognizerListener.OnMostConfidentResult onMostConfidentResult;
27+
private RecognizerListener.OnError onError;
2828

2929
private boolean tryAgain;
3030
private int soundLevel = UNKNOWN;
@@ -35,52 +35,52 @@ abstract class AndroidSpeechRecognitionAdapter
3535
private int normalSoundIntents;
3636

3737
@Override
38-
public void _setOnReady(OnRecognizerReady onReady) {
38+
public void _setOnReady(RecognizerListener.OnReady onReady) {
3939
this.onReady = onReady;
4040
}
4141

4242
@Override
43-
public OnRecognizerResults _getOnResults() {
43+
public RecognizerListener.OnResults _getOnResults() {
4444
return onResults;
4545
}
4646

4747
@Override
48-
public AndroidSpeechRecognitionAdapter _setOnResults(OnRecognizerResults onResults) {
48+
public AndroidSpeechRecognitionAdapter _setOnResults(RecognizerListener.OnResults onResults) {
4949
this.onResults = onResults;
5050
return this;
5151
}
5252

5353
@Override
54-
public OnRecognizerPartialResults _getOnPartialResults() {
54+
public RecognizerListener.OnPartialResults _getOnPartialResults() {
5555
return onPartialResults;
5656
}
5757

5858
@Override
5959
public AndroidSpeechRecognitionAdapter _setOnPartialResults(
60-
OnRecognizerPartialResults onPartialResults) {
60+
RecognizerListener.OnPartialResults onPartialResults) {
6161
this.onPartialResults = onPartialResults;
6262
return this;
6363
}
6464

6565
@Override
66-
public OnRecognizerMostConfidentResult _getOnMostConfidentResult() {
66+
public RecognizerListener.OnMostConfidentResult _getOnMostConfidentResult() {
6767
return onMostConfidentResult;
6868
}
6969

7070
@Override
7171
public AndroidSpeechRecognitionAdapter _setOnMostConfidentResult(
72-
OnRecognizerMostConfidentResult onMostConfidentResult) {
72+
RecognizerListener.OnMostConfidentResult onMostConfidentResult) {
7373
this.onMostConfidentResult = onMostConfidentResult;
7474
return this;
7575
}
7676

7777
@Override
78-
public OnRecognizerError _getOnError() {
78+
public RecognizerListener.OnError _getOnError() {
7979
return onError;
8080
}
8181

8282
@Override
83-
public AndroidSpeechRecognitionAdapter _setOnError(OnRecognizerError onError) {
83+
public AndroidSpeechRecognitionAdapter _setOnError(RecognizerListener.OnError onError) {
8484
this.onError = onError;
8585
return this;
8686
}

0 commit comments

Comments
 (0)