2
2
3
3
import android .app .Activity ;
4
4
import android .app .NotificationManager ;
5
+ import android .app .RemoteInput ;
5
6
import android .content .Intent ;
6
7
import android .net .Uri ;
7
8
import android .os .Bundle ;
25
26
import com .google .gson .JsonSerializer ;
26
27
27
28
import java .lang .reflect .Type ;
29
+ import java .util .ArrayList ;
30
+ import java .util .Arrays ;
28
31
import java .util .HashMap ;
29
32
import java .util .List ;
30
33
@@ -34,6 +37,8 @@ public class MainActivity extends Activity implements
34
37
public static final String SHOW_WEAR_UNAUTHORIZED = "com.atomjack.vcfp.intent.show_wear_unauthorized" ;
35
38
public static final String FINISH = "com.atomjack.vcfp.intent.finish" ;
36
39
public static final String START_SPEECH_RECOGNITION = "com.atomjack.vcfp.intent.start_speech_recognition" ;
40
+ public static final String RECEIVE_VOICE_INPUT = "com.atomjack.vcfp.intent.receive_voice_input" ;
41
+
37
42
private static final int SPEECH_RECOGNIZER_REQUEST_CODE = 0 ;
38
43
39
44
GoogleApiClient googleApiClient ;
@@ -42,7 +47,7 @@ public class MainActivity extends Activity implements
42
47
@ Override
43
48
protected void onCreate (Bundle savedInstanceState ) {
44
49
super .onCreate (savedInstanceState );
45
- Logger .d ("[MainActivity] onCreate: %s" , savedInstanceState );
50
+ Logger .d ("[MainActivity] onCreate: %s" , getIntent (). getAction () );
46
51
47
52
setMainView ();
48
53
@@ -61,10 +66,24 @@ protected void onCreate(Bundle savedInstanceState) {
61
66
} else if (action .equals (WearConstants .SET_INFO )) {
62
67
Logger .d ("[MainActivity] setting info to %s" , getIntent ().getStringExtra (WearConstants .INFORMATION ));
63
68
setInformationView (getIntent ().getStringExtra (WearConstants .INFORMATION ));
69
+ } else if (action .equals (RECEIVE_VOICE_INPUT )) {
70
+ String query = getMessageText (getIntent ());
71
+ DataMap dataMap = new DataMap ();
72
+ dataMap .putStringArrayList (WearConstants .SPEECH_QUERY , new ArrayList <>(Arrays .asList (query )));
73
+ new SendToDataLayerThread (WearConstants .SPEECH_QUERY , dataMap , this ).start ();
74
+ finish ();
64
75
}
65
76
}
66
77
}
67
78
79
+ private String getMessageText (Intent intent ) {
80
+ Bundle remoteInput = RemoteInput .getResultsFromIntent (intent );
81
+ if (remoteInput != null ) {
82
+ CharSequence charSequence = remoteInput .getCharSequence (WearConstants .SPEECH_QUERY );
83
+ return new StringBuilder (charSequence .length ()).append (charSequence ).toString ();
84
+ }
85
+ return null ;
86
+ }
68
87
@ Override
69
88
protected void onPause () {
70
89
super .onPause ();
0 commit comments