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

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

Disable announcing "Enabled / disabled" when toggling BT in settings.

Test: atest
Bug: b/375545416
Flag: EXEMPT bugfix
Change-Id: I1992faaf813c147fa734a3522b070ccbf0531dab
parent bda18116
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -20,6 +20,9 @@ import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -101,6 +104,7 @@ public class BluetoothDashboardFragment extends DashboardFragment {
        SettingsActivity activity = (SettingsActivity) getActivity();
        mSwitchBar = activity.getSwitchBar();
        mSwitchBar.setTitle(getContext().getString(R.string.bluetooth_main_switch_title));
        mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate());
        mController = new BluetoothSwitchPreferenceController(activity,
                new MainSwitchBarController(mSwitchBar), mFooterPreference);
        mController.setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action));
@@ -127,4 +131,19 @@ public class BluetoothDashboardFragment extends DashboardFragment {
    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
        return BluetoothDashboardScreen.KEY;
    }

    private static final class MainSwitchAccessibilityDelegate extends View.AccessibilityDelegate {
        @Override
        public boolean onRequestSendAccessibilityEvent(
                @NonNull ViewGroup host, @NonNull View view, @NonNull AccessibilityEvent event) {
            if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED
                    && (event.getContentChangeTypes()
                    & AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED)
                    != 0) {
                Log.d(TAG, "Skip accessibility event for CONTENT_CHANGE_TYPE_ENABLED");
                return false;
            }
            return super.onRequestSendAccessibilityEvent(host, view, event);
        }
    }
}