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

Commit 5832cfb3 authored by William Escande's avatar William Escande
Browse files

Revert "Stop calling app to know its state. Use Callback"

This reverts commit 43bfbd1a.

Reason: Creating crash on some early process and not really reducing
flakiness in intensive testing

Bug: 362049035
Bug: 357645528
Test: m Bluetooth
Flag: com.android.bluetooth.flags.broadcast_adapter_state_with_callback
Change-Id: I6a7d18f5aed50e04bd649bcca61d02f1982d635b
parent 197cd749
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import android.os.ResultReceiver;
 */
interface IBluetooth
{
    // TODO: b/357645528 - delete aidl method
    @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission")
    int getState();

+4 −13
Original line number Diff line number Diff line
@@ -1153,10 +1153,8 @@ public class AdapterService extends Service {
    }

    private void invalidateBluetoothGetStateCache() {
        if (!Flags.broadcastAdapterStateWithCallback()) {
        BluetoothAdapter.invalidateBluetoothGetStateCache();
    }
    }

    void updateLeAudioProfileServiceState() {
        Set<Integer> nonSupportedProfiles = new HashSet<>();
@@ -1186,9 +1184,7 @@ public class AdapterService extends Service {

    void updateAdapterState(int prevState, int newState) {
        mAdapterProperties.setState(newState);
        if (!Flags.broadcastAdapterStateWithCallback()) {
        invalidateBluetoothGetStateCache();
        }

        // Only BluetoothManagerService should be registered
        int n = mRemoteCallbacks.beginBroadcast();
@@ -1486,9 +1482,7 @@ public class AdapterService extends Service {
        BluetoothAdapter.invalidateGetProfileConnectionStateCache();
        BluetoothAdapter.invalidateIsOffloadedFilteringSupportedCache();
        BluetoothDevice.invalidateBluetoothGetBondStateCache();
        if (!Flags.broadcastAdapterStateWithCallback()) {
        BluetoothAdapter.invalidateBluetoothGetStateCache();
        }
        BluetoothAdapter.invalidateGetAdapterConnectionStateCache();
        BluetoothMap.invalidateBluetoothGetConnectionStateCache();
        BluetoothSap.invalidateBluetoothGetConnectionStateCache();
@@ -2246,9 +2240,7 @@ public class AdapterService extends Service {

        AdapterServiceBinder(AdapterService svc) {
            mService = svc;
            if (!Flags.broadcastAdapterStateWithCallback()) {
            mService.invalidateBluetoothGetStateCache();
            }
            BluetoothAdapter.getDefaultAdapter().disableBluetoothGetStateCache();
        }

@@ -2259,7 +2251,6 @@ public class AdapterService extends Service {
            return mService;
        }

        // TODO: b/357645528 - delete getState method
        @Override
        public int getState() {
            AdapterService service = getService();
+0 −15
Original line number Diff line number Diff line
@@ -873,8 +873,6 @@ public final class BluetoothAdapter {
    @GuardedBy("mServiceLock")
    private IBluetooth mService;

    private static int sAdapterState = BluetoothAdapter.STATE_OFF;

    private final ReentrantReadWriteLock mServiceLock = new ReentrantReadWriteLock();

    @GuardedBy("sServiceLock")
@@ -1512,9 +1510,6 @@ public final class BluetoothAdapter {

    /** Fetch the current bluetooth state. If the service is down, return OFF. */
    private @InternalAdapterState int getStateInternal() {
        if (Flags.broadcastAdapterStateWithCallback()) {
            return sAdapterState;
        }
        mServiceLock.readLock().lock();
        try {
            if (mService != null) {
@@ -3781,11 +3776,6 @@ public final class BluetoothAdapter {
                        }
                    }
                }

                @RequiresNoPermission
                public void onBluetoothAdapterStateChange(int newState) {
                    sAdapterState = newState;
                }
            };

    private final IBluetoothManagerCallback mManagerCallback =
@@ -3883,11 +3873,6 @@ public final class BluetoothAdapter {
                                        });
                            });
                }

                @RequiresNoPermission
                public void onBluetoothAdapterStateChange(int newState) {
                    // Nothing to do, this is entirely handled by sManagerCallback.
                }
            };

    /**
+0 −1
Original line number Diff line number Diff line
@@ -26,5 +26,4 @@ oneway interface IBluetoothManagerCallback {
    void onBluetoothServiceDown();
    void onBluetoothOn();
    void onBluetoothOff();
    void onBluetoothAdapterStateChange(int newState);
}
+0 −32
Original line number Diff line number Diff line
@@ -780,16 +780,6 @@ class BluetoothManagerService {
    IBluetooth registerAdapter(IBluetoothManagerCallback callback) {
        synchronized (mCallbacks) {
            mCallbacks.register(callback);
            if (Flags.broadcastAdapterStateWithCallback()) {
                try {
                    callback.onBluetoothAdapterStateChange(getState());
                } catch (RemoteException e) {
                    Log.e(
                            TAG,
                            "registerAdapter: Unable to call onBluetoothAdapterStateChange()",
                            e);
                }
            }
        }
        return mAdapter != null ? mAdapter.getAdapterBinder() : null;
    }
@@ -1396,27 +1386,6 @@ class BluetoothManagerService {
        }
    }

    private void sendBluetoothAdapterStateChangeCallback(int newState) {
        if (!Flags.broadcastAdapterStateWithCallback()) {
            return;
        }
        synchronized (mCallbacks) {
            try {
                int n = mCallbacks.beginBroadcast();
                Log.d(TAG, "sendBluetoothAdapterStateChangeCallback(): to " + n + " receivers");
                for (int i = 0; i < n; i++) {
                    try {
                        mCallbacks.getBroadcastItem(i).onBluetoothAdapterStateChange(newState);
                    } catch (RemoteException e) {
                        Log.e(TAG, "onBluetoothAdapterStateChange: failed for callback #" + i, e);
                    }
                }
            } finally {
                mCallbacks.finishBroadcast();
            }
        }
    }

    String getAddress() {
        mAdapterLock.readLock().lock();
        try {
@@ -2099,7 +2068,6 @@ class BluetoothManagerService {
            return;
        }
        mState.set(newState);
        sendBluetoothAdapterStateChangeCallback(newState);

        if (prevState == STATE_ON) {
            autoOnSetupTimer();