summaryrefslogtreecommitdiff
path: root/Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java')
-rw-r--r--Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java42
1 files changed, 36 insertions, 6 deletions
diff --git a/Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java b/Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java
index 4519e86b5..f92975e2f 100644
--- a/Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java
+++ b/Settings/src/com/android/tv/settings/system/development/DevelopmentFragment.java
@@ -18,7 +18,7 @@ package com.android.tv.settings.system.development;
import static android.view.CrossWindowBlurListeners.CROSS_WINDOW_BLUR_SUPPORTED;
-import static com.android.tv.settings.library.overlay.FlavorUtils.X_EXPERIENCE_FLAVORS_MASK;
+import static com.android.tv.settings.overlay.FlavorUtils.X_EXPERIENCE_FLAVORS_MASK;
import android.Manifest;
import android.app.Activity;
@@ -37,6 +37,7 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.database.ContentObserver;
import android.hardware.usb.UsbManager;
+import android.media.MediaRecorder.AudioSource;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
@@ -83,10 +84,10 @@ import com.android.settingslib.development.SystemPropPoker;
import com.android.tv.settings.R;
import com.android.tv.settings.RestrictedPreferenceAdapter;
import com.android.tv.settings.SettingsPreferenceFragment;
-import com.android.tv.settings.library.system.development.audio.AudioDebug;
-import com.android.tv.settings.library.system.development.audio.AudioMetrics;
-import com.android.tv.settings.library.system.development.audio.AudioReaderException;
-import com.android.tv.settings.library.overlay.FlavorUtils;
+import com.android.tv.settings.overlay.FlavorUtils;
+import com.android.tv.settings.system.development.audio.AudioDebug;
+import com.android.tv.settings.system.development.audio.AudioMetrics;
+import com.android.tv.settings.system.development.audio.AudioReaderException;
import java.util.ArrayList;
import java.util.HashSet;
@@ -135,6 +136,7 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
private static final String TIME_TO_START_READ_KEY = "time_to_start_read";
private static final String TIME_TO_VALID_AUDIO_KEY = "time_to_valid_audio";
private static final String EMPTY_AUDIO_DURATION_KEY = "empty_audio_duration";
+ private static final String RECORDED_AUDIO_SOURCE_KEY = "record_audio_source";
private static final String FORCE_MSAA_KEY = "force_msaa";
private static final String TRACK_FRAME_TIME_KEY = "track_frame_time";
private static final String SHOW_NON_RECTANGULAR_CLIP_KEY = "show_non_rect_clip";
@@ -253,6 +255,7 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
private Preference mTimeToStartRead;
private Preference mTimeToValidAudio;
private Preference mEmptyAudioDuration;
+ private ListPreference mRecordAudioSource;
private SwitchPreference mImmediatelyDestroyActivities;
@@ -451,6 +454,8 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
mTimeToValidAudio.setVisible(false);
mEmptyAudioDuration = findPreference(EMPTY_AUDIO_DURATION_KEY);
mEmptyAudioDuration.setVisible(false);
+ mRecordAudioSource = addListPreference(RECORDED_AUDIO_SOURCE_KEY);
+ mRecordAudioSource.setVisible(false);
mForceResizable = findAndInitSwitchPref(FORCE_RESIZABLE_KEY);
mImmediatelyDestroyActivities = (SwitchPreference) findPreference(
@@ -479,6 +484,11 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
}
mWirelessDebugging = findPreference(TOGGLE_ADB_WIRELESS_KEY);
+ if (FlavorUtils.isTwoPanel(getContext())) {
+ mWirelessDebugging.setFragment(WirelessDebuggingInfoFragment.class.getName());
+ } else {
+ mWirelessDebugging.setFragment(WirelessDebuggingFragment.class.getName());
+ }
}
private void removePreference(String key) {
@@ -706,6 +716,7 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
updateSimulateColorSpace();
updateUSBAudioOptions();
updateForceResizableOptions();
+ updateAudioRecordingOptions();
}
private void resetDangerousOptions() {
@@ -1255,14 +1266,19 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
private void writeRecordAudioOptions() {
if (mRecordAudio.isChecked()) {
+ mRecordAudioSource.setVisible(true);
try {
- mAudioDebug.startRecording();
+ int recordAudioSource = Integer.parseInt(mRecordAudioSource.getValue());
+ mAudioDebug.startRecording(recordAudioSource);
} catch (AudioReaderException e) {
mRecordAudio.setChecked(false);
Toast errorToast = Toast.makeText(getContext(),
getString(R.string.show_audio_recording_start_failed), Toast.LENGTH_SHORT);
errorToast.show();
Log.e(TAG, "Unable to start recording audio from the microphone", e);
+ // Revert the audio source to one that must work.
+ mRecordAudioSource.setValue(Integer.toString(AudioSource.DEFAULT));
+ updateAudioRecordingOptions();
}
} else {
mAudioDebug.stopRecording();
@@ -1296,6 +1312,11 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
}
}
+ private void updateAudioRecordingOptions() {
+ // Keep the summary matching the selected source
+ mRecordAudioSource.setSummary(mRecordAudioSource.getEntry());
+ }
+
private void playRecordedAudio() {
mAudioDebug.playAudio();
}
@@ -1781,6 +1802,9 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
} else if (preference == mBtHciSnoopLog) {
writeBtHciSnoopLogOptions(newValue);
return true;
+ } else if (preference == mRecordAudioSource) {
+ /* Just keep the value in the preference, but accept the change */
+ return true;
}
return false;
}
@@ -1846,8 +1870,14 @@ public class DevelopmentFragment extends SettingsPreferenceFragment
}
if (!isNetworkConnected()) {
+ if (FlavorUtils.isTwoPanel(getContext())) {
+ mWirelessDebugging.setFragment(WirelessDebuggingInfoFragment.class.getName());
+ }
mWirelessDebugging.setSummary(R.string.connectivity_summary_no_network_connected);
} else {
+ if (FlavorUtils.isTwoPanel(getContext())) {
+ mWirelessDebugging.setFragment(WirelessDebuggingFragment.class.getName());
+ }
boolean enabled = Settings.Global.getInt(mContentResolver,
Settings.Global.ADB_WIFI_ENABLED, 1) != 0;
if (enabled) {