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

Test: atest
Bug: b/375545416
Flag: EXEMPT bugfix
Change-Id: I1992faaf813c147fa734a3522b070ccbf0531dab
This commit is contained in:
chelseahao
2024-11-05 13:29:45 +08:00
committed by Chelsea Hao
parent bda181160f
commit e306ee4c6c

View File

@@ -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);
}
}
}