diff --git a/res/xml/power_usage_advanced.xml b/res/xml/power_usage_advanced.xml index 0d8925250c6..2a1a23c78fe 100644 --- a/res/xml/power_usage_advanced.xml +++ b/res/xml/power_usage_advanced.xml @@ -38,7 +38,7 @@ - - + diff --git a/src/com/android/settings/fuelgauge/batteryusage/AccessibilityFocusablePreferenceCategory.java b/src/com/android/settings/fuelgauge/batteryusage/AccessibilityFocusablePreferenceCategory.java deleted file mode 100644 index f215aae7dc2..00000000000 --- a/src/com/android/settings/fuelgauge/batteryusage/AccessibilityFocusablePreferenceCategory.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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(); - } -} diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java index 004c8bf6638..d9ac14ef180 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java @@ -296,6 +296,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll mDailyChartIndex = trapezoidIndex; mHourlyChartIndex = BatteryChartViewModel.SELECTED_INDEX_ALL; refreshUi(); + mHandler.post(() -> mDailyChartView.announceForAccessibility( + getAccessibilityAnnounceMessage())); mMetricsFeatureProvider.action( mPrefContext, trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL @@ -311,6 +313,8 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll Log.d(TAG, "onHourlyChartSelect:" + trapezoidIndex); mHourlyChartIndex = trapezoidIndex; refreshUi(); + mHandler.post(() -> mHourlyChartView.announceForAccessibility( + getAccessibilityAnnounceMessage())); mMetricsFeatureProvider.action( mPrefContext, trapezoidIndex == BatteryChartViewModel.SELECTED_INDEX_ALL @@ -439,6 +443,15 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll return String.format("%s %s", selectedDayText, selectedHourText); } + private String getAccessibilityAnnounceMessage() { + final String slotInformation = getSlotInformation(); + return slotInformation == null + ? mPrefContext.getString( + R.string.battery_usage_breakdown_title_since_last_full_charge) + : mPrefContext.getString( + R.string.battery_usage_breakdown_title_for_slot, slotInformation); + } + private void animateBatteryChartViewGroup() { if (mBatteryChartViewGroup != null && mBatteryChartViewGroup.getAlpha() == 0) { mBatteryChartViewGroup.animate().alpha(1f).setDuration(FADE_IN_ANIMATION_DURATION) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java index 34a37e3d901..d44f2669c1d 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java @@ -27,6 +27,7 @@ import android.view.View; import android.widget.AdapterView; import androidx.preference.Preference; +import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceGroup; import androidx.preference.PreferenceScreen; @@ -74,7 +75,7 @@ public class BatteryUsageBreakdownController extends BasePreferenceController @VisibleForTesting Context mPrefContext; @VisibleForTesting - AccessibilityFocusablePreferenceCategory mRootPreference; + PreferenceCategory mRootPreference; @VisibleForTesting SpinnerPreference mSpinnerPreference; @VisibleForTesting @@ -203,9 +204,6 @@ public class BatteryUsageBreakdownController extends BasePreferenceController : mPrefContext.getString( R.string.battery_usage_breakdown_title_for_slot, slotTimestamp)); mRootPreference.setVisible(true); - mHandler.post(() -> { - mRootPreference.requestAccessibilityFocus(); - }); } private void showFooterPreference(boolean isAllBatteryUsageEmpty, String slotTimestamp) {