commit ee3358392e4d312fbda0f47a9bf6093761f3ba1a parent 72829dfe15590f08baa17259492ed6b5e4da1b3f Author: gstraube <gstraube@mailbox.org> Date: Fri, 22 Sep 2017 18:44:03 +0200 Indicate whether audio dispatcher is running Diffstat:
4 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/com/github/cythara/CanvasPainter.java b/app/src/main/java/com/github/cythara/CanvasPainter.java @@ -8,6 +8,8 @@ import android.graphics.drawable.Drawable; import android.support.v4.content.ContextCompat; import android.text.TextPaint; +import static com.github.cythara.ListenerFragment.*; + class CanvasPainter { private static final double TOLERANCE = 5D; @@ -91,8 +93,13 @@ class CanvasPainter { } private void drawListeningIndicator() { - Drawable drawable = ContextCompat.getDrawable(context, - R.drawable.ic_line_style_icons_mic); + int resourceId = R.drawable.ic_line_style_icons_mic; + + if (IS_RECORDING) { + resourceId = R.drawable.ic_line_style_icons_mic_active; + } + + Drawable drawable = ContextCompat.getDrawable(context, resourceId); int x = (int) (canvas.getWidth() / 2F); int y = (int) (canvas.getHeight() - canvas.getHeight() / 3F); diff --git a/app/src/main/java/com/github/cythara/ListenerFragment.java b/app/src/main/java/com/github/cythara/ListenerFragment.java @@ -27,6 +27,8 @@ public class ListenerFragment extends Fragment { void onProgressUpdate(PitchDifference percent); } + static boolean IS_RECORDING; + private static final int SAMPLE_RATE = 44100; private static final int BUFFER_SIZE = FastYin.DEFAULT_BUFFER_SIZE; @@ -105,6 +107,11 @@ public class ListenerFragment extends Fragment { return; } + if (!IS_RECORDING) { + IS_RECORDING = true; + publishProgress(); + } + float pitch = pitchDetectionResult.getPitch(); if (pitch != -1) { @@ -146,13 +153,18 @@ public class ListenerFragment extends Fragment { @Override protected void onProgressUpdate(PitchDifference... pitchDifference) { if (taskCallbacks != null) { - taskCallbacks.onProgressUpdate(pitchDifference[0]); + if (pitchDifference.length > 0) { + taskCallbacks.onProgressUpdate(pitchDifference[0]); + } else { + taskCallbacks.onProgressUpdate(null); + } } } private void stopAudioDispatcher() { if (!audioDispatcher.isStopped()) { audioDispatcher.stop(); + IS_RECORDING = false; } } } diff --git a/app/src/main/res/drawable/ic_line_style_icons_mic.xml b/app/src/main/res/drawable/ic_line_style_icons_mic.xml @@ -5,8 +5,8 @@ android:viewportHeight="32.0"> <path android:pathData="M7,24.007V28H4.034c-1.141,0 -2,0.859 -2,2v1.5c0,0.276 0.224,0.5 0.5,0.5h10c0.276,0 0.5,-0.224 0.5,-0.5v-1.425c0,-1.164 -0.879,-2.075 -2,-2.075H8v-3.993c3.973,-0.278 7.068,-3.56 7.068,-7.564v-1.887c0,-0.295 -0.239,-0.534 -0.534,-0.534S14,14.262 14,14.557v1.887c0,3.597 -2.9,6.522 -6.466,6.522s-6.466,-2.926 -6.466,-6.522v-1.887c0,-0.295 -0.239,-0.534 -0.534,-0.534S0,14.262 0,14.557v1.887C0,20.447 3.095,23.729 7,24.007zM12.034,30.075V31h-9v-1c0,-0.589 0.411,-1 1,-1h7C11.604,29 12.034,29.462 12.034,30.075z" - android:fillColor="#2ee40a"/> + android:fillColor="#e40a15"/> <path android:pathData="M7.534,-0.034C5.034,-0.034 3,2.025 3,4.557v11.887c0,2.531 2.034,4.591 4.534,4.591s4.534,-2.06 4.466,-4.591V4.557C12.068,2.025 10.034,-0.034 7.534,-0.034zM11,16.443c0,1.942 -1.555,3.522 -3.466,3.522S4,18.386 4,16.443V4.557c0,-1.942 1.623,-3.522 3.534,-3.522S11,2.614 11,4.557V16.443z" - android:fillColor="#2ee40a"/> + android:fillColor="#e40a15"/> </vector> diff --git a/app/src/main/res/drawable/ic_line_style_icons_mic.xml b/app/src/main/res/drawable/ic_line_style_icons_mic_active.xml