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

Commit 8d64a93c authored by Jack He's avatar Jack He
Browse files

Add developer menu entry to enable Bluetooth inband ringing

Bug: 19171297
Test: Make, HFP regression test, testplans/82144
Change-Id: Ib24463347323f83daf8b4d9f1d38bb9c3071fb95
parent 2ffab51c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -197,6 +197,11 @@
            android:title="@string/bluetooth_disable_absolute_volume"
            android:summary="@string/bluetooth_disable_absolute_volume_summary"/>

        <SwitchPreference
            android:key="bluetooth_enable_inband_ringing"
            android:title="@string/bluetooth_enable_inband_ringing"
            android:summary="@string/bluetooth_enable_inband_ringing_summary"/>

        <ListPreference
            android:key="bluetooth_select_avrcp_version"
            android:title="@string/bluetooth_select_avrcp_version_string"
+27 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothCodecConfig;
import android.bluetooth.BluetoothCodecStatus;
import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothProfile;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -201,7 +202,10 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
                                    "persist.bluetooth.disableabsvol";
    private static final String BLUETOOTH_AVRCP_VERSION_PROPERTY =
                                    "persist.bluetooth.avrcpversion";
    private static final String BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY =
                                    "persist.bluetooth.enableinbandringing";

    private static final String BLUETOOTH_ENABLE_INBAND_RINGING_KEY = "bluetooth_enable_inband_ringing";
    private static final String BLUETOOTH_SELECT_AVRCP_VERSION_KEY = "bluetooth_select_avrcp_version";
    private static final String BLUETOOTH_SELECT_A2DP_CODEC_KEY = "bluetooth_select_a2dp_codec";
    private static final String BLUETOOTH_SELECT_A2DP_SAMPLE_RATE_KEY = "bluetooth_select_a2dp_sample_rate";
@@ -278,6 +282,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
    private SwitchPreference mWifiAggressiveHandover;
    private SwitchPreference mMobileDataAlwaysOn;
    private SwitchPreference mBluetoothDisableAbsVolume;
    private SwitchPreference mBluetoothEnableInbandRinging;

    private BluetoothA2dp mBluetoothA2dp;
    private final Object mBluetoothA2dpLock = new Object();
@@ -474,6 +479,11 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        mWebViewProvider = addListPreference(WEBVIEW_PROVIDER_KEY);
        mWebViewMultiprocess = findAndInitSwitchPref(WEBVIEW_MULTIPROCESS_KEY);
        mBluetoothDisableAbsVolume = findAndInitSwitchPref(BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_KEY);
        mBluetoothEnableInbandRinging = findAndInitSwitchPref(BLUETOOTH_ENABLE_INBAND_RINGING_KEY);
        if (!BluetoothHeadset.isInbandRingingSupported(getContext())) {
            removePreference(mBluetoothEnableInbandRinging);
            mBluetoothEnableInbandRinging = null;
        }

        mBluetoothSelectAvrcpVersion = addListPreference(BLUETOOTH_SELECT_AVRCP_VERSION_KEY);
        mBluetoothSelectA2dpCodec = addListPreference(BLUETOOTH_SELECT_A2DP_CODEC_KEY);
@@ -776,6 +786,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
            updateColorTemperature();
        }
        updateBluetoothDisableAbsVolumeOptions();
        updateBluetoothEnableInbandRingingOptions();
        updateBluetoothA2dpConfigurationValues();
    }

@@ -1500,6 +1511,20 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
                mBluetoothDisableAbsVolume.isChecked() ? "true" : "false");
    }

    private void updateBluetoothEnableInbandRingingOptions() {
        if (mBluetoothEnableInbandRinging != null) {
            updateSwitchPreference(mBluetoothEnableInbandRinging,
                SystemProperties.getBoolean(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, false));
        }
    }

    private void writeBluetoothEnableInbandRingingOptions() {
        if (mBluetoothEnableInbandRinging != null) {
            SystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY,
                mBluetoothEnableInbandRinging.isChecked() ? "true" : "false");
        }
    }

    private void updateMobileDataAlwaysOnOptions() {
        updateSwitchPreference(mMobileDataAlwaysOn, Settings.Global.getInt(
                getActivity().getContentResolver(),
@@ -2513,6 +2538,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
            startBackgroundCheckFragment();
        } else if (preference == mBluetoothDisableAbsVolume) {
            writeBluetoothDisableAbsVolumeOptions();
        } else if (preference == mBluetoothEnableInbandRinging) {
            writeBluetoothEnableInbandRingingOptions();
        } else if (preference == mWebViewMultiprocess) {
            writeWebViewMultiprocessOptions();
        } else if (SHORTCUT_MANAGER_RESET_KEY.equals(preference.getKey())) {