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

Commit 561d3f4d authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Add content description to volume button

Change-Id: I910139816a5d57acc72cf803d421b00c21564e38
Fixes: 72458451
Test: runtest systemui
parent 3924c917
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:background="?android:selectableItemBackgroundBorderless"
                android:contentDescription="@string/accessibility_output_chooser"
                style="@style/VolumeButtons"
                android:layout_centerVertical="true"
                android:src="@drawable/ic_swap"
+3 −0
Original line number Diff line number Diff line
@@ -1272,6 +1272,9 @@
    <!-- Content description for accessibility (not shown on the screen): volume dialog collapse button. [CHAR LIMIT=NONE] -->
    <string name="accessibility_volume_collapse">Collapse</string>

    <!-- content description for audio output chooser [CHAR LIMIT=NONE]-->
    <string name="accessibility_output_chooser">Switch output device</string>

    <!-- Screen pinning dialog title. -->
    <string name="screen_pinning_title">Screen is pinned</string>
    <!-- Screen pinning dialog description. -->
+27 −0
Original line number Diff line number Diff line
@@ -14,10 +14,14 @@

package com.android.systemui.statusbar.policy;

import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Context;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener;

import java.util.List;

/**
 * For mocking because AccessibilityManager is final for some reason...
 */
@@ -39,4 +43,27 @@ public class AccessibilityManagerWrapper implements
    public void removeCallback(AccessibilityServicesStateChangeListener listener) {
        mAccessibilityManager.removeAccessibilityServicesStateChangeListener(listener);
    }

    public void addAccessibilityStateChangeListener(
            AccessibilityManager.AccessibilityStateChangeListener listener) {
        mAccessibilityManager.addAccessibilityStateChangeListener(listener);
    }

    public void removeAccessibilityStateChangeListener(
            AccessibilityManager.AccessibilityStateChangeListener listener) {
        mAccessibilityManager.removeAccessibilityStateChangeListener(listener);
    }

    public boolean isEnabled() {
        return mAccessibilityManager.isEnabled();
    }

    public void sendAccessibilityEvent(AccessibilityEvent event) {
        mAccessibilityManager.sendAccessibilityEvent(event);
    }

    public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
            int feedbackTypeFlags) {
        return mAccessibilityManager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa
    private static final int DYNAMIC_STREAM_START_INDEX = 100;
    private static final int VIBRATE_HINT_DURATION = 50;

    private static final ArrayMap<Integer, Integer> STREAMS = new ArrayMap<>();
    static final ArrayMap<Integer, Integer> STREAMS = new ArrayMap<>();
    static {
        STREAMS.put(AudioSystem.STREAM_ALARM, R.string.stream_alarm);
        STREAMS.put(AudioSystem.STREAM_BLUETOOTH_SCO, R.string.stream_bluetooth_sco);
+10 −6
Original line number Diff line number Diff line
@@ -63,7 +63,6 @@ import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
import android.view.animation.DecelerateInterpolator;
import android.widget.ImageButton;
@@ -79,6 +78,7 @@ import com.android.systemui.plugins.VolumeDialog;
import com.android.systemui.plugins.VolumeDialogController;
import com.android.systemui.plugins.VolumeDialogController.State;
import com.android.systemui.plugins.VolumeDialogController.StreamState;
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;

import java.io.PrintWriter;
import java.util.ArrayList;
@@ -111,7 +111,7 @@ public class VolumeDialogImpl implements VolumeDialog {
    private ConfigurableTexts mConfigurableTexts;
    private final SparseBooleanArray mDynamic = new SparseBooleanArray();
    private final KeyguardManager mKeyguard;
    private final AccessibilityManager mAccessibilityMgr;
    private final AccessibilityManagerWrapper mAccessibilityMgr;
    private final Object mSafetyWarningLock = new Object();
    private final Object mOutputChooserLock = new Object();
    private final Accessibility mAccessibility = new Accessibility();
@@ -134,8 +134,7 @@ public class VolumeDialogImpl implements VolumeDialog {
        mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme);
        mController = Dependency.get(VolumeDialogController.class);
        mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
        mAccessibilityMgr =
                (AccessibilityManager) mContext.getSystemService(Context.ACCESSIBILITY_SERVICE);
        mAccessibilityMgr = Dependency.get(AccessibilityManagerWrapper.class);
        mActiveSliderTint = ColorStateList.valueOf(Utils.getColorAccent(mContext));
        mInactiveSliderTint = loadColorStateList(R.color.volume_slider_inactive);
    }
@@ -231,6 +230,10 @@ public class VolumeDialogImpl implements VolumeDialog {
        initRingerH();
    }

    protected ViewGroup getDialogView() {
        return mDialogView;
    }

    private ColorStateList loadColorStateList(int colorResId) {
        return ColorStateList.valueOf(mContext.getColor(colorResId));
    }
@@ -258,6 +261,7 @@ public class VolumeDialogImpl implements VolumeDialog {

    private void addRow(int stream, int iconRes, int iconMuteRes, boolean important,
            boolean defaultStream, boolean dynamic) {
        if (D.BUG) Slog.d(TAG, "Adding row for stream " + stream);
        VolumeRow row = new VolumeRow();
        initRow(row, stream, iconRes, iconMuteRes, important, defaultStream);
        int rowSize;
@@ -621,7 +625,7 @@ public class VolumeDialogImpl implements VolumeDialog {
        }
    }

    private void onStateChangedH(State state) {
    protected void onStateChangedH(State state) {
        mState = state;
        mDynamic.clear();
        // add any new dynamic rows
@@ -894,7 +898,7 @@ public class VolumeDialogImpl implements VolumeDialog {
            return ss.remoteLabel;
        }
        try {
            return mContext.getString(ss.name);
            return mContext.getResources().getString(ss.name);
        } catch (Resources.NotFoundException e) {
            Slog.e(TAG, "Can't find translation for stream " + ss);
            return "";
Loading