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

Commit 023dc913 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Support accessibility for battery usage in U (1)"

parents 452d69e6 a52da7b5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@

    </PreferenceCategory>

    <PreferenceCategory
    <com.android.settings.fuelgauge.batteryusage.AccessibilityFocusablePreferenceCategory
        android:key="battery_usage_breakdown"
        settings:controller=
            "com.android.settings.fuelgauge.batteryusage.BatteryUsageBreakdownController"
@@ -58,5 +58,5 @@
            settings:isPreferenceVisible="false"
            settings:searchable="false" />

    </PreferenceCategory>
    </com.android.settings.fuelgauge.batteryusage.AccessibilityFocusablePreferenceCategory>
</PreferenceScreen>
+68 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 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.fuelgauge.batteryusage;

import android.content.Context;
import android.util.AttributeSet;
import android.view.accessibility.AccessibilityManager;

import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceViewHolder;

/**
 * Preference category that supports requesting accessibility focus.
 */
public class AccessibilityFocusablePreferenceCategory extends PreferenceCategory {
    private PreferenceViewHolder mView;

    public AccessibilityFocusablePreferenceCategory(Context context, AttributeSet attrs,
            int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    public AccessibilityFocusablePreferenceCategory(Context context, AttributeSet attrs,
            int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public AccessibilityFocusablePreferenceCategory(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public AccessibilityFocusablePreferenceCategory(Context context) {
        super(context);
    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder view) {
        super.onBindViewHolder(view);
        mView = view;
    }

    /**
     * Call this to try to give accessibility focus to the category title.
     */
    public void requestAccessibilityFocus() {
        if (mView == null || mView.itemView == null) {
            return;
        }
        if (!AccessibilityManager.getInstance(getContext()).isEnabled()) {
            return;
        }
        mView.itemView.requestAccessibilityFocus();
    }
}
+2 −3
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import android.view.View;
import android.widget.AdapterView;

import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;

@@ -75,7 +74,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
    @VisibleForTesting
    Context mPrefContext;
    @VisibleForTesting
    PreferenceCategory mRootPreference;
    AccessibilityFocusablePreferenceCategory mRootPreference;
    @VisibleForTesting
    SpinnerPreference mSpinnerPreference;
    @VisibleForTesting
@@ -193,7 +192,6 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
        showFooterPreference(isAllUsageDataEmpty, slotTimestamp);
    }

    // TODO: request accessibility focus on category title when slot selection updated.
    private void showCategoryTitle(String slotTimestamp) {
        mRootPreference.setTitle(slotTimestamp == null
                ? mPrefContext.getString(
@@ -201,6 +199,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
                : mPrefContext.getString(
                        R.string.battery_usage_breakdown_title_for_slot, slotTimestamp));
        mRootPreference.setVisible(true);
        mRootPreference.requestAccessibilityFocus();
    }

    private void showFooterPreference(boolean isAllBatteryUsageEmpty, String slotTimestamp) {