Compare commits
7 Commits
Author | SHA1 | Date |
---|---|---|
Snek | 566f1ea389 | |
Snek | d70fa04a8c | |
Snek | 3fa7f452a0 | |
Snek | dae0f751e7 | |
Snek | 4c47de1ad5 | |
Snek | da0089ae1a | |
Snek | 430bccd4cf |
|
@ -0,0 +1 @@
|
||||||
|
/build
|
|
@ -0,0 +1,24 @@
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion 25
|
||||||
|
buildToolsVersion '25.0.2'
|
||||||
|
defaultConfig {
|
||||||
|
applicationId "solidsnek.amadeus_fork"
|
||||||
|
minSdkVersion 15
|
||||||
|
targetSdkVersion 25
|
||||||
|
versionCode 1
|
||||||
|
versionName "1.0"
|
||||||
|
}
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
minifyEnabled false
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
|
compile 'com.android.support:appcompat-v7:25.2.0'
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
# Add project specific ProGuard rules here.
|
||||||
|
# By default, the flags in this file are appended to flags specified
|
||||||
|
# in D:\Soft\AndroidSDK/tools/proguard/proguard-android.txt
|
||||||
|
# You can edit the include path and order by changing the proguardFiles
|
||||||
|
# directive in build.gradle.
|
||||||
|
#
|
||||||
|
# For more details, see
|
||||||
|
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||||
|
|
||||||
|
# Add any project specific keep options here:
|
||||||
|
|
||||||
|
# If your project uses WebView with JS, uncomment the following
|
||||||
|
# and specify the fully qualified class name to the JavaScript interface
|
||||||
|
# class:
|
||||||
|
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||||
|
# public *;
|
||||||
|
#}
|
|
@ -1,6 +1,8 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="com.example.yink.amadeus">
|
package="solidsnek.amadeus_fork">
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
@ -13,7 +15,8 @@
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity android:name=".LaunchActivity">
|
<activity android:name=".LaunchActivity"
|
||||||
|
android:screenOrientation="portrait">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
|
|
@ -1,168 +0,0 @@
|
||||||
package com.example.yink.amadeus;
|
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.IntentFilter;
|
|
||||||
import android.graphics.drawable.AnimationDrawable;
|
|
||||||
import android.speech.tts.TextToSpeech;
|
|
||||||
import android.speech.tts.UtteranceProgressListener;
|
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.util.Log;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener{
|
|
||||||
String TAG = "Amadeus";
|
|
||||||
TextToSpeech tts;
|
|
||||||
ImageView kurisu;
|
|
||||||
AnimationDrawable animation;
|
|
||||||
HashMap<String, String> map;
|
|
||||||
private final int eyes_closed = 0;
|
|
||||||
private final int normal = 1;
|
|
||||||
private final int sad = 2;
|
|
||||||
private final int indifferent = 3;
|
|
||||||
private final int wink = 4;
|
|
||||||
private final int pissed = 5;
|
|
||||||
private final int annoyed = 6;
|
|
||||||
private final int disappointed = 7;
|
|
||||||
private final int happy = 8;
|
|
||||||
private final int angry = 9;
|
|
||||||
private final int blush = 10;
|
|
||||||
private final int side = 11;
|
|
||||||
|
|
||||||
ArrayList<VoiceLine> voiceLines = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onWindowFocusChanged(boolean hasFocus){
|
|
||||||
if(hasFocus)
|
|
||||||
speak(new VoiceLine("Hallo.",happy));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setContentView(R.layout.activity_main);
|
|
||||||
kurisu = (ImageView) findViewById(R.id.imageView_kurisu);
|
|
||||||
setupLines();
|
|
||||||
map = new HashMap<String, String>();
|
|
||||||
tts = new TextToSpeech(this, this);
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_1);
|
|
||||||
animation = (AnimationDrawable) kurisu.getDrawable();
|
|
||||||
kurisu.setOnClickListener(new View.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(View view) {
|
|
||||||
Random randomgen = new Random();
|
|
||||||
speak(voiceLines.get(randomgen.nextInt(voiceLines.size())));
|
|
||||||
}});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onInit(int status) {
|
|
||||||
if(status==TextToSpeech.SUCCESS){
|
|
||||||
tts.setLanguage(Locale.JAPAN);
|
|
||||||
tts.setPitch(1.05f);
|
|
||||||
tts.setOnUtteranceProgressListener(new UtteranceProgressListener() {
|
|
||||||
@Override
|
|
||||||
public void onStart(String s) {
|
|
||||||
runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
animation.start();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDone(String s) {
|
|
||||||
runOnUiThread(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
animation.stop();
|
|
||||||
kurisu.setImageDrawable(animation.getFrame(0));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onError(String s) {
|
|
||||||
animation.stop();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void speak(VoiceLine line){
|
|
||||||
switch (line.getState()){
|
|
||||||
case eyes_closed:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_1);
|
|
||||||
break;
|
|
||||||
case normal:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_2);
|
|
||||||
break;
|
|
||||||
case sad:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_3);
|
|
||||||
break;
|
|
||||||
case indifferent:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_4);
|
|
||||||
break;
|
|
||||||
case wink:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_5);
|
|
||||||
break;
|
|
||||||
case pissed:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_6);
|
|
||||||
break;
|
|
||||||
case annoyed:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_7);
|
|
||||||
break;
|
|
||||||
case disappointed:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_8);
|
|
||||||
break;
|
|
||||||
case happy:
|
|
||||||
tts.setPitch(1.5f);
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_9);
|
|
||||||
break;
|
|
||||||
case angry:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_10);
|
|
||||||
break;
|
|
||||||
case blush:
|
|
||||||
tts.setPitch(1.5f);
|
|
||||||
tts.setSpeechRate(1.3f);
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_11);
|
|
||||||
break;
|
|
||||||
case side:
|
|
||||||
kurisu.setImageResource(R.drawable.kurisu_12);
|
|
||||||
break;
|
|
||||||
default:kurisu.setImageResource(R.drawable.kurisu_2);
|
|
||||||
|
|
||||||
}
|
|
||||||
animation = (AnimationDrawable) kurisu.getDrawable();
|
|
||||||
map.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"UniqueID");
|
|
||||||
tts.speak(line.getText(),TextToSpeech.QUEUE_FLUSH,map);
|
|
||||||
tts.setPitch(1.05f);
|
|
||||||
tts.setSpeechRate(1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onDestroy(){
|
|
||||||
tts.shutdown();
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setupLines(){
|
|
||||||
voiceLines.add(new VoiceLine("Konban wa, Okabe. Okaeri!",happy));
|
|
||||||
voiceLines.add(new VoiceLine("Okabe, sabishi des!",sad));
|
|
||||||
voiceLines.add(new VoiceLine("Tsumaranai",indifferent));
|
|
||||||
voiceLines.add(new VoiceLine("Okabe ga ski",blush));
|
|
||||||
voiceLines.add(new VoiceLine("Chigau",angry));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
package com.example.yink.amadeus;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Yink on 28.02.2017.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class VoiceLine {
|
|
||||||
public String getText() {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getState() {
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
final private String text;
|
|
||||||
final private int state;
|
|
||||||
|
|
||||||
public VoiceLine(String text, int state){
|
|
||||||
this.text = text;
|
|
||||||
this.state = state;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,33 +1,53 @@
|
||||||
package com.example.yink.amadeus;
|
package solidsnek.amadeus_fork;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.support.v7.app.AppCompatActivity;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v7.app.AppCompatActivity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
public class LaunchActivity extends AppCompatActivity {
|
public class LaunchActivity extends AppCompatActivity {
|
||||||
ImageView connect;
|
ImageView connect, cancel;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
setContentView(R.layout.activity_launch);
|
setContentView(R.layout.activity_launch);
|
||||||
connect = (ImageView) findViewById(R.id.imageView_connect);
|
connect = (ImageView) findViewById(R.id.imageView_connect);
|
||||||
|
cancel = (ImageView) findViewById(R.id.imageView_cancel);
|
||||||
|
|
||||||
connect.setImageResource(R.drawable.connect_unselect);
|
connect.setImageResource(R.drawable.connect_unselect);
|
||||||
|
cancel.setImageResource(R.drawable.cancel_unselect);
|
||||||
|
|
||||||
connect.setOnClickListener(new View.OnClickListener() {
|
connect.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
connect.setImageResource(R.drawable.connect_select);
|
connect.setImageResource(R.drawable.connect_select);
|
||||||
|
|
||||||
Intent intent = new Intent(LaunchActivity.this,MainActivity.class);
|
Intent intent = new Intent(LaunchActivity.this,MainActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
cancel.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
cancel.setImageResource(R.drawable.cancel_select);
|
||||||
|
|
||||||
|
Intent intent = new Intent(Intent.ACTION_MAIN);
|
||||||
|
intent.addCategory(Intent.CATEGORY_HOME);
|
||||||
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume(){
|
protected void onResume(){
|
||||||
connect.setImageResource(R.drawable.connect_unselect);
|
connect.setImageResource(R.drawable.connect_unselect);
|
||||||
|
cancel.setImageResource(R.drawable.cancel_unselect);
|
||||||
super.onResume();
|
super.onResume();
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,198 @@
|
||||||
|
package solidsnek.amadeus_fork;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.graphics.drawable.AnimationDrawable;
|
||||||
|
import android.media.MediaPlayer;
|
||||||
|
import android.speech.RecognitionListener;
|
||||||
|
import android.speech.SpeechRecognizer;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
|
import android.support.v7.app.AppCompatActivity;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.speech.RecognizerIntent;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
String TAG = "Amadeus";
|
||||||
|
ImageView kurisu;
|
||||||
|
AnimationDrawable animation;
|
||||||
|
|
||||||
|
/* Mood constants. Less cpu cycles - a little bit more memory consumption */
|
||||||
|
private class Mood {
|
||||||
|
public static final int HAPPY = R.drawable.kurisu_9;
|
||||||
|
public static final int PISSED = R.drawable.kurisu_6;
|
||||||
|
public static final int ANNOYED = R.drawable.kurisu_7;
|
||||||
|
public static final int ANGRY = R.drawable.kurisu_10;
|
||||||
|
public static final int BLUSH = R.drawable.kurisu_11;
|
||||||
|
public static final int SIDE = R.drawable.kurisu_12;
|
||||||
|
public static final int SAD = R.drawable.kurisu_3;
|
||||||
|
public static final int NORMAL = R.drawable.kurisu_2;
|
||||||
|
public static final int SLEEPY = R.drawable.kurisu_1;
|
||||||
|
public static final int WINKING = R.drawable.kurisu_5;
|
||||||
|
public static final int DISAPPOINTED = R.drawable.kurisu_8;
|
||||||
|
public static final int INDIFFERENT = R.drawable.kurisu_4;
|
||||||
|
public static final int SIDED_PLEASANT = R.drawable.kurisu_15;
|
||||||
|
public static final int SIDED_WORRIED = R.drawable.kurisu_17;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Don't forget about permission to use audio! */
|
||||||
|
private SpeechRecognizer sr;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onWindowFocusChanged(boolean hasFocus) {
|
||||||
|
if (hasFocus) {
|
||||||
|
speak(R.raw.haro, Mood.SIDED_PLEASANT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
setContentView(R.layout.activity_main);
|
||||||
|
kurisu = (ImageView) findViewById(R.id.imageView_kurisu);
|
||||||
|
animation = (AnimationDrawable) kurisu.getDrawable();
|
||||||
|
|
||||||
|
sr = SpeechRecognizer.createSpeechRecognizer(this);
|
||||||
|
sr.setRecognitionListener(new listener());
|
||||||
|
|
||||||
|
kurisu.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
MainActivity host = (MainActivity) view.getContext();
|
||||||
|
|
||||||
|
int permissionCheck = ContextCompat.checkSelfPermission(host,
|
||||||
|
Manifest.permission.RECORD_AUDIO);
|
||||||
|
|
||||||
|
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
|
||||||
|
promptSpeechInput();
|
||||||
|
} else {
|
||||||
|
speak(R.raw.daga_kotowaru, Mood.PISSED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
if (sr != null)
|
||||||
|
sr.destroy();
|
||||||
|
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void promptSpeechInput() {
|
||||||
|
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
|
||||||
|
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
|
||||||
|
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
|
||||||
|
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "ja-JP");
|
||||||
|
|
||||||
|
sr.startListening(intent);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void speak(int raw, int mood) {
|
||||||
|
try {
|
||||||
|
MediaPlayer m = MediaPlayer.create(getApplicationContext(), raw);
|
||||||
|
|
||||||
|
kurisu.setImageResource(mood);
|
||||||
|
|
||||||
|
animation = (AnimationDrawable) kurisu.getDrawable();
|
||||||
|
|
||||||
|
if (m.isPlaying()) {
|
||||||
|
m.stop();
|
||||||
|
m.release();
|
||||||
|
m = new MediaPlayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
m.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
|
||||||
|
@Override
|
||||||
|
public void onPrepared(MediaPlayer mp) {
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
animation.start();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
m.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
|
||||||
|
@Override
|
||||||
|
public void onCompletion(MediaPlayer mp) {
|
||||||
|
mp.release();
|
||||||
|
|
||||||
|
runOnUiThread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
animation.stop();
|
||||||
|
kurisu.setImageDrawable(animation.getFrame(0));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
m.start();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class listener implements RecognitionListener {
|
||||||
|
public void onReadyForSpeech(Bundle params) {
|
||||||
|
Log.d(TAG, "onReadyForSpeech");
|
||||||
|
}
|
||||||
|
public void onBeginningOfSpeech() {
|
||||||
|
Log.d(TAG, "onBeginningOfSpeech");
|
||||||
|
}
|
||||||
|
public void onRmsChanged(float rmsdB) {
|
||||||
|
Log.d(TAG, "onRmsChanged");
|
||||||
|
}
|
||||||
|
public void onBufferReceived(byte[] buffer) {
|
||||||
|
Log.d(TAG, "onBufferReceived");
|
||||||
|
}
|
||||||
|
public void onEndOfSpeech() {
|
||||||
|
Log.d(TAG, "onEndofSpeech");
|
||||||
|
}
|
||||||
|
public void onError(int error) {
|
||||||
|
Log.d(TAG, "error " + error);
|
||||||
|
}
|
||||||
|
public void onResults(Bundle results) {
|
||||||
|
String str = "";
|
||||||
|
Log.d(TAG, "onResults " + results);
|
||||||
|
ArrayList data = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION);
|
||||||
|
str += data.get(0);
|
||||||
|
|
||||||
|
String[] greetingArr = new String[]{"ハロー", "おはよう", "こんにちは", "こんばんは"};
|
||||||
|
List<String> greeting = Arrays.asList(greetingArr);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TODO: Probably not good idea to use bunch of else-if statements
|
||||||
|
*/
|
||||||
|
if (greeting.contains(str)) {
|
||||||
|
speak(R.raw.haro, Mood.HAPPY);
|
||||||
|
} else if (str.equals("クリス")) {
|
||||||
|
speak(R.raw.hai, Mood.NORMAL);
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* If voice input data doesn't match any preset
|
||||||
|
*/
|
||||||
|
speak(R.raw.senpai, Mood.SIDED_WORRIED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void onPartialResults(Bundle partialResults) {
|
||||||
|
Log.d(TAG, "onPartialResults");
|
||||||
|
}
|
||||||
|
public void onEvent(int eventType, Bundle params) {
|
||||||
|
Log.d(TAG, "onEvent " + eventType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 245 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 281 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 280 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 490 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 490 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 490 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 489 KiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 473 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 474 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 474 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 471 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 472 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 471 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 471 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 471 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 487 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 487 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 487 KiB After Width: | Height: | Size: 112 KiB |