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

Commit 2107255f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove unnecessary notify in BT preference"

parents 4e3cb4e8 36948cef
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import android.util.Pair;
import android.util.TypedValue;
import android.widget.ImageView;

import androidx.annotation.VisibleForTesting;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
@@ -59,6 +60,8 @@ public final class BluetoothDevicePreference extends GearPreference implements
    private AlertDialog mDisconnectDialog;
    private String contentDescription = null;
    private boolean mHideSecondTarget = false;
    @VisibleForTesting
    boolean mNeedNotifyHierarchyChanged = false;
    /* Talk-back descriptions for various BT icons */
    Resources mResources;

@@ -81,8 +84,8 @@ public final class BluetoothDevicePreference extends GearPreference implements
        onDeviceAttributesChanged();
    }

    void rebind() {
        notifyChanged();
    public void setNeedNotifyHierarchyChanged(boolean needNotifyHierarchyChanged) {
        mNeedNotifyHierarchyChanged = needNotifyHierarchyChanged;
    }

    @Override
@@ -145,8 +148,10 @@ public final class BluetoothDevicePreference extends GearPreference implements
        setVisible(mShowDevicesWithoutNames || mCachedDevice.hasHumanReadableName());

        // This could affect ordering, so notify that
        if (mNeedNotifyHierarchyChanged) {
            notifyHierarchyChanged();
        }
    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder view) {
+4 −7
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.bluetooth.LocalBluetoothManager;

import java.util.Collection;
import java.util.HashMap;
import java.util.WeakHashMap;

/**
@@ -69,8 +70,8 @@ public abstract class DeviceListPreferenceFragment extends
    @VisibleForTesting
    PreferenceGroup mDeviceListGroup;

    final WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
            new WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference>();
    final HashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
            new HashMap<>();

    boolean mShowDevicesWithoutNames;

@@ -195,17 +196,13 @@ public abstract class DeviceListPreferenceFragment extends
            //Set hideSecondTarget is true if it's bonded device.
            preference.hideSecondTarget(true);
            mDeviceListGroup.addPreference(preference);
        } else {
            // Tell the preference it is being re-used in case there is new info in the
            // cached device.
            preference.rebind();
        }

        initDevicePreference(preference);
        mDevicePreferenceMap.put(cachedDevice, preference);
    }

    void initDevicePreference(BluetoothDevicePreference preference) {
    protected void initDevicePreference(BluetoothDevicePreference preference) {
        // Does nothing by default
    }

+6 −0
Original line number Diff line number Diff line
@@ -151,6 +151,12 @@ public final class DevicePickerFragment extends DeviceListPreferenceFragment {
        }
    }

    @Override
    protected void initDevicePreference(BluetoothDevicePreference preference) {
        super.initDevicePreference(preference);
        preference.setNeedNotifyHierarchyChanged(true);
    }

    @Override
    public void onBluetoothStateChanged(int bluetoothState) {
        super.onBluetoothStateChanged(bluetoothState);
+9 −2
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ public class BluetoothDevicePreferenceTest {
    }

    @Test
    public void testVisible_showDeviceWithoutNames_visible() {
    public void isVisible_showDeviceWithoutNames_visible() {
        doReturn(false).when(mCachedBluetoothDevice).hasHumanReadableName();
        BluetoothDevicePreference preference =
                new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
@@ -176,11 +176,18 @@ public class BluetoothDevicePreferenceTest {
    }

    @Test
    public void testVisible_hideDeviceWithoutNames_invisible() {
    public void isVisible_hideDeviceWithoutNames_invisible() {
        doReturn(false).when(mCachedBluetoothDevice).hasHumanReadableName();
        BluetoothDevicePreference preference =
                new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);

        assertThat(preference.isVisible()).isFalse();
    }

    @Test
    public void setNeedNotifyHierarchyChanged_updateValue() {
        mPreference.setNeedNotifyHierarchyChanged(true);

        assertThat(mPreference.mNeedNotifyHierarchyChanged).isTrue();
    }
}