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

Commit 3b5b88f6 authored by Riley Jones's avatar Riley Jones Committed by Android (Google) Code Review
Browse files

Merge "Makes all custom caption settings unsearchable when custom captions are...

Merge "Makes all custom caption settings unsearchable when custom captions are not active." into main
parents 0f7bf306 6f8e823e
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.accessibility;

import android.content.Context;

import com.android.settings.core.BasePreferenceController;

public class BaseCaptioningCustomController extends BasePreferenceController {
    protected final CaptionHelper mCaptionHelper;

    public BaseCaptioningCustomController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mCaptionHelper = new CaptionHelper(context);
    }

    @Override
    public int getAvailabilityStatus() {
        return mCaptionHelper.getCustomCaptionAvailability();
    }
}
+12 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.accessibility;

import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;

import android.content.ContentResolver;
import android.content.Context;
@@ -211,4 +213,14 @@ public class CaptionHelper {
    public Locale getLocale() {
        return mCaptioningManager.getLocale();
    }

    /** Returns availability for custom caption preferences, depending on current user style. */
    public int getCustomCaptionAvailability() {
        if (com.android.settings.accessibility.Flags.fixA11ySettingsSearch()) {
            return (getRawUserStyle() == CaptionStyle.PRESET_CUSTOM)
                    ? AVAILABLE : AVAILABLE_UNSEARCHABLE;
        } else {
            return AVAILABLE;
        }
    }
}
+1 −9
Original line number Diff line number Diff line
@@ -25,23 +25,15 @@ import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
import com.android.settings.core.BasePreferenceController;

/** Preference controller for captioning background color. */
public class CaptioningBackgroundColorController extends BasePreferenceController
public class CaptioningBackgroundColorController extends BaseCaptioningCustomController
        implements OnValueChangedListener {

    private final CaptionHelper mCaptionHelper;
    private int mCachedNonDefaultOpacity = CaptionStyle.COLOR_UNSPECIFIED;

    public CaptioningBackgroundColorController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mCaptionHelper = new CaptionHelper(context);
    }

    @Override
    public int getAvailabilityStatus() {
        return AVAILABLE;
    }

    @Override
+1 −10
Original line number Diff line number Diff line
@@ -23,22 +23,13 @@ import androidx.preference.PreferenceScreen;

import com.android.settings.R;
import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
import com.android.settings.core.BasePreferenceController;

/** Preference controller for captioning background opacity. */
public class CaptioningBackgroundOpacityController extends BasePreferenceController
public class CaptioningBackgroundOpacityController extends BaseCaptioningCustomController
        implements OnValueChangedListener {

    private final CaptionHelper mCaptionHelper;

    public CaptioningBackgroundOpacityController(Context context, String preferenceKey) {
        super(context, preferenceKey);
        mCaptionHelper = new CaptionHelper(context);
    }

    @Override
    public int getAvailabilityStatus() {
        return AVAILABLE;
    }

    @Override
+3 −15
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;

import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -37,12 +36,11 @@ import java.util.Arrays;
import java.util.List;

/** Preference controller for captioning custom visibility. */
public class CaptioningCustomController extends BasePreferenceController
public class CaptioningCustomController extends BaseCaptioningCustomController
        implements LifecycleObserver, OnStart, OnStop {

    @Nullable
    private Preference mCustom;
    private final CaptionHelper mCaptionHelper;
    private final ContentResolver mContentResolver;
    @VisibleForTesting
    AccessibilitySettingsContentObserver mSettingsContentObserver;
@@ -52,16 +50,15 @@ public class CaptioningCustomController extends BasePreferenceController
    );

    public CaptioningCustomController(Context context, String preferenceKey) {
        this(context, preferenceKey, new CaptionHelper(context),
        this(context, preferenceKey,
                new AccessibilitySettingsContentObserver(new Handler(Looper.getMainLooper())));
    }

    @VisibleForTesting
    CaptioningCustomController(
            Context context, String preferenceKey, CaptionHelper captionHelper,
            Context context, String preferenceKey,
            AccessibilitySettingsContentObserver contentObserver) {
        super(context, preferenceKey);
        mCaptionHelper = new CaptionHelper(context);
        mContentResolver = context.getContentResolver();
        mSettingsContentObserver = contentObserver;
        mSettingsContentObserver.registerKeysToObserverCallback(CAPTIONING_FEATURE_KEYS, key -> {
@@ -71,15 +68,6 @@ public class CaptioningCustomController extends BasePreferenceController
        });
    }

    @Override
    public int getAvailabilityStatus() {
        if (com.android.settings.accessibility.Flags.fixA11ySettingsSearch()) {
            return (shouldShowPreference()) ? AVAILABLE : AVAILABLE_UNSEARCHABLE;
        } else {
            return AVAILABLE;
        }
    }

    @Override
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
Loading