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

Commit 17dc54c6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Talkback shouldn't announce in list numbers." into main

parents 7a9277ca 508567ed
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -18,9 +18,18 @@ package com.android.settings.regionalpreferences;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat;
import androidx.preference.PreferenceRecyclerViewAccessibilityDelegate;
import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
@@ -31,6 +40,7 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/** Main fragment to display first day of week. */
@@ -54,6 +64,38 @@ public class FirstDayOfWeekItemFragment extends DashboardFragment {
        }
    }

    @NonNull
    @Override
    public RecyclerView onCreateRecyclerView(
            @NonNull LayoutInflater inflater, @NonNull ViewGroup parent,
            @Nullable Bundle savedInstanceState) {

        // Talkback shouldn't announce in list numbers
        final RecyclerView recyclerView =
                super.onCreateRecyclerView(inflater, parent, savedInstanceState);
        recyclerView.setAccessibilityDelegateCompat(
            new PreferenceRecyclerViewAccessibilityDelegate(recyclerView) {
                    @Override
                    public void onInitializeAccessibilityNodeInfo(@NonNull View host,
                            @NonNull AccessibilityNodeInfoCompat info) {
                        super.onInitializeAccessibilityNodeInfo(host, info);
                        int availableCount = (int) getPreferenceControllers()
                                .stream()
                                .flatMap(Collection::stream)
                                .filter(AbstractPreferenceController::isAvailable)
                                .count();
                        info.setCollectionInfo(
                                CollectionInfoCompat.obtain(
                                        /*rowCount=*/availableCount,
                                        /*columnCount=*/1,
                                        /*hierarchical=*/false,
                                        CollectionInfoCompat.SELECTION_MODE_SINGLE)
                        );
                    }
            });
        return recyclerView;
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.regional_preferences_first_day_of_week;
+42 −0
Original line number Diff line number Diff line
@@ -18,9 +18,18 @@ package com.android.settings.regionalpreferences;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat;
import androidx.preference.PreferenceRecyclerViewAccessibilityDelegate;
import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
@@ -32,6 +41,7 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/** Main fragment to display measurement system. */
@@ -55,6 +65,38 @@ public class MeasurementSystemItemFragment extends DashboardFragment {
        }
    }

    @NonNull
    @Override
    public RecyclerView onCreateRecyclerView(
            @NonNull LayoutInflater inflater, @NonNull ViewGroup parent,
            @Nullable Bundle savedInstanceState) {

        // Talkback shouldn't announce in list numbers
        final RecyclerView recyclerView =
                super.onCreateRecyclerView(inflater, parent, savedInstanceState);
        recyclerView.setAccessibilityDelegateCompat(
            new PreferenceRecyclerViewAccessibilityDelegate(recyclerView) {
                    @Override
                    public void onInitializeAccessibilityNodeInfo(@NonNull View host,
                            @NonNull AccessibilityNodeInfoCompat info) {
                        super.onInitializeAccessibilityNodeInfo(host, info);
                        int availableCount = (int) getPreferenceControllers()
                                .stream()
                                .flatMap(Collection::stream)
                                .filter(AbstractPreferenceController::isAvailable)
                                .count();
                        info.setCollectionInfo(
                                CollectionInfoCompat.obtain(
                                        /*rowCount=*/availableCount,
                                        /*columnCount=*/1,
                                        /*hierarchical=*/false,
                                        CollectionInfoCompat.SELECTION_MODE_SINGLE)
                        );
                    }
            });
        return recyclerView;
    }

    @Override
    protected int getPreferenceScreenResId() {
        return R.xml.regional_preferences_measurement_system;
+42 −0
Original line number Diff line number Diff line
@@ -18,9 +18,18 @@ package com.android.settings.regionalpreferences;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat;
import androidx.preference.PreferenceRecyclerViewAccessibilityDelegate;
import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
@@ -31,6 +40,7 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.search.SearchIndexable;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/** Main fragment to display temperature preferences. */
@@ -54,6 +64,38 @@ public class TemperatureUnitFragment extends DashboardFragment {
        }
    }

    @NonNull
    @Override
    public RecyclerView onCreateRecyclerView(
            @NonNull LayoutInflater inflater, @NonNull ViewGroup parent,
            @Nullable Bundle savedInstanceState) {

        // Talkback shouldn't announce in list numbers
        final RecyclerView recyclerView =
                super.onCreateRecyclerView(inflater, parent, savedInstanceState);
        recyclerView.setAccessibilityDelegateCompat(
            new PreferenceRecyclerViewAccessibilityDelegate(recyclerView) {
                    @Override
                    public void onInitializeAccessibilityNodeInfo(@NonNull View host,
                            @NonNull AccessibilityNodeInfoCompat info) {
                        super.onInitializeAccessibilityNodeInfo(host, info);
                        int availableCount = (int) getPreferenceControllers()
                                .stream()
                                .flatMap(Collection::stream)
                                .filter(AbstractPreferenceController::isAvailable)
                                .count();
                        info.setCollectionInfo(
                                CollectionInfoCompat.obtain(
                                        /*rowCount=*/availableCount,
                                        /*columnCount=*/1,
                                        /*hierarchical=*/false,
                                        CollectionInfoCompat.SELECTION_MODE_SINGLE)
                        );
                    }
            });
        return recyclerView;
    }

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