OboeTester: reset configuration between activities

Fixes #628
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AnalyzerActivity.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AnalyzerActivity.java
index f8a2b1d..7351057 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AnalyzerActivity.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AnalyzerActivity.java
@@ -123,6 +123,12 @@
         }
     }
 
+    @Override
+    protected void resetConfiguration() {
+        super.resetConfiguration();
+        mAudioOutTester.reset();
+    }
+
     public void startAudio() {
         if (mBufferSizeView != null && mBufferSizeView.isEnabled()) {
             mBufferSizeView.updateBufferSize();
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AudioStreamTester.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AudioStreamTester.java
index 7212241..ab39006 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AudioStreamTester.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/AudioStreamTester.java
@@ -32,6 +32,11 @@
                 -1);
     }
 
+    public void reset() {
+        requestedConfiguration.reset(); // TODO consider making new ones
+        actualConfiguration.reset();
+    }
+
     public void close() {
         mCurrentAudioStream.close();
     }
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/EchoActivity.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/EchoActivity.java
index 261f2f7..5f430c9 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/EchoActivity.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/EchoActivity.java
@@ -100,6 +100,12 @@
         setActivityType(ACTIVITY_ECHO);
     }
 
+    @Override
+    protected void resetConfiguration() {
+        super.resetConfiguration();
+        mAudioOutTester.reset();
+    }
+
     public void onStartEcho(View view) {
         openAudio();
         startAudio();
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfiguration.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfiguration.java
index b19623a..de30f3d 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfiguration.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfiguration.java
@@ -59,7 +59,7 @@
     private int mChannelCount;
     private int mDeviceId;
     private int mSessionId;
-    private int mDirection;
+    private int mDirection; // does not get reset
     private int mFormat;
     private int mSampleRate;
     private int mSharingMode;
@@ -76,11 +76,6 @@
         reset();
     }
 
-    public void setReasonableDefaults() {
-        mChannelCount = 2;
-        mSampleRate = 48000;
-    }
-
     public void reset() {
         mNativeApi = NATIVE_API_UNSPECIFIED;
         mBufferCapacityInFrames = UNSPECIFIED;
@@ -91,8 +86,8 @@
         mSampleRate = UNSPECIFIED;
         mSharingMode = SHARING_MODE_SHARED;
         mPerformanceMode = PERFORMANCE_MODE_LOW_LATENCY;
-        mChannelConversionAllowed = false;
         mFormatConversionAllowed = false;
+        mChannelConversionAllowed = false;
         mRateConversionQuality = RATE_CONVERSION_QUALITY_NONE;
         mMMap = NativeEngine.isMMapSupported();
     }
@@ -208,6 +203,7 @@
         message.append(String.format("%s.rate = %d\n", prefix, mSampleRate));
         message.append(String.format("%s.device = %d\n", prefix, mDeviceId));
         message.append(String.format("%s.mmap = %s\n", prefix, isMMap() ? "yes" : "no"));
+        message.append(String.format("%s.rate.conversion.quality = %d\n", prefix, mRateConversionQuality));
         return message.toString();
     }
 
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestAudioActivity.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestAudioActivity.java
index 55674ba..d68fc80 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestAudioActivity.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestAudioActivity.java
@@ -160,6 +160,15 @@
     }
 
     @Override
+    protected void onStart() {
+        super.onStart();
+        resetConfiguration();
+    }
+
+    protected void resetConfiguration() {
+    }
+
+    @Override
     protected void onStop() {
         Log.i(TAG, "onStop() called so stopping audio =========================");
         stopAudio();
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestInputActivity.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestInputActivity.java
index 128430f..95618d9 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestInputActivity.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestInputActivity.java
@@ -84,6 +84,12 @@
     }
 
     @Override
+    protected void resetConfiguration() {
+        super.resetConfiguration();
+        mAudioInputTester.reset();
+    }
+
+    @Override
     void updateStreamDisplay() {
         int numChannels = mAudioInputTester.getCurrentAudioStream().getChannelCount();
         if (numChannels > NUM_VOLUME_BARS) {
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestOutputActivityBase.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestOutputActivityBase.java
index 028dbb8..7905345 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestOutputActivityBase.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/TestOutputActivityBase.java
@@ -53,6 +53,12 @@
         }
     };
 
+    @Override
+    protected void resetConfiguration() {
+        super.resetConfiguration();
+        mAudioOutTester.reset();
+    }
+
     protected void findAudioCommon() {
         super.findAudioCommon();