189 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.recyclerview.widget;
 | |
| 
 | |
| import android.os.Bundle;
 | |
| import android.view.View;
 | |
| import android.view.ViewGroup;
 | |
| import android.view.accessibility.AccessibilityEvent;
 | |
| import androidx.core.view.AccessibilityDelegateCompat;
 | |
| import androidx.core.view.ViewCompat;
 | |
| import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
 | |
| import androidx.core.view.accessibility.AccessibilityNodeProviderCompat;
 | |
| import java.util.Map;
 | |
| import java.util.WeakHashMap;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class RecyclerViewAccessibilityDelegate extends AccessibilityDelegateCompat {
 | |
|     private final ItemDelegate mItemDelegate;
 | |
|     final RecyclerView mRecyclerView;
 | |
| 
 | |
|     public AccessibilityDelegateCompat getItemDelegate() {
 | |
|         return this.mItemDelegate;
 | |
|     }
 | |
| 
 | |
|     public RecyclerViewAccessibilityDelegate(RecyclerView recyclerView) {
 | |
|         this.mRecyclerView = recyclerView;
 | |
|         AccessibilityDelegateCompat itemDelegate = getItemDelegate();
 | |
|         if (itemDelegate != null && (itemDelegate instanceof ItemDelegate)) {
 | |
|             this.mItemDelegate = (ItemDelegate) itemDelegate;
 | |
|         } else {
 | |
|             this.mItemDelegate = new ItemDelegate(this);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     boolean shouldIgnore() {
 | |
|         return this.mRecyclerView.hasPendingAdapterUpdates();
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|     public boolean performAccessibilityAction(View view, int i, Bundle bundle) {
 | |
|         if (super.performAccessibilityAction(view, i, bundle)) {
 | |
|             return true;
 | |
|         }
 | |
|         if (shouldIgnore() || this.mRecyclerView.getLayoutManager() == null) {
 | |
|             return false;
 | |
|         }
 | |
|         return this.mRecyclerView.getLayoutManager().performAccessibilityAction(i, bundle);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|     public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
 | |
|         super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
 | |
|         if (shouldIgnore() || this.mRecyclerView.getLayoutManager() == null) {
 | |
|             return;
 | |
|         }
 | |
|         this.mRecyclerView.getLayoutManager().onInitializeAccessibilityNodeInfo(accessibilityNodeInfoCompat);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|     public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
 | |
|         super.onInitializeAccessibilityEvent(view, accessibilityEvent);
 | |
|         if (!(view instanceof RecyclerView) || shouldIgnore()) {
 | |
|             return;
 | |
|         }
 | |
|         RecyclerView recyclerView = (RecyclerView) view;
 | |
|         if (recyclerView.getLayoutManager() != null) {
 | |
|             recyclerView.getLayoutManager().onInitializeAccessibilityEvent(accessibilityEvent);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public static class ItemDelegate extends AccessibilityDelegateCompat {
 | |
|         private Map<View, AccessibilityDelegateCompat> mOriginalItemDelegates = new WeakHashMap();
 | |
|         final RecyclerViewAccessibilityDelegate mRecyclerViewDelegate;
 | |
| 
 | |
|         public ItemDelegate(RecyclerViewAccessibilityDelegate recyclerViewAccessibilityDelegate) {
 | |
|             this.mRecyclerViewDelegate = recyclerViewAccessibilityDelegate;
 | |
|         }
 | |
| 
 | |
|         void saveOriginalDelegate(View view) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegate = ViewCompat.getAccessibilityDelegate(view);
 | |
|             if (accessibilityDelegate == null || accessibilityDelegate == this) {
 | |
|                 return;
 | |
|             }
 | |
|             this.mOriginalItemDelegates.put(view, accessibilityDelegate);
 | |
|         }
 | |
| 
 | |
|         AccessibilityDelegateCompat getAndRemoveOriginalDelegateForItem(View view) {
 | |
|             return this.mOriginalItemDelegates.remove(view);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
 | |
|             if (!this.mRecyclerViewDelegate.shouldIgnore() && this.mRecyclerViewDelegate.mRecyclerView.getLayoutManager() != null) {
 | |
|                 this.mRecyclerViewDelegate.mRecyclerView.getLayoutManager().onInitializeAccessibilityNodeInfoForItem(view, accessibilityNodeInfoCompat);
 | |
|                 AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|                 if (accessibilityDelegateCompat != null) {
 | |
|                     accessibilityDelegateCompat.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
 | |
|                     return;
 | |
|                 } else {
 | |
|                     super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
 | |
|                     return;
 | |
|                 }
 | |
|             }
 | |
|             super.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public boolean performAccessibilityAction(View view, int i, Bundle bundle) {
 | |
|             if (!this.mRecyclerViewDelegate.shouldIgnore() && this.mRecyclerViewDelegate.mRecyclerView.getLayoutManager() != null) {
 | |
|                 AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|                 if (accessibilityDelegateCompat != null) {
 | |
|                     if (accessibilityDelegateCompat.performAccessibilityAction(view, i, bundle)) {
 | |
|                         return true;
 | |
|                     }
 | |
|                 } else if (super.performAccessibilityAction(view, i, bundle)) {
 | |
|                     return true;
 | |
|                 }
 | |
|                 return this.mRecyclerViewDelegate.mRecyclerView.getLayoutManager().performAccessibilityActionForItem(view, i, bundle);
 | |
|             }
 | |
|             return super.performAccessibilityAction(view, i, bundle);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public void sendAccessibilityEvent(View view, int i) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 accessibilityDelegateCompat.sendAccessibilityEvent(view, i);
 | |
|             } else {
 | |
|                 super.sendAccessibilityEvent(view, i);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public void sendAccessibilityEventUnchecked(View view, AccessibilityEvent accessibilityEvent) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 accessibilityDelegateCompat.sendAccessibilityEventUnchecked(view, accessibilityEvent);
 | |
|             } else {
 | |
|                 super.sendAccessibilityEventUnchecked(view, accessibilityEvent);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public boolean dispatchPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 return accessibilityDelegateCompat.dispatchPopulateAccessibilityEvent(view, accessibilityEvent);
 | |
|             }
 | |
|             return super.dispatchPopulateAccessibilityEvent(view, accessibilityEvent);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public void onPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 accessibilityDelegateCompat.onPopulateAccessibilityEvent(view, accessibilityEvent);
 | |
|             } else {
 | |
|                 super.onPopulateAccessibilityEvent(view, accessibilityEvent);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 accessibilityDelegateCompat.onInitializeAccessibilityEvent(view, accessibilityEvent);
 | |
|             } else {
 | |
|                 super.onInitializeAccessibilityEvent(view, accessibilityEvent);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public boolean onRequestSendAccessibilityEvent(ViewGroup viewGroup, View view, AccessibilityEvent accessibilityEvent) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(viewGroup);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 return accessibilityDelegateCompat.onRequestSendAccessibilityEvent(viewGroup, view, accessibilityEvent);
 | |
|             }
 | |
|             return super.onRequestSendAccessibilityEvent(viewGroup, view, accessibilityEvent);
 | |
|         }
 | |
| 
 | |
|         @Override // androidx.core.view.AccessibilityDelegateCompat
 | |
|         public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(View view) {
 | |
|             AccessibilityDelegateCompat accessibilityDelegateCompat = this.mOriginalItemDelegates.get(view);
 | |
|             if (accessibilityDelegateCompat != null) {
 | |
|                 return accessibilityDelegateCompat.getAccessibilityNodeProvider(view);
 | |
|             }
 | |
|             return super.getAccessibilityNodeProvider(view);
 | |
|         }
 | |
|     }
 | |
| }
 |