OboeTester: allow collapse of settings
Use View.GONE
Make room in crowded layouts.
diff --git a/apps/OboeTester/app/CMakeLists.txt b/apps/OboeTester/app/CMakeLists.txt
index 2bca76c..2390007 100644
--- a/apps/OboeTester/app/CMakeLists.txt
+++ b/apps/OboeTester/app/CMakeLists.txt
@@ -28,7 +28,6 @@
### END OBOE INCLUDE SECTION ###
-
# link to oboe
target_link_libraries(oboetester log oboe atomic)
diff --git a/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp b/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp
index 9a72bbd..db563b6 100644
--- a/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp
+++ b/apps/OboeTester/app/src/main/cpp/NativeAudioContext.cpp
@@ -272,6 +272,7 @@
mSinkFloat = std::make_unique<SinkFloat>(mChannelCount);
mSinkI16 = std::make_unique<SinkI16>(mChannelCount);
+ // TODO Use ActivityContext classes instead of switches.
switch(mActivityType) {
case ActivityType::Undefined:
break;
diff --git a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfigurationView.java b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfigurationView.java
index f0b8754..5d108c6 100644
--- a/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfigurationView.java
+++ b/apps/OboeTester/app/src/main/java/com/google/sample/oboe/manualtest/StreamConfigurationView.java
@@ -19,6 +19,7 @@
import android.content.Context;
import android.media.AudioManager;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
@@ -63,6 +64,22 @@
private TextView mStreamInfoView;
private TextView mStreamStatusView;
+ private TextView mOptionExpander;
+ private String mHideSettingsText;
+ private String mShowSettingsText;
+
+ // Create an anonymous implementation of OnClickListener
+ private View.OnClickListener mToggleListener = new View.OnClickListener() {
+ public void onClick(View v) {
+ if (mOptionTable.isShown()) {
+ mOptionTable.setVisibility(View.GONE);
+ mOptionExpander.setText(mShowSettingsText);
+ } else {
+ mOptionTable.setVisibility(View.VISIBLE);
+ mOptionExpander.setText(mHideSettingsText);
+ }
+ }
+ };
public StreamConfigurationView(Context context) {
super(context);
@@ -92,8 +109,14 @@
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.stream_config, this);
+ mHideSettingsText = getResources().getString(R.string.hint_hide_settings);
+ mShowSettingsText = getResources().getString(R.string.hint_show_settings);
+
mOptionTable = (TableLayout) findViewById(R.id.optionTable);
+ mOptionExpander = (TextView) findViewById(R.id.toggle_stream_config);
+ mOptionExpander.setOnClickListener(mToggleListener);
+
mNativeApiSpinner = (Spinner) findViewById(R.id.spinnerNativeApi);
mNativeApiSpinner.setOnItemSelectedListener(new NativeApiSpinnerListener());
mNativeApiSpinner.setSelection(StreamConfiguration.NATIVE_API_UNSPECIFIED);
@@ -159,6 +182,7 @@
});
}
+
public void setOutput(boolean output) {
if (output) {
mDeviceSpinner.setDirectionType(AudioManager.GET_DEVICES_OUTPUTS);
diff --git a/apps/OboeTester/app/src/main/res/layout/stream_config.xml b/apps/OboeTester/app/src/main/res/layout/stream_config.xml
index b0d3c9f..2bf4fb8 100644
--- a/apps/OboeTester/app/src/main/res/layout/stream_config.xml
+++ b/apps/OboeTester/app/src/main/res/layout/stream_config.xml
@@ -6,6 +6,13 @@
android:layout_height="wrap_content"
android:orientation="vertical">
+ <TextView android:id="@+id/toggle_stream_config"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:background="#C0F0E0"
+ android:clickable="true"
+ android:text="@string/hint_hide_settings" />
+
<TableLayout
android:id="@+id/optionTable"
android:layout_width="wrap_content"
@@ -167,30 +174,24 @@
android:text="\?" />
</TableRow>
+ <TableRow
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Device: " />
+
+ <com.google.sample.audio_device.AudioDeviceSpinner
+ android:id="@+id/devices_spinner"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+
+ </TableRow>
+
</TableLayout>
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal">
-
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Device: " />
-
- <com.google.sample.audio_device.AudioDeviceSpinner
- android:id="@+id/devices_spinner"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"/>
-
- </LinearLayout>
-
-<!-- <TextView
- android:id="@+id/device_name"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="\?" />-->
<TextView
android:id="@+id/streamInfo"
diff --git a/apps/OboeTester/app/src/main/res/values/strings.xml b/apps/OboeTester/app/src/main/res/values/strings.xml
index 24f9513..a09c31a 100644
--- a/apps/OboeTester/app/src/main/res/values/strings.xml
+++ b/apps/OboeTester/app/src/main/res/values/strings.xml
@@ -15,6 +15,8 @@
<string name="GetParam">Get Param</string>
<string name="device_name">Device Name</string>
<string name="auto_select">Auto select</string>
+ <string name="hint_hide_settings">Hide Settings</string>
+ <string name="hint_show_settings">Show Settings</string>
<string name="output_prompt">Choose an Output Mode</string>
<string-array name="output_modes">