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

Commit 764b8491 authored by Leon Liao's avatar Leon Liao Committed by Android (Google) Code Review
Browse files

Merge "Modify Accessibility Setting UI for timeout feature" into qt-dev

parents e455680b d741850f
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -674,15 +674,6 @@
        <item>Accessibility volume</item>
    </string-array>

    <!-- Keys for the list of accessibility timeouts xml. -->
    <string-array name="accessibility_timeout_content_selector_keys" translatable="false">
        <item>accessibility_content_timeout_default</item>
        <item>accessibility_content_timeout_10secs</item>
        <item>accessibility_content_timeout_30secs</item>
        <item>accessibility_content_timeout_1min</item>
        <item>accessibility_content_timeout_2mins</item>
    </string-array>

    <!-- Keys for the list of accessibility timeouts xml. -->
    <string-array name="accessibility_timeout_control_selector_keys" translatable="false">
        <item>accessibility_control_timeout_default</item>
+2 −4
Original line number Diff line number Diff line
@@ -4893,12 +4893,10 @@
    <string name="accessibility_timeout_1min">1 minute</string>
    <!-- Option heading to leave the timeout requirement for accessibility users at 2 mins. [CHAR LIMIT=35] -->
    <string name="accessibility_timeout_2mins">2 minutes</string>
    <!-- Title for accessibility preference to accessibility timeout. [CHAR LIMIT=35] -->
    <string name="accessibility_content_timeout_preference_title">Time to read</string>
    <!-- Title for accessibility settings timeout item. [CHAR LIMIT=43] -->
    <string name="accessibility_setting_item_control_timeout_title">Time to take action (Accessibility timeout)</string>
    <!-- Title for accessibility preference to accessibility timeout. [CHAR LIMIT=35] -->
    <string name="accessibility_control_timeout_preference_title">Time to take action</string>
    <!-- Descriptive text for accessibility preference to accessibility content timeout. [CHAR LIMIT=NONE] -->
    <string name="accessibility_content_timeout_preference_summary">Choose how long to show messages that you need to read, but are visible only temporarily.\n\nNot all apps support this setting.</string>
    <!-- Descriptive text for accessibility preference to accessibility control timeout. [CHAR LIMIT=NONE] -->
    <string name="accessibility_control_timeout_preference_summary">Choose how long to show messages that ask you to take action, but are visible only temporarily.\n\nNot all apps support this setting.</string>
+0 −63
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2018 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.
  -->

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:settings="http://schemas.android.com/apk/res-auto"
    android:key="accessibility_content_timeout_preference"
    android:title="@string/accessibility_content_timeout_preference_title"
    android:persistent="false" >

    <com.android.settings.widget.VideoPreference
        android:key="accessibility_content_timeout_video"
        android:title="@string/summary_placeholder"
        settings:animation="@raw/accessibility_timeout"
        settings:preview="@drawable/accessibility_timeout"
        settings:controller="com.android.settings.widget.VideoPreferenceController"
        android:persistent="false" />

    <com.android.settings.widget.RadioButtonPreference
        android:key="accessibility_content_timeout_default"
        android:title="@string/accessibility_timeout_default"
        settings:allowDividerAbove="true"
        android:persistent="false" />

    <com.android.settings.widget.RadioButtonPreference
        android:key="accessibility_content_timeout_10secs"
        android:title="@string/accessibility_timeout_10secs"
        android:persistent="false" />

    <com.android.settings.widget.RadioButtonPreference
        android:key="accessibility_content_timeout_30secs"
        android:title="@string/accessibility_timeout_30secs"
        android:persistent="false" />

    <com.android.settings.widget.RadioButtonPreference
        android:key="accessibility_content_timeout_1min"
        android:title="@string/accessibility_timeout_1min"
        android:persistent="false" />

    <com.android.settings.widget.RadioButtonPreference
        android:key="accessibility_content_timeout_2mins"
        android:title="@string/accessibility_timeout_2mins"
        android:persistent="false" />

    <com.android.settingslib.widget.FooterPreference
        android:title="@string/accessibility_content_timeout_preference_summary"
        android:selectable="false" />

</PreferenceScreen>
+1 −7
Original line number Diff line number Diff line
@@ -77,12 +77,6 @@
            android:key="toggle_disable_animations"
            android:title="@string/accessibility_disable_animations" />

        <Preference
            android:fragment="com.android.settings.accessibility.AccessibilityContentTimeoutPreferenceFragment"
            android:key="accessibility_content_timeout_preference_fragment"
            android:title="@string/accessibility_content_timeout_preference_title"
            android:persistent="false" />

    </PreferenceCategory>

    <PreferenceCategory
@@ -115,7 +109,7 @@
        <Preference
            android:fragment="com.android.settings.accessibility.AccessibilityControlTimeoutPreferenceFragment"
            android:key="accessibility_control_timeout_preference_fragment"
            android:title="@string/accessibility_control_timeout_preference_title"
            android:title="@string/accessibility_setting_item_control_timeout_title"
            android:persistent="false" />

        <Preference
+0 −129
Original line number Diff line number Diff line
/*
 * Copyright (C) 2018 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.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.provider.SearchIndexableResource;

import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@SearchIndexable
public final class AccessibilityContentTimeoutPreferenceFragment extends DashboardFragment
        implements AccessibilityTimeoutController.OnChangeListener {

    static final String TAG = "AccessibilityContentTimeoutPreferenceFragment";
    private static final List<AbstractPreferenceController> sControllers = new ArrayList<>();

    @Override
    public void onCheckedChanged(Preference preference) {
        for (AbstractPreferenceController controller : sControllers) {
            controller.updateState(preference);
        }
    }

    @Override
    public void onResume() {
        super.onResume();

        for (AbstractPreferenceController controller :
                buildPreferenceControllers(getPrefContext(), getSettingsLifecycle())) {
            ((AccessibilityTimeoutController)controller).setOnChangeListener(this);
        }
    }

    @Override
    public void onPause() {
        super.onPause();

        for (AbstractPreferenceController controller :
                buildPreferenceControllers(getPrefContext(), getSettingsLifecycle())) {
            ((AccessibilityTimeoutController)controller).setOnChangeListener(null);
        }
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.ACCESSIBILITY;
    }

    @Override
    protected String getLogTag() {
        return TAG;
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.accessibility_content_timeout_settings;
    }

    @Override
    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
        return buildPreferenceControllers(context, getSettingsLifecycle());
    }

    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
            Lifecycle lifecycle) {
        if (sControllers.size() == 0) {
            Resources resources = context.getResources();

            String[] timeoutKeys = resources.getStringArray(
                    R.array.accessibility_timeout_content_selector_keys);

            for (int i=0; i < timeoutKeys.length; i++) {
                sControllers.add(new AccessibilityTimeoutController(
                        context, lifecycle, timeoutKeys[i], TAG));
            }
        }
        return sControllers;
    }

    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
                @Override
                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
                        boolean enabled) {
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId = R.xml.accessibility_content_timeout_settings;
                    return Arrays.asList(sir);
                }

                @Override
                public List<String> getNonIndexableKeys(Context context) {
                    final List<String> keys = super.getNonIndexableKeys(context);
                    return keys;
                }

                @Override
                public List<AbstractPreferenceController> createPreferenceControllers(
                        Context context) {
                    return buildPreferenceControllers(context, null);
                }
            };
}
 No newline at end of file
Loading