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

@@ -18,41 +18,18 @@ package com.android.settings.accessibility;
import android.content.Context;
import android.content.res.Resources;
import android.view.accessibility.CaptioningManager;
import androidx.preference.PreferenceScreen;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
import com.android.settings.core.BasePreferenceController;
/** Preference controller for captioning window opacity. */
public class CaptioningWindowOpacityController extends BasePreferenceController
public class CaptioningWindowOpacityController extends BaseCaptioningCustomController
implements OnValueChangedListener {
private final CaptionHelper mCaptionHelper;
@VisibleForTesting
CaptioningWindowOpacityController(Context context, String preferenceKey,
CaptionHelper captionHelper) {
super(context, preferenceKey);
mCaptionHelper = captionHelper;
}
public CaptioningWindowOpacityController(Context context, String preferenceKey) {
this(context, preferenceKey, new CaptionHelper(context));
}
@Override
public int getAvailabilityStatus() {
if (com.android.settings.accessibility.Flags.fixA11ySettingsSearch()) {
return (mCaptionHelper.getRawUserStyle()
== CaptioningManager.CaptionStyle.PRESET_CUSTOM)
? AVAILABLE : AVAILABLE_UNSEARCHABLE;
} else {
return AVAILABLE;
}
super(context, preferenceKey);
}
@Override