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

Commit 79141a12 authored by Hyunyoung Song's avatar Hyunyoung Song Committed by Vadim Tryshev
Browse files

Accessibility sugar for Recents

Adding various-pitch earcorns that depend on the scroll state and
position in the list notifications. This is for Talkback.

Bug: 72222505
Test: Manual
Change-Id: I99ffe553f7a20d057940197d97506bc1a14a193e
parent e47fc657
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -54,7 +54,9 @@ import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewDebug;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.ListView;

import com.android.launcher3.BaseActivity;
import com.android.launcher3.DeviceProfile;
@@ -1334,6 +1336,34 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
        }
    }

    @Override
    public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
        super.onInitializeAccessibilityNodeInfo(info);

        final AccessibilityNodeInfo.CollectionInfo
                collectionInfo = AccessibilityNodeInfo.CollectionInfo.obtain(
                1, getChildCount(), false,
                AccessibilityNodeInfo.CollectionInfo.SELECTION_MODE_NONE);
        info.setCollectionInfo(collectionInfo);
    }

    @Override
    public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
        super.onInitializeAccessibilityEvent(event);

        if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) {
            event.setFromIndex(getCurrentPage());
            event.setToIndex(getCurrentPage());
            event.setItemCount(getChildCount());
        }
    }

    @Override
    public CharSequence getAccessibilityClassName() {
        // To hear position-in-list related feedback from Talkback.
        return ListView.class.getName();
    }

    @Override
    protected boolean isPageOrderFlipped() {
        return true;
+7 −1
Original line number Diff line number Diff line
@@ -320,7 +320,13 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
            }
        }

        getRecentsView().addTaskAccessibilityActionsExtra(info);
        final RecentsView recentsView = getRecentsView();
        recentsView.addTaskAccessibilityActionsExtra(info);

        final AccessibilityNodeInfo.CollectionItemInfo itemInfo =
                AccessibilityNodeInfo.CollectionItemInfo.obtain(
                        0, 1, recentsView.indexOfChild(this), 1, false);
        info.setCollectionItemInfo(itemInfo);
    }

    @Override