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

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

Merge "Set screenrecord a11y live region mode" into rvc-dev

parents 8ffd77a2 a5af2401
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -38,6 +38,7 @@ import android.service.notification.ZenModeConfig;
import android.telecom.TelecomManager;
import android.telecom.TelecomManager;
import android.text.format.DateFormat;
import android.text.format.DateFormat;
import android.util.Log;
import android.util.Log;
import android.view.View;


import androidx.lifecycle.Observer;
import androidx.lifecycle.Observer;


@@ -677,12 +678,18 @@ public class PhoneStatusBarPolicy
        }
        }
        mIconController.setIcon(mSlotScreenRecord, resourceId, description);
        mIconController.setIcon(mSlotScreenRecord, resourceId, description);
        mIconController.setIconVisibility(mSlotScreenRecord, true);
        mIconController.setIconVisibility(mSlotScreenRecord, true);
        // Set as assertive so talkback will announce the countdown
        mIconController.setIconAccessibilityLiveRegion(mSlotScreenRecord,
                View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE);
    }
    }


    @Override
    @Override
    public void onCountdownEnd() {
    public void onCountdownEnd() {
        if (DEBUG) Log.d(TAG, "screenrecord: hiding icon during countdown");
        if (DEBUG) Log.d(TAG, "screenrecord: hiding icon during countdown");
        mHandler.post(() -> mIconController.setIconVisibility(mSlotScreenRecord, false));
        mHandler.post(() -> mIconController.setIconVisibility(mSlotScreenRecord, false));
        // Reset talkback priority
        mIconController.setIconAccessibilityLiveRegion(mSlotScreenRecord,
                View.ACCESSIBILITY_LIVE_REGION_NONE);
    }
    }


    @Override
    @Override
+9 −0
Original line number Original line Diff line number Diff line
@@ -67,6 +67,15 @@ public interface StatusBarIconController {
    public void setSignalIcon(String slot, WifiIconState state);
    public void setSignalIcon(String slot, WifiIconState state);
    public void setMobileIcons(String slot, List<MobileIconState> states);
    public void setMobileIcons(String slot, List<MobileIconState> states);
    public void setIconVisibility(String slot, boolean b);
    public void setIconVisibility(String slot, boolean b);

    /**
     * Sets the live region mode for the icon
     * @see android.view.View#setAccessibilityLiveRegion(int)
     * @param slot Icon slot to set region for
     * @param accessibilityLiveRegion live region mode for the icon
     */
    void setIconAccessibilityLiveRegion(String slot, int accessibilityLiveRegion);

    /**
    /**
     * If you don't know what to pass for `tag`, either remove all icons for slot, or use
     * If you don't know what to pass for `tag`, either remove all icons for slot, or use
     * TAG_PRIMARY to refer to the first icon at a given slot.
     * TAG_PRIMARY to refer to the first icon at a given slot.
+16 −0
Original line number Original line Diff line number Diff line
@@ -265,6 +265,22 @@ public class StatusBarIconControllerImpl extends StatusBarIconList implements Tu
        handleSet(index, holder);
        handleSet(index, holder);
    }
    }


    @Override
    public void setIconAccessibilityLiveRegion(String slotName, int accessibilityLiveRegion) {
        Slot slot = getSlot(slotName);
        if (!slot.hasIconsInSlot()) {
            return;
        }

        int slotIndex = getSlotIndex(slotName);
        List<StatusBarIconHolder> iconsToUpdate = slot.getHolderListInViewOrder();
        for (StatusBarIconHolder holder : iconsToUpdate) {
            int viewIndex = getViewIndex(slotIndex, holder.getTag());
            mIconGroups.forEach(l -> l.mGroup.getChildAt(viewIndex)
                    .setAccessibilityLiveRegion(accessibilityLiveRegion));
        }
    }

    public void removeIcon(String slot) {
    public void removeIcon(String slot) {
        removeAllIconsForSlot(slot);
        removeAllIconsForSlot(slot);
    }
    }
+5 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
import com.android.systemui.statusbar.phone.StatusBarIconController.IconManager;
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.MobileIconState;
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;
import com.android.systemui.statusbar.phone.StatusBarSignalPolicy.WifiIconState;

import java.util.List;
import java.util.List;


public class FakeStatusBarIconController extends BaseLeakChecker<IconManager>
public class FakeStatusBarIconController extends BaseLeakChecker<IconManager>
@@ -75,4 +76,8 @@ public class FakeStatusBarIconController extends BaseLeakChecker<IconManager>
    public void removeAllIconsForSlot(String slot) {
    public void removeAllIconsForSlot(String slot) {
    }
    }


    @Override
    public void setIconAccessibilityLiveRegion(String slot, int mode) {
    }

}
}