Files
rr3-apk/decompiled-community/sources/androidx/core/view/AccessibilityDelegateCompat.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

198 lines
9.2 KiB
Java

package androidx.core.view;
import android.os.Bundle;
import android.text.style.ClickableSpan;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.core.R;
import androidx.core.view.accessibility.AccessibilityClickableSpanCompat;
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
import androidx.core.view.accessibility.AccessibilityNodeProviderCompat;
import java.lang.ref.WeakReference;
import java.util.Collections;
import java.util.List;
/* loaded from: classes.dex */
public class AccessibilityDelegateCompat {
private static final View.AccessibilityDelegate DEFAULT_DELEGATE = new View.AccessibilityDelegate();
private final View.AccessibilityDelegate mBridge;
private final View.AccessibilityDelegate mOriginalDelegate;
public View.AccessibilityDelegate getBridge() {
return this.mBridge;
}
public static final class AccessibilityDelegateAdapter extends View.AccessibilityDelegate {
final AccessibilityDelegateCompat mCompat;
public AccessibilityDelegateAdapter(AccessibilityDelegateCompat accessibilityDelegateCompat) {
this.mCompat = accessibilityDelegateCompat;
}
@Override // android.view.View.AccessibilityDelegate
public boolean dispatchPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
return this.mCompat.dispatchPopulateAccessibilityEvent(view, accessibilityEvent);
}
@Override // android.view.View.AccessibilityDelegate
public void onInitializeAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
this.mCompat.onInitializeAccessibilityEvent(view, accessibilityEvent);
}
@Override // android.view.View.AccessibilityDelegate
public void onInitializeAccessibilityNodeInfo(View view, AccessibilityNodeInfo accessibilityNodeInfo) {
AccessibilityNodeInfoCompat wrap = AccessibilityNodeInfoCompat.wrap(accessibilityNodeInfo);
wrap.setScreenReaderFocusable(ViewCompat.isScreenReaderFocusable(view));
wrap.setHeading(ViewCompat.isAccessibilityHeading(view));
wrap.setPaneTitle(ViewCompat.getAccessibilityPaneTitle(view));
wrap.setStateDescription(ViewCompat.getStateDescription(view));
this.mCompat.onInitializeAccessibilityNodeInfo(view, wrap);
wrap.addSpansToExtras(accessibilityNodeInfo.getText(), view);
List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> actionList = AccessibilityDelegateCompat.getActionList(view);
for (int i = 0; i < actionList.size(); i++) {
wrap.addAction(actionList.get(i));
}
}
@Override // android.view.View.AccessibilityDelegate
public void onPopulateAccessibilityEvent(View view, AccessibilityEvent accessibilityEvent) {
this.mCompat.onPopulateAccessibilityEvent(view, accessibilityEvent);
}
@Override // android.view.View.AccessibilityDelegate
public boolean onRequestSendAccessibilityEvent(ViewGroup viewGroup, View view, AccessibilityEvent accessibilityEvent) {
return this.mCompat.onRequestSendAccessibilityEvent(viewGroup, view, accessibilityEvent);
}
@Override // android.view.View.AccessibilityDelegate
public void sendAccessibilityEvent(View view, int i) {
this.mCompat.sendAccessibilityEvent(view, i);
}
@Override // android.view.View.AccessibilityDelegate
public void sendAccessibilityEventUnchecked(View view, AccessibilityEvent accessibilityEvent) {
this.mCompat.sendAccessibilityEventUnchecked(view, accessibilityEvent);
}
@Override // android.view.View.AccessibilityDelegate
public AccessibilityNodeProvider getAccessibilityNodeProvider(View view) {
AccessibilityNodeProviderCompat accessibilityNodeProvider = this.mCompat.getAccessibilityNodeProvider(view);
if (accessibilityNodeProvider != null) {
return (AccessibilityNodeProvider) accessibilityNodeProvider.getProvider();
}
return null;
}
@Override // android.view.View.AccessibilityDelegate
public boolean performAccessibilityAction(View view, int i, Bundle bundle) {
return this.mCompat.performAccessibilityAction(view, i, bundle);
}
}
public AccessibilityDelegateCompat() {
this(DEFAULT_DELEGATE);
}
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX})
public AccessibilityDelegateCompat(@NonNull View.AccessibilityDelegate accessibilityDelegate) {
this.mOriginalDelegate = accessibilityDelegate;
this.mBridge = new AccessibilityDelegateAdapter(this);
}
public void sendAccessibilityEvent(@NonNull View view, int i) {
this.mOriginalDelegate.sendAccessibilityEvent(view, i);
}
public void sendAccessibilityEventUnchecked(@NonNull View view, @NonNull AccessibilityEvent accessibilityEvent) {
this.mOriginalDelegate.sendAccessibilityEventUnchecked(view, accessibilityEvent);
}
public boolean dispatchPopulateAccessibilityEvent(@NonNull View view, @NonNull AccessibilityEvent accessibilityEvent) {
return this.mOriginalDelegate.dispatchPopulateAccessibilityEvent(view, accessibilityEvent);
}
public void onPopulateAccessibilityEvent(@NonNull View view, @NonNull AccessibilityEvent accessibilityEvent) {
this.mOriginalDelegate.onPopulateAccessibilityEvent(view, accessibilityEvent);
}
public void onInitializeAccessibilityEvent(@NonNull View view, @NonNull AccessibilityEvent accessibilityEvent) {
this.mOriginalDelegate.onInitializeAccessibilityEvent(view, accessibilityEvent);
}
public void onInitializeAccessibilityNodeInfo(@NonNull View view, @NonNull AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
this.mOriginalDelegate.onInitializeAccessibilityNodeInfo(view, accessibilityNodeInfoCompat.unwrap());
}
public boolean onRequestSendAccessibilityEvent(@NonNull ViewGroup viewGroup, @NonNull View view, @NonNull AccessibilityEvent accessibilityEvent) {
return this.mOriginalDelegate.onRequestSendAccessibilityEvent(viewGroup, view, accessibilityEvent);
}
@Nullable
public AccessibilityNodeProviderCompat getAccessibilityNodeProvider(@NonNull View view) {
AccessibilityNodeProvider accessibilityNodeProvider = this.mOriginalDelegate.getAccessibilityNodeProvider(view);
if (accessibilityNodeProvider != null) {
return new AccessibilityNodeProviderCompat(accessibilityNodeProvider);
}
return null;
}
public boolean performAccessibilityAction(@NonNull View view, int i, @Nullable Bundle bundle) {
List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> actionList = getActionList(view);
boolean z = false;
int i2 = 0;
while (true) {
if (i2 >= actionList.size()) {
break;
}
AccessibilityNodeInfoCompat.AccessibilityActionCompat accessibilityActionCompat = actionList.get(i2);
if (accessibilityActionCompat.getId() == i) {
z = accessibilityActionCompat.perform(view, bundle);
break;
}
i2++;
}
if (!z) {
z = this.mOriginalDelegate.performAccessibilityAction(view, i, bundle);
}
return (z || i != R.id.accessibility_action_clickable_span || bundle == null) ? z : performClickableSpanAction(bundle.getInt(AccessibilityClickableSpanCompat.SPAN_ID, -1), view);
}
private boolean performClickableSpanAction(int i, View view) {
WeakReference weakReference;
SparseArray sparseArray = (SparseArray) view.getTag(R.id.tag_accessibility_clickable_spans);
if (sparseArray == null || (weakReference = (WeakReference) sparseArray.get(i)) == null) {
return false;
}
ClickableSpan clickableSpan = (ClickableSpan) weakReference.get();
if (!isSpanStillValid(clickableSpan, view)) {
return false;
}
clickableSpan.onClick(view);
return true;
}
private boolean isSpanStillValid(ClickableSpan clickableSpan, View view) {
if (clickableSpan != null) {
ClickableSpan[] clickableSpans = AccessibilityNodeInfoCompat.getClickableSpans(view.createAccessibilityNodeInfo().getText());
for (int i = 0; clickableSpans != null && i < clickableSpans.length; i++) {
if (clickableSpan.equals(clickableSpans[i])) {
return true;
}
}
}
return false;
}
public static List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> getActionList(View view) {
List<AccessibilityNodeInfoCompat.AccessibilityActionCompat> list = (List) view.getTag(R.id.tag_accessibility_actions);
return list == null ? Collections.emptyList() : list;
}
}