Merge "Alternate method for adding dismiss in talkback" into nyc-dev

This commit is contained in:
Sid Soundararajan
2016-05-25 22:23:04 +00:00
committed by Android (Google) Code Review
5 changed files with 48 additions and 16 deletions

View File

@@ -40,4 +40,16 @@
android:focusable="true" android:focusable="true"
android:visibility="visible" /> 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> </com.android.systemui.recents.tv.views.RecentsTvView>

View File

@@ -50,7 +50,6 @@
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/recents_tv_dismiss_icon_top_margin" android:layout_marginTop="@dimen/recents_tv_dismiss_icon_top_margin"
android:layout_marginBottom="@dimen/recents_tv_dismiss_icon_bottom_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:alpha="@integer/dismiss_unselected_alpha"
android:src="@drawable/recents_tv_dismiss_icon" /> android:src="@drawable/recents_tv_dismiss_icon" />
<TextView <TextView

View File

@@ -388,6 +388,26 @@ public class RecentsTvActivity extends Activity implements OnPreDrawListener {
mTaskStackHorizontalGridView.setSelectedPosition(0); 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(); updatePipUI();
} }

View File

@@ -54,6 +54,7 @@ public class RecentsTvView extends FrameLayout {
private TaskStack mStack; private TaskStack mStack;
private TaskStackHorizontalGridView mTaskStackHorizontalView; private TaskStackHorizontalGridView mTaskStackHorizontalView;
private View mEmptyView; private View mEmptyView;
private View mDismissPlaceholder;
private RecentsRowFocusAnimationHolder mEmptyViewFocusAnimationHolder; private RecentsRowFocusAnimationHolder mEmptyViewFocusAnimationHolder;
private boolean mAwaitingFirstLayout = true; private boolean mAwaitingFirstLayout = true;
private Rect mSystemInsets = new Rect(); private Rect mSystemInsets = new Rect();
@@ -86,6 +87,12 @@ public class RecentsTvView extends FrameLayout {
mTransitionHelper = new RecentsTvTransitionHelper(mContext, mHandler); mTransitionHelper = new RecentsTvTransitionHelper(mContext, mHandler);
} }
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mDismissPlaceholder = findViewById(R.id.dismiss_placeholder);
}
public void setTaskStack(TaskStack stack) { public void setTaskStack(TaskStack stack) {
RecentsConfiguration config = Recents.getConfiguration(); RecentsConfiguration config = Recents.getConfiguration();
RecentsActivityLaunchState launchState = config.getLaunchState(); RecentsActivityLaunchState launchState = config.getLaunchState();
@@ -198,6 +205,9 @@ public class RecentsTvView extends FrameLayout {
public void showEmptyView() { public void showEmptyView() {
mEmptyView.setVisibility(View.VISIBLE); mEmptyView.setVisibility(View.VISIBLE);
mTaskStackHorizontalView.setVisibility(View.GONE); mTaskStackHorizontalView.setVisibility(View.GONE);
if (Recents.getSystemServices().isTouchExplorationEnabled()) {
mDismissPlaceholder.setVisibility(View.GONE);
}
} }
/** /**
@@ -206,6 +216,9 @@ public class RecentsTvView extends FrameLayout {
public void hideEmptyView() { public void hideEmptyView() {
mEmptyView.setVisibility(View.GONE); mEmptyView.setVisibility(View.GONE);
mTaskStackHorizontalView.setVisibility(View.VISIBLE); mTaskStackHorizontalView.setVisibility(View.VISIBLE);
if (Recents.getSystemServices().isTouchExplorationEnabled()) {
mDismissPlaceholder.setVisibility(View.VISIBLE);
}
} }
/** /**

View File

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