com-dot-app-sancharsaathi-1-5-0.apk
Download file
package io.flutter.view;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Parcel;
import android.util.SparseArray;
import android.view.MotionEvent;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeProvider;
import android.view.accessibility.AccessibilityRecord;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
class AccessibilityViewEmbedder {
private static final String TAG = "AccessibilityBridge";
private final Map<View, Rect> embeddedViewToDisplayBounds;
private final SparseArray<c> flutterIdToOrigin = new SparseArray<>();
private int nextFlutterId;
private final Map<c, Integer> originToFlutterId;
private final b reflectionAccessors = new b();
private final View rootAccessibilityView;
public static class b {
/* renamed from: a reason: collision with root package name */
public final Method f10612a;
/* renamed from: b reason: collision with root package name */
public final Method f10613b;
/* renamed from: c reason: collision with root package name */
public final Method f10614c;
/* renamed from: d reason: collision with root package name */
public final Method f10615d;
/* renamed from: e reason: collision with root package name */
public final Field f10616e;
/* renamed from: f reason: collision with root package name */
public final Method f10617f;
public static int j(long j4) {
return (int) (j4 >> 32);
}
public static boolean k(long j4, int i4) {
return (j4 & (1 << i4)) != 0;
}
public static Long l(AccessibilityNodeInfo accessibilityNodeInfo) {
AccessibilityNodeInfo obtain = AccessibilityNodeInfo.obtain(accessibilityNodeInfo);
Parcel obtain2 = Parcel.obtain();
obtain2.setDataPosition(0);
obtain.writeToParcel(obtain2, 0);
obtain2.setDataPosition(0);
long readLong = obtain2.readLong();
if (k(readLong, 0)) {
obtain2.readInt();
}
if (k(readLong, 1)) {
obtain2.readLong();
}
if (k(readLong, 2)) {
obtain2.readInt();
}
Long valueOf = k(readLong, 3) ? Long.valueOf(obtain2.readLong()) : null;
obtain2.recycle();
return valueOf;
}
public final Long f(AccessibilityNodeInfo accessibilityNodeInfo, int i4) {
Method method = this.f10615d;
if (method == null && (this.f10616e == null || this.f10617f == null)) {
return null;
}
if (method != null) {
try {
return (Long) method.invoke(accessibilityNodeInfo, new Object[]{Integer.valueOf(i4)});
} catch (IllegalAccessException e4) {
M2.b.h(AccessibilityViewEmbedder.TAG, "Failed to access getChildId method.", e4);
return null;
} catch (InvocationTargetException e5) {
M2.b.h(AccessibilityViewEmbedder.TAG, "The getChildId method threw an exception when invoked.", e5);
return null;
}
} else {
try {
Long l4 = (Long) this.f10617f.invoke(this.f10616e.get(accessibilityNodeInfo), new Object[]{Integer.valueOf(i4)});
l4.longValue();
return l4;
} catch (IllegalAccessException e6) {
M2.b.h(AccessibilityViewEmbedder.TAG, "Failed to access longArrayGetIndex method or the childNodeId field.", e6);
return null;
} catch (ArrayIndexOutOfBoundsException | InvocationTargetException e7) {
M2.b.h(AccessibilityViewEmbedder.TAG, "The longArrayGetIndex method threw an exception when invoked.", e7);
return null;
}
}
}
public final Long g(AccessibilityNodeInfo accessibilityNodeInfo) {
Method method = this.f10613b;
if (method != null) {
try {
Long l4 = (Long) method.invoke(accessibilityNodeInfo, (Object[]) null);
l4.longValue();
return l4;
} catch (IllegalAccessException e4) {
M2.b.h(AccessibilityViewEmbedder.TAG, "Failed to access getParentNodeId method.", e4);
} catch (InvocationTargetException e5) {
M2.b.h(AccessibilityViewEmbedder.TAG, "The getParentNodeId method threw an exception when invoked.", e5);
}
}
return l(accessibilityNodeInfo);
}
public final Long h(AccessibilityRecord accessibilityRecord) {
Method method = this.f10614c;
if (method == null) {
return null;
}
try {
return (Long) method.invoke(accessibilityRecord, (Object[]) null);
} catch (IllegalAccessException e4) {
M2.b.h(AccessibilityViewEmbedder.TAG, "Failed to access the getRecordSourceNodeId method.", e4);
return null;
} catch (InvocationTargetException e5) {
M2.b.h(AccessibilityViewEmbedder.TAG, "The getRecordSourceNodeId method threw an exception when invoked.", e5);
return null;
}
}
public final Long i(AccessibilityNodeInfo accessibilityNodeInfo) {
Method method = this.f10612a;
if (method == null) {
return null;
}
try {
return (Long) method.invoke(accessibilityNodeInfo, (Object[]) null);
} catch (IllegalAccessException e4) {
M2.b.h(AccessibilityViewEmbedder.TAG, "Failed to access getSourceNodeId method.", e4);
return null;
} catch (InvocationTargetException e5) {
M2.b.h(AccessibilityViewEmbedder.TAG, "The getSourceNodeId method threw an exception when invoked.", e5);
return null;
}
}
public b() {
Method method;
Method method2;
Method method3;
Field field;
Class<AccessibilityNodeInfo> cls = AccessibilityNodeInfo.class;
try {
method = cls.getMethod("getSourceNodeId", (Class[]) null);
} catch (NoSuchMethodException unused) {
M2.b.g(AccessibilityViewEmbedder.TAG, "can't invoke AccessibilityNodeInfo#getSourceNodeId with reflection");
method = null;
}
try {
method2 = AccessibilityRecord.class.getMethod("getSourceNodeId", (Class[]) null);
} catch (NoSuchMethodException unused2) {
M2.b.g(AccessibilityViewEmbedder.TAG, "can't invoke AccessibiiltyRecord#getSourceNodeId with reflection");
method2 = null;
}
try {
field = cls.getDeclaredField("mChildNodeIds");
field.setAccessible(true);
method3 = Class.forName("android.util.LongArray").getMethod("get", new Class[]{Integer.TYPE});
} catch (ClassNotFoundException | NoSuchFieldException | NoSuchMethodException | NullPointerException unused3) {
M2.b.g(AccessibilityViewEmbedder.TAG, "can't access childNodeIdsField with reflection");
field = null;
method3 = null;
}
this.f10612a = method;
this.f10613b = null;
this.f10614c = method2;
this.f10615d = null;
this.f10616e = field;
this.f10617f = method3;
}
}
public static class c {
/* renamed from: a reason: collision with root package name */
public final View f10618a;
/* renamed from: b reason: collision with root package name */
public final int f10619b;
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof c)) {
return false;
}
c cVar = (c) obj;
return this.f10619b == cVar.f10619b && this.f10618a.equals(cVar.f10618a);
}
public int hashCode() {
return ((this.f10618a.hashCode() + 31) * 31) + this.f10619b;
}
public c(View view, int i4) {
this.f10618a = view;
this.f10619b = i4;
}
}
public AccessibilityViewEmbedder(View view, int i4) {
this.rootAccessibilityView = view;
this.nextFlutterId = i4;
this.originToFlutterId = new HashMap();
this.embeddedViewToDisplayBounds = new HashMap();
}
private void addChildrenToFlutterNode(AccessibilityNodeInfo accessibilityNodeInfo, View view, AccessibilityNodeInfo accessibilityNodeInfo2) {
int i4;
for (int i5 = 0; i5 < accessibilityNodeInfo.getChildCount(); i5++) {
Long d4 = this.reflectionAccessors.f(accessibilityNodeInfo, i5);
if (d4 != null) {
int b4 = b.j(d4.longValue());
c cVar = new c(view, b4);
if (this.originToFlutterId.containsKey(cVar)) {
i4 = this.originToFlutterId.get(cVar).intValue();
} else {
int i6 = this.nextFlutterId;
this.nextFlutterId = i6 + 1;
cacheVirtualIdMappings(view, b4, i6);
i4 = i6;
}
accessibilityNodeInfo2.addChild(this.rootAccessibilityView, i4);
}
}
}
private void cacheVirtualIdMappings(View view, int i4, int i5) {
c cVar = new c(view, i4);
this.originToFlutterId.put(cVar, Integer.valueOf(i5));
this.flutterIdToOrigin.put(i5, cVar);
}
private AccessibilityNodeInfo convertToFlutterNode(AccessibilityNodeInfo accessibilityNodeInfo, int i4, View view) {
AccessibilityNodeInfo obtain = AccessibilityNodeInfo.obtain(this.rootAccessibilityView, i4);
obtain.setPackageName(this.rootAccessibilityView.getContext().getPackageName());
obtain.setSource(this.rootAccessibilityView, i4);
obtain.setClassName(accessibilityNodeInfo.getClassName());
copyAccessibilityFields(accessibilityNodeInfo, obtain);
setFlutterNodesTranslateBounds(accessibilityNodeInfo, this.embeddedViewToDisplayBounds.get(view), obtain);
addChildrenToFlutterNode(accessibilityNodeInfo, view, obtain);
setFlutterNodeParent(accessibilityNodeInfo, view, obtain);
return obtain;
}
private void copyAccessibilityFields(AccessibilityNodeInfo accessibilityNodeInfo, AccessibilityNodeInfo accessibilityNodeInfo2) {
accessibilityNodeInfo2.setAccessibilityFocused(accessibilityNodeInfo.isAccessibilityFocused());
accessibilityNodeInfo2.setCheckable(accessibilityNodeInfo.isCheckable());
accessibilityNodeInfo2.setChecked(accessibilityNodeInfo.isChecked());
accessibilityNodeInfo2.setContentDescription(accessibilityNodeInfo.getContentDescription());
accessibilityNodeInfo2.setEnabled(accessibilityNodeInfo.isEnabled());
accessibilityNodeInfo2.setClickable(accessibilityNodeInfo.isClickable());
accessibilityNodeInfo2.setFocusable(accessibilityNodeInfo.isFocusable());
accessibilityNodeInfo2.setFocused(accessibilityNodeInfo.isFocused());
accessibilityNodeInfo2.setLongClickable(accessibilityNodeInfo.isLongClickable());
accessibilityNodeInfo2.setMovementGranularities(accessibilityNodeInfo.getMovementGranularities());
accessibilityNodeInfo2.setPassword(accessibilityNodeInfo.isPassword());
accessibilityNodeInfo2.setScrollable(accessibilityNodeInfo.isScrollable());
accessibilityNodeInfo2.setSelected(accessibilityNodeInfo.isSelected());
accessibilityNodeInfo2.setText(accessibilityNodeInfo.getText());
accessibilityNodeInfo2.setVisibleToUser(accessibilityNodeInfo.isVisibleToUser());
accessibilityNodeInfo2.setEditable(accessibilityNodeInfo.isEditable());
accessibilityNodeInfo2.setCanOpenPopup(accessibilityNodeInfo.canOpenPopup());
accessibilityNodeInfo2.setCollectionInfo(accessibilityNodeInfo.getCollectionInfo());
accessibilityNodeInfo2.setCollectionItemInfo(accessibilityNodeInfo.getCollectionItemInfo());
accessibilityNodeInfo2.setContentInvalid(accessibilityNodeInfo.isContentInvalid());
accessibilityNodeInfo2.setDismissable(accessibilityNodeInfo.isDismissable());
accessibilityNodeInfo2.setInputType(accessibilityNodeInfo.getInputType());
accessibilityNodeInfo2.setLiveRegion(accessibilityNodeInfo.getLiveRegion());
accessibilityNodeInfo2.setMultiLine(accessibilityNodeInfo.isMultiLine());
accessibilityNodeInfo2.setRangeInfo(accessibilityNodeInfo.getRangeInfo());
accessibilityNodeInfo2.setError(accessibilityNodeInfo.getError());
accessibilityNodeInfo2.setMaxTextLength(accessibilityNodeInfo.getMaxTextLength());
accessibilityNodeInfo2.setContextClickable(accessibilityNodeInfo.isContextClickable());
accessibilityNodeInfo2.setDrawingOrder(accessibilityNodeInfo.getDrawingOrder());
accessibilityNodeInfo2.setImportantForAccessibility(accessibilityNodeInfo.isImportantForAccessibility());
accessibilityNodeInfo2.setAvailableExtraData(accessibilityNodeInfo.getAvailableExtraData());
accessibilityNodeInfo2.setHintText(accessibilityNodeInfo.getHintText());
accessibilityNodeInfo2.setShowingHintText(accessibilityNodeInfo.isShowingHintText());
}
private void setFlutterNodeParent(AccessibilityNodeInfo accessibilityNodeInfo, View view, AccessibilityNodeInfo accessibilityNodeInfo2) {
Long c4 = this.reflectionAccessors.g(accessibilityNodeInfo);
if (c4 != null) {
Integer num = this.originToFlutterId.get(new c(view, b.j(c4.longValue())));
if (num != null) {
accessibilityNodeInfo2.setParent(this.rootAccessibilityView, num.intValue());
}
}
}
private void setFlutterNodesTranslateBounds(AccessibilityNodeInfo accessibilityNodeInfo, Rect rect, AccessibilityNodeInfo accessibilityNodeInfo2) {
Rect rect2 = new Rect();
accessibilityNodeInfo.getBoundsInParent(rect2);
accessibilityNodeInfo2.setBoundsInParent(rect2);
Rect rect3 = new Rect();
accessibilityNodeInfo.getBoundsInScreen(rect3);
rect3.offset(rect.left, rect.top);
accessibilityNodeInfo2.setBoundsInScreen(rect3);
}
public AccessibilityNodeInfo createAccessibilityNodeInfo(int i4) {
AccessibilityNodeInfo createAccessibilityNodeInfo;
c cVar = this.flutterIdToOrigin.get(i4);
if (cVar == null || !this.embeddedViewToDisplayBounds.containsKey(cVar.f10618a) || cVar.f10618a.getAccessibilityNodeProvider() == null || (createAccessibilityNodeInfo = cVar.f10618a.getAccessibilityNodeProvider().createAccessibilityNodeInfo(cVar.f10619b)) == null) {
return null;
}
return convertToFlutterNode(createAccessibilityNodeInfo, i4, cVar.f10618a);
}
public Integer getRecordFlutterId(View view, AccessibilityRecord accessibilityRecord) {
Long e4 = this.reflectionAccessors.h(accessibilityRecord);
if (e4 == null) {
return null;
}
return this.originToFlutterId.get(new c(view, b.j(e4.longValue())));
}
public AccessibilityNodeInfo getRootNode(View view, int i4, Rect rect) {
AccessibilityNodeInfo createAccessibilityNodeInfo = view.createAccessibilityNodeInfo();
Long a4 = this.reflectionAccessors.i(createAccessibilityNodeInfo);
if (a4 == null) {
return null;
}
this.embeddedViewToDisplayBounds.put(view, rect);
cacheVirtualIdMappings(view, b.j(a4.longValue()), i4);
return convertToFlutterNode(createAccessibilityNodeInfo, i4, view);
}
public boolean onAccessibilityHoverEvent(int i4, MotionEvent motionEvent) {
MotionEvent motionEvent2 = motionEvent;
c cVar = this.flutterIdToOrigin.get(i4);
if (cVar == null) {
return false;
}
Rect rect = this.embeddedViewToDisplayBounds.get(cVar.f10618a);
int pointerCount = motionEvent.getPointerCount();
MotionEvent.PointerProperties[] pointerPropertiesArr = new MotionEvent.PointerProperties[pointerCount];
MotionEvent.PointerCoords[] pointerCoordsArr = new MotionEvent.PointerCoords[pointerCount];
for (int i5 = 0; i5 < motionEvent.getPointerCount(); i5++) {
MotionEvent.PointerProperties pointerProperties = new MotionEvent.PointerProperties();
pointerPropertiesArr[i5] = pointerProperties;
motionEvent2.getPointerProperties(i5, pointerProperties);
MotionEvent.PointerCoords pointerCoords = new MotionEvent.PointerCoords();
motionEvent2.getPointerCoords(i5, pointerCoords);
MotionEvent.PointerCoords pointerCoords2 = new MotionEvent.PointerCoords(pointerCoords);
pointerCoordsArr[i5] = pointerCoords2;
pointerCoords2.x -= (float) rect.left;
pointerCoords2.y -= (float) rect.top;
}
return cVar.f10618a.dispatchGenericMotionEvent(MotionEvent.obtain(motionEvent.getDownTime(), motionEvent.getEventTime(), motionEvent.getAction(), motionEvent.getPointerCount(), pointerPropertiesArr, pointerCoordsArr, motionEvent.getMetaState(), motionEvent.getButtonState(), motionEvent.getXPrecision(), motionEvent.getYPrecision(), motionEvent.getDeviceId(), motionEvent.getEdgeFlags(), motionEvent.getSource(), motionEvent.getFlags()));
}
public boolean performAction(int i4, int i5, Bundle bundle) {
AccessibilityNodeProvider accessibilityNodeProvider;
c cVar = this.flutterIdToOrigin.get(i4);
if (cVar == null || (accessibilityNodeProvider = cVar.f10618a.getAccessibilityNodeProvider()) == null) {
return false;
}
return accessibilityNodeProvider.performAction(cVar.f10619b, i5, bundle);
}
public View platformViewOfNode(int i4) {
c cVar = this.flutterIdToOrigin.get(i4);
if (cVar == null) {
return null;
}
return cVar.f10618a;
}
public boolean requestSendAccessibilityEvent(View view, View view2, AccessibilityEvent accessibilityEvent) {
AccessibilityEvent obtain = AccessibilityEvent.obtain(accessibilityEvent);
Long e4 = this.reflectionAccessors.h(accessibilityEvent);
if (e4 == null) {
return false;
}
int b4 = b.j(e4.longValue());
Integer num = this.originToFlutterId.get(new c(view, b4));
if (num == null) {
int i4 = this.nextFlutterId;
this.nextFlutterId = i4 + 1;
Integer valueOf = Integer.valueOf(i4);
cacheVirtualIdMappings(view, b4, i4);
num = valueOf;
}
obtain.setSource(this.rootAccessibilityView, num.intValue());
obtain.setClassName(accessibilityEvent.getClassName());
obtain.setPackageName(accessibilityEvent.getPackageName());
for (int i5 = 0; i5 < obtain.getRecordCount(); i5++) {
AccessibilityRecord record = obtain.getRecord(i5);
Long e5 = this.reflectionAccessors.h(record);
if (e5 == null) {
return false;
}
c cVar = new c(view, b.j(e5.longValue()));
if (!this.originToFlutterId.containsKey(cVar)) {
return false;
}
record.setSource(this.rootAccessibilityView, this.originToFlutterId.get(cVar).intValue());
}
return this.rootAccessibilityView.getParent().requestSendAccessibilityEvent(view2, obtain);
}
}
Download file