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

Commit ca8c6f30 authored by William Escande's avatar William Escande Committed by Automerger Merge Worker
Browse files

Merge "Use system properties to config GATT parameters" am: 0fd0e4bd am:...

Merge "Use system properties to config GATT parameters" am: 0fd0e4bd am: 736de104 am: e2717346

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2452685



Change-Id: Iece78798513a53146e9fc7600f241f5c880d50ee
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c7184622 e2717346
Loading
Loading
Loading
Loading
+60 −27
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothGatt;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.SystemProperties;
import android.util.Log;

import androidx.annotation.VisibleForTesting;
@@ -69,61 +70,93 @@ public class CompanionManager {
    @VisibleForTesting static final String COMPANION_DEVICE_KEY = "companion_device";
    @VisibleForTesting static final String COMPANION_TYPE_KEY = "companion_type";

    static final String PROPERTY_HIGH_MIN_INTERVAL = "bluetooth.gatt.high_priority.min_interval";
    static final String PROPERTY_HIGH_MAX_INTERVAL = "bluetooth.gatt.high_priority.max_interval";
    static final String PROPERTY_HIGH_LATENCY = "bluetooth.gatt.high_priority.latency";
    static final String PROPERTY_BALANCED_MIN_INTERVAL =
            "bluetooth.gatt.balanced_priority.min_interval";
    static final String PROPERTY_BALANCED_MAX_INTERVAL =
            "bluetooth.gatt.balanced_priority.max_interval";
    static final String PROPERTY_BALANCED_LATENCY = "bluetooth.gatt.balanced_priority.latency";
    static final String PROPERTY_LOW_MIN_INTERVAL = "bluetooth.gatt.low_priority_min.interval";
    static final String PROPERTY_LOW_MAX_INTERVAL = "bluetooth.gatt.low_priority_max.interval";
    static final String PROPERTY_LOW_LATENCY = "bluetooth.gatt.low_priority.latency";
    static final String PROPERTY_SUFFIX_PRIMARY = ".primary";
    static final String PROPERTY_SUFFIX_SECONDARY = ".secondary";

    private final AdapterService mAdapterService;
    private final BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
    private final Set<BluetoothDevice> mMetadataListeningDevices = new HashSet<>();

    public CompanionManager(AdapterService service, ServiceFactory factory) {
        mAdapterService = service;

        mGattConnHighDefault = new int[] {
                service.getResources().getInteger(R.integer.gatt_high_priority_min_interval),
                service.getResources().getInteger(R.integer.gatt_high_priority_max_interval),
                service.getResources().getInteger(R.integer.gatt_high_priority_latency)};
                getGattConfig(PROPERTY_HIGH_MIN_INTERVAL,
                        R.integer.gatt_high_priority_min_interval),
                getGattConfig(PROPERTY_HIGH_MAX_INTERVAL,
                        R.integer.gatt_high_priority_max_interval),
                getGattConfig(PROPERTY_HIGH_LATENCY,
                        R.integer.gatt_high_priority_latency)};
        mGattConnBalanceDefault = new int[] {
                service.getResources().getInteger(R.integer.gatt_balanced_priority_min_interval),
                service.getResources().getInteger(R.integer.gatt_balanced_priority_max_interval),
                service.getResources().getInteger(R.integer.gatt_balanced_priority_latency)};
                getGattConfig(PROPERTY_BALANCED_MIN_INTERVAL,
                        R.integer.gatt_balanced_priority_min_interval),
                getGattConfig(PROPERTY_BALANCED_MAX_INTERVAL,
                        R.integer.gatt_balanced_priority_max_interval),
                getGattConfig(PROPERTY_BALANCED_LATENCY,
                        R.integer.gatt_balanced_priority_latency)};
        mGattConnLowDefault = new int[] {
                service.getResources().getInteger(R.integer.gatt_low_power_min_interval),
                service.getResources().getInteger(R.integer.gatt_low_power_max_interval),
                service.getResources().getInteger(R.integer.gatt_low_power_latency)};
                getGattConfig(PROPERTY_LOW_MIN_INTERVAL, R.integer.gatt_low_power_min_interval),
                getGattConfig(PROPERTY_LOW_MAX_INTERVAL, R.integer.gatt_low_power_max_interval),
                getGattConfig(PROPERTY_LOW_LATENCY, R.integer.gatt_low_power_latency)};

        mGattConnHighPrimary = new int[] {
                service.getResources().getInteger(
                getGattConfig(PROPERTY_HIGH_MIN_INTERVAL + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_high_priority_min_interval_primary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_HIGH_MAX_INTERVAL + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_high_priority_max_interval_primary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_HIGH_LATENCY + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_high_priority_latency_primary)};
        mGattConnBalancePrimary = new int[] {
                service.getResources().getInteger(
                getGattConfig(PROPERTY_BALANCED_MIN_INTERVAL + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_balanced_priority_min_interval_primary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_BALANCED_MAX_INTERVAL + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_balanced_priority_max_interval_primary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_BALANCED_LATENCY + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_balanced_priority_latency_primary)};
        mGattConnLowPrimary = new int[] {
                service.getResources().getInteger(R.integer.gatt_low_power_min_interval_primary),
                service.getResources().getInteger(R.integer.gatt_low_power_max_interval_primary),
                service.getResources().getInteger(R.integer.gatt_low_power_latency_primary)};
                getGattConfig(PROPERTY_LOW_MIN_INTERVAL + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_low_power_min_interval_primary),
                getGattConfig(PROPERTY_LOW_MAX_INTERVAL + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_low_power_max_interval_primary),
                getGattConfig(PROPERTY_LOW_LATENCY + PROPERTY_SUFFIX_PRIMARY,
                        R.integer.gatt_low_power_latency_primary)};

        mGattConnHighSecondary = new int[] {
                service.getResources().getInteger(
                getGattConfig(PROPERTY_HIGH_MIN_INTERVAL + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_high_priority_min_interval_secondary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_HIGH_MAX_INTERVAL + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_high_priority_max_interval_secondary),
                service.getResources().getInteger(R.integer.gatt_high_priority_latency_secondary)};
                getGattConfig(PROPERTY_HIGH_LATENCY + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_high_priority_latency_secondary)};
        mGattConnBalanceSecondary = new int[] {
                service.getResources().getInteger(
                getGattConfig(PROPERTY_BALANCED_MIN_INTERVAL + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_balanced_priority_min_interval_secondary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_BALANCED_MAX_INTERVAL + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_balanced_priority_max_interval_secondary),
                service.getResources().getInteger(
                getGattConfig(PROPERTY_BALANCED_LATENCY + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_balanced_priority_latency_secondary)};
        mGattConnLowSecondary = new int[] {
                service.getResources().getInteger(R.integer.gatt_low_power_min_interval_secondary),
                service.getResources().getInteger(R.integer.gatt_low_power_max_interval_secondary),
                service.getResources().getInteger(R.integer.gatt_low_power_latency_secondary)};
                getGattConfig(PROPERTY_LOW_MIN_INTERVAL + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_low_power_min_interval_secondary),
                getGattConfig(PROPERTY_LOW_MAX_INTERVAL + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_low_power_max_interval_secondary),
                getGattConfig(PROPERTY_LOW_LATENCY + PROPERTY_SUFFIX_SECONDARY,
                        R.integer.gatt_low_power_latency_secondary)};
    }

    private int getGattConfig(String property, int resId) {
        return SystemProperties.getInt(property, mAdapterService.getResources().getInteger(resId));
    }

    void loadCompanionInfo() {