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

Commit 103ce4ef authored by chelseahao's avatar chelseahao Committed by Chelsea Hao
Browse files

Enable audio sharing hysteresis mode fix when preview is on.

Test: atest
Bug: 368401233
Flag: com.android.settingslib.flags.audio_sharing_developer_option
Change-Id: I3dad42011aadcfd1a2670d297c8e000d1b92324a
parent a1abfdca
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -46,7 +46,6 @@ import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.bluetooth.VolumeControlProfile;
import com.android.settingslib.flags.Flags;

import java.util.ArrayList;
import java.util.Comparator;
@@ -222,8 +221,8 @@ public class AudioSharingUtils {
            Log.d(TAG, "hasActiveConnectedLeadDevice return false due to null device manager.");
            return false;
        }
        return deviceManager.getCachedDevicesCopy().stream().anyMatch(
                BluetoothUtils::isActiveMediaDevice);
        return deviceManager.getCachedDevicesCopy().stream()
                .anyMatch(BluetoothUtils::isActiveMediaDevice);
    }

    /** Build {@link AudioSharingDeviceItem} from {@link CachedBluetoothDevice}. */
@@ -348,14 +347,15 @@ public class AudioSharingUtils {
    }

    /** Set {@link CachedBluetoothDevice} as primary device for call audio */
    public static void setPrimary(@NonNull Context context,
            @Nullable CachedBluetoothDevice cachedDevice) {
    public static void setPrimary(
            @NonNull Context context, @Nullable CachedBluetoothDevice cachedDevice) {
        if (cachedDevice == null) return;
        cachedDevice.setActive();
        if (Flags.audioSharingHysteresisModeFix()) {
        if (BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(context)) {
            int groupId = BluetoothUtils.getGroupId(cachedDevice);
            // TODO: use real key name in SettingsProvider
            int userPreferredId = Settings.Secure.getInt(
            int userPreferredId =
                    Settings.Secure.getInt(
                            context.getContentResolver(),
                            BLUETOOTH_LE_BROADCAST_PRIMARY_DEVICE_GROUP_ID,
                            BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
+3 −4
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.settings.connecteddevice.audiosharing.audiostreams;

import static com.android.settingslib.flags.Flags.audioSharingHysteresisModeFix;

import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothLeBroadcastAssistant;
@@ -38,6 +36,7 @@ import com.android.settings.R;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
@@ -77,7 +76,7 @@ public class AudioStreamButtonController extends BasePreferenceController
                        BluetoothLeBroadcastReceiveState state) {
                    super.onReceiveStateChanged(sink, sourceId, state);
                    boolean shouldUpdateButton =
                            audioSharingHysteresisModeFix()
                            BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)
                                    ? AudioStreamsHelper.hasSourcePresent(state)
                                    : AudioStreamsHelper.isConnected(state);
                    if (shouldUpdateButton) {
@@ -157,7 +156,7 @@ public class AudioStreamButtonController extends BasePreferenceController
        }

        List<BluetoothLeBroadcastReceiveState> sources =
                audioSharingHysteresisModeFix()
                BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)
                        ? mAudioStreamsHelper.getAllPresentSources()
                        : mAudioStreamsHelper.getAllConnectedSources();
        boolean isConnected =
+9 −8
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.widget.LayoutPreference;
@@ -86,7 +87,7 @@ public class AudioStreamHeaderController extends BasePreferenceController
                        updateSummary();
                        mAudioStreamsHelper.startMediaService(
                                mContext, mBroadcastId, mBroadcastName);
                    } else if (audioSharingHysteresisModeFix()
                    } else if (BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(mContext)
                            && AudioStreamsHelper.hasSourcePresent(state)) {
                        // if source present but not connected, only update the summary
                        updateSummary();
+2 −3
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@ package com.android.settings.connecteddevice.audiosharing.audiostreams;

import static android.text.Spanned.SPAN_EXCLUSIVE_INCLUSIVE;

import static com.android.settingslib.flags.Flags.audioSharingHysteresisModeFix;

import android.os.Handler;
import android.os.Looper;
import android.text.SpannableString;
@@ -98,7 +96,8 @@ class AudioStreamStateHandler {
                            newState
                                            == AudioStreamsProgressCategoryController
                                                    .AudioStreamState.SOURCE_ADDED
                                    || (audioSharingHysteresisModeFix()
                                    || (BluetoothUtils.isAudioSharingHysteresisModeFixAvailable(
                                                    preference.getContext())
                                            && newState
                                                    == AudioStreamsProgressCategoryController
                                                            .AudioStreamState.SOURCE_PRESENT));
+0 −8
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.flags.Flags;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
@@ -80,13 +79,6 @@ public class AudioStreamsCategoryController extends AudioSharingBasePreferenceCo
        }
    }

    @Override
    public int getAvailabilityStatus() {
        return Flags.enableLeAudioQrCodePrivateBroadcastSharing()
                ? AVAILABLE
                : UNSUPPORTED_ON_DEVICE;
    }

    @Override
    public void updateVisibility() {
        if (mPreference == null) return;
Loading