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

Commit 5365eaa6 authored by ryanywlin's avatar ryanywlin Committed by Ryan Lin
Browse files

Use another callback to notify the updater that UI should be updated

Replace onConnectionStateChanged callback
with onProfileConnectionStateChanged. While
updater is notified, isFilterMatched(cachedDevice)
will decide whether to add/remove from UI based
on audio profiles and audio mode.

Bug: 76447449
Test: make RunSettingsRoboTests -j28
Change-Id: Icfba1ce2297e4638679158f9f99bae276940d885
parent b87eb6aa
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -16,11 +16,11 @@
package com.android.settings.bluetooth;

import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.media.AudioManager;
import android.support.annotation.VisibleForTesting;
import android.util.Log;

import com.android.settings.connecteddevice.DevicePreferenceCallback;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -57,18 +57,20 @@ public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
    }

    @Override
    public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
    public void onProfileConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state,
            int bluetoothProfile) {
        if (DBG) {
            Log.d(TAG,"onConnectionStateChanged() device : " +
                    cachedDevice.getName() + ", state : " + state);
            Log.d(TAG, "onProfileConnectionStateChanged() device: " +
                    cachedDevice.getName() + ", state: " + state + ", bluetoothProfile: "
                    + bluetoothProfile);
        }
        if (state == BluetoothAdapter.STATE_CONNECTED) {
        if (state == BluetoothProfile.STATE_CONNECTED) {
            if (isFilterMatched(cachedDevice)) {
                addPreference(cachedDevice);
            } else {
                removePreference(cachedDevice);
            }
        } else if (state == BluetoothAdapter.STATE_DISCONNECTED) {
        } else if (state == BluetoothProfile.STATE_DISCONNECTED) {
            removePreference(cachedDevice);
        }
    }
+5 −0
Original line number Diff line number Diff line
@@ -161,6 +161,11 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
    public void onAudioModeChanged() {
    }

    @Override
    public void onProfileConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state,
            int bluetoothProfile) {
    }

    @Override
    public void onServiceConnected() {
        // When bluetooth service connected update the UI
+7 −7
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@
 */
package com.android.settings.bluetooth;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
@@ -60,19 +59,20 @@ public class ConnectedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
    }

    @Override
    public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
    public void onProfileConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state,
            int bluetoothProfile) {
        if (DBG) {
            Log.d(TAG,"onConnectionStateChanged() device : " +
                    cachedDevice.getName() + ", state : " + state);
            Log.d(TAG, "onProfileConnectionStateChanged() device: " +
                    cachedDevice.getName() + ", state: " + state + ", bluetoothProfile: "
                    + bluetoothProfile);
        }

        if (state == BluetoothAdapter.STATE_CONNECTED) {
        if (state == BluetoothProfile.STATE_CONNECTED) {
            if (isFilterMatched(cachedDevice)) {
                addPreference(cachedDevice);
            } else {
                removePreference(cachedDevice);
            }
        } else if (state == BluetoothAdapter.STATE_DISCONNECTED) {
        } else if (state == BluetoothProfile.STATE_DISCONNECTED) {
            removePreference(cachedDevice);
        }
    }
+5 −4
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@
 */
package com.android.settings.bluetooth;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.content.Context;
import android.support.annotation.VisibleForTesting;

@@ -43,10 +43,11 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
    }

    @Override
    public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
        if (state == BluetoothAdapter.STATE_CONNECTED) {
    public void onProfileConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state,
            int bluetoothProfile) {
        if (state == BluetoothProfile.STATE_CONNECTED) {
            removePreference(cachedDevice);
        } else if (state == BluetoothAdapter.STATE_DISCONNECTED) {
        } else if (state == BluetoothProfile.STATE_DISCONNECTED) {
            addPreference(cachedDevice);
        }
    }
+6 −1
Original line number Diff line number Diff line
@@ -161,7 +161,6 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont
     */
    @Override
    public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
        updateState(mPreference);
    }

    @Override
@@ -174,6 +173,12 @@ public abstract class AudioSwitchPreferenceController extends BasePreferenceCont
        updateState(mPreference);
    }

    @Override
    public void onProfileConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state,
            int bluetoothProfile) {
        updateState(mPreference);
    }

    @Override
    public void onBluetoothStateChanged(int bluetoothState) {
    }
Loading