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

Commit 39541aaf authored by William Escande's avatar William Escande Committed by Gerrit Code Review
Browse files

Merge "Add flag support in bluetooth + satellite flag" into main

parents 3cead61b 5b551e92
Loading
Loading
Loading
Loading

flags/Android.bp

0 → 100644
+24 −0
Original line number Diff line number Diff line
package {
    default_applicable_licenses: ["Android-Apache-2.0"],
    default_visibility: ["//visibility:private"],
}

aconfig_declarations {
    name: "bluetooth_aconfig_flags",
    package: "com.android.bluetooth.flags",
    srcs: [
        "system_service.aconfig",
    ],
}

java_aconfig_library {
    name: "bluetooth_flags_java_lib",
    aconfig_declarations: "bluetooth_aconfig_flags",
    visibility: [
        "//packages/modules/Bluetooth/service:__subpackages__",
    ],
    apex_available: [
        "com.android.btservices",
    ],
    min_sdk_version: "Tiramisu",
}

flags/OWNERS

0 → 100644
+6 −0
Original line number Diff line number Diff line
# Bug component: 1387432
set noparent

girardier@google.com
licorne@google.com
wescande@google.com
+8 −0
Original line number Diff line number Diff line
package: "com.android.bluetooth.flags"

flag {
    name: "use_new_satellite_mode"
    namespace: "bluetooth"
    description: "Use the new implemention of satellite mode"
    bug: "289584302"
}
+1 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ java_defaults {
        "bluetooth-manager-service-proto-java-gen",
        "bluetooth-nano-protos",
        "bluetooth-proto-enums-java-gen",
        "bluetooth_flags_java_lib",
        "modules-utils-shell-command-handler",
    ],

+14 −12
Original line number Diff line number Diff line
@@ -70,7 +70,6 @@ import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.sysprop.BluetoothProperties;
@@ -78,6 +77,7 @@ import android.util.Log;
import android.util.proto.ProtoOutputStream;

import com.android.bluetooth.BluetoothStatsLog;
import com.android.bluetooth.flags.FeatureFlags;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.BluetoothManagerServiceDumpProto;
@@ -210,6 +210,8 @@ class BluetoothManagerService {

    private final ReentrantReadWriteLock mAdapterLock = new ReentrantReadWriteLock();

    private final FeatureFlags mFeatureFlags;

    @GuardedBy("mAdapterLock")
    private AdapterBinder mAdapter = null;

@@ -222,13 +224,7 @@ class BluetoothManagerService {
    // TODO(b/289584302): remove BluetoothSatelliteModeListener once use_new_satellite_mode ship
    private BluetoothSatelliteModeListener mBluetoothSatelliteModeListener;

    // TODO(b/289584302): Use aconfig flag when available on AOSP
    private static final boolean USE_NEW_SATELLITE_MODE =
            DeviceConfig.getBoolean(
                    DeviceConfig.NAMESPACE_BLUETOOTH,
                    "com.android.bluetooth.use_new_satellite_mode",
                    false);

    private final boolean mUseNewSatelliteMode;
    // used inside handler thread
    private boolean mQuietEnable = false;
    private boolean mEnable = false;
@@ -652,9 +648,11 @@ class BluetoothManagerService {
                }
            };

    BluetoothManagerService(@NonNull Context context, @NonNull Looper looper) {
    BluetoothManagerService(
            @NonNull Context context, @NonNull Looper looper, @NonNull FeatureFlags featureFlags) {
        mContext = requireNonNull(context, "Context cannot be null");
        mLooper = requireNonNull(looper, "Looper cannot be null");
        mFeatureFlags = requireNonNull(featureFlags, "Feature Flags cannot be null");

        mUserManager =
                requireNonNull(
@@ -735,7 +733,11 @@ class BluetoothManagerService {
                new BluetoothAirplaneModeListener(
                        this, mLooper, mContext, mBluetoothNotificationManager);

        if (!USE_NEW_SATELLITE_MODE) {
        // Caching is necessary to prevent caller requiring the READ_DEVICE_CONFIG permission
        mUseNewSatelliteMode = mFeatureFlags.useNewSatelliteMode();
        if (!mUseNewSatelliteMode) {
            // Only instantiate the legacy listener
            // New implementation is instantiated during onBootPhase on correct thread
            mBluetoothSatelliteModeListener =
                    new BluetoothSatelliteModeListener(this, mLooper, mContext);
        }
@@ -752,7 +754,7 @@ class BluetoothManagerService {

    /** Returns true if satellite mode is turned on. */
    private boolean isSatelliteModeOn() {
        if (USE_NEW_SATELLITE_MODE) {
        if (mUseNewSatelliteMode) {
            return SatelliteModeListener.isOn();
        }
        return mBluetoothSatelliteModeListener.isSatelliteModeOn();
@@ -1433,7 +1435,7 @@ class BluetoothManagerService {
            Log.d(TAG, "Bluetooth boot completed");
        }

        if (USE_NEW_SATELLITE_MODE) {
        if (mUseNewSatelliteMode) {
            SatelliteModeListener.initialize(
                    mLooper, mContentResolver, this::onSatelliteModeChanged);
        }
Loading