Merge "Add Dismiss action in Talkback Local Context Menu" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-04-14 08:39:57 +00:00
committed by Android (Google) Code Review
3 changed files with 32 additions and 7 deletions

View File

@@ -19,7 +19,8 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/ContextualCardStyle"> style="@style/ContextualCardStyle"
android:importantForAccessibility="no">
<include layout="@layout/dismissal_swipe_background"/> <include layout="@layout/dismissal_swipe_background"/>
@@ -28,10 +29,9 @@
android:theme="@style/Theme.Settings.ContextualCard" android:theme="@style/Theme.Settings.ContextualCard"
style="@style/ContextualCardSliceViewStyle" style="@style/ContextualCardSliceViewStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"/>
android:importantForAccessibility="no"/>
<!--dismissal view--> <!--dismissal view -->
<include layout="@layout/contextual_card_dismissal_view"/> <include layout="@layout/contextual_card_dismissal_view"/>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>

View File

@@ -19,14 +19,14 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/ContextualCardStyle"> style="@style/ContextualCardStyle"
android:importantForAccessibility="no">
<androidx.slice.widget.SliceView <androidx.slice.widget.SliceView
android:id="@+id/slice_view" android:id="@+id/slice_view"
android:theme="@style/Theme.Settings.ContextualCard" android:theme="@style/Theme.Settings.ContextualCard"
style="@style/ContextualCardSliceViewStyle" style="@style/ContextualCardSliceViewStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"/>
android:importantForAccessibility="no"/>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>

View File

@@ -21,6 +21,7 @@ import static android.app.slice.Slice.HINT_ERROR;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Log; import android.util.Log;
@@ -29,6 +30,9 @@ import android.widget.Button;
import androidx.annotation.LayoutRes; import androidx.annotation.LayoutRes;
import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting;
import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleOwner;
@@ -167,6 +171,27 @@ public class SliceContextualCardRenderer implements ContextualCardRenderer, Life
resetCardView(holder); resetCardView(holder);
mSliceLiveDataMap.get(card.getSliceUri()).removeObservers(mLifecycleOwner); mSliceLiveDataMap.get(card.getSliceUri()).removeObservers(mLifecycleOwner);
}); });
ViewCompat.setAccessibilityDelegate(getInitialView(holder),
new AccessibilityDelegateCompat() {
@Override
public void onInitializeAccessibilityNodeInfo(View host,
AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host, info);
info.addAction(AccessibilityNodeInfoCompat.ACTION_DISMISS);
info.setDismissable(true);
}
@Override
public boolean performAccessibilityAction(View host, int action, Bundle args) {
if (action == AccessibilityNodeInfoCompat.ACTION_DISMISS) {
mControllerRendererPool.getController(mContext,
card.getCardType()).onDismissed(card);
}
return super.performAccessibilityAction(host, action, args);
}
});
} }
@OnLifecycleEvent(Lifecycle.Event.ON_STOP) @OnLifecycleEvent(Lifecycle.Event.ON_STOP)