CrackMe.apk
Download file
package com.th3rdwave.safeareacontext;
import com.facebook.react.bridge.Dynamic;
import com.facebook.react.bridge.ReadableType;
import com.facebook.react.uimanager.LayoutShadowNode;
import com.facebook.react.uimanager.NativeViewHierarchyOptimizer;
import com.facebook.react.uimanager.PixelUtil;
import com.facebook.react.uimanager.ViewProps;
import com.facebook.react.uimanager.annotations.ReactPropGroup;
import java.util.EnumSet;
import kotlin.Metadata;
import kotlin.jvm.internal.Intrinsics;
@Metadata(d1 = {"\u0000L\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0014\n\u0000\n\u0002\u0010\u000b\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u0010\u0010\n\u001a\u00020\u000b2\u0006\u0010\f\u001a\u00020\rH\u0016J\u0010\u0010\u000e\u001a\u00020\u000b2\u0006\u0010\u000f\u001a\u00020\u0010H\u0002J\u0010\u0010\u0011\u001a\u00020\u000b2\u0006\u0010\u0012\u001a\u00020\u0013H\u0016J\u0018\u0010\u0014\u001a\u00020\u000b2\u0006\u0010\u0015\u001a\u00020\u00162\u0006\u0010\u0017\u001a\u00020\u0018H\u0017J\u0018\u0010\u0019\u001a\u00020\u000b2\u0006\u0010\u0015\u001a\u00020\u00162\u0006\u0010\u001a\u001a\u00020\u0018H\u0017J\b\u0010\u001b\u001a\u00020\u000bH\u0002R\u0010\u0010\u0003\u001a\u0004\u0018\u00010\u0004X\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0005\u001a\u00020\u0006X\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0007\u001a\u00020\bX\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\t\u001a\u00020\u0006X\u0004¢\u0006\u0002\n\u0000¨\u0006\u001c"}, d2 = {"Lcom/th3rdwave/safeareacontext/SafeAreaViewShadowNode;", "Lcom/facebook/react/uimanager/LayoutShadowNode;", "()V", "mLocalData", "Lcom/th3rdwave/safeareacontext/SafeAreaViewLocalData;", "mMargins", "", "mNeedsUpdate", "", "mPaddings", "onBeforeLayout", "", "nativeViewHierarchyOptimizer", "Lcom/facebook/react/uimanager/NativeViewHierarchyOptimizer;", "resetInsets", "mode", "Lcom/th3rdwave/safeareacontext/SafeAreaViewMode;", "setLocalData", "data", "", "setMargins", "index", "", "margin", "Lcom/facebook/react/bridge/Dynamic;", "setPaddings", "padding", "updateInsets", "react-native-safe-area-context_release"}, k = 1, mv = {1, 6, 0}, xi = 48)
/* compiled from: SafeAreaViewShadowNode.kt */
public final class SafeAreaViewShadowNode extends LayoutShadowNode {
private SafeAreaViewLocalData mLocalData;
private final float[] mMargins = new float[ViewProps.PADDING_MARGIN_SPACING_TYPES.length];
private boolean mNeedsUpdate;
private final float[] mPaddings = new float[ViewProps.PADDING_MARGIN_SPACING_TYPES.length];
public SafeAreaViewShadowNode() {
int length = ViewProps.PADDING_MARGIN_SPACING_TYPES.length;
for (int i = 0; i < length; i++) {
this.mPaddings[i] = Float.NaN;
this.mMargins[i] = Float.NaN;
}
}
private final void updateInsets() {
float f;
float f2;
float f3;
SafeAreaViewLocalData safeAreaViewLocalData = this.mLocalData;
if (safeAreaViewLocalData != null) {
float[] fArr = safeAreaViewLocalData.getMode() == SafeAreaViewMode.PADDING ? this.mPaddings : this.mMargins;
float f4 = fArr[8];
if (!Float.isNaN(f4)) {
f3 = f4;
f2 = f3;
f = f2;
} else {
f4 = 0.0f;
f3 = 0.0f;
f2 = 0.0f;
f = 0.0f;
}
float f5 = fArr[7];
if (!Float.isNaN(f5)) {
f4 = f5;
f2 = f4;
}
float f6 = fArr[6];
if (!Float.isNaN(f6)) {
f3 = f6;
f = f3;
}
float f7 = fArr[1];
if (!Float.isNaN(f7)) {
f4 = f7;
}
float f8 = fArr[2];
if (!Float.isNaN(f8)) {
f3 = f8;
}
float f9 = fArr[3];
if (!Float.isNaN(f9)) {
f2 = f9;
}
float f10 = fArr[0];
if (!Float.isNaN(f10)) {
f = f10;
}
float pixelFromDIP = PixelUtil.toPixelFromDIP(f4);
float pixelFromDIP2 = PixelUtil.toPixelFromDIP(f3);
float pixelFromDIP3 = PixelUtil.toPixelFromDIP(f2);
float pixelFromDIP4 = PixelUtil.toPixelFromDIP(f);
EnumSet<SafeAreaViewEdges> edges = safeAreaViewLocalData.getEdges();
EdgeInsets insets = safeAreaViewLocalData.getInsets();
float top = edges.contains(SafeAreaViewEdges.TOP) ? insets.getTop() : 0.0f;
float right = edges.contains(SafeAreaViewEdges.RIGHT) ? insets.getRight() : 0.0f;
float bottom = edges.contains(SafeAreaViewEdges.BOTTOM) ? insets.getBottom() : 0.0f;
float left = edges.contains(SafeAreaViewEdges.LEFT) ? insets.getLeft() : 0.0f;
if (safeAreaViewLocalData.getMode() == SafeAreaViewMode.PADDING) {
super.setPadding(1, top + pixelFromDIP);
super.setPadding(2, right + pixelFromDIP2);
super.setPadding(3, bottom + pixelFromDIP3);
super.setPadding(0, left + pixelFromDIP4);
return;
}
super.setMargin(1, top + pixelFromDIP);
super.setMargin(2, right + pixelFromDIP2);
super.setMargin(3, bottom + pixelFromDIP3);
super.setMargin(0, left + pixelFromDIP4);
}
}
private final void resetInsets(SafeAreaViewMode safeAreaViewMode) {
if (safeAreaViewMode == SafeAreaViewMode.PADDING) {
super.setPadding(1, this.mPaddings[1]);
super.setPadding(2, this.mPaddings[1]);
super.setPadding(3, this.mPaddings[3]);
super.setPadding(0, this.mPaddings[0]);
} else {
super.setMargin(1, this.mMargins[1]);
super.setMargin(2, this.mMargins[1]);
super.setMargin(3, this.mMargins[3]);
super.setMargin(0, this.mMargins[0]);
}
markUpdated();
}
public void onBeforeLayout(NativeViewHierarchyOptimizer nativeViewHierarchyOptimizer) {
Intrinsics.checkNotNullParameter(nativeViewHierarchyOptimizer, "nativeViewHierarchyOptimizer");
if (this.mNeedsUpdate) {
this.mNeedsUpdate = false;
updateInsets();
}
}
public void setLocalData(Object obj) {
Intrinsics.checkNotNullParameter(obj, "data");
if (obj instanceof SafeAreaViewLocalData) {
SafeAreaViewLocalData safeAreaViewLocalData = this.mLocalData;
if (!(safeAreaViewLocalData == null || safeAreaViewLocalData.getMode() == ((SafeAreaViewLocalData) obj).getMode())) {
resetInsets(safeAreaViewLocalData.getMode());
}
this.mLocalData = (SafeAreaViewLocalData) obj;
this.mNeedsUpdate = false;
updateInsets();
}
}
@ReactPropGroup(names = {"padding", "paddingVertical", "paddingHorizontal", "paddingStart", "paddingEnd", "paddingTop", "paddingBottom", "paddingLeft", "paddingRight"})
public void setPaddings(int i, Dynamic dynamic) {
Intrinsics.checkNotNullParameter(dynamic, ViewProps.PADDING);
this.mPaddings[ViewProps.PADDING_MARGIN_SPACING_TYPES[i]] = dynamic.getType() == ReadableType.Number ? (float) dynamic.asDouble() : Float.NaN;
super.setPaddings(i, dynamic);
this.mNeedsUpdate = true;
}
@ReactPropGroup(names = {"margin", "marginVertical", "marginHorizontal", "marginStart", "marginEnd", "marginTop", "marginBottom", "marginLeft", "marginRight"})
public void setMargins(int i, Dynamic dynamic) {
Intrinsics.checkNotNullParameter(dynamic, ViewProps.MARGIN);
this.mMargins[ViewProps.PADDING_MARGIN_SPACING_TYPES[i]] = dynamic.getType() == ReadableType.Number ? (float) dynamic.asDouble() : Float.NaN;
super.setMargins(i, dynamic);
this.mNeedsUpdate = true;
}
}
Download file