11package com .chattylabs .demo .voice ;
22
33import android .annotation .SuppressLint ;
4- import android .content .Intent ;
5- import android .content .pm .PackageManager ;
64import android .os .Bundle ;
7- import android .support .annotation .NonNull ;
8- import android .support .v4 .app .ActivityCompat ;
9- import android .support .v4 .content .ContextCompat ;
105import android .view .Gravity ;
11- import android .view .Menu ;
12- import android .view .MenuInflater ;
13- import android .view .MenuItem ;
14- import android .view .View ;
156import android .widget .AbsListView ;
16- import android .widget .AdapterView ;
177import android .widget .ArrayAdapter ;
188import android .widget .Button ;
199import android .widget .ListView ;
20- import android .widget .Spinner ;
2110import android .widget .TextView ;
2211
23- import com .chattylabs .sdk .android .common .PermissionsHelper ;
2412import com .chattylabs .sdk .android .common .Tag ;
25- import com .chattylabs .sdk .android .common .ThreadUtils ;
26- import com .chattylabs .sdk .android .voice .AndroidSpeechRecognizer ;
27- import com .chattylabs .sdk .android .voice .AndroidSpeechSynthesizer ;
2813import com .chattylabs .sdk .android .voice .Conversation ;
29- import com .chattylabs .sdk .android .voice .ConversationalFlowComponent ;
3014import com .chattylabs .sdk .android .voice .Flow ;
31- import com .chattylabs .sdk .android .voice .GoogleSpeechRecognizer ;
32- import com .chattylabs .sdk .android .voice .GoogleSpeechSynthesizer ;
3315import com .chattylabs .sdk .android .voice .VoiceMatch ;
3416import com .chattylabs .sdk .android .voice .VoiceMessage ;
3517import com .chattylabs .sdk .android .voice .VoiceMismatch ;
4224import java .io .IOException ;
4325import java .io .InputStream ;
4426import java .util .ArrayList ;
45- import java .util .Arrays ;
46- import java .util .LinkedHashMap ;
47- import java .util .List ;
4827
49- import javax . inject . Inject ;
28+ public class BuildFromJsonActivity extends BaseActivity {
5029
51- import dagger . android . support . DaggerAppCompatActivity ;
30+ private static final String TAG = Tag . make ( BuildFromJsonActivity . class ) ;
5231
53- public class BuildFromJsonActivity extends DaggerAppCompatActivity
54- implements ActivityCompat .OnRequestPermissionsResultCallback {
55-
56- private static final String TAG = Tag .make (CustomizeTheComponentActivity .class );
57-
58- private static final String ANDROID = "Android" ;
59- private static final String GOOGLE = "Google" ;
60-
61- private static LinkedHashMap <Integer , String > addonMap = new LinkedHashMap <>();
62- static {
63- addonMap .put (0 , ANDROID );
64- addonMap .put (1 , GOOGLE );
65- }
66-
67- private static String ADDON_TYPE = ANDROID ;
68-
69- @ Inject ConversationalFlowComponent component ;
70- private ThreadUtils .SerialThread serialThread ;
71-
72- private Button proceed ;
73- private Spinner addonSpinner ;
74- private ListView conversationListView ;
75- private ArrayAdapter <String > addonAdapter ;
7632 private ArrayAdapter <String > listViewAdapter ;
7733
78- @ Override
79- public boolean onCreateOptionsMenu (Menu menu ) {
80- MenuInflater inflater = getMenuInflater ();
81- inflater .inflate (R .menu .demos , menu );
82- return true ;
83- }
84-
85- @ Override
86- public boolean onOptionsItemSelected (MenuItem item ) {
87- switch (item .getItemId ()) {
88- case R .id .demo_conversation :
89- ContextCompat .startActivity (this ,
90- new Intent (this , CustomizeTheComponentActivity .class ), null );
91- return true ;
92- case R .id .demo_components :
93- ContextCompat .startActivity (this ,
94- new Intent (this , BuildFromJsonActivity .class ), null );
95- return true ;
96- default :
97- return super .onOptionsItemSelected (item );
98- }
99- }
100-
10134 @ Override
10235 protected void onCreate (Bundle savedInstanceState ) {
10336 super .onCreate (savedInstanceState );
10437 setContentView (R .layout .activity_build_from_json );
105-
10638 initViews ();
107- serialThread = ThreadUtils .newSerialThread ();
108- setup ();
109- }
110-
111- @ Override
112- public void onDestroy () {
113- super .onDestroy ();
114- //UpdateManager.unregister();
115- serialThread .shutdownNow ();
116- component .shutdown ();
11739 }
11840
11941 private void initViews () {
120- proceed = findViewById (R .id .proceed );
42+ Button proceed = findViewById (R .id .proceed );
12143 proceed .setOnClickListener (v -> {
12244 loadConversation ();
12345 });
12446
125- conversationListView = findViewById (R .id .conversation );
47+ ListView conversationListView = findViewById (R .id .conversation );
12648 listViewAdapter = new ArrayAdapter <>(this , R .layout .item_block ,
12749 R .id .conversation_item_text ,
12850 new ArrayList <>());
@@ -134,34 +56,6 @@ private void initViews() {
13456 AbsListView .LayoutParams .WRAP_CONTENT , Gravity .CENTER ));
13557 conversationListView .setAdapter (listViewAdapter );
13658 conversationListView .setEmptyView (emptyView );
137-
138- addonSpinner = findViewById (R .id .addon );
139- // Create an ArrayAdapter of the addons
140- List <String > addonList = Arrays .asList (addonMap .values ().toArray (new String [addonMap .size ()]));
141- addonAdapter = new ArrayAdapter <>(this , android .R .layout .simple_spinner_item , addonList );
142- addonAdapter .setDropDownViewResource (android .R .layout .simple_spinner_dropdown_item );
143- addonSpinner .setAdapter (addonAdapter );
144- addonSpinner .setSelection (0 );
145- addonSpinner .setOnItemSelectedListener (new AdapterView .OnItemSelectedListener () {
146- @ Override
147- public void onItemSelected (AdapterView <?> parent , View view , int position , long id ) {
148- ADDON_TYPE = addonMap .get (position );
149- setup ();
150- }
151-
152- @ Override
153- public void onNothingSelected (AdapterView <?> parent ) {
154- }
155- });
156- }
157-
158- private void setup () {
159- String [] perms = component .requiredPermissions ();
160- PermissionsHelper .check (this ,
161- perms ,
162- () -> onRequestPermissionsResult (
163- PermissionsHelper .REQUEST_CODE , perms ,
164- new int [] {PackageManager .PERMISSION_GRANTED }));
16559 }
16660
16761 @ SuppressLint ("MissingPermission" )
@@ -252,35 +146,4 @@ public String loadJSONFromAsset() {
252146 }
253147 return json ;
254148 }
255-
256- @ SuppressLint ("MissingPermission" )
257- @ Override
258- public void onRequestPermissionsResult (int requestCode , @ NonNull String [] permissions , @ NonNull int [] grantResults ) {
259- if (PermissionsHelper .isPermissionRequest (requestCode )) {
260- if (PermissionsHelper .isPermissionGranted (grantResults )) {
261- serialThread .addTask (() -> {
262- component .updateConfiguration (builder ->
263- builder .setGoogleCredentialsResourceFile (() -> R .raw .credential )
264- .setRecognizerServiceType (() -> {
265- switch (ADDON_TYPE ) {
266- case GOOGLE :
267- return GoogleSpeechRecognizer .class ;
268- default :
269- return AndroidSpeechRecognizer .class ;
270- }
271- })
272- .setSynthesizerServiceType (() -> {
273- switch (ADDON_TYPE ) {
274- case GOOGLE :
275- return GoogleSpeechSynthesizer .class ;
276- default :
277- return AndroidSpeechSynthesizer .class ;
278- }
279- })
280- .build ());
281- component .setup (this , status -> {});
282- });
283- }
284- }
285- }
286149}
0 commit comments