Makes all custom caption settings unsearchable when custom captions are not active.

Unifies all custom caption controllers under a base controller, whose searchability is directly determined by CaptionHelper#getCustomCaptionAvailability().

Test: atest CaptionHelperTest
Bug: 353757664
Flag: com.android.settings.accessibility.fix_a11y_settings_search
Change-Id: If44e6eca4c72aa4413cd0a6e8735dbb22c7abe62
This commit is contained in:
Riley Jones
2024-11-21 19:55:28 +00:00
parent e39b2c18d8
commit 6f8e823e0e
24 changed files with 106 additions and 288 deletions

View File

@@ -23,9 +23,6 @@ import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.provider.Settings;
import android.view.accessibility.CaptioningManager.CaptionStyle;
@@ -33,8 +30,6 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -52,8 +47,6 @@ public class CaptioningCustomControllerTest {
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
@Mock
private PreferenceScreen mScreen;
@Mock
@@ -62,44 +55,16 @@ public class CaptioningCustomControllerTest {
private ContentResolver mContentResolver;
private CaptioningCustomController mController;
private Preference mPreference;
private CaptionHelper mCaptionHelper;
@Before
public void setUp() {
mContentResolver = mContext.getContentResolver();
mCaptionHelper = new CaptionHelper(mContext);
mController = new CaptioningCustomController(mContext, PREF_KEY, mCaptionHelper,
mController = new CaptioningCustomController(mContext, PREF_KEY,
mAccessibilitySettingsContentObserver);
mPreference = new Preference(mContext);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
}
@Test
@DisableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
public void getAvailabilityStatus_shouldReturnAvailable() {
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
@EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
public void getAvailabilityStatus_customCaption_shouldReturnAvailable() {
mCaptionHelper.setRawUserStyle(CaptionStyle.PRESET_CUSTOM);
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE);
}
@Test
@EnableFlags(Flags.FLAG_FIX_A11Y_SETTINGS_SEARCH)
public void getAvailabilityStatus_notCustom_shouldReturnUnsearchable() {
mCaptionHelper.setRawUserStyle(0);
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE_UNSEARCHABLE);
}
@Test
public void displayPreference_byDefault_shouldIsInvisible() {
mController.displayPreference(mScreen);