Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ab3869c1 authored by codeworkx's avatar codeworkx Committed by Steve Kondik
Browse files

telephony: support for setting add. audioparams for incall audio

Changepick-Id: Ic6f72fba542e1421631826d9bcd86340064c942b

telephony: allow to specify on and off values for setting additional audioparams

Change-Id: I574c0315f0cadc65b064aa621e0f35160a369b2d
parent d38df1d0
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -739,6 +739,12 @@
    <!-- The VoiceMail default value is displayed to my own number if it is true -->
    <bool name="config_telephony_use_own_number_for_voicemail">false</bool>

    <!-- Set additional audio parameters for incall audio
         Usage: parameter=onstring=offstring
         Examples: <item>realcall=on=off</item> <item>dualmic_enabled=true=false</item> <item>mic_boost=yes=no</item> -->
    <string-array name="config_telephony_set_audioparameters" translatable="false">
    </string-array>

    <!-- If this value is true, Sms encoded as octet is decoded by utf8 decoder.
         If false, decoded by Latin decoder. -->
    <bool name="config_sms_utf8_support">false</bool>
+1 −0
Original line number Diff line number Diff line
@@ -3659,5 +3659,6 @@

  <java-symbol type="string" name="config_legacyUmsLunFile" />
  <java-symbol type="bool" name="config_forceDisableHardwareKeyboard" />
  <java-symbol type="array" name="config_telephony_set_audioparameters" />

</resources>
+25 −0
Original line number Diff line number Diff line
@@ -417,6 +417,31 @@ public final class CallManager {
                }
                break;
        }

        // Set additional audio parameters needed for incall audio
        String[] audioParams = context.getResources().getStringArray(com.android.internal.R.array.config_telephony_set_audioparameters);
        String[] aPValues;

        for (String parameter : audioParams) {
            aPValues = parameter.split("=");

            if(aPValues[1] == null || aPValues[1].length() == 0) {
                aPValues[1] = "on";
            }

            if(aPValues[2] == null || aPValues[2].length() == 0) {
                aPValues[2] = "off";
            }

            if (audioManager.getMode() == AudioManager.MODE_IN_CALL) {
                Log.d(LOG_TAG, "setAudioMode(): " + aPValues[0] + "=" + aPValues[1]);
                audioManager.setParameters(aPValues[0] + "=" + aPValues[1]);
            } else if (audioManager.getMode() == AudioManager.MODE_NORMAL) {
                Log.d(LOG_TAG, "setAudioMode(): " + aPValues[0] + "=" + aPValues[2]);
                audioManager.setParameters(aPValues[0] + "=" + aPValues[2]);
            }
        }

    }

    private Context getContext() {