Prevent voice input while loop is active.

This commit is contained in:
Snek 2017-03-03 23:16:18 +03:00
parent 2f5deea6aa
commit 9d1b423f50
2 changed files with 15 additions and 13 deletions

View File

@ -109,7 +109,6 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-support" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/restart-dex" />

View File

@ -31,7 +31,7 @@ public class MainActivity extends AppCompatActivity {
ImageView kurisu;
AnimationDrawable animation;
Handler handler;
Boolean looping = false;
Boolean isLoop = false;
ArrayList<VoiceLine> voiceLines = new ArrayList<>();
private SpeechRecognizer sr;
@ -57,7 +57,7 @@ public class MainActivity extends AppCompatActivity {
final Runnable loop = new Runnable() {
@Override
public void run() {
if (looping) {
if (isLoop) {
Random randomgen = new Random();
speak(voiceLines.get(randomgen.nextInt(voiceLines.size())));
handler.postDelayed(this, 5000 + randomgen.nextInt(5) * 1000);
@ -72,10 +72,13 @@ public class MainActivity extends AppCompatActivity {
int permissionCheck = ContextCompat.checkSelfPermission(host,
Manifest.permission.RECORD_AUDIO);
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
promptSpeechInput();
} else {
speak(new VoiceLine(R.raw.daga_kotowaru, Mood.PISSED));
/* Input while loop producing bugs and mixes with output */
if (!isLoop) {
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
promptSpeechInput();
} else {
speak(new VoiceLine(R.raw.daga_kotowaru, Mood.PISSED));
}
}
}});
@ -83,12 +86,12 @@ public class MainActivity extends AppCompatActivity {
kurisu.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if(!looping){
looping =true;
if(!isLoop){
isLoop =true;
handler.post(loop);
}else{
handler.removeCallbacks(loop);
looping = false;
isLoop = false;
}
return true;
}
@ -99,19 +102,19 @@ public class MainActivity extends AppCompatActivity {
protected void onDestroy(){
if(sr!=null)
sr.destroy();
looping = false;
isLoop = false;
super.onDestroy();
}
@Override
protected void onStop(){
looping = false;
isLoop = false;
super.onStop();
}
@Override
protected void onPause(){
looping = false;
isLoop = false;
super.onPause();
}