Loading src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -284,6 +287,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController : mProfileManager.getLeAudioBroadcastAssistantProfile(); mExecutor = Executors.newSingleThreadExecutor(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate()); } @Override Loading Loading @@ -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); } } } tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -61,6 +64,7 @@ public class AudioSharingDashboardFragmentTest { @Before public void setUp() { when(mSwitchBar.getRootView()).thenReturn(mView); mFragment = new AudioSharingDashboardFragment(); } Loading tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } } Loading
src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java +19 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -284,6 +287,7 @@ public class AudioSharingSwitchBarController extends BasePreferenceController : mProfileManager.getLeAudioBroadcastAssistantProfile(); mExecutor = Executors.newSingleThreadExecutor(); mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(); mSwitchBar.getRootView().setAccessibilityDelegate(new MainSwitchAccessibilityDelegate()); } @Override Loading Loading @@ -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); } } }
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragmentTest.java +4 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -61,6 +64,7 @@ public class AudioSharingDashboardFragmentTest { @Before public void setUp() { when(mSwitchBar.getRootView()).thenReturn(mView); mFragment = new AudioSharingDashboardFragment(); } Loading
tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); } }