OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 package org.appspot.apprtc; | 11 package org.appspot.apprtc; |
12 | 12 |
13 import android.app.Activity; | 13 import android.app.Activity; |
14 import android.content.SharedPreferences; | 14 import android.content.SharedPreferences; |
15 import android.content.SharedPreferences.OnSharedPreferenceChangeListener; | 15 import android.content.SharedPreferences.OnSharedPreferenceChangeListener; |
16 import android.os.Bundle; | 16 import android.os.Bundle; |
| 17 import android.preference.ListPreference; |
17 import android.preference.Preference; | 18 import android.preference.Preference; |
18 | 19 |
| 20 import org.webrtc.Camera2Enumerator; |
19 import org.webrtc.voiceengine.WebRtcAudioUtils; | 21 import org.webrtc.voiceengine.WebRtcAudioUtils; |
20 | 22 |
21 /** | 23 /** |
22 * Settings activity for AppRTC. | 24 * Settings activity for AppRTC. |
23 */ | 25 */ |
24 public class SettingsActivity extends Activity | 26 public class SettingsActivity extends Activity |
25 implements OnSharedPreferenceChangeListener{ | 27 implements OnSharedPreferenceChangeListener{ |
26 private SettingsFragment settingsFragment; | 28 private SettingsFragment settingsFragment; |
27 private String keyprefVideoCall; | 29 private String keyprefVideoCall; |
| 30 private String keyprefCamera2; |
28 private String keyprefResolution; | 31 private String keyprefResolution; |
29 private String keyprefFps; | 32 private String keyprefFps; |
30 private String keyprefCaptureQualitySlider; | 33 private String keyprefCaptureQualitySlider; |
31 private String keyprefStartVideoBitrateType; | 34 private String keyprefStartVideoBitrateType; |
32 private String keyprefStartVideoBitrateValue; | 35 private String keyprefStartVideoBitrateValue; |
33 private String keyPrefVideoCodec; | 36 private String keyPrefVideoCodec; |
34 private String keyprefHwCodec; | 37 private String keyprefHwCodec; |
35 private String keyprefCaptureToTexture; | 38 private String keyprefCaptureToTexture; |
36 | 39 |
37 private String keyprefStartAudioBitrateType; | 40 private String keyprefStartAudioBitrateType; |
38 private String keyprefStartAudioBitrateValue; | 41 private String keyprefStartAudioBitrateValue; |
39 private String keyPrefAudioCodec; | 42 private String keyPrefAudioCodec; |
40 private String keyprefNoAudioProcessing; | 43 private String keyprefNoAudioProcessing; |
41 private String keyprefAecDump; | 44 private String keyprefAecDump; |
42 private String keyprefOpenSLES; | 45 private String keyprefOpenSLES; |
43 private String keyprefDisableBuiltInAEC; | 46 private String keyprefDisableBuiltInAEC; |
44 | 47 |
45 private String keyPrefRoomServerUrl; | 48 private String keyPrefRoomServerUrl; |
46 private String keyPrefDisplayHud; | 49 private String keyPrefDisplayHud; |
47 private String keyPrefTracing; | 50 private String keyPrefTracing; |
48 | 51 |
49 @Override | 52 @Override |
50 protected void onCreate(Bundle savedInstanceState) { | 53 protected void onCreate(Bundle savedInstanceState) { |
51 super.onCreate(savedInstanceState); | 54 super.onCreate(savedInstanceState); |
52 keyprefVideoCall = getString(R.string.pref_videocall_key); | 55 keyprefVideoCall = getString(R.string.pref_videocall_key); |
| 56 keyprefCamera2 = getString(R.string.pref_camera2_key); |
53 keyprefResolution = getString(R.string.pref_resolution_key); | 57 keyprefResolution = getString(R.string.pref_resolution_key); |
54 keyprefFps = getString(R.string.pref_fps_key); | 58 keyprefFps = getString(R.string.pref_fps_key); |
55 keyprefCaptureQualitySlider = getString(R.string.pref_capturequalityslider_k
ey); | 59 keyprefCaptureQualitySlider = getString(R.string.pref_capturequalityslider_k
ey); |
56 keyprefStartVideoBitrateType = getString(R.string.pref_startvideobitrate_key
); | 60 keyprefStartVideoBitrateType = getString(R.string.pref_startvideobitrate_key
); |
57 keyprefStartVideoBitrateValue = getString(R.string.pref_startvideobitrateval
ue_key); | 61 keyprefStartVideoBitrateValue = getString(R.string.pref_startvideobitrateval
ue_key); |
58 keyPrefVideoCodec = getString(R.string.pref_videocodec_key); | 62 keyPrefVideoCodec = getString(R.string.pref_videocodec_key); |
59 keyprefHwCodec = getString(R.string.pref_hwcodec_key); | 63 keyprefHwCodec = getString(R.string.pref_hwcodec_key); |
60 keyprefCaptureToTexture = getString(R.string.pref_capturetotexture_key); | 64 keyprefCaptureToTexture = getString(R.string.pref_capturetotexture_key); |
61 | 65 |
62 keyprefStartAudioBitrateType = getString(R.string.pref_startaudiobitrate_key
); | 66 keyprefStartAudioBitrateType = getString(R.string.pref_startaudiobitrate_key
); |
(...skipping 16 matching lines...) Expand all Loading... |
79 } | 83 } |
80 | 84 |
81 @Override | 85 @Override |
82 protected void onResume() { | 86 protected void onResume() { |
83 super.onResume(); | 87 super.onResume(); |
84 // Set summary to be the user-description for the selected value | 88 // Set summary to be the user-description for the selected value |
85 SharedPreferences sharedPreferences = | 89 SharedPreferences sharedPreferences = |
86 settingsFragment.getPreferenceScreen().getSharedPreferences(); | 90 settingsFragment.getPreferenceScreen().getSharedPreferences(); |
87 sharedPreferences.registerOnSharedPreferenceChangeListener(this); | 91 sharedPreferences.registerOnSharedPreferenceChangeListener(this); |
88 updateSummaryB(sharedPreferences, keyprefVideoCall); | 92 updateSummaryB(sharedPreferences, keyprefVideoCall); |
| 93 updateSummaryB(sharedPreferences, keyprefCamera2); |
89 updateSummary(sharedPreferences, keyprefResolution); | 94 updateSummary(sharedPreferences, keyprefResolution); |
90 updateSummary(sharedPreferences, keyprefFps); | 95 updateSummary(sharedPreferences, keyprefFps); |
91 updateSummaryB(sharedPreferences, keyprefCaptureQualitySlider); | 96 updateSummaryB(sharedPreferences, keyprefCaptureQualitySlider); |
92 updateSummary(sharedPreferences, keyprefStartVideoBitrateType); | 97 updateSummary(sharedPreferences, keyprefStartVideoBitrateType); |
93 updateSummaryBitrate(sharedPreferences, keyprefStartVideoBitrateValue); | 98 updateSummaryBitrate(sharedPreferences, keyprefStartVideoBitrateValue); |
94 setVideoBitrateEnable(sharedPreferences); | 99 setVideoBitrateEnable(sharedPreferences); |
95 updateSummary(sharedPreferences, keyPrefVideoCodec); | 100 updateSummary(sharedPreferences, keyPrefVideoCodec); |
96 updateSummaryB(sharedPreferences, keyprefHwCodec); | 101 updateSummaryB(sharedPreferences, keyprefHwCodec); |
97 updateSummaryB(sharedPreferences, keyprefCaptureToTexture); | 102 updateSummaryB(sharedPreferences, keyprefCaptureToTexture); |
98 | 103 |
99 updateSummary(sharedPreferences, keyprefStartAudioBitrateType); | 104 updateSummary(sharedPreferences, keyprefStartAudioBitrateType); |
100 updateSummaryBitrate(sharedPreferences, keyprefStartAudioBitrateValue); | 105 updateSummaryBitrate(sharedPreferences, keyprefStartAudioBitrateValue); |
101 setAudioBitrateEnable(sharedPreferences); | 106 setAudioBitrateEnable(sharedPreferences); |
102 updateSummary(sharedPreferences, keyPrefAudioCodec); | 107 updateSummary(sharedPreferences, keyPrefAudioCodec); |
103 updateSummaryB(sharedPreferences, keyprefNoAudioProcessing); | 108 updateSummaryB(sharedPreferences, keyprefNoAudioProcessing); |
104 updateSummaryB(sharedPreferences, keyprefAecDump); | 109 updateSummaryB(sharedPreferences, keyprefAecDump); |
105 updateSummaryB(sharedPreferences, keyprefOpenSLES); | 110 updateSummaryB(sharedPreferences, keyprefOpenSLES); |
106 updateSummaryB(sharedPreferences, keyprefDisableBuiltInAEC); | 111 updateSummaryB(sharedPreferences, keyprefDisableBuiltInAEC); |
107 | 112 |
108 updateSummary(sharedPreferences, keyPrefRoomServerUrl); | 113 updateSummary(sharedPreferences, keyPrefRoomServerUrl); |
109 updateSummaryB(sharedPreferences, keyPrefDisplayHud); | 114 updateSummaryB(sharedPreferences, keyPrefDisplayHud); |
110 updateSummaryB(sharedPreferences, keyPrefTracing); | 115 updateSummaryB(sharedPreferences, keyPrefTracing); |
111 | 116 |
| 117 if (!Camera2Enumerator.isSupported()) { |
| 118 Preference camera2Preference = |
| 119 settingsFragment.findPreference(keyprefCamera2); |
| 120 |
| 121 camera2Preference.setSummary(getString(R.string.pref_camera2_not_supported
)); |
| 122 camera2Preference.setEnabled(false); |
| 123 } |
| 124 |
112 // Disable forcing WebRTC based AEC so it won't affect our value. | 125 // Disable forcing WebRTC based AEC so it won't affect our value. |
113 // Otherwise, if it was enabled, isAcousticEchoCancelerSupported would alway
s return false. | 126 // Otherwise, if it was enabled, isAcousticEchoCancelerSupported would alway
s return false. |
114 WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(false); | 127 WebRtcAudioUtils.setWebRtcBasedAcousticEchoCanceler(false); |
115 if (!WebRtcAudioUtils.isAcousticEchoCancelerSupported()) { | 128 if (!WebRtcAudioUtils.isAcousticEchoCancelerSupported()) { |
116 Preference disableBuiltInAECPreference = | 129 Preference disableBuiltInAECPreference = |
117 settingsFragment.findPreference(keyprefDisableBuiltInAEC); | 130 settingsFragment.findPreference(keyprefDisableBuiltInAEC); |
118 | 131 |
119 | |
120 disableBuiltInAECPreference.setSummary(getString(R.string.pref_built_in_ae
c_not_available)); | 132 disableBuiltInAECPreference.setSummary(getString(R.string.pref_built_in_ae
c_not_available)); |
121 disableBuiltInAECPreference.setEnabled(false); | 133 disableBuiltInAECPreference.setEnabled(false); |
122 } | 134 } |
123 } | 135 } |
124 | 136 |
125 @Override | 137 @Override |
126 protected void onPause() { | 138 protected void onPause() { |
127 super.onPause(); | 139 super.onPause(); |
128 SharedPreferences sharedPreferences = | 140 SharedPreferences sharedPreferences = |
129 settingsFragment.getPreferenceScreen().getSharedPreferences(); | 141 settingsFragment.getPreferenceScreen().getSharedPreferences(); |
130 sharedPreferences.unregisterOnSharedPreferenceChangeListener(this); | 142 sharedPreferences.unregisterOnSharedPreferenceChangeListener(this); |
131 } | 143 } |
132 | 144 |
133 @Override | 145 @Override |
134 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, | 146 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, |
135 String key) { | 147 String key) { |
136 if (key.equals(keyprefResolution) | 148 if (key.equals(keyprefResolution) |
137 || key.equals(keyprefFps) | 149 || key.equals(keyprefFps) |
138 || key.equals(keyprefStartVideoBitrateType) | 150 || key.equals(keyprefStartVideoBitrateType) |
139 || key.equals(keyPrefVideoCodec) | 151 || key.equals(keyPrefVideoCodec) |
140 || key.equals(keyprefStartAudioBitrateType) | 152 || key.equals(keyprefStartAudioBitrateType) |
141 || key.equals(keyPrefAudioCodec) | 153 || key.equals(keyPrefAudioCodec) |
142 || key.equals(keyPrefRoomServerUrl)) { | 154 || key.equals(keyPrefRoomServerUrl)) { |
143 updateSummary(sharedPreferences, key); | 155 updateSummary(sharedPreferences, key); |
144 } else if (key.equals(keyprefStartVideoBitrateValue) | 156 } else if (key.equals(keyprefStartVideoBitrateValue) |
145 || key.equals(keyprefStartAudioBitrateValue)) { | 157 || key.equals(keyprefStartAudioBitrateValue)) { |
146 updateSummaryBitrate(sharedPreferences, key); | 158 updateSummaryBitrate(sharedPreferences, key); |
147 } else if (key.equals(keyprefVideoCall) | 159 } else if (key.equals(keyprefVideoCall) |
| 160 || key.equals(keyprefCamera2) |
148 || key.equals(keyPrefTracing) | 161 || key.equals(keyPrefTracing) |
149 || key.equals(keyprefCaptureQualitySlider) | 162 || key.equals(keyprefCaptureQualitySlider) |
150 || key.equals(keyprefHwCodec) | 163 || key.equals(keyprefHwCodec) |
151 || key.equals(keyprefCaptureToTexture) | 164 || key.equals(keyprefCaptureToTexture) |
152 || key.equals(keyprefNoAudioProcessing) | 165 || key.equals(keyprefNoAudioProcessing) |
153 || key.equals(keyprefAecDump) | 166 || key.equals(keyprefAecDump) |
154 || key.equals(keyprefOpenSLES) | 167 || key.equals(keyprefOpenSLES) |
155 || key.equals(keyprefDisableBuiltInAEC) | 168 || key.equals(keyprefDisableBuiltInAEC) |
156 || key.equals(keyPrefDisplayHud)) { | 169 || key.equals(keyPrefDisplayHud)) { |
157 updateSummaryB(sharedPreferences, key); | 170 updateSummaryB(sharedPreferences, key); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 String bitrateTypeDefault = getString(R.string.pref_startaudiobitrate_defaul
t); | 215 String bitrateTypeDefault = getString(R.string.pref_startaudiobitrate_defaul
t); |
203 String bitrateType = sharedPreferences.getString( | 216 String bitrateType = sharedPreferences.getString( |
204 keyprefStartAudioBitrateType, bitrateTypeDefault); | 217 keyprefStartAudioBitrateType, bitrateTypeDefault); |
205 if (bitrateType.equals(bitrateTypeDefault)) { | 218 if (bitrateType.equals(bitrateTypeDefault)) { |
206 bitratePreferenceValue.setEnabled(false); | 219 bitratePreferenceValue.setEnabled(false); |
207 } else { | 220 } else { |
208 bitratePreferenceValue.setEnabled(true); | 221 bitratePreferenceValue.setEnabled(true); |
209 } | 222 } |
210 } | 223 } |
211 } | 224 } |
OLD | NEW |