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

Commit 12469371 authored by Yiyi Shen's avatar Yiyi Shen Committed by Android (Google) Code Review
Browse files

Merge "[Audiosharing] Not announce enable/disable when toggle main switch" into main

parents b656d7b2 124a9e1e
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -30,6 +30,9 @@ import android.content.IntentFilter;
import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.Pair;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;

@@ -284,6 +287,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
                        : mProfileManager.getLeAudioBroadcastAssistantProfile();
        mExecutor = Executors.newSingleThreadExecutor();
        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
        mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate());
    }

    @Override
@@ -564,4 +568,19 @@ public class AudioSharingSwitchBarController extends BasePreferenceController
                    }
                });
    }

    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);
        }
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -21,10 +21,12 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
import android.view.View;

import androidx.test.core.app.ApplicationProvider;

@@ -52,6 +54,7 @@ public class AudioSharingDashboardFragmentTest {

    @Mock private SettingsActivity mActivity;
    @Mock private SettingsMainSwitchBar mSwitchBar;
    @Mock private View mView;
    @Mock private AudioSharingDeviceVolumeGroupController mVolumeGroupController;
    @Mock private AudioSharingCallAudioPreferenceController mCallAudioController;
    @Mock private AudioSharingPlaySoundPreferenceController mPlaySoundController;
@@ -61,6 +64,7 @@ public class AudioSharingDashboardFragmentTest {

    @Before
    public void setUp() {
        when(mSwitchBar.getRootView()).thenReturn(mView);
        mFragment = new AudioSharingDashboardFragment();
    }

+24 −0
Original line number Diff line number Diff line
@@ -51,6 +51,8 @@ import android.os.Looper;
import android.platform.test.flag.junit.SetFlagsRule;
import android.util.FeatureFlagUtils;
import android.util.Pair;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.CompoundButton;

import androidx.fragment.app.DialogFragment;
@@ -590,4 +592,26 @@ public class AudioSharingSwitchBarControllerTest {
        mController.mBroadcastAssistantCallback.onSourceLost(/* broadcastId= */ 1);
        verifyNoMoreInteractions(mFeatureFactory.metricsFeatureProvider);
    }

    @Test
    public void testAccessibilityDelegate() {
        View view = new View(mContext);
        AccessibilityEvent event =
                new AccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED);
        event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED);
        assertThat(
                        mSwitchBar
                                .getRootView()
                                .getAccessibilityDelegate()
                                .onRequestSendAccessibilityEvent(mSwitchBar, view, event))
                .isTrue();

        event.setContentChangeTypes(AccessibilityEvent.CONTENT_CHANGE_TYPE_ENABLED);
        assertThat(
                        mSwitchBar
                                .getRootView()
                                .getAccessibilityDelegate()
                                .onRequestSendAccessibilityEvent(mSwitchBar, view, event))
                .isFalse();
    }
}