[Audiosharing] Not announce enable/disable when toggle main switch
Fix: 356318679 Test: atest Flag: com.android.settingslib.flags.enable_le_audio_sharing Change-Id: I3331f9ded48352f442712287a6b536da883fe73d
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user