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

Commit 17d29b6d authored by Sid Soundararajan's avatar Sid Soundararajan
Browse files

Alternate method for adding dismiss in talkback

This is an alternate solution. Not sure if this is better than
the current solution.

BUG: 28594452
Change-Id: I08b4ca8741ceb3491950ba779510b08775bd0ee7
parent a3cb77a9
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -40,4 +40,16 @@
        android:focusable="true"
        android:visibility="visible" />

    <!-- Placeholder to dismiss during talkback. -->
    <ImageView
            android:id="@+id/dismiss_placeholder"
            android:layout_width="@dimen/recents_tv_dismiss_icon_size"
            android:layout_height="@dimen/recents_tv_dismiss_icon_size"
            android:layout_gravity="bottom|center_horizontal"
            android:layout_marginBottom="50dp"
            android:src="@drawable/ic_cancel_white_24dp"
            android:contentDescription="@string/status_bar_accessibility_dismiss_recents"
            android:focusable="true"
            android:visibility="gone" />

</com.android.systemui.recents.tv.views.RecentsTvView>
+0 −1
Original line number Diff line number Diff line
@@ -50,7 +50,6 @@
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="@dimen/recents_tv_dismiss_icon_top_margin"
            android:layout_marginBottom="@dimen/recents_tv_dismiss_icon_bottom_margin"
            android:contentDescription="@string/status_bar_accessibility_dismiss_recents"
            android:alpha="@integer/dismiss_unselected_alpha"
            android:src="@drawable/recents_tv_dismiss_icon" />
    <TextView
+20 −0
Original line number Diff line number Diff line
@@ -388,6 +388,26 @@ public class RecentsTvActivity extends Activity implements OnPreDrawListener {
            mTaskStackHorizontalGridView.setSelectedPosition(0);
        }

        View dismissPlaceholder = findViewById(R.id.dismiss_placeholder);
        if (ssp.isTouchExplorationEnabled()) {
            dismissPlaceholder.setAccessibilityTraversalBefore(R.id.task_list);
            dismissPlaceholder.setAccessibilityTraversalAfter(R.id.dismiss_placeholder);
            mTaskStackHorizontalGridView.setAccessibilityTraversalAfter(R.id.dismiss_placeholder);
            mTaskStackHorizontalGridView.setAccessibilityTraversalBefore(R.id.pip);
            dismissPlaceholder.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mTaskStackHorizontalGridView.requestFocus();
                    mTaskStackHorizontalGridView.
                            sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
                    Task focusedTask = mTaskStackHorizontalGridView.getFocusedTask();
                    if (focusedTask != null) {
                        mTaskStackViewAdapter.removeTask(focusedTask);
                        EventBus.getDefault().send(new DeleteTaskDataEvent(focusedTask));
                    }
                }
            });
        }
        updatePipUI();
    }

+13 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ public class RecentsTvView extends FrameLayout {
    private TaskStack mStack;
    private TaskStackHorizontalGridView mTaskStackHorizontalView;
    private View mEmptyView;
    private View mDismissPlaceholder;
    private RecentsRowFocusAnimationHolder mEmptyViewFocusAnimationHolder;
    private boolean mAwaitingFirstLayout = true;
    private Rect mSystemInsets = new Rect();
@@ -86,6 +87,12 @@ public class RecentsTvView extends FrameLayout {
        mTransitionHelper = new RecentsTvTransitionHelper(mContext, mHandler);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        mDismissPlaceholder = findViewById(R.id.dismiss_placeholder);
    }

    public void setTaskStack(TaskStack stack) {
        RecentsConfiguration config = Recents.getConfiguration();
        RecentsActivityLaunchState launchState = config.getLaunchState();
@@ -198,6 +205,9 @@ public class RecentsTvView extends FrameLayout {
    public void showEmptyView() {
        mEmptyView.setVisibility(View.VISIBLE);
        mTaskStackHorizontalView.setVisibility(View.GONE);
        if (Recents.getSystemServices().isTouchExplorationEnabled()) {
            mDismissPlaceholder.setVisibility(View.GONE);
        }
    }

    /**
@@ -206,6 +216,9 @@ public class RecentsTvView extends FrameLayout {
    public void hideEmptyView() {
        mEmptyView.setVisibility(View.GONE);
        mTaskStackHorizontalView.setVisibility(View.VISIBLE);
        if (Recents.getSystemServices().isTouchExplorationEnabled()) {
            mDismissPlaceholder.setVisibility(View.VISIBLE);
        }
    }

    /**
+3 −15
Original line number Diff line number Diff line
@@ -88,22 +88,10 @@ public class TaskCardView extends LinearLayout {
                R.dimen.recents_task_view_rounded_corners_radius);
        mRecentsRowFocusAnimationHolder = new RecentsRowFocusAnimationHolder(this, title);
        SystemServicesProxy ssp = Recents.getSystemServices();
        if (ssp.isTouchExplorationEnabled()) {
            mDismissIconView.setFocusable(true);
            mDismissIconView.setFocusableInTouchMode(true);
            mDismissIconView.setOnFocusChangeListener(new OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if (hasFocus) {
                        setDismissState(true);
                    } else {
                        setDismissState(false);
                    }
                }
            });
        if (!ssp.isTouchExplorationEnabled()) {
            mDismissIconView.setVisibility(VISIBLE);
        } else {
            mDismissIconView.setFocusable(false);
            mDismissIconView.setFocusableInTouchMode(false);
            mDismissIconView.setVisibility(GONE);
        }
        mViewFocusAnimator = new ViewFocusAnimator(this);
    }