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

Commit 96f76c33 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update the list of Take call on" into main

parents 9fc982f7 b1f70dc3
Loading
Loading
Loading
Loading
+25 −1
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.bluetooth.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.FeatureFlags;
import com.android.settings.sounde.AudioSwitchUtils;
import com.android.settingslib.bluetooth.A2dpProfile;
import com.android.settingslib.bluetooth.BluetoothCallback;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -68,7 +69,8 @@ import java.util.concurrent.FutureTask;
 * updating the current status of switcher entry. Subclasses must overwrite
 */
public abstract class AudioSwitchPreferenceController extends BasePreferenceController
        implements BluetoothCallback, LifecycleObserver, OnStart, OnStop {
        implements BluetoothCallback, LifecycleObserver, OnStart, OnStop,
        LocalBluetoothProfileManager.ServiceListener {

    private static final String TAG = "AudioSwitchPrefCtrl";

@@ -149,6 +151,11 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont
            return;
        }
        mLocalBluetoothManager.setForegroundActivity(mContext);
        if (!AudioSwitchUtils.isLeAudioProfileReady(mProfileManager)) {
            if (mProfileManager != null) {
                mProfileManager.addServiceListener(this);
            }
        }
        register();
    }

@@ -159,6 +166,9 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont
            return;
        }
        mLocalBluetoothManager.setForegroundActivity(null);
        if (mProfileManager != null) {
            mProfileManager.removeServiceListener(this);
        }
        unregister();
    }

@@ -193,6 +203,20 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont
        updateState(mPreference);
    }

    @Override
    public void onServiceConnected() {
        Log.d(TAG, "onServiceConnected");
        if (AudioSwitchUtils.isLeAudioProfileReady(mProfileManager)) {
            updateState(mPreference);
        }
    }

    @Override
    public void onServiceDisconnected() {
        Log.d(TAG, "onServiceDisconnected()");
        // Do nothing.
    }

    public void setCallback(AudioSwitchCallback callback) {
        mAudioSwitchPreferenceCallback = callback;
    }
+32 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.sounde

import com.android.settingslib.bluetooth.LocalBluetoothProfileManager

/**
 * Utilities class for audio switcher controllers
 */
class AudioSwitchUtils {
    companion object {

        /** Check if LE Audio profile is ready. */
        @JvmStatic
        fun isLeAudioProfileReady(profileManager: LocalBluetoothProfileManager?): Boolean =
            profileManager?.getLeAudioProfile()?.isProfileReady() ?: false
    }
}
 No newline at end of file