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

Commit fc0cd8b2 authored by Rahul Sabnis's avatar Rahul Sabnis
Browse files

BluetoothHeadset APIs now no longer return

BluetoothStatusCodes#ERROR_BLUETOOTH_NOT_ENABLED.

There should never be a case where the profile service is bound, but
Bluetooth is off.

Tag: #feature
Bug: 202310885
Test: Manual
Change-Id: I2861d51d90342e050fd62dceaa99886b46491225
parent 030a5b1a
Loading
Loading
Loading
Loading
+36 −36
Original line number Diff line number Diff line
@@ -969,7 +969,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
    @Retention(RetentionPolicy.SOURCE)
    @IntDef(value = {
            BluetoothStatusCodes.SUCCESS,
            BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED,
            BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND,
            BluetoothStatusCodes.ERROR_TIMEOUT,
            BluetoothStatusCodes.ERROR_UNKNOWN,
@@ -981,7 +980,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
    @IntDef(value = {
            BluetoothStatusCodes.ALLOWED,
            BluetoothStatusCodes.NOT_ALLOWED,
            BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED,
            BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND,
            BluetoothStatusCodes.ERROR_TIMEOUT,
            BluetoothStatusCodes.ERROR_UNKNOWN,
@@ -1014,9 +1012,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) log(Log.getStackTraceString(new Throwable()));
            return BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND;
        } else if (!isEnabled()) {
            return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
        }
        } else if (isEnabled()) {
            try {
                final SynchronousResultReceiver recv = new SynchronousResultReceiver();
                service.setAudioRouteAllowed(allowed, mAttributionSource, recv);
@@ -1029,6 +1025,9 @@ public final class BluetoothHeadset implements BluetoothProfile {
                Log.e(TAG, e.toString() + "\n" + Log.getStackTraceString(new Throwable()));
                e.rethrowFromSystemServer();
            }
        }

        Log.e(TAG, "setAudioRouteAllowed: Bluetooth disabled, but profile service still bound");
        return BluetoothStatusCodes.ERROR_UNKNOWN;
    }

@@ -1053,9 +1052,7 @@ public final class BluetoothHeadset implements BluetoothProfile {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) log(Log.getStackTraceString(new Throwable()));
            return BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND;
        } else if (!isEnabled()) {
            return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
        }
        } else if (isEnabled()) {
            try {
                final SynchronousResultReceiver<Boolean> recv = new SynchronousResultReceiver();
                service.getAudioRouteAllowed(mAttributionSource, recv);
@@ -1068,6 +1065,9 @@ public final class BluetoothHeadset implements BluetoothProfile {
                Log.e(TAG, e.toString() + "\n" + Log.getStackTraceString(new Throwable()));
                e.rethrowFromSystemServer();
            }
        }

        Log.e(TAG, "getAudioRouteAllowed: Bluetooth disabled, but profile service still bound");
        return BluetoothStatusCodes.ERROR_UNKNOWN;
    }

@@ -1104,7 +1104,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
            BluetoothStatusCodes.ERROR_UNKNOWN,
            BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND,
            BluetoothStatusCodes.ERROR_TIMEOUT,
            BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED,
            BluetoothStatusCodes.ERROR_AUDIO_DEVICE_ALREADY_CONNECTED,
            BluetoothStatusCodes.ERROR_NO_ACTIVE_DEVICES,
            BluetoothStatusCodes.ERROR_NOT_ACTIVE_DEVICE,
@@ -1154,9 +1153,10 @@ public final class BluetoothHeadset implements BluetoothProfile {
                Log.e(TAG, e.toString() + "\n" + Log.getStackTraceString(new Throwable()));
                return BluetoothStatusCodes.ERROR_TIMEOUT;
            }
        } else {
            return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
        }

        Log.e(TAG, "connectAudio: Bluetooth disabled, but profile service still bound");
        return defaultValue;
    }

    /** @hide */
@@ -1166,7 +1166,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
            BluetoothStatusCodes.ERROR_UNKNOWN,
            BluetoothStatusCodes.ERROR_PROFILE_SERVICE_NOT_BOUND,
            BluetoothStatusCodes.ERROR_TIMEOUT,
            BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED,
            BluetoothStatusCodes.ERROR_PROFILE_NOT_CONNECTED,
            BluetoothStatusCodes.ERROR_AUDIO_DEVICE_ALREADY_DISCONNECTED
    })
@@ -1209,9 +1208,10 @@ public final class BluetoothHeadset implements BluetoothProfile {
                Log.e(TAG, e.toString() + "\n" + Log.getStackTraceString(new Throwable()));
                return BluetoothStatusCodes.ERROR_TIMEOUT;
            }
        } else {
            return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
        }

        Log.e(TAG, "disconnectAudio: Bluetooth disabled, but profile service still bound");
        return defaultValue;
    }

    /**