Revert "aac: only present AAC setting when available"
This reverts commit e7ffe4ab0b
.
This commit is contained in:
parent
b7937009fd
commit
01931d96d8
1 changed files with 4 additions and 56 deletions
|
@ -60,7 +60,6 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
private LinphonePreferences mPrefs;
|
private LinphonePreferences mPrefs;
|
||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
private TunnelConfig tunnelConfig;
|
private TunnelConfig tunnelConfig;
|
||||||
private List<CheckBoxPreference> aacCheckboxPreferences = new ArrayList<CheckBoxPreference>();
|
|
||||||
|
|
||||||
public SettingsFragment() {
|
public SettingsFragment() {
|
||||||
super(R.xml.preferences);
|
super(R.xml.preferences);
|
||||||
|
@ -424,21 +423,14 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
PreferenceCategory codecs = (PreferenceCategory) findPreference(getString(R.string.pref_codecs_key));
|
PreferenceCategory codecs = (PreferenceCategory) findPreference(getString(R.string.pref_codecs_key));
|
||||||
codecs.removeAll();
|
codecs.removeAll();
|
||||||
|
|
||||||
aacCheckboxPreferences.clear();
|
|
||||||
|
|
||||||
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
||||||
boolean aecEnabled = lc.isEchoCancellationEnabled();
|
|
||||||
|
|
||||||
for (final PayloadType pt : lc.getAudioCodecs()) {
|
for (final PayloadType pt : lc.getAudioCodecs()) {
|
||||||
CheckBoxPreference codec = new CheckBoxPreference(LinphoneService.instance());
|
CheckBoxPreference codec = new CheckBoxPreference(LinphoneService.instance());
|
||||||
codec.setTitle(pt.getMime());
|
codec.setTitle(pt.getMime());
|
||||||
codec.setSummary(pt.getRate() + " Hz");
|
|
||||||
codec.setChecked(lc.isPayloadTypeEnabled(pt));
|
|
||||||
|
|
||||||
/* Special case */
|
/* Special case */
|
||||||
if (pt.getMime().equals("mpeg4-generic")) {
|
if (pt.getMime().equals("mpeg4-generic")) {
|
||||||
/* Make sure AAC is disabled for Android < 4.1 */
|
|
||||||
if (android.os.Build.VERSION.SDK_INT < 16) {
|
if (android.os.Build.VERSION.SDK_INT < 16) {
|
||||||
|
/* Make sure AAC is disabled */
|
||||||
try {
|
try {
|
||||||
lc.enablePayloadType(pt, false);
|
lc.enablePayloadType(pt, false);
|
||||||
} catch (LinphoneCoreException e) {
|
} catch (LinphoneCoreException e) {
|
||||||
|
@ -447,22 +439,12 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
codec.setTitle("AAC-ELD");
|
codec.setTitle("AAC-ELD");
|
||||||
|
|
||||||
/* AAC 16kHz is always authorized. Other sample rates are
|
|
||||||
* usable if and only if echo canceller is disabled.
|
|
||||||
* So we store the checkbox to be able to gray them out
|
|
||||||
* in the aec-preference listener.
|
|
||||||
*/
|
|
||||||
if (pt.getRate() != 16000) {
|
|
||||||
aacCheckboxPreferences.add(codec);
|
|
||||||
|
|
||||||
if (aecEnabled) {
|
|
||||||
disableAACPayload(lc, pt, codec);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
codec.setSummary(pt.getRate() + " Hz");
|
||||||
|
codec.setChecked(lc.isPayloadTypeEnabled(pt));
|
||||||
|
|
||||||
codec.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
codec.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
@ -499,46 +481,12 @@ public class SettingsFragment extends PreferencesListFragment implements EcCalib
|
||||||
bitrateLimit.setValue(String.valueOf(mPrefs.getCodecBitrateLimit()));
|
bitrateLimit.setValue(String.valueOf(mPrefs.getCodecBitrateLimit()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void disableAACPayload(LinphoneCore lc, PayloadType pt, CheckBoxPreference codec) {
|
|
||||||
codec.setEnabled(false);
|
|
||||||
codec.setChecked(false);
|
|
||||||
try {
|
|
||||||
lc.enablePayloadType(pt, false);
|
|
||||||
} catch (LinphoneCoreException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setAudioPreferencesListener() {
|
private void setAudioPreferencesListener() {
|
||||||
findPreference(getString(R.string.pref_echo_cancellation_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
findPreference(getString(R.string.pref_echo_cancellation_key)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
boolean enabled = (Boolean) newValue;
|
boolean enabled = (Boolean) newValue;
|
||||||
mPrefs.setEchoCancellation(enabled);
|
mPrefs.setEchoCancellation(enabled);
|
||||||
|
|
||||||
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
|
|
||||||
|
|
||||||
if (lc != null) {
|
|
||||||
/* Update UI */
|
|
||||||
for (CheckBoxPreference pref : aacCheckboxPreferences) {
|
|
||||||
/* gray-out button if echo-canceller is enabled */
|
|
||||||
pref.setEnabled(!enabled);
|
|
||||||
/* and disable codec as-well */
|
|
||||||
pref.setChecked(false);
|
|
||||||
}
|
|
||||||
/* Disable AAC (except 16kHz) if AEC is enabled */
|
|
||||||
if (enabled) {
|
|
||||||
for (final PayloadType pt : lc.getAudioCodecs()) {
|
|
||||||
if (pt.getMime().equals("mpeg4-generic") && pt.getRate() != 16000) {
|
|
||||||
try {
|
|
||||||
lc.enablePayloadType(pt, false);
|
|
||||||
} catch (LinphoneCoreException exc) {
|
|
||||||
exc.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue