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

Commit a6680963 authored by chelseahao's avatar chelseahao
Browse files

[Audiosharing] Handle source remove plus small refactor.

Bug: 308368124
Test: manual
Change-Id: I99011feb762445e75652cbe59c2653dced7dd4f7
parent 8b5da73e
Loading
Loading
Loading
Loading
+40 −38
Original line number Diff line number Diff line
@@ -71,10 +71,23 @@ class AudioStreamPreference extends TwoTargetPreference {
        mAudioStream.setState(state);
    }

    void setAudioStreamMetadata(BluetoothLeBroadcastMetadata metadata) {
        mAudioStream.setMetadata(metadata);
    }

    int getAudioStreamBroadcastId() {
        return mAudioStream.getBroadcastId();
    }

    int getAudioStreamRssi() {
        return mAudioStream.getRssi();
    }

    @Nullable
    BluetoothLeBroadcastMetadata getAudioStreamMetadata() {
        return mAudioStream.getMetadata();
    }

    AudioStreamsProgressCategoryController.AudioStreamState getAudioStreamState() {
        return mAudioStream.getState();
    }
@@ -102,25 +115,18 @@ class AudioStreamPreference extends TwoTargetPreference {
    }

    static AudioStreamPreference fromMetadata(
            Context context,
            BluetoothLeBroadcastMetadata source,
            AudioStreamsProgressCategoryController.AudioStreamState streamState) {
            Context context, BluetoothLeBroadcastMetadata source) {
        AudioStreamPreference preference = new AudioStreamPreference(context, /* attrs= */ null);
        preference.setTitle(getBroadcastName(source));
        preference.setAudioStream(
                new AudioStream(source.getBroadcastId(), streamState, source.getRssi()));
        preference.setAudioStream(new AudioStream(source));
        return preference;
    }

    static AudioStreamPreference fromReceiveState(
            Context context,
            BluetoothLeBroadcastReceiveState receiveState,
            AudioStreamsProgressCategoryController.AudioStreamState streamState) {
            Context context, BluetoothLeBroadcastReceiveState receiveState) {
        AudioStreamPreference preference = new AudioStreamPreference(context, /* attrs= */ null);
        preference.setTitle(getBroadcastName(receiveState));
        preference.setAudioStream(
                new AudioStream(
                        receiveState.getSourceId(), receiveState.getBroadcastId(), streamState));
        preference.setAudioStream(new AudioStream(receiveState));
        return preference;
    }

@@ -145,49 +151,45 @@ class AudioStreamPreference extends TwoTargetPreference {
    }

    private static final class AudioStream {
        private int mSourceId;
        private int mBroadcastId;
        private int mRssi = Integer.MIN_VALUE;
        private AudioStreamsProgressCategoryController.AudioStreamState mState;

        private AudioStream(
                int broadcastId,
                AudioStreamsProgressCategoryController.AudioStreamState state,
                int rssi) {
            mBroadcastId = broadcastId;
            mState = state;
            mRssi = rssi;
        }
        private static final int UNAVAILABLE = -1;
        @Nullable private BluetoothLeBroadcastMetadata mMetadata;
        @Nullable private BluetoothLeBroadcastReceiveState mReceiveState;
        private AudioStreamsProgressCategoryController.AudioStreamState mState =
                AudioStreamsProgressCategoryController.AudioStreamState.UNKNOWN;

        private AudioStream(
                int sourceId,
                int broadcastId,
                AudioStreamsProgressCategoryController.AudioStreamState state) {
            mSourceId = sourceId;
            mBroadcastId = broadcastId;
            mState = state;
        private AudioStream(BluetoothLeBroadcastMetadata metadata) {
            mMetadata = metadata;
        }

        // TODO(chelseahao): use this to handleSourceRemoved
        private int getSourceId() {
            return mSourceId;
        private AudioStream(BluetoothLeBroadcastReceiveState receiveState) {
            mReceiveState = receiveState;
        }

        // TODO(chelseahao): use this to handleSourceRemoved
        private int getBroadcastId() {
            return mBroadcastId;
            return mMetadata != null
                    ? mMetadata.getBroadcastId()
                    : mReceiveState != null ? mReceiveState.getBroadcastId() : UNAVAILABLE;
        }

        private int getRssi() {
            return mRssi;
            return mMetadata != null ? mMetadata.getRssi() : Integer.MAX_VALUE;
        }

        private AudioStreamsProgressCategoryController.AudioStreamState getState() {
            return mState;
        }

        @Nullable
        private BluetoothLeBroadcastMetadata getMetadata() {
            return mMetadata;
        }

        private void setState(AudioStreamsProgressCategoryController.AudioStreamState state) {
            mState = state;
        }

        private void setMetadata(BluetoothLeBroadcastMetadata metadata) {
            mMetadata = metadata;
        }
    }
}
+1 −3
Original line number Diff line number Diff line
@@ -112,8 +112,6 @@ public class AudioStreamsProgressCategoryCallback extends AudioStreamsBroadcastA
    @Override
    public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
        super.onSourceRemoved(sink, sourceId, reason);
        mCategoryController.showToast(
                String.format(
                        Locale.US, "Source %d removed for sink %s", sourceId, sink.getAddress()));
        mCategoryController.handleSourceRemoved();
    }
}
+214 −142

File changed.

Preview size limit exceeded, changes collapsed.

+0 −2
Original line number Diff line number Diff line
@@ -57,14 +57,12 @@ public class AudioStreamsScanQrCodeController extends BasePreferenceController
            };

    private final LocalBluetoothManager mLocalBtManager;
    private final AudioStreamsHelper mAudioStreamsHelper;
    private AudioStreamsDashboardFragment mFragment;
    private Preference mPreference;

    public AudioStreamsScanQrCodeController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mLocalBtManager = Utils.getLocalBtManager(mContext);
        mAudioStreamsHelper = new AudioStreamsHelper(mLocalBtManager);
    }

    public void setFragment(AudioStreamsDashboardFragment fragment) {